field_theory.ratfuncMathlib.FieldTheory.RatFunc

This file has been ported!

Changes since the initial port

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.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

feat(field_theory/ratfunc): The numerator and denominator of a rational function are coprime (#18652)

Also make more arguments to gcd_ne_zero_of_left/gcd_ne_zero_of_right implicit.

Co-authored-by: Bhavik Mehta <bhavikmehta8@gmail.com>

Diff
@@ -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)

chore(field_theory/ratfunc): use 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 4#4373 in mathlib3.

Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -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)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -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
 -/
 
Diff
@@ -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]
Diff
@@ -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`.
Diff
@@ -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`.
Diff
@@ -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
Diff
@@ -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'
 -/
Diff
@@ -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
 -/
 
Diff
@@ -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
 
Diff
@@ -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]
Diff
@@ -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]
Diff
@@ -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 :=
Diff
@@ -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⟩
Diff
@@ -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
Diff
@@ -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 :=
Diff
@@ -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. -/
Diff
@@ -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]
Diff
@@ -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
 
Diff
@@ -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
 
Diff
@@ -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 :=
Diff
@@ -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
 
Diff
@@ -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) =
Diff
@@ -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
 
Diff
@@ -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
Diff
@@ -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
 
Diff
@@ -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
 
Diff
@@ -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`.
 
Diff
@@ -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
Diff
@@ -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
 
Diff
@@ -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
 
Diff
@@ -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]
Diff
@@ -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) :=
Diff
@@ -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

Changes in mathlib4

mathlib3
mathlib4
feat: NNRat.cast (#11203)

Define the canonical coercion from the nonnegative rationals to any division semiring.

From LeanAPAP

Diff
@@ -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
chore: Final cleanup before NNRat.cast (#12360)

This is the parts of the diff of #11203 which don't mention NNRat.cast.

  • Use more where notation.
  • Write qsmul := _ instead of qsmul := qsmulRec _ to make the instances more robust to definition changes.
  • Delete qsmulRec.
  • Move qsmul before ratCast_def in instance declarations.
  • Name more instances.
  • Rename rat_smul to qsmul.
Diff
@@ -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
 
feat (Mathlib/FieldTheory/RatFunc.lean): add five lemmas about coercions between Hahn or Laurent Series and Rational Functions (#12245)

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

Diff
@@ -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
 
chore: classify porting notes about additional necessary beta reduction (#12130)

This subsumes some of the notes in #10752 and #10971. I'm on the fence as to whether replacing the dsimp only by beta_reduce is useful; this is easy to revert if needed.

Diff
@@ -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
chore: resolve some simp-related porting notes (#12074)

In all cases, the original proof works now. I presume this is due to simp changes in Lean 4.7, but haven't verified.

Diff
@@ -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
chore(Data/Int/Cast): fix confusion between 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.

Diff
@@ -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])
 
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11801)
Diff
@@ -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]
chore(*): remove empty lines between variable statements (#11418)

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)
Diff
@@ -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
refactor: do not allow qsmul to default automatically (#11262)

Follows on from #6262. Again, this does not attempt to fix any diamonds; it only identifies where they may be.

Diff
@@ -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
 
chore: move Mathlib to v4.7.0-rc1 (#11162)

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>

Diff
@@ -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] :=
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -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]
refactor(Data/FunLike): use unbundled inheritance from FunLike (#8386)

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.

Zulip thread

Important changes

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].

Remaining issues

Slower (failing) search

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_params, [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 sometimes

This 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.

Missing instances due to unification failing

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 outParams 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.)

Workaround for issues

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>

Diff
@@ -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,
chore: remove detrital heartbeat bumps (#10191)

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.

Diff
@@ -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,
chore(*): rename 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>

Diff
@@ -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. -/
chore(*): use α → β instead of ∀ _ : α, β (#9529)
Diff
@@ -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]
chore: tidy various files (#9016)
Diff
@@ -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
chore: space after (#8178)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -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,
chore: bump to v4.3.0-rc2 (#8366)

PR contents

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.

Lean PRs involved in this bump

In particular this includes adjustments for the Lean PRs

leanprover/lean4#2778

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).

leanprover/lean4#2722

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}).

leanprover/lean4#2783

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:

  • switching to using explicit lemmas that have the intended level of application
  • (config := { unfoldPartialApp := true }) in some places, to recover the old behaviour
  • Using @[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>

Diff
@@ -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
chore: replace IsLocalization.eq_iff_exists' by exists_of_eq (#8335)

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>

Diff
@@ -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
perf(FunLike.Basic): beta reduce CoeFun.coe (#7905)

This eliminates (fun a ↦ β) α in the type when applying a FunLike.

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -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
chore: exactly 4 spaces in subsequent lines (#7296)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -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
perf: remove overspecified fields (#6965)

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.

Diff
@@ -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
chore: tidy various files (#7137)
Diff
@@ -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,
chore: drop 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).

Diff
@@ -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
 
chore: bump to nightly-2023-08-17 (#6019)

The major change here is adapting to simp failing if it makes no progress. The vast majority of the redundant simps 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>

Diff
@@ -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,
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -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
chore: lower instance priority of CancelMonoid.toMonoid etc (#6145)

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>

Diff
@@ -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
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -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
 
chore: cleanup whitespace (#5988)

Grepping for [^ .:{-] [^ :] and reviewing the results. Once I started I couldn't stop. :-)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -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. -/
chore: fix focusing dots (#5708)

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.

Diff
@@ -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`,
chore: tidy various files (#5355)
Diff
@@ -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.
feat: The numerator and denominator of a rational function are coprime (#5136)

Match https://github.com/leanprover-community/mathlib/pull/18652

Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>

Diff
@@ -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⟩
chore: fix grammar 2/3 (#5002)

Part 2 of #5001

Diff
@@ -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
chore: formatting issues (#4947)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -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
chore(FieldTheory.Ratfunc): forward-port #19133 (#4580)

This PR re-ports FieldTheory/RatFunc, now that the mathlib3 version uses sections, 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>

Diff
@@ -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
chore(Mathlib/FieldTheory/RatFunc): change from 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!

Diff
@@ -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.
feat: port FieldTheory.Ratfunc (#4293)

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>

Dependencies 8 + 561

562 files ported (98.6%)
236575 lines ported (98.7%)
Show graph

The unported dependencies are