ring_theory.integral_closureMathlib.RingTheory.IntegralClosure

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)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

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

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -1313,7 +1313,7 @@ theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial
     have a_inv_ne_zero : a_inv ≠ 0 := right_ne_zero_of_mul (mt ha_inv.symm.trans one_ne_zero)
     refine' (mul_eq_zero.mp _).resolve_right (pow_ne_zero p.nat_degree a_inv_ne_zero)
     rw [eval₂_eq_sum_range] at hp
-    rw [RingHom.map_sum, Finset.sum_mul]
+    rw [map_sum, Finset.sum_mul]
     refine' (Finset.sum_congr rfl fun i hi => _).trans hp
     rw [RingHom.map_mul, mul_assoc]
     congr
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2019 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau
 -/
-import Data.Polynomial.Expand
+import Algebra.Polynomial.Expand
 import LinearAlgebra.FiniteDimensional
 import LinearAlgebra.Matrix.Charpoly.LinearMap
 import RingTheory.Adjoin.FG
Diff
@@ -6,11 +6,11 @@ Authors: Kenny Lau
 import Data.Polynomial.Expand
 import LinearAlgebra.FiniteDimensional
 import LinearAlgebra.Matrix.Charpoly.LinearMap
-import RingTheory.Adjoin.Fg
+import RingTheory.Adjoin.FG
 import RingTheory.FiniteType
 import RingTheory.Polynomial.ScaleRoots
 import RingTheory.Polynomial.Tower
-import RingTheory.TensorProduct
+import LinearAlgebra.TensorProduct.Tower
 
 #align_import ring_theory.integral_closure from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
 
@@ -836,7 +836,7 @@ theorem normalizeScaleRoots_coeff_mul_leadingCoeff_pow (i : ℕ) (hp : 1 ≤ nat
     MulZeroClass.zero_mul, mem_support_iff, ite_mul, Ne.def, ite_not]
   split_ifs with h₁ h₂
   · simp [h₁]
-  · rw [h₂, leading_coeff, ← pow_succ, tsub_add_cancel_of_le hp]
+  · rw [h₂, leading_coeff, ← pow_succ', tsub_add_cancel_of_le hp]
   · rw [mul_assoc, ← pow_add, tsub_add_cancel_of_le]
     apply Nat.le_pred_of_lt
     rw [lt_iff_le_and_ne]
@@ -854,7 +854,7 @@ theorem leadingCoeff_smul_normalizeScaleRoots (p : R[X]) :
   split_ifs with h₁ h₂
   · simp [*]
   · simp [*]
-  · rw [Algebra.id.smul_eq_mul, mul_comm, mul_assoc, ← pow_succ', tsub_right_comm,
+  · rw [Algebra.id.smul_eq_mul, mul_comm, mul_assoc, ← pow_succ, tsub_right_comm,
       tsub_add_cancel_of_le]
     rw [Nat.succ_le_iff]
     exact tsub_pos_of_lt (lt_of_le_of_ne (le_nat_degree_of_ne_zero h₁) h₂)
@@ -1328,7 +1328,7 @@ theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial
   convert hq using 2
   refine' Finset.sum_congr rfl fun i hi => _
   have : 1 ≤ p.nat_degree - i := le_tsub_of_add_le_left (finset.mem_range.mp hi)
-  rw [mul_assoc, ← pow_succ', tsub_add_cancel_of_le this]
+  rw [mul_assoc, ← pow_succ, tsub_add_cancel_of_le this]
 #align is_field_of_is_integral_of_is_field isField_of_isIntegral_of_isField
 -/
 
Diff
@@ -108,7 +108,7 @@ theorem isIntegral_of_noetherian (H : IsNoetherian R A) (x : A) : IsIntegral R x
   cases' HM with N HN
   have HM : ¬M < D (N + 1) :=
     WellFounded.not_lt_min (isNoetherian_iff_wellFounded.1 H) (Set.range D) _ ⟨N + 1, rfl⟩
-  rw [← HN] at HM 
+  rw [← HN] at HM
   have HN2 : D (N + 1) ≤ D N :=
     by_contradiction fun H =>
       HM (lt_of_le_not_le (map_mono (degree_le_mono (WithBot.coe_le_coe.2 (Nat.le_succ N)))) H)
@@ -180,7 +180,7 @@ theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Al
   rintro ⟨p, hp, hx⟩
   use p, hp
   rwa [← f.comp_algebra_map, ← AlgHom.coe_toRingHom, ← Polynomial.hom_eval₂, AlgHom.coe_toRingHom,
-    map_eq_zero_iff f hf] at hx 
+    map_eq_zero_iff f hf] at hx
 #align is_integral_alg_hom_iff isIntegral_algHom_iff
 -/
 
@@ -250,14 +250,14 @@ theorem fG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
   rcases hx with ⟨f, hfm, hfx⟩
   exists Finset.image ((· ^ ·) x) (Finset.range (nat_degree f + 1))
   apply le_antisymm
-  · rw [span_le]; intro s hs; rw [Finset.mem_coe] at hs 
+  · rw [span_le]; intro s hs; rw [Finset.mem_coe] at hs
     rcases Finset.mem_image.1 hs with ⟨k, hk, rfl⟩; clear hk
     exact (Algebra.adjoin R {x}).pow_mem (Algebra.subset_adjoin (Set.mem_singleton _)) k
-  intro r hr; change r ∈ Algebra.adjoin R ({x} : Set A) at hr 
-  rw [Algebra.adjoin_singleton_eq_range_aeval] at hr 
+  intro r hr; change r ∈ Algebra.adjoin R ({x} : Set A) at hr
+  rw [Algebra.adjoin_singleton_eq_range_aeval] at hr
   rcases(aeval x).mem_range.mp hr with ⟨p, rfl⟩
   rw [← mod_by_monic_add_div p hfm]
-  rw [← aeval_def] at hfx 
+  rw [← aeval_def] at hfx
   rw [AlgHom.map_add, AlgHom.map_mul, hfx, MulZeroClass.zero_mul, add_zero]
   have : degree (p %ₘ f) ≤ degree f := degree_mod_by_monic_le p hfm
   generalize p %ₘ f = q at this ⊢
@@ -267,8 +267,8 @@ theorem fG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
   refine' smul_mem _ _ (subset_span _)
   rw [Finset.mem_coe]; refine' Finset.mem_image.2 ⟨_, _, rfl⟩
   rw [Finset.mem_range, Nat.lt_succ_iff]; refine' le_of_not_lt fun hk => _
-  rw [degree_le_iff_coeff_zero] at this 
-  rw [mem_support_iff] at hkq ; apply hkq; apply this
+  rw [degree_le_iff_coeff_zero] at this
+  rw [mem_support_iff] at hkq; apply hkq; apply this
   exact lt_of_le_of_lt degree_le_nat_degree (WithBot.coe_lt_coe.2 hk)
 #align fg_adjoin_singleton_of_integral fG_adjoin_singleton_of_integral
 
@@ -319,7 +319,7 @@ theorem IsIntegral.of_mem_of_fg (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   -- Now `S` is a subalgebra so the product of two elements of `y` is also in `S`.
   have : ∀ jk : (↑(y ×ˢ y) : Set (A × A)), jk.1.1 * jk.1.2 ∈ S.to_submodule := fun jk =>
     S.mul_mem (hyS (Finset.mem_product.1 jk.2).1) (hyS (Finset.mem_product.1 jk.2).2)
-  rw [← hy, ← Set.image_id ↑y] at this ; simp only [Finsupp.mem_span_image_iff_total] at this 
+  rw [← hy, ← Set.image_id ↑y] at this; simp only [Finsupp.mem_span_image_iff_total] at this
   -- Say `yᵢyⱼ = ∑rᵢⱼₖ yₖ`
   choose ly hly1 hly2
   -- Now let `S₀` be the subring of `R` generated by the `rᵢ` and the `rᵢⱼₖ`.
@@ -369,7 +369,7 @@ theorem IsIntegral.of_mem_of_fg (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
         (span_le.2
             (Set.insert_subset_iff.2 ⟨(Algebra.adjoin S₀ ↑y).one_mem, Algebra.subset_adjoin⟩))
           hz
-    · rw [Subalgebra.mem_toSubmodule, Algebra.mem_adjoin_iff] at hz 
+    · rw [Subalgebra.mem_toSubmodule, Algebra.mem_adjoin_iff] at hz
       suffices Subring.closure (Set.range ⇑(algebraMap (↥S₀) A) ∪ ↑y) ≤ S₁ by exact this hz
       refine' Subring.closure_le.2 (Set.union_subset _ fun t ht => subset_span <| Or.inr ht)
       rw [Set.range_subset_iff]
@@ -388,7 +388,7 @@ theorem IsIntegral.of_mem_of_fg (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   have : lx r ∈ S₀ :=
     Subring.subset_closure (Finset.mem_union_left _ (Finset.mem_image_of_mem _ hr))
   change (⟨_, this⟩ : S₀) • r ∈ _
-  rw [Finsupp.mem_supported] at hlx1 
+  rw [Finsupp.mem_supported] at hlx1
   exact Subalgebra.smul_mem _ (Algebra.subset_adjoin <| hlx1 hr) _
 #align is_integral_of_mem_of_fg IsIntegral.of_mem_of_fg
 -/
@@ -421,7 +421,7 @@ theorem isIntegral_of_smul_mem_submodule {M : Type _} [AddCommGroup M] [Module R
         map_smul' := fun r s => LinearMap.ext fun n => Subtype.ext <| smul_assoc r s n }
       (LinearMap.ext fun n => Subtype.ext <| one_smul _ _) fun x y =>
       LinearMap.ext fun n => Subtype.ext <| mul_smul x y n
-  obtain ⟨a, ha₁, ha₂⟩ : ∃ a ∈ N, a ≠ (0 : M) := by by_contra h'; push_neg at h' ; apply hN;
+  obtain ⟨a, ha₁, ha₂⟩ : ∃ a ∈ N, a ≠ (0 : M) := by by_contra h'; push_neg at h'; apply hN;
     rwa [eq_bot_iff]
   have : Function.Injective f :=
     by
@@ -477,7 +477,7 @@ theorem Algebra.IsIntegral.finite (h : Algebra.IsIntegral R A) [h' : Algebra.Fin
   by
   have :=
     h.to_finite (by delta RingHom.FiniteType; convert h'; ext; exact (Algebra.smul_def _ _).symm)
-  delta RingHom.Finite at this ; convert this; ext; exact Algebra.smul_def _ _
+  delta RingHom.Finite at this; convert this; ext; exact Algebra.smul_def _ _
 #align algebra.is_integral.finite Algebra.IsIntegral.finite
 -/
 
@@ -505,7 +505,7 @@ theorem RingHom.IsIntegralElem.of_mem_closure {x y z : S} (hx : f.IsIntegralElem
   by
   letI : Algebra R S := f.to_algebra
   have := (fG_adjoin_singleton_of_integral x hx).mul (fG_adjoin_singleton_of_integral y hy)
-  rw [← Algebra.adjoin_union_coe_submodule, Set.singleton_union] at this 
+  rw [← Algebra.adjoin_union_coe_submodule, Set.singleton_union] at this
   exact
     IsIntegral.of_mem_of_fg (Algebra.adjoin R {x, y}) this z
       (Algebra.mem_adjoin_iff.2 <| Subring.closure_mono (Set.subset_union_right _ _) hz)
@@ -692,7 +692,7 @@ theorem integralClosure.isIntegral (x : integralClosure R A) : IsIntegral R x :=
   let ⟨p, hpm, hpx⟩ := x.2
   ⟨p, hpm,
     Subtype.eq <| by
-      rwa [← aeval_def, Subtype.val_eq_coe, ← Subalgebra.val_apply, aeval_alg_hom_apply] at hpx ⟩
+      rwa [← aeval_def, Subtype.val_eq_coe, ← Subalgebra.val_apply, aeval_alg_hom_apply] at hpx⟩
 #align integral_closure.is_integral integralClosure.isIntegral
 -/
 
@@ -916,16 +916,16 @@ theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
   by
   by_cases h' : 1 ≤ p.nat_degree
   · use normalizeScaleRoots p
-    have : p ≠ 0 := fun h'' => by rw [h'', nat_degree_zero] at h' ; exact Nat.not_succ_le_zero 0 h'
+    have : p ≠ 0 := fun h'' => by rw [h'', nat_degree_zero] at h'; exact Nat.not_succ_le_zero 0 h'
     use normalizeScaleRoots_monic p this
     rw [normalizeScaleRoots_eval₂_leadingCoeff_mul p h' f x, h, MulZeroClass.mul_zero]
   · by_cases hp : p.map f = 0
-    · apply_fun fun q => coeff q p.nat_degree at hp 
-      rw [coeff_map, coeff_zero, coeff_nat_degree] at hp 
+    · apply_fun fun q => coeff q p.nat_degree at hp
+      rw [coeff_map, coeff_zero, coeff_nat_degree] at hp
       rw [hp, MulZeroClass.zero_mul]
       exact f.is_integral_zero
-    · rw [Nat.one_le_iff_ne_zero, Classical.not_not] at h' 
-      rw [eq_C_of_nat_degree_eq_zero h', eval₂_C] at h 
+    · rw [Nat.one_le_iff_ne_zero, Classical.not_not] at h'
+      rw [eq_C_of_nat_degree_eq_zero h', eval₂_C] at h
       suffices p.map f = 0 by exact (hp this).rec _
       rw [eq_C_of_nat_degree_eq_zero h', map_C, h, C_eq_zero]
 #align ring_hom.is_integral_elem_leading_coeff_mul RingHom.isIntegralElem_leadingCoeff_mul
@@ -937,7 +937,7 @@ then `p.leading_coeff • x : S` is integral over `R`. -/
 theorem isIntegral_leadingCoeff_smul [Algebra R S] (h : aeval x p = 0) :
     IsIntegral R (p.leadingCoeff • x) :=
   by
-  rw [aeval_def] at h 
+  rw [aeval_def] at h
   rw [Algebra.smul_def]
   exact (algebraMap R S).isIntegralElem_leadingCoeff_mul p x h
 #align is_integral_leading_coeff_smul isIntegral_leadingCoeff_smul
@@ -1158,7 +1158,7 @@ theorem isIntegral_trans (A_int : Algebra.IsIntegral R A) (x : B) (hx : IsIntegr
   let S : Set B := ↑(p.map <| algebraMap A B).frange
   refine' IsIntegral.of_mem_of_fg (adjoin R (S ∪ {x})) _ _ (subset_adjoin <| Or.inr rfl)
   refine' fg_trans (fg_adjoin_of_finite (Finset.finite_toSet _) fun x hx => _) _
-  · rw [Finset.mem_coe, frange, Finset.mem_image] at hx 
+  · rw [Finset.mem_coe, frange, Finset.mem_image] at hx
     rcases hx with ⟨i, _, rfl⟩
     rw [coeff_map]
     exact IsIntegral.map (IsScalarTower.toAlgHom R A B) (A_int _)
@@ -1207,7 +1207,7 @@ theorem IsIntegral.tower_bot (H : Function.Injective (algebraMap A B)) {x : A}
   rcases h with ⟨p, ⟨hp, hp'⟩⟩
   refine' ⟨p, ⟨hp, _⟩⟩
   rw [IsScalarTower.algebraMap_eq R A B, ← eval₂_map, eval₂_hom, ←
-    RingHom.map_zero (algebraMap A B)] at hp' 
+    RingHom.map_zero (algebraMap A B)] at hp'
   rw [eval₂_eq_eval_map]
   exact H hp'
 #align is_integral_tower_bot_of_is_integral IsIntegral.tower_bot
@@ -1235,7 +1235,7 @@ theorem IsIntegral.tower_bot_of_field {R A B : Type _} [CommRing R] [Field A] [C
 theorem RingHom.isIntegralElem.of_comp {x : T} (h : (g.comp f).IsIntegralElem x) :
     g.IsIntegralElem x :=
   let ⟨p, ⟨hp, hp'⟩⟩ := h
-  ⟨p.map f, hp.map f, by rwa [← eval₂_map] at hp' ⟩
+  ⟨p.map f, hp.map f, by rwa [← eval₂_map] at hp'⟩
 #align ring_hom.is_integral_elem_of_is_integral_elem_comp RingHom.isIntegralElem.of_comp
 -/
 
@@ -1254,7 +1254,7 @@ theorem IsIntegral.tower_top {x : B} (h : IsIntegral R x) : IsIntegral A x :=
   by
   rcases h with ⟨p, ⟨hp, hp'⟩⟩
   refine' ⟨p.map (algebraMap R A), ⟨hp.map (algebraMap R A), _⟩⟩
-  rw [IsScalarTower.algebraMap_eq R A B, ← eval₂_map] at hp' 
+  rw [IsScalarTower.algebraMap_eq R A B, ← eval₂_map] at hp'
   exact hp'
 #align is_integral_tower_top_of_is_integral IsIntegral.tower_top
 -/
@@ -1312,7 +1312,7 @@ theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial
     apply (injective_iff_map_eq_zero (algebraMap R S)).mp hRS
     have a_inv_ne_zero : a_inv ≠ 0 := right_ne_zero_of_mul (mt ha_inv.symm.trans one_ne_zero)
     refine' (mul_eq_zero.mp _).resolve_right (pow_ne_zero p.nat_degree a_inv_ne_zero)
-    rw [eval₂_eq_sum_range] at hp 
+    rw [eval₂_eq_sum_range] at hp
     rw [RingHom.map_sum, Finset.sum_mul]
     refine' (Finset.sum_congr rfl fun i hi => _).trans hp
     rw [RingHom.map_mul, mul_assoc]
@@ -1323,7 +1323,7 @@ theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial
   -- Since `q(a) = 0` and `q(a) = q'(a) * a + 1`, we have `a * -q'(a) = 1`.
   -- TODO: we could use a lemma for `polynomial.div_X` here.
   rw [Finset.sum_range_succ_comm, p_monic.coeff_nat_degree, one_mul, tsub_self, pow_zero,
-    add_eq_zero_iff_eq_neg, eq_comm] at hq 
+    add_eq_zero_iff_eq_neg, eq_comm] at hq
   rw [mul_comm, neg_mul, Finset.sum_mul]
   convert hq using 2
   refine' Finset.sum_congr rfl fun i hi => _
Diff
@@ -950,7 +950,7 @@ end
 section IsIntegralClosure
 
 #print IsIntegralClosure /-
-/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`algebraMap_injective] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:400:30: infer kinds are unsupported in Lean 4: #[`algebraMap_injective] [] -/
 /-- `is_integral_closure A R B` is the characteristic predicate stating `A` is
 the integral closure of `R` in `B`,
 i.e. that an element of `B` is integral over `R` iff it is an element of (the image of) `A`.
Diff
@@ -950,7 +950,7 @@ end
 section IsIntegralClosure
 
 #print IsIntegralClosure /-
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`algebraMap_injective] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`algebraMap_injective] [] -/
 /-- `is_integral_closure A R B` is the characteristic predicate stating `A` is
 the integral closure of `R` in `B`,
 i.e. that an element of `B` is integral over `R` iff it is an element of (the image of) `A`.
Diff
@@ -244,8 +244,7 @@ theorem isIntegral_iff_isIntegral_closure_finite {r : A} :
 #align is_integral_iff_is_integral_closure_finite isIntegral_iff_isIntegral_closure_finite
 -/
 
-#print IsIntegral.fg_adjoin_singleton /-
-theorem IsIntegral.fg_adjoin_singleton (x : A) (hx : IsIntegral R x) :
+theorem fG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
     (Algebra.adjoin R ({x} : Set A)).toSubmodule.FG :=
   by
   rcases hx with ⟨f, hfm, hfx⟩
@@ -271,8 +270,7 @@ theorem IsIntegral.fg_adjoin_singleton (x : A) (hx : IsIntegral R x) :
   rw [degree_le_iff_coeff_zero] at this 
   rw [mem_support_iff] at hkq ; apply hkq; apply this
   exact lt_of_le_of_lt degree_le_nat_degree (WithBot.coe_lt_coe.2 hk)
-#align fg_adjoin_singleton_of_integral IsIntegral.fg_adjoin_singleton
--/
+#align fg_adjoin_singleton_of_integral fG_adjoin_singleton_of_integral
 
 #print fg_adjoin_of_finite /-
 theorem fg_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsIntegral R x) :
@@ -289,7 +287,7 @@ theorem fg_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsI
       rw [← Set.union_singleton, Algebra.adjoin_union_coe_submodule] <;>
         exact
           fg.mul (ih fun i hi => his i <| Set.mem_insert_of_mem a hi)
-            (IsIntegral.fg_adjoin_singleton _ <| his a <| Set.mem_insert a s))
+            (fG_adjoin_singleton_of_integral _ <| his a <| Set.mem_insert a s))
     his
 #align fg_adjoin_of_finite fg_adjoin_of_finite
 -/
@@ -506,7 +504,7 @@ theorem RingHom.IsIntegralElem.of_mem_closure {x y z : S} (hx : f.IsIntegralElem
     (hy : f.IsIntegralElem y) (hz : z ∈ Subring.closure ({x, y} : Set S)) : f.IsIntegralElem z :=
   by
   letI : Algebra R S := f.to_algebra
-  have := (IsIntegral.fg_adjoin_singleton x hx).mul (IsIntegral.fg_adjoin_singleton y hy)
+  have := (fG_adjoin_singleton_of_integral x hx).mul (fG_adjoin_singleton_of_integral y hy)
   rw [← Algebra.adjoin_union_coe_submodule, Set.singleton_union] at this 
   exact
     IsIntegral.of_mem_of_fg (Algebra.adjoin R {x, y}) this z
@@ -638,7 +636,8 @@ def integralClosure : Subalgebra R A
 #print mem_integralClosure_iff_mem_fg /-
 theorem mem_integralClosure_iff_mem_fg {r : A} :
     r ∈ integralClosure R A ↔ ∃ M : Subalgebra R A, M.toSubmodule.FG ∧ r ∈ M :=
-  ⟨fun hr => ⟨Algebra.adjoin R {r}, IsIntegral.fg_adjoin_singleton _ hr, Algebra.subset_adjoin rfl⟩,
+  ⟨fun hr =>
+    ⟨Algebra.adjoin R {r}, fG_adjoin_singleton_of_integral _ hr, Algebra.subset_adjoin rfl⟩,
     fun ⟨M, Hf, hrM⟩ => IsIntegral.of_mem_of_fg M Hf _ hrM⟩
 #align mem_integral_closure_iff_mem_fg mem_integralClosure_iff_mem_fg
 -/
@@ -1163,7 +1162,7 @@ theorem isIntegral_trans (A_int : Algebra.IsIntegral R A) (x : B) (hx : IsIntegr
     rcases hx with ⟨i, _, rfl⟩
     rw [coeff_map]
     exact IsIntegral.map (IsScalarTower.toAlgHom R A B) (A_int _)
-  · apply IsIntegral.fg_adjoin_singleton
+  · apply fG_adjoin_singleton_of_integral
     exact isIntegral_trans_aux _ pmonic hp
 #align is_integral_trans isIntegral_trans
 -/
@@ -1341,7 +1340,7 @@ theorem isField_of_isIntegral_of_isField' {R S : Type _} [CommRing R] [CommRing
   refine' ⟨⟨0, 1, zero_ne_one⟩, mul_comm, fun x hx => _⟩
   let A := Algebra.adjoin R ({x} : Set S)
   haveI : IsNoetherian R A :=
-    isNoetherian_of_fg_of_noetherian A.to_submodule (IsIntegral.fg_adjoin_singleton x (H x))
+    isNoetherian_of_fg_of_noetherian A.to_submodule (fG_adjoin_singleton_of_integral x (H x))
   haveI : Module.Finite R A := Module.IsNoetherian.finite R A
   obtain ⟨y, hy⟩ :=
     LinearMap.surjective_of_injective
Diff
@@ -86,15 +86,15 @@ protected def Algebra.IsIntegral : Prop :=
 
 variable {R A}
 
-#print RingHom.is_integral_map /-
-theorem RingHom.is_integral_map {x : R} : f.IsIntegralElem (f x) :=
+#print RingHom.isIntegralElem_map /-
+theorem RingHom.isIntegralElem_map {x : R} : f.IsIntegralElem (f x) :=
   ⟨X - C x, monic_X_sub_C _, by simp⟩
-#align ring_hom.is_integral_map RingHom.is_integral_map
+#align ring_hom.is_integral_map RingHom.isIntegralElem_map
 -/
 
 #print isIntegral_algebraMap /-
 theorem isIntegral_algebraMap {x : R} : IsIntegral R (algebraMap R A x) :=
-  (algebraMap R A).is_integral_map
+  (algebraMap R A).isIntegralElem_map
 #align is_integral_algebra_map isIntegral_algebraMap
 -/
 
@@ -147,8 +147,8 @@ variable [CommRing R] [CommRing A] [CommRing B] [CommRing S]
 
 variable [Algebra R A] [Algebra R B] (f : R →+* S)
 
-#print map_isIntegral /-
-theorem map_isIntegral {B C F : Type _} [Ring B] [Ring C] [Algebra R B] [Algebra A B] [Algebra R C]
+#print IsIntegral.map /-
+theorem IsIntegral.map {B C F : Type _} [Ring B] [Ring C] [Algebra R B] [Algebra A B] [Algebra R C]
     [IsScalarTower R A B] [Algebra A C] [IsScalarTower R A C] {b : B} [AlgHomClass F A B C] (f : F)
     (hb : IsIntegral R b) : IsIntegral R (f b) :=
   by
@@ -156,12 +156,12 @@ theorem map_isIntegral {B C F : Type _} [Ring B] [Ring C] [Algebra R B] [Algebra
   refine' ⟨P, hP.1, _⟩
   rw [← aeval_def, show (aeval (f b)) P = (aeval (f b)) (P.map (algebraMap R A)) by simp,
     aeval_alg_hom_apply, aeval_map_algebra_map, aeval_def, hP.2, _root_.map_zero]
-#align map_is_integral map_isIntegral
+#align map_is_integral IsIntegral.map
 -/
 
-#print isIntegral_map_of_comp_eq_of_isIntegral /-
-theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type _} [CommRing R] [CommRing S]
-    [CommRing T] [CommRing U] [Algebra R S] [Algebra T U] (φ : R →+* T) (ψ : S →+* U)
+#print IsIntegral.map_of_comp_eq /-
+theorem IsIntegral.map_of_comp_eq {R S T U : Type _} [CommRing R] [CommRing S] [CommRing T]
+    [CommRing U] [Algebra R S] [Algebra T U] (φ : R →+* T) (ψ : S →+* U)
     (h : (algebraMap T U).comp φ = ψ.comp (algebraMap R S)) {a : S} (ha : IsIntegral R a) :
     IsIntegral T (ψ a) := by
   rw [IsIntegral, RingHom.IsIntegralElem] at ha ⊢
@@ -169,14 +169,14 @@ theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type _} [CommRing R]
   refine' ⟨p.map φ, hp.left.map _, _⟩
   rw [← eval_map, map_map, h, ← map_map, eval_map, eval₂_at_apply, eval_map, hp.right,
     RingHom.map_zero]
-#align is_integral_map_of_comp_eq_of_is_integral isIntegral_map_of_comp_eq_of_isIntegral
+#align is_integral_map_of_comp_eq_of_is_integral IsIntegral.map_of_comp_eq
 -/
 
 #print isIntegral_algHom_iff /-
 theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
     (f : A →ₐ[R] B) (hf : Function.Injective f) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x :=
   by
-  refine' ⟨_, map_isIntegral f⟩
+  refine' ⟨_, IsIntegral.map f⟩
   rintro ⟨p, hp, hx⟩
   use p, hp
   rwa [← f.comp_algebra_map, ← AlgHom.coe_toRingHom, ← Polynomial.hom_eval₂, AlgHom.coe_toRingHom,
@@ -188,29 +188,29 @@ theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Al
 @[simp]
 theorem isIntegral_algEquiv {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
     (f : A ≃ₐ[R] B) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x :=
-  ⟨fun h => by simpa using map_isIntegral f.symm.to_alg_hom h, map_isIntegral f.toAlgHom⟩
+  ⟨fun h => by simpa using IsIntegral.map f.symm.to_alg_hom h, IsIntegral.map f.toAlgHom⟩
 #align is_integral_alg_equiv isIntegral_algEquiv
 -/
 
-#print isIntegral_of_isScalarTower /-
-theorem isIntegral_of_isScalarTower [Algebra A B] [IsScalarTower R A B] {x : B}
-    (hx : IsIntegral R x) : IsIntegral A x :=
+#print IsIntegral.tower_top /-
+theorem IsIntegral.tower_top [Algebra A B] [IsScalarTower R A B] {x : B} (hx : IsIntegral R x) :
+    IsIntegral A x :=
   let ⟨p, hp, hpx⟩ := hx
   ⟨p.map <| algebraMap R A, hp.map _, by rw [← aeval_def, aeval_map_algebra_map, aeval_def, hpx]⟩
-#align is_integral_of_is_scalar_tower isIntegral_of_isScalarTower
+#align is_integral_of_is_scalar_tower IsIntegral.tower_top
 -/
 
 #print map_isIntegral_int /-
 theorem map_isIntegral_int {B C F : Type _} [Ring B] [Ring C] {b : B} [RingHomClass F B C] (f : F)
     (hb : IsIntegral ℤ b) : IsIntegral ℤ (f b) :=
-  map_isIntegral (f : B →+* C).toIntAlgHom hb
+  IsIntegral.map (f : B →+* C).toIntAlgHom hb
 #align map_is_integral_int map_isIntegral_int
 -/
 
-#print isIntegral_ofSubring /-
-theorem isIntegral_ofSubring {x : A} (T : Subring R) (hx : IsIntegral T x) : IsIntegral R x :=
-  isIntegral_of_isScalarTower hx
-#align is_integral_of_subring isIntegral_ofSubring
+#print IsIntegral.of_subring /-
+theorem IsIntegral.of_subring {x : A} (T : Subring R) (hx : IsIntegral T x) : IsIntegral R x :=
+  IsIntegral.tower_top hx
+#align is_integral_of_subring IsIntegral.of_subring
 -/
 
 #print IsIntegral.algebraMap /-
@@ -240,12 +240,12 @@ theorem isIntegral_iff_isIntegral_closure_finite {r : A} :
     refine' ⟨_, Finset.finite_toSet _, p.restriction, monic_restriction.2 hmp, _⟩
     rw [← aeval_def, ← aeval_map_algebra_map R r p.restriction, map_restriction, aeval_def, hpr]
   rcases hr with ⟨s, hs, hsr⟩
-  exact isIntegral_ofSubring _ hsr
+  exact IsIntegral.of_subring _ hsr
 #align is_integral_iff_is_integral_closure_finite isIntegral_iff_isIntegral_closure_finite
 -/
 
-#print FG_adjoin_singleton_of_integral /-
-theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
+#print IsIntegral.fg_adjoin_singleton /-
+theorem IsIntegral.fg_adjoin_singleton (x : A) (hx : IsIntegral R x) :
     (Algebra.adjoin R ({x} : Set A)).toSubmodule.FG :=
   by
   rcases hx with ⟨f, hfm, hfx⟩
@@ -271,11 +271,11 @@ theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
   rw [degree_le_iff_coeff_zero] at this 
   rw [mem_support_iff] at hkq ; apply hkq; apply this
   exact lt_of_le_of_lt degree_le_nat_degree (WithBot.coe_lt_coe.2 hk)
-#align fg_adjoin_singleton_of_integral FG_adjoin_singleton_of_integral
+#align fg_adjoin_singleton_of_integral IsIntegral.fg_adjoin_singleton
 -/
 
-#print FG_adjoin_of_finite /-
-theorem FG_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsIntegral R x) :
+#print fg_adjoin_of_finite /-
+theorem fg_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsIntegral R x) :
     (Algebra.adjoin R s).toSubmodule.FG :=
   Set.Finite.induction_on hfs
     (fun _ =>
@@ -289,23 +289,23 @@ theorem FG_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsI
       rw [← Set.union_singleton, Algebra.adjoin_union_coe_submodule] <;>
         exact
           fg.mul (ih fun i hi => his i <| Set.mem_insert_of_mem a hi)
-            (FG_adjoin_singleton_of_integral _ <| his a <| Set.mem_insert a s))
+            (IsIntegral.fg_adjoin_singleton _ <| his a <| Set.mem_insert a s))
     his
-#align fg_adjoin_of_finite FG_adjoin_of_finite
+#align fg_adjoin_of_finite fg_adjoin_of_finite
 -/
 
 #print isNoetherian_adjoin_finset /-
 theorem isNoetherian_adjoin_finset [IsNoetherianRing R] (s : Finset A)
     (hs : ∀ x ∈ s, IsIntegral R x) : IsNoetherian R (Algebra.adjoin R (↑s : Set A)) :=
-  isNoetherian_of_fg_of_noetherian _ (FG_adjoin_of_finite s.finite_toSet hs)
+  isNoetherian_of_fg_of_noetherian _ (fg_adjoin_of_finite s.finite_toSet hs)
 #align is_noetherian_adjoin_finset isNoetherian_adjoin_finset
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
-#print isIntegral_of_mem_of_FG /-
+#print IsIntegral.of_mem_of_fg /-
 /-- If `S` is a sub-`R`-algebra of `A` and `S` is finitely-generated as an `R`-module,
   then all elements of `S` are integral over `R`. -/
-theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x : A) (hx : x ∈ S) :
+theorem IsIntegral.of_mem_of_fg (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x : A) (hx : x ∈ S) :
     IsIntegral R x :=
   by
   -- say `x ∈ S`. We want to prove that `x` is integral over `R`.
@@ -328,7 +328,7 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   let S₀ : Subring R :=
     Subring.closure ↑(lx.frange ∪ Finset.biUnion Finset.univ (Finsupp.frange ∘ ly))
   -- It suffices to prove that `x` is integral over `S₀`.
-  refine' isIntegral_ofSubring S₀ _
+  refine' IsIntegral.of_subring S₀ _
   letI : CommRing S₀ := SubringClass.toCommRing S₀
   letI : Algebra S₀ A := Algebra.ofSubring S₀
   -- Claim: the `S₀`-module span (in `A`) of the set `y ∪ {1}` is closed under
@@ -392,7 +392,7 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   change (⟨_, this⟩ : S₀) • r ∈ _
   rw [Finsupp.mem_supported] at hlx1 
   exact Subalgebra.smul_mem _ (Algebra.subset_adjoin <| hlx1 hr) _
-#align is_integral_of_mem_of_fg isIntegral_of_mem_of_FG
+#align is_integral_of_mem_of_fg IsIntegral.of_mem_of_fg
 -/
 
 #print Module.End.isIntegral /-
@@ -444,7 +444,7 @@ variable {f}
 #print RingHom.Finite.to_isIntegral /-
 theorem RingHom.Finite.to_isIntegral (h : f.Finite) : f.IsIntegral :=
   letI := f.to_algebra
-  fun x => isIntegral_of_mem_of_FG ⊤ h.1 _ trivial
+  fun x => IsIntegral.of_mem_of_fg ⊤ h.1 _ trivial
 #align ring_hom.finite.to_is_integral RingHom.Finite.to_isIntegral
 -/
 
@@ -459,7 +459,7 @@ theorem RingHom.IsIntegral.to_finite (h : f.IsIntegral) (h' : f.FiniteType) : f.
   constructor
   change (⊤ : Subalgebra R S).toSubmodule.FG
   rw [← hs]
-  exact FG_adjoin_of_finite (Set.toFinite _) fun x _ => h x
+  exact fg_adjoin_of_finite (Set.toFinite _) fun x _ => h x
 #align ring_hom.is_integral.to_finite RingHom.IsIntegral.to_finite
 -/
 
@@ -501,123 +501,123 @@ theorem Algebra.finite_iff_isIntegral_and_finiteType :
 
 variable (f)
 
-#print RingHom.is_integral_of_mem_closure /-
-theorem RingHom.is_integral_of_mem_closure {x y z : S} (hx : f.IsIntegralElem x)
+#print RingHom.IsIntegralElem.of_mem_closure /-
+theorem RingHom.IsIntegralElem.of_mem_closure {x y z : S} (hx : f.IsIntegralElem x)
     (hy : f.IsIntegralElem y) (hz : z ∈ Subring.closure ({x, y} : Set S)) : f.IsIntegralElem z :=
   by
   letI : Algebra R S := f.to_algebra
-  have := (FG_adjoin_singleton_of_integral x hx).mul (FG_adjoin_singleton_of_integral y hy)
+  have := (IsIntegral.fg_adjoin_singleton x hx).mul (IsIntegral.fg_adjoin_singleton y hy)
   rw [← Algebra.adjoin_union_coe_submodule, Set.singleton_union] at this 
   exact
-    isIntegral_of_mem_of_FG (Algebra.adjoin R {x, y}) this z
+    IsIntegral.of_mem_of_fg (Algebra.adjoin R {x, y}) this z
       (Algebra.mem_adjoin_iff.2 <| Subring.closure_mono (Set.subset_union_right _ _) hz)
-#align ring_hom.is_integral_of_mem_closure RingHom.is_integral_of_mem_closure
+#align ring_hom.is_integral_of_mem_closure RingHom.IsIntegralElem.of_mem_closure
 -/
 
-#print isIntegral_of_mem_closure /-
-theorem isIntegral_of_mem_closure {x y z : A} (hx : IsIntegral R x) (hy : IsIntegral R y)
+#print IsIntegral.of_mem_closure /-
+theorem IsIntegral.of_mem_closure {x y z : A} (hx : IsIntegral R x) (hy : IsIntegral R y)
     (hz : z ∈ Subring.closure ({x, y} : Set A)) : IsIntegral R z :=
-  (algebraMap R A).is_integral_of_mem_closure hx hy hz
-#align is_integral_of_mem_closure isIntegral_of_mem_closure
+  (algebraMap R A).of_mem_closure hx hy hz
+#align is_integral_of_mem_closure IsIntegral.of_mem_closure
 -/
 
-#print RingHom.is_integral_zero /-
-theorem RingHom.is_integral_zero : f.IsIntegralElem 0 :=
-  f.map_zero ▸ f.is_integral_map
-#align ring_hom.is_integral_zero RingHom.is_integral_zero
+#print RingHom.isIntegralElem_zero /-
+theorem RingHom.isIntegralElem_zero : f.IsIntegralElem 0 :=
+  f.map_zero ▸ f.isIntegralElem_map
+#align ring_hom.is_integral_zero RingHom.isIntegralElem_zero
 -/
 
 #print isIntegral_zero /-
 theorem isIntegral_zero : IsIntegral R (0 : A) :=
-  (algebraMap R A).is_integral_zero
+  (algebraMap R A).isIntegralElem_zero
 #align is_integral_zero isIntegral_zero
 -/
 
-#print RingHom.is_integral_one /-
-theorem RingHom.is_integral_one : f.IsIntegralElem 1 :=
-  f.map_one ▸ f.is_integral_map
-#align ring_hom.is_integral_one RingHom.is_integral_one
+#print RingHom.isIntegralElem_one /-
+theorem RingHom.isIntegralElem_one : f.IsIntegralElem 1 :=
+  f.map_one ▸ f.isIntegralElem_map
+#align ring_hom.is_integral_one RingHom.isIntegralElem_one
 -/
 
 #print isIntegral_one /-
 theorem isIntegral_one : IsIntegral R (1 : A) :=
-  (algebraMap R A).is_integral_one
+  (algebraMap R A).isIntegralElem_one
 #align is_integral_one isIntegral_one
 -/
 
-#print RingHom.is_integral_add /-
-theorem RingHom.is_integral_add {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
+#print RingHom.IsIntegralElem.add /-
+theorem RingHom.IsIntegralElem.add {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x + y) :=
-  f.is_integral_of_mem_closure hx hy <|
+  f.of_mem_closure hx hy <|
     Subring.add_mem _ (Subring.subset_closure (Or.inl rfl)) (Subring.subset_closure (Or.inr rfl))
-#align ring_hom.is_integral_add RingHom.is_integral_add
+#align ring_hom.is_integral_add RingHom.IsIntegralElem.add
 -/
 
-#print isIntegral_add /-
-theorem isIntegral_add {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
+#print IsIntegral.add /-
+theorem IsIntegral.add {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x + y) :=
-  (algebraMap R A).is_integral_add hx hy
-#align is_integral_add isIntegral_add
+  (algebraMap R A).add hx hy
+#align is_integral_add IsIntegral.add
 -/
 
-#print RingHom.is_integral_neg /-
-theorem RingHom.is_integral_neg {x : S} (hx : f.IsIntegralElem x) : f.IsIntegralElem (-x) :=
-  f.is_integral_of_mem_closure hx hx (Subring.neg_mem _ (Subring.subset_closure (Or.inl rfl)))
-#align ring_hom.is_integral_neg RingHom.is_integral_neg
+#print RingHom.IsIntegralElem.neg /-
+theorem RingHom.IsIntegralElem.neg {x : S} (hx : f.IsIntegralElem x) : f.IsIntegralElem (-x) :=
+  f.of_mem_closure hx hx (Subring.neg_mem _ (Subring.subset_closure (Or.inl rfl)))
+#align ring_hom.is_integral_neg RingHom.IsIntegralElem.neg
 -/
 
-#print isIntegral_neg /-
-theorem isIntegral_neg {x : A} (hx : IsIntegral R x) : IsIntegral R (-x) :=
-  (algebraMap R A).is_integral_neg hx
-#align is_integral_neg isIntegral_neg
+#print IsIntegral.neg /-
+theorem IsIntegral.neg {x : A} (hx : IsIntegral R x) : IsIntegral R (-x) :=
+  (algebraMap R A).neg hx
+#align is_integral_neg IsIntegral.neg
 -/
 
-#print RingHom.is_integral_sub /-
-theorem RingHom.is_integral_sub {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
+#print RingHom.IsIntegralElem.sub /-
+theorem RingHom.IsIntegralElem.sub {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x - y) := by
   simpa only [sub_eq_add_neg] using f.is_integral_add hx (f.is_integral_neg hy)
-#align ring_hom.is_integral_sub RingHom.is_integral_sub
+#align ring_hom.is_integral_sub RingHom.IsIntegralElem.sub
 -/
 
-#print isIntegral_sub /-
-theorem isIntegral_sub {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
+#print IsIntegral.sub /-
+theorem IsIntegral.sub {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x - y) :=
-  (algebraMap R A).is_integral_sub hx hy
-#align is_integral_sub isIntegral_sub
+  (algebraMap R A).sub hx hy
+#align is_integral_sub IsIntegral.sub
 -/
 
-#print RingHom.is_integral_mul /-
-theorem RingHom.is_integral_mul {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
+#print RingHom.IsIntegralElem.mul /-
+theorem RingHom.IsIntegralElem.mul {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x * y) :=
-  f.is_integral_of_mem_closure hx hy
+  f.of_mem_closure hx hy
     (Subring.mul_mem _ (Subring.subset_closure (Or.inl rfl)) (Subring.subset_closure (Or.inr rfl)))
-#align ring_hom.is_integral_mul RingHom.is_integral_mul
+#align ring_hom.is_integral_mul RingHom.IsIntegralElem.mul
 -/
 
-#print isIntegral_mul /-
-theorem isIntegral_mul {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
+#print IsIntegral.mul /-
+theorem IsIntegral.mul {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x * y) :=
-  (algebraMap R A).is_integral_mul hx hy
-#align is_integral_mul isIntegral_mul
+  (algebraMap R A).mul hx hy
+#align is_integral_mul IsIntegral.mul
 -/
 
-#print isIntegral_smul /-
-theorem isIntegral_smul [Algebra S A] [Algebra R S] [IsScalarTower R S A] {x : A} (r : R)
+#print IsIntegral.smul /-
+theorem IsIntegral.smul [Algebra S A] [Algebra R S] [IsScalarTower R S A] {x : A} (r : R)
     (hx : IsIntegral S x) : IsIntegral S (r • x) :=
   by
   rw [Algebra.smul_def, IsScalarTower.algebraMap_apply R S A]
-  exact isIntegral_mul isIntegral_algebraMap hx
-#align is_integral_smul isIntegral_smul
+  exact IsIntegral.mul isIntegral_algebraMap hx
+#align is_integral_smul IsIntegral.smul
 -/
 
-#print isIntegral_of_pow /-
-theorem isIntegral_of_pow {x : A} {n : ℕ} (hn : 0 < n) (hx : IsIntegral R <| x ^ n) :
+#print IsIntegral.of_pow /-
+theorem IsIntegral.of_pow {x : A} {n : ℕ} (hn : 0 < n) (hx : IsIntegral R <| x ^ n) :
     IsIntegral R x := by
   rcases hx with ⟨p, ⟨hmonic, heval⟩⟩
   exact
     ⟨expand R n p, monic.expand hn hmonic, by
       rwa [eval₂_eq_eval_map, map_expand, expand_eval, ← eval₂_eq_eval_map]⟩
-#align is_integral_of_pow isIntegral_of_pow
+#align is_integral_of_pow IsIntegral.of_pow
 -/
 
 variable (R A)
@@ -629,19 +629,18 @@ def integralClosure : Subalgebra R A
   carrier := {r | IsIntegral R r}
   zero_mem' := isIntegral_zero
   one_mem' := isIntegral_one
-  add_mem' _ _ := isIntegral_add
-  hMul_mem' _ _ := isIntegral_mul
+  add_mem' _ _ := IsIntegral.add
+  hMul_mem' _ _ := IsIntegral.mul
   algebraMap_mem' x := isIntegral_algebraMap
 #align integral_closure integralClosure
 -/
 
-#print mem_integralClosure_iff_mem_FG /-
-theorem mem_integralClosure_iff_mem_FG {r : A} :
+#print mem_integralClosure_iff_mem_fg /-
+theorem mem_integralClosure_iff_mem_fg {r : A} :
     r ∈ integralClosure R A ↔ ∃ M : Subalgebra R A, M.toSubmodule.FG ∧ r ∈ M :=
-  ⟨fun hr =>
-    ⟨Algebra.adjoin R {r}, FG_adjoin_singleton_of_integral _ hr, Algebra.subset_adjoin rfl⟩,
-    fun ⟨M, Hf, hrM⟩ => isIntegral_of_mem_of_FG M Hf _ hrM⟩
-#align mem_integral_closure_iff_mem_fg mem_integralClosure_iff_mem_FG
+  ⟨fun hr => ⟨Algebra.adjoin R {r}, IsIntegral.fg_adjoin_singleton _ hr, Algebra.subset_adjoin rfl⟩,
+    fun ⟨M, Hf, hrM⟩ => IsIntegral.of_mem_of_fg M Hf _ hrM⟩
+#align mem_integral_closure_iff_mem_fg mem_integralClosure_iff_mem_fg
 -/
 
 variable {R} {A}
@@ -666,11 +665,11 @@ theorem le_integralClosure_iff_isIntegral {S : Subalgebra R A} :
 #align le_integral_closure_iff_is_integral le_integralClosure_iff_isIntegral
 -/
 
-#print isIntegral_sup /-
-theorem isIntegral_sup {S T : Subalgebra R A} :
+#print Algebra.isIntegral_sup /-
+theorem Algebra.isIntegral_sup {S T : Subalgebra R A} :
     Algebra.IsIntegral R ↥(S ⊔ T) ↔ Algebra.IsIntegral R S ∧ Algebra.IsIntegral R T := by
   simp only [← le_integralClosure_iff_isIntegral, sup_le_iff]
-#align is_integral_sup isIntegral_sup
+#align is_integral_sup Algebra.isIntegral_sup
 -/
 
 #print integralClosure_map_algEquiv /-
@@ -682,9 +681,9 @@ theorem integralClosure_map_algEquiv (f : A ≃ₐ[R] B) :
   rw [Subalgebra.mem_map]
   constructor
   · rintro ⟨x, hx, rfl⟩
-    exact map_isIntegral f hx
+    exact IsIntegral.map f hx
   · intro hy
-    use f.symm y, map_isIntegral (f.symm : B →ₐ[R] A) hy
+    use f.symm y, IsIntegral.map (f.symm : B →ₐ[R] A) hy
     simp
 #align integral_closure_map_alg_equiv integralClosure_map_algEquiv
 -/
@@ -698,38 +697,38 @@ theorem integralClosure.isIntegral (x : integralClosure R A) : IsIntegral R x :=
 #align integral_closure.is_integral integralClosure.isIntegral
 -/
 
-#print RingHom.isIntegral_of_isIntegral_mul_unit /-
-theorem RingHom.isIntegral_of_isIntegral_mul_unit (x y : S) (r : R) (hr : f r * y = 1)
+#print RingHom.IsIntegralElem.of_mul_unit /-
+theorem RingHom.IsIntegralElem.of_mul_unit (x y : S) (r : R) (hr : f r * y = 1)
     (hx : f.IsIntegralElem (x * y)) : f.IsIntegralElem x :=
   by
   obtain ⟨p, ⟨p_monic, hp⟩⟩ := hx
   refine' ⟨scale_roots p r, ⟨(monic_scale_roots_iff r).2 p_monic, _⟩⟩
   convert scale_roots_eval₂_eq_zero f hp
   rw [mul_comm x y, ← mul_assoc, hr, one_mul]
-#align ring_hom.is_integral_of_is_integral_mul_unit RingHom.isIntegral_of_isIntegral_mul_unit
+#align ring_hom.is_integral_of_is_integral_mul_unit RingHom.IsIntegralElem.of_mul_unit
 -/
 
-#print isIntegral_of_isIntegral_mul_unit /-
-theorem isIntegral_of_isIntegral_mul_unit {x y : A} {r : R} (hr : algebraMap R A r * y = 1)
+#print IsIntegral.of_mul_unit /-
+theorem IsIntegral.of_mul_unit {x y : A} {r : R} (hr : algebraMap R A r * y = 1)
     (hx : IsIntegral R (x * y)) : IsIntegral R x :=
-  (algebraMap R A).isIntegral_of_isIntegral_mul_unit x y r hr hx
-#align is_integral_of_is_integral_mul_unit isIntegral_of_isIntegral_mul_unit
+  (algebraMap R A).of_mul_unit x y r hr hx
+#align is_integral_of_is_integral_mul_unit IsIntegral.of_mul_unit
 -/
 
-#print isIntegral_of_mem_closure' /-
+#print IsIntegral.of_mem_closure' /-
 /-- Generalization of `is_integral_of_mem_closure` bootstrapped up from that lemma -/
-theorem isIntegral_of_mem_closure' (G : Set A) (hG : ∀ x ∈ G, IsIntegral R x) :
+theorem IsIntegral.of_mem_closure' (G : Set A) (hG : ∀ x ∈ G, IsIntegral R x) :
     ∀ x ∈ Subring.closure G, IsIntegral R x := fun x hx =>
-  Subring.closure_induction hx hG isIntegral_zero isIntegral_one (fun _ _ => isIntegral_add)
-    (fun _ => isIntegral_neg) fun _ _ => isIntegral_mul
-#align is_integral_of_mem_closure' isIntegral_of_mem_closure'
+  Subring.closure_induction hx hG isIntegral_zero isIntegral_one (fun _ _ => IsIntegral.add)
+    (fun _ => IsIntegral.neg) fun _ _ => IsIntegral.mul
+#align is_integral_of_mem_closure' IsIntegral.of_mem_closure'
 -/
 
-#print isIntegral_of_mem_closure'' /-
-theorem isIntegral_of_mem_closure'' {S : Type _} [CommRing S] {f : R →+* S} (G : Set S)
+#print IsIntegral.of_mem_closure'' /-
+theorem IsIntegral.of_mem_closure'' {S : Type _} [CommRing S] {f : R →+* S} (G : Set S)
     (hG : ∀ x ∈ G, f.IsIntegralElem x) : ∀ x ∈ Subring.closure G, f.IsIntegralElem x := fun x hx =>
-  @isIntegral_of_mem_closure' R S _ _ f.toAlgebra G hG x hx
-#align is_integral_of_mem_closure'' isIntegral_of_mem_closure''
+  @IsIntegral.of_mem_closure' R S _ _ f.toAlgebra G hG x hx
+#align is_integral_of_mem_closure'' IsIntegral.of_mem_closure''
 -/
 
 #print IsIntegral.pow /-
@@ -790,7 +789,7 @@ theorem IsIntegral.det {n : Type _} [Fintype n] [DecidableEq n] {M : Matrix n n
 #print IsIntegral.pow_iff /-
 @[simp]
 theorem IsIntegral.pow_iff {x : A} {n : ℕ} (hn : 0 < n) : IsIntegral R (x ^ n) ↔ IsIntegral R x :=
-  ⟨isIntegral_of_pow hn, fun hx => IsIntegral.pow hx n⟩
+  ⟨IsIntegral.of_pow hn, fun hx => IsIntegral.pow hx n⟩
 #align is_integral.pow_iff IsIntegral.pow_iff
 -/
 
@@ -1036,7 +1035,7 @@ theorem mk'_zero (h : IsIntegral R (0 : B) := isIntegral_zero) : mk' A 0 h = 0 :
 #print IsIntegralClosure.mk'_add /-
 @[simp]
 theorem mk'_add (x y : B) (hx : IsIntegral R x) (hy : IsIntegral R y) :
-    mk' A (x + y) (isIntegral_add hx hy) = mk' A x hx + mk' A y hy :=
+    mk' A (x + y) (IsIntegral.add hx hy) = mk' A x hx + mk' A y hy :=
   algebraMap_injective A R B <| by simp only [algebra_map_mk', RingHom.map_add]
 #align is_integral_closure.mk'_add IsIntegralClosure.mk'_add
 -/
@@ -1044,7 +1043,7 @@ theorem mk'_add (x y : B) (hx : IsIntegral R x) (hy : IsIntegral R y) :
 #print IsIntegralClosure.mk'_mul /-
 @[simp]
 theorem mk'_mul (x y : B) (hx : IsIntegral R x) (hy : IsIntegral R y) :
-    mk' A (x * y) (isIntegral_mul hx hy) = mk' A x hx * mk' A y hy :=
+    mk' A (x * y) (IsIntegral.mul hx hy) = mk' A x hx * mk' A y hy :=
   algebraMap_injective A R B <| by simp only [algebra_map_mk', RingHom.map_mul]
 #align is_integral_closure.mk'_mul IsIntegralClosure.mk'_mul
 -/
@@ -1125,7 +1124,6 @@ variable [CommRing R] [CommRing A] [CommRing B] [CommRing S] [CommRing T]
 
 variable [Algebra A B] [Algebra R B] (f : R →+* S) (g : S →+* T)
 
-#print isIntegral_trans_aux /-
 theorem isIntegral_trans_aux (x : B) {p : A[X]} (pmonic : Monic p) (hp : aeval x p = 0) :
     IsIntegral (adjoin R (↑(p.map <| algebraMap A B).frange : Set B)) x :=
   by
@@ -1149,7 +1147,6 @@ theorem isIntegral_trans_aux (x : B) {p : A[X]} (pmonic : Monic p) (hp : aeval x
     replace hq := congr_arg (eval x) hq
     convert hq using 1 <;> symm <;> apply eval_map
 #align is_integral_trans_aux isIntegral_trans_aux
--/
 
 variable [Algebra R A] [IsScalarTower R A B]
 
@@ -1160,52 +1157,52 @@ theorem isIntegral_trans (A_int : Algebra.IsIntegral R A) (x : B) (hx : IsIntegr
     IsIntegral R x := by
   rcases hx with ⟨p, pmonic, hp⟩
   let S : Set B := ↑(p.map <| algebraMap A B).frange
-  refine' isIntegral_of_mem_of_FG (adjoin R (S ∪ {x})) _ _ (subset_adjoin <| Or.inr rfl)
-  refine' fg_trans (FG_adjoin_of_finite (Finset.finite_toSet _) fun x hx => _) _
+  refine' IsIntegral.of_mem_of_fg (adjoin R (S ∪ {x})) _ _ (subset_adjoin <| Or.inr rfl)
+  refine' fg_trans (fg_adjoin_of_finite (Finset.finite_toSet _) fun x hx => _) _
   · rw [Finset.mem_coe, frange, Finset.mem_image] at hx 
     rcases hx with ⟨i, _, rfl⟩
     rw [coeff_map]
-    exact map_isIntegral (IsScalarTower.toAlgHom R A B) (A_int _)
-  · apply FG_adjoin_singleton_of_integral
+    exact IsIntegral.map (IsScalarTower.toAlgHom R A B) (A_int _)
+  · apply IsIntegral.fg_adjoin_singleton
     exact isIntegral_trans_aux _ pmonic hp
 #align is_integral_trans isIntegral_trans
 -/
 
-#print Algebra.isIntegral_trans /-
+#print Algebra.IsIntegral.trans /-
 /-- If A is an R-algebra all of whose elements are integral over R,
 and B is an A-algebra all of whose elements are integral over A,
 then all elements of B are integral over R.-/
-theorem Algebra.isIntegral_trans (hA : Algebra.IsIntegral R A) (hB : Algebra.IsIntegral A B) :
+theorem Algebra.IsIntegral.trans (hA : Algebra.IsIntegral R A) (hB : Algebra.IsIntegral A B) :
     Algebra.IsIntegral R B := fun x => isIntegral_trans hA x (hB x)
-#align algebra.is_integral_trans Algebra.isIntegral_trans
+#align algebra.is_integral_trans Algebra.IsIntegral.trans
 -/
 
-#print RingHom.isIntegral_trans /-
-theorem RingHom.isIntegral_trans (hf : f.IsIntegral) (hg : g.IsIntegral) : (g.comp f).IsIntegral :=
-  @Algebra.isIntegral_trans R S T _ _ _ g.toAlgebra (g.comp f).toAlgebra f.toAlgebra
+#print RingHom.IsIntegral.trans /-
+theorem RingHom.IsIntegral.trans (hf : f.IsIntegral) (hg : g.IsIntegral) : (g.comp f).IsIntegral :=
+  @Algebra.IsIntegral.trans R S T _ _ _ g.toAlgebra (g.comp f).toAlgebra f.toAlgebra
     (@IsScalarTower.of_algebraMap_eq R S T _ _ _ f.toAlgebra g.toAlgebra (g.comp f).toAlgebra
       (RingHom.comp_apply g f))
     hf hg
-#align ring_hom.is_integral_trans RingHom.isIntegral_trans
+#align ring_hom.is_integral_trans RingHom.IsIntegral.trans
 -/
 
 #print RingHom.isIntegral_of_surjective /-
 theorem RingHom.isIntegral_of_surjective (hf : Function.Surjective f) : f.IsIntegral := fun x =>
-  (hf x).recOn fun y hy => (hy ▸ f.is_integral_map : f.IsIntegralElem x)
+  (hf x).recOn fun y hy => (hy ▸ f.isIntegralElem_map : f.IsIntegralElem x)
 #align ring_hom.is_integral_of_surjective RingHom.isIntegral_of_surjective
 -/
 
-#print isIntegral_of_surjective /-
-theorem isIntegral_of_surjective (h : Function.Surjective (algebraMap R A)) :
+#print Algebra.isIntegral_of_surjective /-
+theorem Algebra.isIntegral_of_surjective (h : Function.Surjective (algebraMap R A)) :
     Algebra.IsIntegral R A :=
   (algebraMap R A).isIntegral_of_surjective h
-#align is_integral_of_surjective isIntegral_of_surjective
+#align is_integral_of_surjective Algebra.isIntegral_of_surjective
 -/
 
-#print isIntegral_tower_bot_of_isIntegral /-
+#print IsIntegral.tower_bot /-
 /-- If `R → A → B` is an algebra tower with `A → B` injective,
 then if the entire tower is an integral extension so is `R → A` -/
-theorem isIntegral_tower_bot_of_isIntegral (H : Function.Injective (algebraMap A B)) {x : A}
+theorem IsIntegral.tower_bot (H : Function.Injective (algebraMap A B)) {x : A}
     (h : IsIntegral R (algebraMap A B x)) : IsIntegral R x :=
   by
   rcases h with ⟨p, ⟨hp, hp'⟩⟩
@@ -1214,69 +1211,71 @@ theorem isIntegral_tower_bot_of_isIntegral (H : Function.Injective (algebraMap A
     RingHom.map_zero (algebraMap A B)] at hp' 
   rw [eval₂_eq_eval_map]
   exact H hp'
-#align is_integral_tower_bot_of_is_integral isIntegral_tower_bot_of_isIntegral
+#align is_integral_tower_bot_of_is_integral IsIntegral.tower_bot
 -/
 
-#print RingHom.isIntegral_tower_bot_of_isIntegral /-
-theorem RingHom.isIntegral_tower_bot_of_isIntegral (hg : Function.Injective g)
-    (hfg : (g.comp f).IsIntegral) : f.IsIntegral := fun x =>
-  @isIntegral_tower_bot_of_isIntegral R S T _ _ _ g.toAlgebra (g.comp f).toAlgebra f.toAlgebra
+#print RingHom.IsIntegral.tower_bot /-
+theorem RingHom.IsIntegral.tower_bot (hg : Function.Injective g) (hfg : (g.comp f).IsIntegral) :
+    f.IsIntegral := fun x =>
+  @IsIntegral.tower_bot R S T _ _ _ g.toAlgebra (g.comp f).toAlgebra f.toAlgebra
     (@IsScalarTower.of_algebraMap_eq R S T _ _ _ f.toAlgebra g.toAlgebra (g.comp f).toAlgebra
       (RingHom.comp_apply g f))
     hg x (hfg (g x))
-#align ring_hom.is_integral_tower_bot_of_is_integral RingHom.isIntegral_tower_bot_of_isIntegral
+#align ring_hom.is_integral_tower_bot_of_is_integral RingHom.IsIntegral.tower_bot
 -/
 
-#print isIntegral_tower_bot_of_isIntegral_field /-
-theorem isIntegral_tower_bot_of_isIntegral_field {R A B : Type _} [CommRing R] [Field A]
-    [CommRing B] [Nontrivial B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B]
-    {x : A} (h : IsIntegral R (algebraMap A B x)) : IsIntegral R x :=
-  isIntegral_tower_bot_of_isIntegral (algebraMap A B).Injective h
-#align is_integral_tower_bot_of_is_integral_field isIntegral_tower_bot_of_isIntegral_field
+#print IsIntegral.tower_bot_of_field /-
+theorem IsIntegral.tower_bot_of_field {R A B : Type _} [CommRing R] [Field A] [CommRing B]
+    [Nontrivial B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B] {x : A}
+    (h : IsIntegral R (algebraMap A B x)) : IsIntegral R x :=
+  IsIntegral.tower_bot (algebraMap A B).Injective h
+#align is_integral_tower_bot_of_is_integral_field IsIntegral.tower_bot_of_field
 -/
 
-#print RingHom.isIntegralElem_of_isIntegralElem_comp /-
-theorem RingHom.isIntegralElem_of_isIntegralElem_comp {x : T} (h : (g.comp f).IsIntegralElem x) :
+#print RingHom.isIntegralElem.of_comp /-
+theorem RingHom.isIntegralElem.of_comp {x : T} (h : (g.comp f).IsIntegralElem x) :
     g.IsIntegralElem x :=
   let ⟨p, ⟨hp, hp'⟩⟩ := h
   ⟨p.map f, hp.map f, by rwa [← eval₂_map] at hp' ⟩
-#align ring_hom.is_integral_elem_of_is_integral_elem_comp RingHom.isIntegralElem_of_isIntegralElem_comp
+#align ring_hom.is_integral_elem_of_is_integral_elem_comp RingHom.isIntegralElem.of_comp
 -/
 
-#print RingHom.isIntegral_tower_top_of_isIntegral /-
-theorem RingHom.isIntegral_tower_top_of_isIntegral (h : (g.comp f).IsIntegral) : g.IsIntegral :=
-  fun x => RingHom.isIntegralElem_of_isIntegralElem_comp f g (h x)
-#align ring_hom.is_integral_tower_top_of_is_integral RingHom.isIntegral_tower_top_of_isIntegral
+#print RingHom.IsIntegral.tower_top /-
+theorem RingHom.IsIntegral.tower_top (h : (g.comp f).IsIntegral) : g.IsIntegral := fun x =>
+  RingHom.isIntegralElem.of_comp f g (h x)
+#align ring_hom.is_integral_tower_top_of_is_integral RingHom.IsIntegral.tower_top
 -/
 
-#print isIntegral_tower_top_of_isIntegral /-
+/- warning: is_integral_tower_top_of_is_integral clashes with is_integral_of_is_scalar_tower -> IsIntegral.tower_top
+Case conversion may be inaccurate. Consider using '#align is_integral_tower_top_of_is_integral IsIntegral.tower_topₓ'. -/
+#print IsIntegral.tower_top /-
 /-- If `R → A → B` is an algebra tower,
 then if the entire tower is an integral extension so is `A → B`. -/
-theorem isIntegral_tower_top_of_isIntegral {x : B} (h : IsIntegral R x) : IsIntegral A x :=
+theorem IsIntegral.tower_top {x : B} (h : IsIntegral R x) : IsIntegral A x :=
   by
   rcases h with ⟨p, ⟨hp, hp'⟩⟩
   refine' ⟨p.map (algebraMap R A), ⟨hp.map (algebraMap R A), _⟩⟩
   rw [IsScalarTower.algebraMap_eq R A B, ← eval₂_map] at hp' 
   exact hp'
-#align is_integral_tower_top_of_is_integral isIntegral_tower_top_of_isIntegral
+#align is_integral_tower_top_of_is_integral IsIntegral.tower_top
 -/
 
-#print RingHom.isIntegral_quotient_of_isIntegral /-
-theorem RingHom.isIntegral_quotient_of_isIntegral {I : Ideal S} (hf : f.IsIntegral) :
+#print RingHom.IsIntegral.quotient /-
+theorem RingHom.IsIntegral.quotient {I : Ideal S} (hf : f.IsIntegral) :
     (Ideal.quotientMap I f le_rfl).IsIntegral :=
   by
   rintro ⟨x⟩
   obtain ⟨p, ⟨p_monic, hpx⟩⟩ := hf x
   refine' ⟨p.map (Ideal.Quotient.mk _), ⟨p_monic.map _, _⟩⟩
   simpa only [hom_eval₂, eval₂_map] using congr_arg (Ideal.Quotient.mk I) hpx
-#align ring_hom.is_integral_quotient_of_is_integral RingHom.isIntegral_quotient_of_isIntegral
+#align ring_hom.is_integral_quotient_of_is_integral RingHom.IsIntegral.quotient
 -/
 
-#print isIntegral_quotient_of_isIntegral /-
-theorem isIntegral_quotient_of_isIntegral {I : Ideal A} (hRA : Algebra.IsIntegral R A) :
+#print Algebra.IsIntegral.quotient /-
+theorem Algebra.IsIntegral.quotient {I : Ideal A} (hRA : Algebra.IsIntegral R A) :
     Algebra.IsIntegral (R ⧸ I.comap (algebraMap R A)) (A ⧸ I) :=
-  (algebraMap R A).isIntegral_quotient_of_isIntegral hRA
-#align is_integral_quotient_of_is_integral isIntegral_quotient_of_isIntegral
+  (algebraMap R A).quotient hRA
+#align is_integral_quotient_of_is_integral Algebra.IsIntegral.quotient
 -/
 
 #print isIntegral_quotientMap_iff /-
@@ -1286,8 +1285,8 @@ theorem isIntegral_quotientMap_iff {I : Ideal S} :
   by
   let g := Ideal.Quotient.mk (I.comap f)
   have := Ideal.quotientMap_comp_mk le_rfl
-  refine' ⟨fun h => _, fun h => RingHom.isIntegral_tower_top_of_isIntegral g _ (this ▸ h)⟩
-  refine' this ▸ RingHom.isIntegral_trans g (Ideal.quotientMap I f le_rfl) _ h
+  refine' ⟨fun h => _, fun h => RingHom.IsIntegral.tower_top g _ (this ▸ h)⟩
+  refine' this ▸ RingHom.IsIntegral.trans g (Ideal.quotientMap I f le_rfl) _ h
   exact RingHom.isIntegral_of_surjective g Ideal.Quotient.mk_surjective
 #align is_integral_quotient_map_iff isIntegral_quotientMap_iff
 -/
@@ -1342,7 +1341,7 @@ theorem isField_of_isIntegral_of_isField' {R S : Type _} [CommRing R] [CommRing
   refine' ⟨⟨0, 1, zero_ne_one⟩, mul_comm, fun x hx => _⟩
   let A := Algebra.adjoin R ({x} : Set S)
   haveI : IsNoetherian R A :=
-    isNoetherian_of_fg_of_noetherian A.to_submodule (FG_adjoin_singleton_of_integral x (H x))
+    isNoetherian_of_fg_of_noetherian A.to_submodule (IsIntegral.fg_adjoin_singleton x (H x))
   haveI : Module.Finite R A := Module.IsNoetherian.finite R A
   obtain ⟨y, hy⟩ :=
     LinearMap.surjective_of_injective
Diff
@@ -3,14 +3,14 @@ Copyright (c) 2019 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau
 -/
-import Mathbin.Data.Polynomial.Expand
-import Mathbin.LinearAlgebra.FiniteDimensional
-import Mathbin.LinearAlgebra.Matrix.Charpoly.LinearMap
-import Mathbin.RingTheory.Adjoin.Fg
-import Mathbin.RingTheory.FiniteType
-import Mathbin.RingTheory.Polynomial.ScaleRoots
-import Mathbin.RingTheory.Polynomial.Tower
-import Mathbin.RingTheory.TensorProduct
+import Data.Polynomial.Expand
+import LinearAlgebra.FiniteDimensional
+import LinearAlgebra.Matrix.Charpoly.LinearMap
+import RingTheory.Adjoin.Fg
+import RingTheory.FiniteType
+import RingTheory.Polynomial.ScaleRoots
+import RingTheory.Polynomial.Tower
+import RingTheory.TensorProduct
 
 #align_import ring_theory.integral_closure from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
 
@@ -952,7 +952,7 @@ end
 section IsIntegralClosure
 
 #print IsIntegralClosure /-
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`algebraMap_injective] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`algebraMap_injective] [] -/
 /-- `is_integral_closure A R B` is the characteristic predicate stating `A` is
 the integral closure of `R` in `B`,
 i.e. that an element of `B` is integral over `R` iff it is an element of (the image of) `A`.
Diff
@@ -448,7 +448,7 @@ theorem RingHom.Finite.to_isIntegral (h : f.Finite) : f.IsIntegral :=
 #align ring_hom.finite.to_is_integral RingHom.Finite.to_isIntegral
 -/
 
-alias RingHom.Finite.to_isIntegral ← RingHom.IsIntegral.of_finite
+alias RingHom.IsIntegral.of_finite := RingHom.Finite.to_isIntegral
 #align ring_hom.is_integral.of_finite RingHom.IsIntegral.of_finite
 
 #print RingHom.IsIntegral.to_finite /-
@@ -463,7 +463,7 @@ theorem RingHom.IsIntegral.to_finite (h : f.IsIntegral) (h' : f.FiniteType) : f.
 #align ring_hom.is_integral.to_finite RingHom.IsIntegral.to_finite
 -/
 
-alias RingHom.IsIntegral.to_finite ← RingHom.Finite.of_isIntegral_of_finiteType
+alias RingHom.Finite.of_isIntegral_of_finiteType := RingHom.IsIntegral.to_finite
 #align ring_hom.finite.of_is_integral_of_finite_type RingHom.Finite.of_isIntegral_of_finiteType
 
 #print RingHom.finite_iff_isIntegral_and_finiteType /-
Diff
@@ -355,7 +355,7 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   let S₁ : Subring A :=
     { carrier := span S₀ (insert 1 ↑y : Set A)
       one_mem' := subset_span <| Or.inl rfl
-      mul_mem' := fun p q hp hq => this <| mul_mem_mul hp hq
+      hMul_mem' := fun p q hp hq => this <| mul_mem_mul hp hq
       zero_mem' := (span S₀ (insert 1 ↑y : Set A)).zero_mem
       add_mem' := fun _ _ => (span S₀ (insert 1 ↑y : Set A)).add_mem
       neg_mem' := fun _ => (span S₀ (insert 1 ↑y : Set A)).neg_mem }
@@ -411,7 +411,7 @@ theorem isIntegral_of_smul_mem_submodule {M : Type _} [AddCommGroup M] [Module R
   by
   let A' : Subalgebra R A :=
     { carrier := {x | ∀ n ∈ N, x • n ∈ N}
-      mul_mem' := fun a b ha hb n hn => smul_smul a b n ▸ ha _ (hb _ hn)
+      hMul_mem' := fun a b ha hb n hn => smul_smul a b n ▸ ha _ (hb _ hn)
       one_mem' := fun n hn => (one_smul A n).symm ▸ hn
       add_mem' := fun a b ha hb n hn => (add_smul a b n).symm ▸ N.add_mem (ha _ hn) (hb _ hn)
       zero_mem' := fun n hn => (zero_smul A n).symm ▸ N.zero_mem
@@ -630,7 +630,7 @@ def integralClosure : Subalgebra R A
   zero_mem' := isIntegral_zero
   one_mem' := isIntegral_one
   add_mem' _ _ := isIntegral_add
-  mul_mem' _ _ := isIntegral_mul
+  hMul_mem' _ _ := isIntegral_mul
   algebraMap_mem' x := isIntegral_algebraMap
 #align integral_closure integralClosure
 -/
Diff
@@ -810,7 +810,7 @@ theorem IsIntegral.tmul (x : A) {y : B} (h : IsIntegral R y) : IsIntegral A (x 
     simp only [AlgHom.toRingHom_eq_coe, AlgHom.coe_toRingHom, mul_one, one_mul,
       Algebra.TensorProduct.includeLeft_apply, Algebra.TensorProduct.tmul_mul_tmul]
   convert (MulZeroClass.mul_zero _).symm
-  rw [Polynomial.eval₂_map, Algebra.TensorProduct.includeLeft_comp_algebraMap, ←
+  rw [Polynomial.eval₂_map, Algebra.TensorProduct.includeLeftRingHom_comp_algebraMap, ←
     Polynomial.eval₂_map]
   convert Polynomial.eval₂_at_apply algebra.tensor_product.include_right.to_ring_hom y
   rw [Polynomial.eval_map, hp', _root_.map_zero]
Diff
@@ -1306,7 +1306,7 @@ theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial
   -- and `q` be `p` with coefficients reversed (so `q(a) = q'(a) * a + 1`).
   -- We claim that `q(a) = 0`, so `-q'(a)` is the inverse of `a`.
   obtain ⟨p, p_monic, hp⟩ := H a_inv
-  use -∑ i : ℕ in Finset.range p.nat_degree, p.coeff i * a ^ (p.nat_degree - i - 1)
+  use-∑ i : ℕ in Finset.range p.nat_degree, p.coeff i * a ^ (p.nat_degree - i - 1)
   -- `q(a) = 0`, because multiplying everything with `a_inv^n` gives `p(a_inv) = 0`.
   -- TODO: this could be a lemma for `polynomial.reverse`.
   have hq : ∑ i : ℕ in Finset.range (p.nat_degree + 1), p.coeff i * a ^ (p.nat_degree - i) = 0 :=
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2019 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau
-
-! This file was ported from Lean 3 source module ring_theory.integral_closure
-! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Polynomial.Expand
 import Mathbin.LinearAlgebra.FiniteDimensional
@@ -17,6 +12,8 @@ import Mathbin.RingTheory.Polynomial.ScaleRoots
 import Mathbin.RingTheory.Polynomial.Tower
 import Mathbin.RingTheory.TensorProduct
 
+#align_import ring_theory.integral_closure from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
+
 /-!
 # Integral closure of a subring.
 
Diff
@@ -701,21 +701,21 @@ theorem integralClosure.isIntegral (x : integralClosure R A) : IsIntegral R x :=
 #align integral_closure.is_integral integralClosure.isIntegral
 -/
 
-#print RingHom.is_integral_of_is_integral_mul_unit /-
-theorem RingHom.is_integral_of_is_integral_mul_unit (x y : S) (r : R) (hr : f r * y = 1)
+#print RingHom.isIntegral_of_isIntegral_mul_unit /-
+theorem RingHom.isIntegral_of_isIntegral_mul_unit (x y : S) (r : R) (hr : f r * y = 1)
     (hx : f.IsIntegralElem (x * y)) : f.IsIntegralElem x :=
   by
   obtain ⟨p, ⟨p_monic, hp⟩⟩ := hx
   refine' ⟨scale_roots p r, ⟨(monic_scale_roots_iff r).2 p_monic, _⟩⟩
   convert scale_roots_eval₂_eq_zero f hp
   rw [mul_comm x y, ← mul_assoc, hr, one_mul]
-#align ring_hom.is_integral_of_is_integral_mul_unit RingHom.is_integral_of_is_integral_mul_unit
+#align ring_hom.is_integral_of_is_integral_mul_unit RingHom.isIntegral_of_isIntegral_mul_unit
 -/
 
 #print isIntegral_of_isIntegral_mul_unit /-
 theorem isIntegral_of_isIntegral_mul_unit {x y : A} {r : R} (hr : algebraMap R A r * y = 1)
     (hx : IsIntegral R (x * y)) : IsIntegral R x :=
-  (algebraMap R A).is_integral_of_is_integral_mul_unit x y r hr hx
+  (algebraMap R A).isIntegral_of_isIntegral_mul_unit x y r hr hx
 #align is_integral_of_is_integral_mul_unit isIntegral_of_isIntegral_mul_unit
 -/
 
@@ -728,11 +728,11 @@ theorem isIntegral_of_mem_closure' (G : Set A) (hG : ∀ x ∈ G, IsIntegral R x
 #align is_integral_of_mem_closure' isIntegral_of_mem_closure'
 -/
 
-#print is_integral_of_mem_closure'' /-
-theorem is_integral_of_mem_closure'' {S : Type _} [CommRing S] {f : R →+* S} (G : Set S)
+#print isIntegral_of_mem_closure'' /-
+theorem isIntegral_of_mem_closure'' {S : Type _} [CommRing S] {f : R →+* S} (G : Set S)
     (hG : ∀ x ∈ G, f.IsIntegralElem x) : ∀ x ∈ Subring.closure G, f.IsIntegralElem x := fun x hx =>
   @isIntegral_of_mem_closure' R S _ _ f.toAlgebra G hG x hx
-#align is_integral_of_mem_closure'' is_integral_of_mem_closure''
+#align is_integral_of_mem_closure'' isIntegral_of_mem_closure''
 -/
 
 #print IsIntegral.pow /-
Diff
@@ -371,7 +371,9 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
     constructor <;> intro hz
     ·
       exact
-        (span_le.2 (Set.insert_subset.2 ⟨(Algebra.adjoin S₀ ↑y).one_mem, Algebra.subset_adjoin⟩)) hz
+        (span_le.2
+            (Set.insert_subset_iff.2 ⟨(Algebra.adjoin S₀ ↑y).one_mem, Algebra.subset_adjoin⟩))
+          hz
     · rw [Subalgebra.mem_toSubmodule, Algebra.mem_adjoin_iff] at hz 
       suffices Subring.closure (Set.range ⇑(algebraMap (↥S₀) A) ∪ ↑y) ≤ S₁ by exact this hz
       refine' Subring.closure_le.2 (Set.union_subset _ fun t ht => subset_span <| Or.inr ht)
Diff
@@ -1098,8 +1098,8 @@ variable [Algebra R A] [Algebra R A'] [IsScalarTower R A B] [IsScalarTower R A'
 /-- Integral closures are all isomorphic to each other. -/
 noncomputable def equiv : A ≃ₐ[R] A' :=
   AlgEquiv.ofAlgHom (lift _ B (isIntegral_algebra R B)) (lift _ B (isIntegral_algebra R B))
-    (by ext x; apply algebra_map_injective A' R B; simp)
-    (by ext x; apply algebra_map_injective A R B; simp)
+    (by ext x; apply algebraMap_injective A' R B; simp)
+    (by ext x; apply algebraMap_injective A R B; simp)
 #align is_integral_closure.equiv IsIntegralClosure.equiv
 -/
 
Diff
@@ -89,14 +89,19 @@ protected def Algebra.IsIntegral : Prop :=
 
 variable {R A}
 
+#print RingHom.is_integral_map /-
 theorem RingHom.is_integral_map {x : R} : f.IsIntegralElem (f x) :=
   ⟨X - C x, monic_X_sub_C _, by simp⟩
 #align ring_hom.is_integral_map RingHom.is_integral_map
+-/
 
+#print isIntegral_algebraMap /-
 theorem isIntegral_algebraMap {x : R} : IsIntegral R (algebraMap R A x) :=
   (algebraMap R A).is_integral_map
 #align is_integral_algebra_map isIntegral_algebraMap
+-/
 
+#print isIntegral_of_noetherian /-
 theorem isIntegral_of_noetherian (H : IsNoetherian R A) (x : A) : IsIntegral R x :=
   by
   let leval : R[X] →ₗ[R] A := (aeval x).toLinearMap
@@ -116,7 +121,9 @@ theorem isIntegral_of_noetherian (H : IsNoetherian R A) (x : A) : IsIntegral R x
   show leval (X ^ (N + 1) - p) = 0
   rw [LinearMap.map_sub, hpe, sub_self]
 #align is_integral_of_noetherian isIntegral_of_noetherian
+-/
 
+#print isIntegral_of_submodule_noetherian /-
 theorem isIntegral_of_submodule_noetherian (S : Subalgebra R A) (H : IsNoetherian R S.toSubmodule)
     (x : A) (hx : x ∈ S) : IsIntegral R x :=
   by
@@ -131,6 +138,7 @@ theorem isIntegral_of_submodule_noetherian (S : Subalgebra R A) (H : IsNoetheria
     rw [S.val.map_mul, S.val.map_pow, S.val.commutes, S.val_apply, Subtype.coe_mk]
   refine' isIntegral_of_noetherian H ⟨x, hx⟩
 #align is_integral_of_submodule_noetherian isIntegral_of_submodule_noetherian
+-/
 
 end Ring
 
@@ -142,6 +150,7 @@ variable [CommRing R] [CommRing A] [CommRing B] [CommRing S]
 
 variable [Algebra R A] [Algebra R B] (f : R →+* S)
 
+#print map_isIntegral /-
 theorem map_isIntegral {B C F : Type _} [Ring B] [Ring C] [Algebra R B] [Algebra A B] [Algebra R C]
     [IsScalarTower R A B] [Algebra A C] [IsScalarTower R A C] {b : B} [AlgHomClass F A B C] (f : F)
     (hb : IsIntegral R b) : IsIntegral R (f b) :=
@@ -151,7 +160,9 @@ theorem map_isIntegral {B C F : Type _} [Ring B] [Ring C] [Algebra R B] [Algebra
   rw [← aeval_def, show (aeval (f b)) P = (aeval (f b)) (P.map (algebraMap R A)) by simp,
     aeval_alg_hom_apply, aeval_map_algebra_map, aeval_def, hP.2, _root_.map_zero]
 #align map_is_integral map_isIntegral
+-/
 
+#print isIntegral_map_of_comp_eq_of_isIntegral /-
 theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type _} [CommRing R] [CommRing S]
     [CommRing T] [CommRing U] [Algebra R S] [Algebra T U] (φ : R →+* T) (ψ : S →+* U)
     (h : (algebraMap T U).comp φ = ψ.comp (algebraMap R S)) {a : S} (ha : IsIntegral R a) :
@@ -162,7 +173,9 @@ theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type _} [CommRing R]
   rw [← eval_map, map_map, h, ← map_map, eval_map, eval₂_at_apply, eval_map, hp.right,
     RingHom.map_zero]
 #align is_integral_map_of_comp_eq_of_is_integral isIntegral_map_of_comp_eq_of_isIntegral
+-/
 
+#print isIntegral_algHom_iff /-
 theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
     (f : A →ₐ[R] B) (hf : Function.Injective f) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x :=
   by
@@ -172,28 +185,38 @@ theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Al
   rwa [← f.comp_algebra_map, ← AlgHom.coe_toRingHom, ← Polynomial.hom_eval₂, AlgHom.coe_toRingHom,
     map_eq_zero_iff f hf] at hx 
 #align is_integral_alg_hom_iff isIntegral_algHom_iff
+-/
 
+#print isIntegral_algEquiv /-
 @[simp]
 theorem isIntegral_algEquiv {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
     (f : A ≃ₐ[R] B) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x :=
   ⟨fun h => by simpa using map_isIntegral f.symm.to_alg_hom h, map_isIntegral f.toAlgHom⟩
 #align is_integral_alg_equiv isIntegral_algEquiv
+-/
 
+#print isIntegral_of_isScalarTower /-
 theorem isIntegral_of_isScalarTower [Algebra A B] [IsScalarTower R A B] {x : B}
     (hx : IsIntegral R x) : IsIntegral A x :=
   let ⟨p, hp, hpx⟩ := hx
   ⟨p.map <| algebraMap R A, hp.map _, by rw [← aeval_def, aeval_map_algebra_map, aeval_def, hpx]⟩
 #align is_integral_of_is_scalar_tower isIntegral_of_isScalarTower
+-/
 
+#print map_isIntegral_int /-
 theorem map_isIntegral_int {B C F : Type _} [Ring B] [Ring C] {b : B} [RingHomClass F B C] (f : F)
     (hb : IsIntegral ℤ b) : IsIntegral ℤ (f b) :=
   map_isIntegral (f : B →+* C).toIntAlgHom hb
 #align map_is_integral_int map_isIntegral_int
+-/
 
+#print isIntegral_ofSubring /-
 theorem isIntegral_ofSubring {x : A} (T : Subring R) (hx : IsIntegral T x) : IsIntegral R x :=
   isIntegral_of_isScalarTower hx
 #align is_integral_of_subring isIntegral_ofSubring
+-/
 
+#print IsIntegral.algebraMap /-
 theorem IsIntegral.algebraMap [Algebra A B] [IsScalarTower R A B] {x : A} (h : IsIntegral R x) :
     IsIntegral R (algebraMap A B x) :=
   by
@@ -201,13 +224,17 @@ theorem IsIntegral.algebraMap [Algebra A B] [IsScalarTower R A B] {x : A} (h : I
   use f, hf
   rw [IsScalarTower.algebraMap_eq R A B, ← hom_eval₂, hx, RingHom.map_zero]
 #align is_integral.algebra_map IsIntegral.algebraMap
+-/
 
+#print isIntegral_algebraMap_iff /-
 theorem isIntegral_algebraMap_iff [Algebra A B] [IsScalarTower R A B] {x : A}
     (hAB : Function.Injective (algebraMap A B)) :
     IsIntegral R (algebraMap A B x) ↔ IsIntegral R x :=
   isIntegral_algHom_iff (IsScalarTower.toAlgHom R A B) hAB
 #align is_integral_algebra_map_iff isIntegral_algebraMap_iff
+-/
 
+#print isIntegral_iff_isIntegral_closure_finite /-
 theorem isIntegral_iff_isIntegral_closure_finite {r : A} :
     IsIntegral R r ↔ ∃ s : Set R, s.Finite ∧ IsIntegral (Subring.closure s) r :=
   by
@@ -218,7 +245,9 @@ theorem isIntegral_iff_isIntegral_closure_finite {r : A} :
   rcases hr with ⟨s, hs, hsr⟩
   exact isIntegral_ofSubring _ hsr
 #align is_integral_iff_is_integral_closure_finite isIntegral_iff_isIntegral_closure_finite
+-/
 
+#print FG_adjoin_singleton_of_integral /-
 theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
     (Algebra.adjoin R ({x} : Set A)).toSubmodule.FG :=
   by
@@ -246,7 +275,9 @@ theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
   rw [mem_support_iff] at hkq ; apply hkq; apply this
   exact lt_of_le_of_lt degree_le_nat_degree (WithBot.coe_lt_coe.2 hk)
 #align fg_adjoin_singleton_of_integral FG_adjoin_singleton_of_integral
+-/
 
+#print FG_adjoin_of_finite /-
 theorem FG_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsIntegral R x) :
     (Algebra.adjoin R s).toSubmodule.FG :=
   Set.Finite.induction_on hfs
@@ -264,13 +295,17 @@ theorem FG_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsI
             (FG_adjoin_singleton_of_integral _ <| his a <| Set.mem_insert a s))
     his
 #align fg_adjoin_of_finite FG_adjoin_of_finite
+-/
 
+#print isNoetherian_adjoin_finset /-
 theorem isNoetherian_adjoin_finset [IsNoetherianRing R] (s : Finset A)
     (hs : ∀ x ∈ s, IsIntegral R x) : IsNoetherian R (Algebra.adjoin R (↑s : Set A)) :=
   isNoetherian_of_fg_of_noetherian _ (FG_adjoin_of_finite s.finite_toSet hs)
 #align is_noetherian_adjoin_finset isNoetherian_adjoin_finset
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print isIntegral_of_mem_of_FG /-
 /-- If `S` is a sub-`R`-algebra of `A` and `S` is finitely-generated as an `R`-module,
   then all elements of `S` are integral over `R`. -/
 theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x : A) (hx : x ∈ S) :
@@ -359,12 +394,16 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   rw [Finsupp.mem_supported] at hlx1 
   exact Subalgebra.smul_mem _ (Algebra.subset_adjoin <| hlx1 hr) _
 #align is_integral_of_mem_of_fg isIntegral_of_mem_of_FG
+-/
 
+#print Module.End.isIntegral /-
 theorem Module.End.isIntegral {M : Type _} [AddCommGroup M] [Module R M] [Module.Finite R M] :
     Algebra.IsIntegral R (Module.End R M) :=
   LinearMap.exists_monic_and_aeval_eq_zero R
 #align module.End.is_integral Module.End.isIntegral
+-/
 
+#print isIntegral_of_smul_mem_submodule /-
 /-- Suppose `A` is an `R`-algebra, `M` is an `A`-module such that `a • m ≠ 0` for all non-zero `a`
 and `m`. If `x : A` fixes a nontrivial f.g. `R`-submodule `N` of `M`, then `x` is `R`-integral. -/
 theorem isIntegral_of_smul_mem_submodule {M : Type _} [AddCommGroup M] [Module R M] [Module A M]
@@ -399,17 +438,21 @@ theorem isIntegral_of_smul_mem_submodule {M : Type _} [AddCommGroup M] [Module R
   haveI : Module.Finite R N := by rwa [Module.finite_def, Submodule.fg_top]
   apply Module.End.isIntegral
 #align is_integral_of_smul_mem_submodule isIntegral_of_smul_mem_submodule
+-/
 
 variable {f}
 
+#print RingHom.Finite.to_isIntegral /-
 theorem RingHom.Finite.to_isIntegral (h : f.Finite) : f.IsIntegral :=
   letI := f.to_algebra
   fun x => isIntegral_of_mem_of_FG ⊤ h.1 _ trivial
 #align ring_hom.finite.to_is_integral RingHom.Finite.to_isIntegral
+-/
 
 alias RingHom.Finite.to_isIntegral ← RingHom.IsIntegral.of_finite
 #align ring_hom.is_integral.of_finite RingHom.IsIntegral.of_finite
 
+#print RingHom.IsIntegral.to_finite /-
 theorem RingHom.IsIntegral.to_finite (h : f.IsIntegral) (h' : f.FiniteType) : f.Finite :=
   by
   letI := f.to_algebra
@@ -419,15 +462,19 @@ theorem RingHom.IsIntegral.to_finite (h : f.IsIntegral) (h' : f.FiniteType) : f.
   rw [← hs]
   exact FG_adjoin_of_finite (Set.toFinite _) fun x _ => h x
 #align ring_hom.is_integral.to_finite RingHom.IsIntegral.to_finite
+-/
 
 alias RingHom.IsIntegral.to_finite ← RingHom.Finite.of_isIntegral_of_finiteType
 #align ring_hom.finite.of_is_integral_of_finite_type RingHom.Finite.of_isIntegral_of_finiteType
 
+#print RingHom.finite_iff_isIntegral_and_finiteType /-
 /-- finite = integral + finite type -/
 theorem RingHom.finite_iff_isIntegral_and_finiteType : f.Finite ↔ f.IsIntegral ∧ f.FiniteType :=
   ⟨fun h => ⟨h.to_isIntegral, h.to_finiteType⟩, fun ⟨h, h'⟩ => h.toFinite h'⟩
 #align ring_hom.finite_iff_is_integral_and_finite_type RingHom.finite_iff_isIntegral_and_finiteType
+-/
 
+#print Algebra.IsIntegral.finite /-
 theorem Algebra.IsIntegral.finite (h : Algebra.IsIntegral R A) [h' : Algebra.FiniteType R A] :
     Module.Finite R A :=
   by
@@ -435,21 +482,27 @@ theorem Algebra.IsIntegral.finite (h : Algebra.IsIntegral R A) [h' : Algebra.Fin
     h.to_finite (by delta RingHom.FiniteType; convert h'; ext; exact (Algebra.smul_def _ _).symm)
   delta RingHom.Finite at this ; convert this; ext; exact Algebra.smul_def _ _
 #align algebra.is_integral.finite Algebra.IsIntegral.finite
+-/
 
+#print Algebra.IsIntegral.of_finite /-
 theorem Algebra.IsIntegral.of_finite [h : Module.Finite R A] : Algebra.IsIntegral R A :=
   by
   apply RingHom.Finite.to_isIntegral
   delta RingHom.Finite; convert h; ext; exact (Algebra.smul_def _ _).symm
 #align algebra.is_integral.of_finite Algebra.IsIntegral.of_finite
+-/
 
+#print Algebra.finite_iff_isIntegral_and_finiteType /-
 /-- finite = integral + finite type -/
 theorem Algebra.finite_iff_isIntegral_and_finiteType :
     Module.Finite R A ↔ Algebra.IsIntegral R A ∧ Algebra.FiniteType R A :=
   ⟨fun h => ⟨Algebra.IsIntegral.of_finite, inferInstance⟩, fun ⟨h, h'⟩ => h.finite⟩
 #align algebra.finite_iff_is_integral_and_finite_type Algebra.finite_iff_isIntegral_and_finiteType
+-/
 
 variable (f)
 
+#print RingHom.is_integral_of_mem_closure /-
 theorem RingHom.is_integral_of_mem_closure {x y z : S} (hx : f.IsIntegralElem x)
     (hy : f.IsIntegralElem y) (hz : z ∈ Subring.closure ({x, y} : Set S)) : f.IsIntegralElem z :=
   by
@@ -460,67 +513,94 @@ theorem RingHom.is_integral_of_mem_closure {x y z : S} (hx : f.IsIntegralElem x)
     isIntegral_of_mem_of_FG (Algebra.adjoin R {x, y}) this z
       (Algebra.mem_adjoin_iff.2 <| Subring.closure_mono (Set.subset_union_right _ _) hz)
 #align ring_hom.is_integral_of_mem_closure RingHom.is_integral_of_mem_closure
+-/
 
+#print isIntegral_of_mem_closure /-
 theorem isIntegral_of_mem_closure {x y z : A} (hx : IsIntegral R x) (hy : IsIntegral R y)
     (hz : z ∈ Subring.closure ({x, y} : Set A)) : IsIntegral R z :=
   (algebraMap R A).is_integral_of_mem_closure hx hy hz
 #align is_integral_of_mem_closure isIntegral_of_mem_closure
+-/
 
+#print RingHom.is_integral_zero /-
 theorem RingHom.is_integral_zero : f.IsIntegralElem 0 :=
   f.map_zero ▸ f.is_integral_map
 #align ring_hom.is_integral_zero RingHom.is_integral_zero
+-/
 
+#print isIntegral_zero /-
 theorem isIntegral_zero : IsIntegral R (0 : A) :=
   (algebraMap R A).is_integral_zero
 #align is_integral_zero isIntegral_zero
+-/
 
+#print RingHom.is_integral_one /-
 theorem RingHom.is_integral_one : f.IsIntegralElem 1 :=
   f.map_one ▸ f.is_integral_map
 #align ring_hom.is_integral_one RingHom.is_integral_one
+-/
 
+#print isIntegral_one /-
 theorem isIntegral_one : IsIntegral R (1 : A) :=
   (algebraMap R A).is_integral_one
 #align is_integral_one isIntegral_one
+-/
 
+#print RingHom.is_integral_add /-
 theorem RingHom.is_integral_add {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x + y) :=
   f.is_integral_of_mem_closure hx hy <|
     Subring.add_mem _ (Subring.subset_closure (Or.inl rfl)) (Subring.subset_closure (Or.inr rfl))
 #align ring_hom.is_integral_add RingHom.is_integral_add
+-/
 
+#print isIntegral_add /-
 theorem isIntegral_add {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x + y) :=
   (algebraMap R A).is_integral_add hx hy
 #align is_integral_add isIntegral_add
+-/
 
+#print RingHom.is_integral_neg /-
 theorem RingHom.is_integral_neg {x : S} (hx : f.IsIntegralElem x) : f.IsIntegralElem (-x) :=
   f.is_integral_of_mem_closure hx hx (Subring.neg_mem _ (Subring.subset_closure (Or.inl rfl)))
 #align ring_hom.is_integral_neg RingHom.is_integral_neg
+-/
 
+#print isIntegral_neg /-
 theorem isIntegral_neg {x : A} (hx : IsIntegral R x) : IsIntegral R (-x) :=
   (algebraMap R A).is_integral_neg hx
 #align is_integral_neg isIntegral_neg
+-/
 
+#print RingHom.is_integral_sub /-
 theorem RingHom.is_integral_sub {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x - y) := by
   simpa only [sub_eq_add_neg] using f.is_integral_add hx (f.is_integral_neg hy)
 #align ring_hom.is_integral_sub RingHom.is_integral_sub
+-/
 
+#print isIntegral_sub /-
 theorem isIntegral_sub {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x - y) :=
   (algebraMap R A).is_integral_sub hx hy
 #align is_integral_sub isIntegral_sub
+-/
 
+#print RingHom.is_integral_mul /-
 theorem RingHom.is_integral_mul {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x * y) :=
   f.is_integral_of_mem_closure hx hy
     (Subring.mul_mem _ (Subring.subset_closure (Or.inl rfl)) (Subring.subset_closure (Or.inr rfl)))
 #align ring_hom.is_integral_mul RingHom.is_integral_mul
+-/
 
+#print isIntegral_mul /-
 theorem isIntegral_mul {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x * y) :=
   (algebraMap R A).is_integral_mul hx hy
 #align is_integral_mul isIntegral_mul
+-/
 
 #print isIntegral_smul /-
 theorem isIntegral_smul [Algebra S A] [Algebra R S] [IsScalarTower R S A] {x : A} (r : R)
@@ -531,6 +611,7 @@ theorem isIntegral_smul [Algebra S A] [Algebra R S] [IsScalarTower R S A] {x : A
 #align is_integral_smul isIntegral_smul
 -/
 
+#print isIntegral_of_pow /-
 theorem isIntegral_of_pow {x : A} {n : ℕ} (hn : 0 < n) (hx : IsIntegral R <| x ^ n) :
     IsIntegral R x := by
   rcases hx with ⟨p, ⟨hmonic, heval⟩⟩
@@ -538,6 +619,7 @@ theorem isIntegral_of_pow {x : A} {n : ℕ} (hn : 0 < n) (hx : IsIntegral R <| x
     ⟨expand R n p, monic.expand hn hmonic, by
       rwa [eval₂_eq_eval_map, map_expand, expand_eval, ← eval₂_eq_eval_map]⟩
 #align is_integral_of_pow isIntegral_of_pow
+-/
 
 variable (R A)
 
@@ -554,15 +636,18 @@ def integralClosure : Subalgebra R A
 #align integral_closure integralClosure
 -/
 
+#print mem_integralClosure_iff_mem_FG /-
 theorem mem_integralClosure_iff_mem_FG {r : A} :
     r ∈ integralClosure R A ↔ ∃ M : Subalgebra R A, M.toSubmodule.FG ∧ r ∈ M :=
   ⟨fun hr =>
     ⟨Algebra.adjoin R {r}, FG_adjoin_singleton_of_integral _ hr, Algebra.subset_adjoin rfl⟩,
     fun ⟨M, Hf, hrM⟩ => isIntegral_of_mem_of_FG M Hf _ hrM⟩
 #align mem_integral_closure_iff_mem_fg mem_integralClosure_iff_mem_FG
+-/
 
 variable {R} {A}
 
+#print adjoin_le_integralClosure /-
 theorem adjoin_le_integralClosure {x : A} (hx : IsIntegral R x) :
     Algebra.adjoin R {x} ≤ integralClosure R A :=
   by
@@ -570,7 +655,9 @@ theorem adjoin_le_integralClosure {x : A} (hx : IsIntegral R x) :
   simp only [SetLike.mem_coe, Set.singleton_subset_iff]
   exact hx
 #align adjoin_le_integral_closure adjoin_le_integralClosure
+-/
 
+#print le_integralClosure_iff_isIntegral /-
 theorem le_integralClosure_iff_isIntegral {S : Subalgebra R A} :
     S ≤ integralClosure R A ↔ Algebra.IsIntegral R S :=
   SetLike.forall.symm.trans
@@ -578,12 +665,16 @@ theorem le_integralClosure_iff_isIntegral {S : Subalgebra R A} :
       show IsIntegral R (algebraMap S A x) ↔ IsIntegral R x from
         isIntegral_algebraMap_iff Subtype.coe_injective)
 #align le_integral_closure_iff_is_integral le_integralClosure_iff_isIntegral
+-/
 
+#print isIntegral_sup /-
 theorem isIntegral_sup {S T : Subalgebra R A} :
     Algebra.IsIntegral R ↥(S ⊔ T) ↔ Algebra.IsIntegral R S ∧ Algebra.IsIntegral R T := by
   simp only [← le_integralClosure_iff_isIntegral, sup_le_iff]
 #align is_integral_sup isIntegral_sup
+-/
 
+#print integralClosure_map_algEquiv /-
 /-- Mapping an integral closure along an `alg_equiv` gives the integral closure. -/
 theorem integralClosure_map_algEquiv (f : A ≃ₐ[R] B) :
     (integralClosure R A).map (f : A →ₐ[R] B) = integralClosure R B :=
@@ -597,14 +688,18 @@ theorem integralClosure_map_algEquiv (f : A ≃ₐ[R] B) :
     use f.symm y, map_isIntegral (f.symm : B →ₐ[R] A) hy
     simp
 #align integral_closure_map_alg_equiv integralClosure_map_algEquiv
+-/
 
+#print integralClosure.isIntegral /-
 theorem integralClosure.isIntegral (x : integralClosure R A) : IsIntegral R x :=
   let ⟨p, hpm, hpx⟩ := x.2
   ⟨p, hpm,
     Subtype.eq <| by
       rwa [← aeval_def, Subtype.val_eq_coe, ← Subalgebra.val_apply, aeval_alg_hom_apply] at hpx ⟩
 #align integral_closure.is_integral integralClosure.isIntegral
+-/
 
+#print RingHom.is_integral_of_is_integral_mul_unit /-
 theorem RingHom.is_integral_of_is_integral_mul_unit (x y : S) (r : R) (hr : f r * y = 1)
     (hx : f.IsIntegralElem (x * y)) : f.IsIntegralElem x :=
   by
@@ -613,35 +708,48 @@ theorem RingHom.is_integral_of_is_integral_mul_unit (x y : S) (r : R) (hr : f r
   convert scale_roots_eval₂_eq_zero f hp
   rw [mul_comm x y, ← mul_assoc, hr, one_mul]
 #align ring_hom.is_integral_of_is_integral_mul_unit RingHom.is_integral_of_is_integral_mul_unit
+-/
 
+#print isIntegral_of_isIntegral_mul_unit /-
 theorem isIntegral_of_isIntegral_mul_unit {x y : A} {r : R} (hr : algebraMap R A r * y = 1)
     (hx : IsIntegral R (x * y)) : IsIntegral R x :=
   (algebraMap R A).is_integral_of_is_integral_mul_unit x y r hr hx
 #align is_integral_of_is_integral_mul_unit isIntegral_of_isIntegral_mul_unit
+-/
 
+#print isIntegral_of_mem_closure' /-
 /-- Generalization of `is_integral_of_mem_closure` bootstrapped up from that lemma -/
 theorem isIntegral_of_mem_closure' (G : Set A) (hG : ∀ x ∈ G, IsIntegral R x) :
     ∀ x ∈ Subring.closure G, IsIntegral R x := fun x hx =>
   Subring.closure_induction hx hG isIntegral_zero isIntegral_one (fun _ _ => isIntegral_add)
     (fun _ => isIntegral_neg) fun _ _ => isIntegral_mul
 #align is_integral_of_mem_closure' isIntegral_of_mem_closure'
+-/
 
+#print is_integral_of_mem_closure'' /-
 theorem is_integral_of_mem_closure'' {S : Type _} [CommRing S] {f : R →+* S} (G : Set S)
     (hG : ∀ x ∈ G, f.IsIntegralElem x) : ∀ x ∈ Subring.closure G, f.IsIntegralElem x := fun x hx =>
   @isIntegral_of_mem_closure' R S _ _ f.toAlgebra G hG x hx
 #align is_integral_of_mem_closure'' is_integral_of_mem_closure''
+-/
 
+#print IsIntegral.pow /-
 theorem IsIntegral.pow {x : A} (h : IsIntegral R x) (n : ℕ) : IsIntegral R (x ^ n) :=
   (integralClosure R A).pow_mem h n
 #align is_integral.pow IsIntegral.pow
+-/
 
+#print IsIntegral.nsmul /-
 theorem IsIntegral.nsmul {x : A} (h : IsIntegral R x) (n : ℕ) : IsIntegral R (n • x) :=
   (integralClosure R A).nsmul_mem h n
 #align is_integral.nsmul IsIntegral.nsmul
+-/
 
+#print IsIntegral.zsmul /-
 theorem IsIntegral.zsmul {x : A} (h : IsIntegral R x) (n : ℤ) : IsIntegral R (n • x) :=
   (integralClosure R A).zsmul_mem h n
 #align is_integral.zsmul IsIntegral.zsmul
+-/
 
 #print IsIntegral.multiset_prod /-
 theorem IsIntegral.multiset_prod {s : Multiset A} (h : ∀ x ∈ s, IsIntegral R x) :
@@ -657,15 +765,19 @@ theorem IsIntegral.multiset_sum {s : Multiset A} (h : ∀ x ∈ s, IsIntegral R
 #align is_integral.multiset_sum IsIntegral.multiset_sum
 -/
 
+#print IsIntegral.prod /-
 theorem IsIntegral.prod {α : Type _} {s : Finset α} (f : α → A) (h : ∀ x ∈ s, IsIntegral R (f x)) :
     IsIntegral R (∏ x in s, f x) :=
   (integralClosure R A).prod_mem h
 #align is_integral.prod IsIntegral.prod
+-/
 
+#print IsIntegral.sum /-
 theorem IsIntegral.sum {α : Type _} {s : Finset α} (f : α → A) (h : ∀ x ∈ s, IsIntegral R (f x)) :
     IsIntegral R (∑ x in s, f x) :=
   (integralClosure R A).sum_mem h
 #align is_integral.sum IsIntegral.sum
+-/
 
 #print IsIntegral.det /-
 theorem IsIntegral.det {n : Type _} [Fintype n] [DecidableEq n] {M : Matrix n n A}
@@ -676,13 +788,16 @@ theorem IsIntegral.det {n : Type _} [Fintype n] [DecidableEq n] {M : Matrix n n
 #align is_integral.det IsIntegral.det
 -/
 
+#print IsIntegral.pow_iff /-
 @[simp]
 theorem IsIntegral.pow_iff {x : A} {n : ℕ} (hn : 0 < n) : IsIntegral R (x ^ n) ↔ IsIntegral R x :=
   ⟨isIntegral_of_pow hn, fun hx => IsIntegral.pow hx n⟩
 #align is_integral.pow_iff IsIntegral.pow_iff
+-/
 
 open scoped TensorProduct
 
+#print IsIntegral.tmul /-
 theorem IsIntegral.tmul (x : A) {y : B} (h : IsIntegral R y) : IsIntegral A (x ⊗ₜ[R] y) :=
   by
   obtain ⟨p, hp, hp'⟩ := h
@@ -701,6 +816,7 @@ theorem IsIntegral.tmul (x : A) {y : B} (h : IsIntegral R y) : IsIntegral A (x 
   convert Polynomial.eval₂_at_apply algebra.tensor_product.include_right.to_ring_hom y
   rw [Polynomial.eval_map, hp', _root_.map_zero]
 #align is_integral.tmul IsIntegral.tmul
+-/
 
 section
 
@@ -714,6 +830,7 @@ noncomputable def normalizeScaleRoots (p : R[X]) : R[X] :=
 #align normalize_scale_roots normalizeScaleRoots
 -/
 
+#print normalizeScaleRoots_coeff_mul_leadingCoeff_pow /-
 theorem normalizeScaleRoots_coeff_mul_leadingCoeff_pow (i : ℕ) (hp : 1 ≤ natDegree p) :
     (normalizeScaleRoots p).coeff i * p.leadingCoeff ^ i =
       p.coeff i * p.leadingCoeff ^ (p.natDegree - 1) :=
@@ -728,6 +845,7 @@ theorem normalizeScaleRoots_coeff_mul_leadingCoeff_pow (i : ℕ) (hp : 1 ≤ nat
     rw [lt_iff_le_and_ne]
     exact ⟨le_nat_degree_of_ne_zero h₁, h₂⟩
 #align normalize_scale_roots_coeff_mul_leading_coeff_pow normalizeScaleRoots_coeff_mul_leadingCoeff_pow
+-/
 
 #print leadingCoeff_smul_normalizeScaleRoots /-
 theorem leadingCoeff_smul_normalizeScaleRoots (p : R[X]) :
@@ -768,6 +886,7 @@ theorem normalizeScaleRoots_degree : (normalizeScaleRoots p).degree = p.degree :
 #align normalize_scale_roots_degree normalizeScaleRoots_degree
 -/
 
+#print normalizeScaleRoots_eval₂_leadingCoeff_mul /-
 theorem normalizeScaleRoots_eval₂_leadingCoeff_mul (h : 1 ≤ p.natDegree) (f : R →+* S) (x : S) :
     (normalizeScaleRoots p).eval₂ f (f p.leadingCoeff * x) =
       f p.leadingCoeff ^ (p.natDegree - 1) * p.eval₂ f x :=
@@ -780,6 +899,7 @@ theorem normalizeScaleRoots_eval₂_leadingCoeff_mul (h : 1 ≤ p.natDegree) (f
     normalizeScaleRoots_coeff_mul_leadingCoeff_pow _ _ h, f.map_mul, f.map_pow]
   ring
 #align normalize_scale_roots_eval₂_leading_coeff_mul normalizeScaleRoots_eval₂_leadingCoeff_mul
+-/
 
 #print normalizeScaleRoots_monic /-
 theorem normalizeScaleRoots_monic (h : p ≠ 0) : (normalizeScaleRoots p).Monic :=
@@ -791,6 +911,7 @@ theorem normalizeScaleRoots_monic (h : p ≠ 0) : (normalizeScaleRoots p).Monic
 #align normalize_scale_roots_monic normalizeScaleRoots_monic
 -/
 
+#print RingHom.isIntegralElem_leadingCoeff_mul /-
 /-- Given a `p : R[X]` and a `x : S` such that `p.eval₂ f x = 0`,
 `f p.leading_coeff * x` is integral. -/
 theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
@@ -811,7 +932,9 @@ theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
       suffices p.map f = 0 by exact (hp this).rec _
       rw [eq_C_of_nat_degree_eq_zero h', map_C, h, C_eq_zero]
 #align ring_hom.is_integral_elem_leading_coeff_mul RingHom.isIntegralElem_leadingCoeff_mul
+-/
 
+#print isIntegral_leadingCoeff_smul /-
 /-- Given a `p : R[X]` and a root `x : S`,
 then `p.leading_coeff • x : S` is integral over `R`. -/
 theorem isIntegral_leadingCoeff_smul [Algebra R S] (h : aeval x p = 0) :
@@ -821,6 +944,7 @@ theorem isIntegral_leadingCoeff_smul [Algebra R S] (h : aeval x p = 0) :
   rw [Algebra.smul_def]
   exact (algebraMap R S).isIntegralElem_leadingCoeff_mul p x h
 #align is_integral_leading_coeff_smul isIntegral_leadingCoeff_smul
+-/
 
 end
 
@@ -829,7 +953,7 @@ end
 section IsIntegralClosure
 
 #print IsIntegralClosure /-
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`algebraMap_injective] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`algebraMap_injective] [] -/
 /-- `is_integral_closure A R B` is the characteristic predicate stating `A` is
 the integral closure of `R` in `B`,
 i.e. that an element of `B` is integral over `R` iff it is an element of (the image of) `A`.
@@ -841,10 +965,12 @@ class IsIntegralClosure (A R B : Type _) [CommRing R] [CommSemiring A] [CommRing
 #align is_integral_closure IsIntegralClosure
 -/
 
+#print integralClosure.isIntegralClosure /-
 instance integralClosure.isIntegralClosure (R A : Type _) [CommRing R] [CommRing A] [Algebra R A] :
     IsIntegralClosure (integralClosure R A) R A :=
   ⟨Subtype.coe_injective, fun x => ⟨fun h => ⟨⟨x, h⟩, rfl⟩, by rintro ⟨⟨_, h⟩, rfl⟩; exact h⟩⟩
 #align integral_closure.is_integral_closure integralClosure.isIntegralClosure
+-/
 
 namespace IsIntegralClosure
 
@@ -854,15 +980,20 @@ variable [Algebra R B] [Algebra A B] [IsIntegralClosure A R B]
 
 variable (R) {A} (B)
 
+#print IsIntegralClosure.isIntegral /-
 protected theorem isIntegral [Algebra R A] [IsScalarTower R A B] (x : A) : IsIntegral R x :=
   (isIntegral_algebraMap_iff (algebraMap_injective A R B)).mp <|
     show IsIntegral R (algebraMap A B x) from isIntegral_iff.mpr ⟨x, rfl⟩
 #align is_integral_closure.is_integral IsIntegralClosure.isIntegral
+-/
 
+#print IsIntegralClosure.isIntegral_algebra /-
 theorem isIntegral_algebra [Algebra R A] [IsScalarTower R A B] : Algebra.IsIntegral R A := fun x =>
   IsIntegralClosure.isIntegral R B x
 #align is_integral_closure.is_integral_algebra IsIntegralClosure.isIntegral_algebra
+-/
 
+#print IsIntegralClosure.noZeroSMulDivisors /-
 theorem noZeroSMulDivisors [Algebra R A] [IsScalarTower R A B] [NoZeroSMulDivisors R B] :
     NoZeroSMulDivisors R A :=
   by
@@ -871,6 +1002,7 @@ theorem noZeroSMulDivisors [Algebra R A] [IsScalarTower R A B] [NoZeroSMulDiviso
       (map_zero _) fun _ _ => _
   simp only [Algebra.algebraMap_eq_smul_one, IsScalarTower.smul_assoc]
 #align is_integral_closure.no_zero_smul_divisors IsIntegralClosure.noZeroSMulDivisors
+-/
 
 variable {R} (A) {B}
 
@@ -881,39 +1013,51 @@ noncomputable def mk' (x : B) (hx : IsIntegral R x) : A :=
 #align is_integral_closure.mk' IsIntegralClosure.mk'
 -/
 
+#print IsIntegralClosure.algebraMap_mk' /-
 @[simp]
 theorem algebraMap_mk' (x : B) (hx : IsIntegral R x) : algebraMap A B (mk' A x hx) = x :=
   Classical.choose_spec (isIntegral_iff.mp hx)
 #align is_integral_closure.algebra_map_mk' IsIntegralClosure.algebraMap_mk'
+-/
 
+#print IsIntegralClosure.mk'_one /-
 @[simp]
 theorem mk'_one (h : IsIntegral R (1 : B) := isIntegral_one) : mk' A 1 h = 1 :=
   algebraMap_injective A R B <| by rw [algebra_map_mk', RingHom.map_one]
 #align is_integral_closure.mk'_one IsIntegralClosure.mk'_one
+-/
 
+#print IsIntegralClosure.mk'_zero /-
 @[simp]
 theorem mk'_zero (h : IsIntegral R (0 : B) := isIntegral_zero) : mk' A 0 h = 0 :=
   algebraMap_injective A R B <| by rw [algebra_map_mk', RingHom.map_zero]
 #align is_integral_closure.mk'_zero IsIntegralClosure.mk'_zero
+-/
 
+#print IsIntegralClosure.mk'_add /-
 @[simp]
 theorem mk'_add (x y : B) (hx : IsIntegral R x) (hy : IsIntegral R y) :
     mk' A (x + y) (isIntegral_add hx hy) = mk' A x hx + mk' A y hy :=
   algebraMap_injective A R B <| by simp only [algebra_map_mk', RingHom.map_add]
 #align is_integral_closure.mk'_add IsIntegralClosure.mk'_add
+-/
 
+#print IsIntegralClosure.mk'_mul /-
 @[simp]
 theorem mk'_mul (x y : B) (hx : IsIntegral R x) (hy : IsIntegral R y) :
     mk' A (x * y) (isIntegral_mul hx hy) = mk' A x hx * mk' A y hy :=
   algebraMap_injective A R B <| by simp only [algebra_map_mk', RingHom.map_mul]
 #align is_integral_closure.mk'_mul IsIntegralClosure.mk'_mul
+-/
 
+#print IsIntegralClosure.mk'_algebraMap /-
 @[simp]
 theorem mk'_algebraMap [Algebra R A] [IsScalarTower R A B] (x : R)
     (h : IsIntegral R (algebraMap R B x) := isIntegral_algebraMap) :
     IsIntegralClosure.mk' A (algebraMap R B x) h = algebraMap R A x :=
   algebraMap_injective A R B <| by rw [algebra_map_mk', ← IsScalarTower.algebraMap_apply]
 #align is_integral_closure.mk'_algebra_map IsIntegralClosure.mk'_algebraMap
+-/
 
 section lift
 
@@ -935,10 +1079,12 @@ noncomputable def lift : S →ₐ[R] A
 #align is_integral_closure.lift IsIntegralClosure.lift
 -/
 
+#print IsIntegralClosure.algebraMap_lift /-
 @[simp]
 theorem algebraMap_lift (x : S) : algebraMap A B (lift A B h x) = algebraMap S B x :=
   algebraMap_mk' _ _ _
 #align is_integral_closure.algebra_map_lift IsIntegralClosure.algebraMap_lift
+-/
 
 end lift
 
@@ -957,10 +1103,12 @@ noncomputable def equiv : A ≃ₐ[R] A' :=
 #align is_integral_closure.equiv IsIntegralClosure.equiv
 -/
 
+#print IsIntegralClosure.algebraMap_equiv /-
 @[simp]
 theorem algebraMap_equiv (x : A) : algebraMap A' B (equiv R A B A' x) = algebraMap A B x :=
   algebraMap_lift _ _ _ _
 #align is_integral_closure.algebra_map_equiv IsIntegralClosure.algebraMap_equiv
+-/
 
 end Equiv
 
@@ -978,6 +1126,7 @@ variable [CommRing R] [CommRing A] [CommRing B] [CommRing S] [CommRing T]
 
 variable [Algebra A B] [Algebra R B] (f : R →+* S) (g : S →+* T)
 
+#print isIntegral_trans_aux /-
 theorem isIntegral_trans_aux (x : B) {p : A[X]} (pmonic : Monic p) (hp : aeval x p = 0) :
     IsIntegral (adjoin R (↑(p.map <| algebraMap A B).frange : Set B)) x :=
   by
@@ -1001,9 +1150,11 @@ theorem isIntegral_trans_aux (x : B) {p : A[X]} (pmonic : Monic p) (hp : aeval x
     replace hq := congr_arg (eval x) hq
     convert hq using 1 <;> symm <;> apply eval_map
 #align is_integral_trans_aux isIntegral_trans_aux
+-/
 
 variable [Algebra R A] [IsScalarTower R A B]
 
+#print isIntegral_trans /-
 /-- If A is an R-algebra all of whose elements are integral over R,
 and x is an element of an A-algebra that is integral over A, then x is integral over R.-/
 theorem isIntegral_trans (A_int : Algebra.IsIntegral R A) (x : B) (hx : IsIntegral A x) :
@@ -1019,30 +1170,40 @@ theorem isIntegral_trans (A_int : Algebra.IsIntegral R A) (x : B) (hx : IsIntegr
   · apply FG_adjoin_singleton_of_integral
     exact isIntegral_trans_aux _ pmonic hp
 #align is_integral_trans isIntegral_trans
+-/
 
+#print Algebra.isIntegral_trans /-
 /-- If A is an R-algebra all of whose elements are integral over R,
 and B is an A-algebra all of whose elements are integral over A,
 then all elements of B are integral over R.-/
 theorem Algebra.isIntegral_trans (hA : Algebra.IsIntegral R A) (hB : Algebra.IsIntegral A B) :
     Algebra.IsIntegral R B := fun x => isIntegral_trans hA x (hB x)
 #align algebra.is_integral_trans Algebra.isIntegral_trans
+-/
 
+#print RingHom.isIntegral_trans /-
 theorem RingHom.isIntegral_trans (hf : f.IsIntegral) (hg : g.IsIntegral) : (g.comp f).IsIntegral :=
   @Algebra.isIntegral_trans R S T _ _ _ g.toAlgebra (g.comp f).toAlgebra f.toAlgebra
     (@IsScalarTower.of_algebraMap_eq R S T _ _ _ f.toAlgebra g.toAlgebra (g.comp f).toAlgebra
       (RingHom.comp_apply g f))
     hf hg
 #align ring_hom.is_integral_trans RingHom.isIntegral_trans
+-/
 
+#print RingHom.isIntegral_of_surjective /-
 theorem RingHom.isIntegral_of_surjective (hf : Function.Surjective f) : f.IsIntegral := fun x =>
   (hf x).recOn fun y hy => (hy ▸ f.is_integral_map : f.IsIntegralElem x)
 #align ring_hom.is_integral_of_surjective RingHom.isIntegral_of_surjective
+-/
 
+#print isIntegral_of_surjective /-
 theorem isIntegral_of_surjective (h : Function.Surjective (algebraMap R A)) :
     Algebra.IsIntegral R A :=
   (algebraMap R A).isIntegral_of_surjective h
 #align is_integral_of_surjective isIntegral_of_surjective
+-/
 
+#print isIntegral_tower_bot_of_isIntegral /-
 /-- If `R → A → B` is an algebra tower with `A → B` injective,
 then if the entire tower is an integral extension so is `R → A` -/
 theorem isIntegral_tower_bot_of_isIntegral (H : Function.Injective (algebraMap A B)) {x : A}
@@ -1055,7 +1216,9 @@ theorem isIntegral_tower_bot_of_isIntegral (H : Function.Injective (algebraMap A
   rw [eval₂_eq_eval_map]
   exact H hp'
 #align is_integral_tower_bot_of_is_integral isIntegral_tower_bot_of_isIntegral
+-/
 
+#print RingHom.isIntegral_tower_bot_of_isIntegral /-
 theorem RingHom.isIntegral_tower_bot_of_isIntegral (hg : Function.Injective g)
     (hfg : (g.comp f).IsIntegral) : f.IsIntegral := fun x =>
   @isIntegral_tower_bot_of_isIntegral R S T _ _ _ g.toAlgebra (g.comp f).toAlgebra f.toAlgebra
@@ -1063,23 +1226,31 @@ theorem RingHom.isIntegral_tower_bot_of_isIntegral (hg : Function.Injective g)
       (RingHom.comp_apply g f))
     hg x (hfg (g x))
 #align ring_hom.is_integral_tower_bot_of_is_integral RingHom.isIntegral_tower_bot_of_isIntegral
+-/
 
+#print isIntegral_tower_bot_of_isIntegral_field /-
 theorem isIntegral_tower_bot_of_isIntegral_field {R A B : Type _} [CommRing R] [Field A]
     [CommRing B] [Nontrivial B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B]
     {x : A} (h : IsIntegral R (algebraMap A B x)) : IsIntegral R x :=
   isIntegral_tower_bot_of_isIntegral (algebraMap A B).Injective h
 #align is_integral_tower_bot_of_is_integral_field isIntegral_tower_bot_of_isIntegral_field
+-/
 
+#print RingHom.isIntegralElem_of_isIntegralElem_comp /-
 theorem RingHom.isIntegralElem_of_isIntegralElem_comp {x : T} (h : (g.comp f).IsIntegralElem x) :
     g.IsIntegralElem x :=
   let ⟨p, ⟨hp, hp'⟩⟩ := h
   ⟨p.map f, hp.map f, by rwa [← eval₂_map] at hp' ⟩
 #align ring_hom.is_integral_elem_of_is_integral_elem_comp RingHom.isIntegralElem_of_isIntegralElem_comp
+-/
 
+#print RingHom.isIntegral_tower_top_of_isIntegral /-
 theorem RingHom.isIntegral_tower_top_of_isIntegral (h : (g.comp f).IsIntegral) : g.IsIntegral :=
   fun x => RingHom.isIntegralElem_of_isIntegralElem_comp f g (h x)
 #align ring_hom.is_integral_tower_top_of_is_integral RingHom.isIntegral_tower_top_of_isIntegral
+-/
 
+#print isIntegral_tower_top_of_isIntegral /-
 /-- If `R → A → B` is an algebra tower,
 then if the entire tower is an integral extension so is `A → B`. -/
 theorem isIntegral_tower_top_of_isIntegral {x : B} (h : IsIntegral R x) : IsIntegral A x :=
@@ -1089,7 +1260,9 @@ theorem isIntegral_tower_top_of_isIntegral {x : B} (h : IsIntegral R x) : IsInte
   rw [IsScalarTower.algebraMap_eq R A B, ← eval₂_map] at hp' 
   exact hp'
 #align is_integral_tower_top_of_is_integral isIntegral_tower_top_of_isIntegral
+-/
 
+#print RingHom.isIntegral_quotient_of_isIntegral /-
 theorem RingHom.isIntegral_quotient_of_isIntegral {I : Ideal S} (hf : f.IsIntegral) :
     (Ideal.quotientMap I f le_rfl).IsIntegral :=
   by
@@ -1098,12 +1271,16 @@ theorem RingHom.isIntegral_quotient_of_isIntegral {I : Ideal S} (hf : f.IsIntegr
   refine' ⟨p.map (Ideal.Quotient.mk _), ⟨p_monic.map _, _⟩⟩
   simpa only [hom_eval₂, eval₂_map] using congr_arg (Ideal.Quotient.mk I) hpx
 #align ring_hom.is_integral_quotient_of_is_integral RingHom.isIntegral_quotient_of_isIntegral
+-/
 
+#print isIntegral_quotient_of_isIntegral /-
 theorem isIntegral_quotient_of_isIntegral {I : Ideal A} (hRA : Algebra.IsIntegral R A) :
     Algebra.IsIntegral (R ⧸ I.comap (algebraMap R A)) (A ⧸ I) :=
   (algebraMap R A).isIntegral_quotient_of_isIntegral hRA
 #align is_integral_quotient_of_is_integral isIntegral_quotient_of_isIntegral
+-/
 
+#print isIntegral_quotientMap_iff /-
 theorem isIntegral_quotientMap_iff {I : Ideal S} :
     (Ideal.quotientMap I f le_rfl).IsIntegral ↔
       ((Ideal.Quotient.mk I).comp f : R →+* S ⧸ I).IsIntegral :=
@@ -1114,7 +1291,9 @@ theorem isIntegral_quotientMap_iff {I : Ideal S} :
   refine' this ▸ RingHom.isIntegral_trans g (Ideal.quotientMap I f le_rfl) _ h
   exact RingHom.isIntegral_of_surjective g Ideal.Quotient.mk_surjective
 #align is_integral_quotient_map_iff isIntegral_quotientMap_iff
+-/
 
+#print isField_of_isIntegral_of_isField /-
 /-- If the integral extension `R → S` is injective, and `S` is a field, then `R` is also a field. -/
 theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial R] [CommRing S]
     [IsDomain S] [Algebra R S] (H : Algebra.IsIntegral R S)
@@ -1154,7 +1333,9 @@ theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial
   have : 1 ≤ p.nat_degree - i := le_tsub_of_add_le_left (finset.mem_range.mp hi)
   rw [mul_assoc, ← pow_succ', tsub_add_cancel_of_le this]
 #align is_field_of_is_integral_of_is_field isField_of_isIntegral_of_isField
+-/
 
+#print isField_of_isIntegral_of_isField' /-
 theorem isField_of_isIntegral_of_isField' {R S : Type _} [CommRing R] [CommRing S] [IsDomain S]
     [Algebra R S] (H : Algebra.IsIntegral R S) (hR : IsField R) : IsField S :=
   by
@@ -1171,15 +1352,19 @@ theorem isField_of_isIntegral_of_isField' {R S : Type _} [CommRing R] [CommRing
       1
   exact ⟨y, subtype.ext_iff.mp hy⟩
 #align is_field_of_is_integral_of_is_field' isField_of_isIntegral_of_isField'
+-/
 
+#print Algebra.IsIntegral.isField_iff_isField /-
 theorem Algebra.IsIntegral.isField_iff_isField {R S : Type _} [CommRing R] [Nontrivial R]
     [CommRing S] [IsDomain S] [Algebra R S] (H : Algebra.IsIntegral R S)
     (hRS : Function.Injective (algebraMap R S)) : IsField R ↔ IsField S :=
   ⟨isField_of_isIntegral_of_isField' H, isField_of_isIntegral_of_isField H hRS⟩
 #align algebra.is_integral.is_field_iff_is_field Algebra.IsIntegral.isField_iff_isField
+-/
 
 end Algebra
 
+#print integralClosure_idem /-
 theorem integralClosure_idem {R : Type _} {A : Type _} [CommRing R] [CommRing A] [Algebra R A] :
     integralClosure (integralClosure R A : Set A) A = ⊥ :=
   eq_bot_iff.2 fun x hx =>
@@ -1189,6 +1374,7 @@ theorem integralClosure_idem {R : Type _} {A : Type _} [CommRing R] [CommRing A]
             integralClosure.isIntegral x hx⟩,
         rfl⟩
 #align integral_closure_idem integralClosure_idem
+-/
 
 section IsDomain
 
@@ -1197,10 +1383,12 @@ variable {R S : Type _} [CommRing R] [CommRing S] [IsDomain S] [Algebra R S]
 instance : IsDomain (integralClosure R S) :=
   inferInstance
 
+#print roots_mem_integralClosure /-
 theorem roots_mem_integralClosure {f : R[X]} (hf : f.Monic) {a : S}
     (ha : a ∈ (f.map <| algebraMap R S).roots) : a ∈ integralClosure R S :=
   ⟨f, hf, (eval₂_eq_eval_map _).trans <| (mem_roots <| (hf.map _).NeZero).1 ha⟩
 #align roots_mem_integral_closure roots_mem_integralClosure
+-/
 
 end IsDomain
 
Diff
@@ -1131,7 +1131,7 @@ theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial
   use -∑ i : ℕ in Finset.range p.nat_degree, p.coeff i * a ^ (p.nat_degree - i - 1)
   -- `q(a) = 0`, because multiplying everything with `a_inv^n` gives `p(a_inv) = 0`.
   -- TODO: this could be a lemma for `polynomial.reverse`.
-  have hq : (∑ i : ℕ in Finset.range (p.nat_degree + 1), p.coeff i * a ^ (p.nat_degree - i)) = 0 :=
+  have hq : ∑ i : ℕ in Finset.range (p.nat_degree + 1), p.coeff i * a ^ (p.nat_degree - i) = 0 :=
     by
     apply (injective_iff_map_eq_zero (algebraMap R S)).mp hRS
     have a_inv_ne_zero : a_inv ≠ 0 := right_ne_zero_of_mul (mt ha_inv.symm.trans one_ne_zero)
Diff
@@ -372,7 +372,7 @@ theorem isIntegral_of_smul_mem_submodule {M : Type _} [AddCommGroup M] [Module R
     (x : A) (hx : ∀ n ∈ N, x • n ∈ N) : IsIntegral R x :=
   by
   let A' : Subalgebra R A :=
-    { carrier := { x | ∀ n ∈ N, x • n ∈ N }
+    { carrier := {x | ∀ n ∈ N, x • n ∈ N}
       mul_mem' := fun a b ha hb n hn => smul_smul a b n ▸ ha _ (hb _ hn)
       one_mem' := fun n hn => (one_smul A n).symm ▸ hn
       add_mem' := fun a b ha hb n hn => (add_smul a b n).symm ▸ N.add_mem (ha _ hn) (hb _ hn)
@@ -385,7 +385,7 @@ theorem isIntegral_of_smul_mem_submodule {M : Type _} [AddCommGroup M] [Module R
         map_smul' := fun r s => LinearMap.ext fun n => Subtype.ext <| smul_assoc r s n }
       (LinearMap.ext fun n => Subtype.ext <| one_smul _ _) fun x y =>
       LinearMap.ext fun n => Subtype.ext <| mul_smul x y n
-  obtain ⟨a, ha₁, ha₂⟩ : ∃ a ∈ N, a ≠ (0 : M) := by by_contra h'; push_neg  at h' ; apply hN;
+  obtain ⟨a, ha₁, ha₂⟩ : ∃ a ∈ N, a ≠ (0 : M) := by by_contra h'; push_neg at h' ; apply hN;
     rwa [eq_bot_iff]
   have : Function.Injective f :=
     by
@@ -545,7 +545,7 @@ variable (R A)
 /-- The integral closure of R in an R-algebra A. -/
 def integralClosure : Subalgebra R A
     where
-  carrier := { r | IsIntegral R r }
+  carrier := {r | IsIntegral R r}
   zero_mem' := isIntegral_zero
   one_mem' := isIntegral_one
   add_mem' _ _ := isIntegral_add
@@ -688,13 +688,14 @@ theorem IsIntegral.tmul (x : A) {y : B} (h : IsIntegral R y) : IsIntegral A (x 
   obtain ⟨p, hp, hp'⟩ := h
   refine' ⟨(p.map (algebraMap R A)).scaleRoots x, _, _⟩
   · rw [Polynomial.monic_scaleRoots_iff]; exact hp.map _
-  convert@Polynomial.scaleRoots_eval₂_mul (A ⊗[R] B) A _ _ _
+  convert
+    @Polynomial.scaleRoots_eval₂_mul (A ⊗[R] B) A _ _ _
       algebra.tensor_product.include_left.to_ring_hom (1 ⊗ₜ y) x using
     2
   ·
     simp only [AlgHom.toRingHom_eq_coe, AlgHom.coe_toRingHom, mul_one, one_mul,
       Algebra.TensorProduct.includeLeft_apply, Algebra.TensorProduct.tmul_mul_tmul]
-  convert(MulZeroClass.mul_zero _).symm
+  convert (MulZeroClass.mul_zero _).symm
   rw [Polynomial.eval₂_map, Algebra.TensorProduct.includeLeft_comp_algebraMap, ←
     Polynomial.eval₂_map]
   convert Polynomial.eval₂_at_apply algebra.tensor_product.include_right.to_ring_hom y
@@ -801,7 +802,7 @@ theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
     use normalizeScaleRoots_monic p this
     rw [normalizeScaleRoots_eval₂_leadingCoeff_mul p h' f x, h, MulZeroClass.mul_zero]
   · by_cases hp : p.map f = 0
-    · apply_fun fun q => coeff q p.nat_degree  at hp 
+    · apply_fun fun q => coeff q p.nat_degree at hp 
       rw [coeff_map, coeff_zero, coeff_nat_degree] at hp 
       rw [hp, MulZeroClass.zero_mul]
       exact f.is_integral_zero
@@ -828,7 +829,7 @@ end
 section IsIntegralClosure
 
 #print IsIntegralClosure /-
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`algebraMap_injective] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`algebraMap_injective] [] -/
 /-- `is_integral_closure A R B` is the characteristic predicate stating `A` is
 the integral closure of `R` in `B`,
 i.e. that an element of `B` is integral over `R` iff it is an element of (the image of) `A`.
Diff
@@ -106,7 +106,7 @@ theorem isIntegral_of_noetherian (H : IsNoetherian R A) (x : A) : IsIntegral R x
   cases' HM with N HN
   have HM : ¬M < D (N + 1) :=
     WellFounded.not_lt_min (isNoetherian_iff_wellFounded.1 H) (Set.range D) _ ⟨N + 1, rfl⟩
-  rw [← HN] at HM
+  rw [← HN] at HM 
   have HN2 : D (N + 1) ≤ D N :=
     by_contradiction fun H =>
       HM (lt_of_le_not_le (map_mono (degree_le_mono (WithBot.coe_le_coe.2 (Nat.le_succ N)))) H)
@@ -156,7 +156,7 @@ theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type _} [CommRing R]
     [CommRing T] [CommRing U] [Algebra R S] [Algebra T U] (φ : R →+* T) (ψ : S →+* U)
     (h : (algebraMap T U).comp φ = ψ.comp (algebraMap R S)) {a : S} (ha : IsIntegral R a) :
     IsIntegral T (ψ a) := by
-  rw [IsIntegral, RingHom.IsIntegralElem] at ha⊢
+  rw [IsIntegral, RingHom.IsIntegralElem] at ha ⊢
   obtain ⟨p, hp⟩ := ha
   refine' ⟨p.map φ, hp.left.map _, _⟩
   rw [← eval_map, map_map, h, ← map_map, eval_map, eval₂_at_apply, eval_map, hp.right,
@@ -170,7 +170,7 @@ theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Al
   rintro ⟨p, hp, hx⟩
   use p, hp
   rwa [← f.comp_algebra_map, ← AlgHom.coe_toRingHom, ← Polynomial.hom_eval₂, AlgHom.coe_toRingHom,
-    map_eq_zero_iff f hf] at hx
+    map_eq_zero_iff f hf] at hx 
 #align is_integral_alg_hom_iff isIntegral_algHom_iff
 
 @[simp]
@@ -225,25 +225,25 @@ theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
   rcases hx with ⟨f, hfm, hfx⟩
   exists Finset.image ((· ^ ·) x) (Finset.range (nat_degree f + 1))
   apply le_antisymm
-  · rw [span_le]; intro s hs; rw [Finset.mem_coe] at hs
+  · rw [span_le]; intro s hs; rw [Finset.mem_coe] at hs 
     rcases Finset.mem_image.1 hs with ⟨k, hk, rfl⟩; clear hk
     exact (Algebra.adjoin R {x}).pow_mem (Algebra.subset_adjoin (Set.mem_singleton _)) k
-  intro r hr; change r ∈ Algebra.adjoin R ({x} : Set A) at hr
-  rw [Algebra.adjoin_singleton_eq_range_aeval] at hr
+  intro r hr; change r ∈ Algebra.adjoin R ({x} : Set A) at hr 
+  rw [Algebra.adjoin_singleton_eq_range_aeval] at hr 
   rcases(aeval x).mem_range.mp hr with ⟨p, rfl⟩
   rw [← mod_by_monic_add_div p hfm]
-  rw [← aeval_def] at hfx
+  rw [← aeval_def] at hfx 
   rw [AlgHom.map_add, AlgHom.map_mul, hfx, MulZeroClass.zero_mul, add_zero]
   have : degree (p %ₘ f) ≤ degree f := degree_mod_by_monic_le p hfm
-  generalize p %ₘ f = q at this⊢
+  generalize p %ₘ f = q at this ⊢
   rw [← sum_C_mul_X_pow_eq q, aeval_def, eval₂_sum, sum_def]
   refine' sum_mem fun k hkq => _
   rw [eval₂_mul, eval₂_C, eval₂_pow, eval₂_X, ← Algebra.smul_def]
   refine' smul_mem _ _ (subset_span _)
   rw [Finset.mem_coe]; refine' Finset.mem_image.2 ⟨_, _, rfl⟩
   rw [Finset.mem_range, Nat.lt_succ_iff]; refine' le_of_not_lt fun hk => _
-  rw [degree_le_iff_coeff_zero] at this
-  rw [mem_support_iff] at hkq; apply hkq; apply this
+  rw [degree_le_iff_coeff_zero] at this 
+  rw [mem_support_iff] at hkq ; apply hkq; apply this
   exact lt_of_le_of_lt degree_le_nat_degree (WithBot.coe_lt_coe.2 hk)
 #align fg_adjoin_singleton_of_integral FG_adjoin_singleton_of_integral
 
@@ -281,7 +281,7 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   cases' HS with y hy
   -- We can write `x` as `∑ rᵢ yᵢ` for `yᵢ ∈ Y`.
   obtain ⟨lx, hlx1, hlx2⟩ :
-    ∃ (l : A →₀ R)(H : l ∈ Finsupp.supported R R ↑y), (Finsupp.total A A R id) l = x := by
+    ∃ (l : A →₀ R) (H : l ∈ Finsupp.supported R R ↑y), (Finsupp.total A A R id) l = x := by
     rwa [← @Finsupp.mem_span_image_iff_total A A R _ _ _ id (↑y) x, Set.image_id ↑y, hy]
   -- Note that `y ⊆ S`.
   have hyS : ∀ {p}, p ∈ y → p ∈ S := fun p hp =>
@@ -289,7 +289,7 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   -- Now `S` is a subalgebra so the product of two elements of `y` is also in `S`.
   have : ∀ jk : (↑(y ×ˢ y) : Set (A × A)), jk.1.1 * jk.1.2 ∈ S.to_submodule := fun jk =>
     S.mul_mem (hyS (Finset.mem_product.1 jk.2).1) (hyS (Finset.mem_product.1 jk.2).2)
-  rw [← hy, ← Set.image_id ↑y] at this; simp only [Finsupp.mem_span_image_iff_total] at this
+  rw [← hy, ← Set.image_id ↑y] at this ; simp only [Finsupp.mem_span_image_iff_total] at this 
   -- Say `yᵢyⱼ = ∑rᵢⱼₖ yₖ`
   choose ly hly1 hly2
   -- Now let `S₀` be the subring of `R` generated by the `rᵢ` and the `rᵢⱼₖ`.
@@ -337,7 +337,7 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
     ·
       exact
         (span_le.2 (Set.insert_subset.2 ⟨(Algebra.adjoin S₀ ↑y).one_mem, Algebra.subset_adjoin⟩)) hz
-    · rw [Subalgebra.mem_toSubmodule, Algebra.mem_adjoin_iff] at hz
+    · rw [Subalgebra.mem_toSubmodule, Algebra.mem_adjoin_iff] at hz 
       suffices Subring.closure (Set.range ⇑(algebraMap (↥S₀) A) ∪ ↑y) ≤ S₁ by exact this hz
       refine' Subring.closure_le.2 (Set.union_subset _ fun t ht => subset_span <| Or.inr ht)
       rw [Set.range_subset_iff]
@@ -356,7 +356,7 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   have : lx r ∈ S₀ :=
     Subring.subset_closure (Finset.mem_union_left _ (Finset.mem_image_of_mem _ hr))
   change (⟨_, this⟩ : S₀) • r ∈ _
-  rw [Finsupp.mem_supported] at hlx1
+  rw [Finsupp.mem_supported] at hlx1 
   exact Subalgebra.smul_mem _ (Algebra.subset_adjoin <| hlx1 hr) _
 #align is_integral_of_mem_of_fg isIntegral_of_mem_of_FG
 
@@ -385,7 +385,7 @@ theorem isIntegral_of_smul_mem_submodule {M : Type _} [AddCommGroup M] [Module R
         map_smul' := fun r s => LinearMap.ext fun n => Subtype.ext <| smul_assoc r s n }
       (LinearMap.ext fun n => Subtype.ext <| one_smul _ _) fun x y =>
       LinearMap.ext fun n => Subtype.ext <| mul_smul x y n
-  obtain ⟨a, ha₁, ha₂⟩ : ∃ a ∈ N, a ≠ (0 : M) := by by_contra h'; push_neg  at h'; apply hN;
+  obtain ⟨a, ha₁, ha₂⟩ : ∃ a ∈ N, a ≠ (0 : M) := by by_contra h'; push_neg  at h' ; apply hN;
     rwa [eq_bot_iff]
   have : Function.Injective f :=
     by
@@ -433,7 +433,7 @@ theorem Algebra.IsIntegral.finite (h : Algebra.IsIntegral R A) [h' : Algebra.Fin
   by
   have :=
     h.to_finite (by delta RingHom.FiniteType; convert h'; ext; exact (Algebra.smul_def _ _).symm)
-  delta RingHom.Finite at this; convert this; ext; exact Algebra.smul_def _ _
+  delta RingHom.Finite at this ; convert this; ext; exact Algebra.smul_def _ _
 #align algebra.is_integral.finite Algebra.IsIntegral.finite
 
 theorem Algebra.IsIntegral.of_finite [h : Module.Finite R A] : Algebra.IsIntegral R A :=
@@ -455,7 +455,7 @@ theorem RingHom.is_integral_of_mem_closure {x y z : S} (hx : f.IsIntegralElem x)
   by
   letI : Algebra R S := f.to_algebra
   have := (FG_adjoin_singleton_of_integral x hx).mul (FG_adjoin_singleton_of_integral y hy)
-  rw [← Algebra.adjoin_union_coe_submodule, Set.singleton_union] at this
+  rw [← Algebra.adjoin_union_coe_submodule, Set.singleton_union] at this 
   exact
     isIntegral_of_mem_of_FG (Algebra.adjoin R {x, y}) this z
       (Algebra.mem_adjoin_iff.2 <| Subring.closure_mono (Set.subset_union_right _ _) hz)
@@ -602,7 +602,7 @@ theorem integralClosure.isIntegral (x : integralClosure R A) : IsIntegral R x :=
   let ⟨p, hpm, hpx⟩ := x.2
   ⟨p, hpm,
     Subtype.eq <| by
-      rwa [← aeval_def, Subtype.val_eq_coe, ← Subalgebra.val_apply, aeval_alg_hom_apply] at hpx⟩
+      rwa [← aeval_def, Subtype.val_eq_coe, ← Subalgebra.val_apply, aeval_alg_hom_apply] at hpx ⟩
 #align integral_closure.is_integral integralClosure.isIntegral
 
 theorem RingHom.is_integral_of_is_integral_mul_unit (x y : S) (r : R) (hr : f r * y = 1)
@@ -797,16 +797,16 @@ theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
   by
   by_cases h' : 1 ≤ p.nat_degree
   · use normalizeScaleRoots p
-    have : p ≠ 0 := fun h'' => by rw [h'', nat_degree_zero] at h'; exact Nat.not_succ_le_zero 0 h'
+    have : p ≠ 0 := fun h'' => by rw [h'', nat_degree_zero] at h' ; exact Nat.not_succ_le_zero 0 h'
     use normalizeScaleRoots_monic p this
     rw [normalizeScaleRoots_eval₂_leadingCoeff_mul p h' f x, h, MulZeroClass.mul_zero]
   · by_cases hp : p.map f = 0
-    · apply_fun fun q => coeff q p.nat_degree  at hp
-      rw [coeff_map, coeff_zero, coeff_nat_degree] at hp
+    · apply_fun fun q => coeff q p.nat_degree  at hp 
+      rw [coeff_map, coeff_zero, coeff_nat_degree] at hp 
       rw [hp, MulZeroClass.zero_mul]
       exact f.is_integral_zero
-    · rw [Nat.one_le_iff_ne_zero, Classical.not_not] at h'
-      rw [eq_C_of_nat_degree_eq_zero h', eval₂_C] at h
+    · rw [Nat.one_le_iff_ne_zero, Classical.not_not] at h' 
+      rw [eq_C_of_nat_degree_eq_zero h', eval₂_C] at h 
       suffices p.map f = 0 by exact (hp this).rec _
       rw [eq_C_of_nat_degree_eq_zero h', map_C, h, C_eq_zero]
 #align ring_hom.is_integral_elem_leading_coeff_mul RingHom.isIntegralElem_leadingCoeff_mul
@@ -816,7 +816,7 @@ then `p.leading_coeff • x : S` is integral over `R`. -/
 theorem isIntegral_leadingCoeff_smul [Algebra R S] (h : aeval x p = 0) :
     IsIntegral R (p.leadingCoeff • x) :=
   by
-  rw [aeval_def] at h
+  rw [aeval_def] at h 
   rw [Algebra.smul_def]
   exact (algebraMap R S).isIntegralElem_leadingCoeff_mul p x h
 #align is_integral_leading_coeff_smul isIntegral_leadingCoeff_smul
@@ -834,7 +834,7 @@ the integral closure of `R` in `B`,
 i.e. that an element of `B` is integral over `R` iff it is an element of (the image of) `A`.
 -/
 class IsIntegralClosure (A R B : Type _) [CommRing R] [CommSemiring A] [CommRing B] [Algebra R B]
-  [Algebra A B] : Prop where
+    [Algebra A B] : Prop where
   algebraMap_injective : Function.Injective (algebraMap A B)
   isIntegral_iff : ∀ {x : B}, IsIntegral R x ↔ ∃ y, algebraMap A B y = x
 #align is_integral_closure IsIntegralClosure
@@ -1011,7 +1011,7 @@ theorem isIntegral_trans (A_int : Algebra.IsIntegral R A) (x : B) (hx : IsIntegr
   let S : Set B := ↑(p.map <| algebraMap A B).frange
   refine' isIntegral_of_mem_of_FG (adjoin R (S ∪ {x})) _ _ (subset_adjoin <| Or.inr rfl)
   refine' fg_trans (FG_adjoin_of_finite (Finset.finite_toSet _) fun x hx => _) _
-  · rw [Finset.mem_coe, frange, Finset.mem_image] at hx
+  · rw [Finset.mem_coe, frange, Finset.mem_image] at hx 
     rcases hx with ⟨i, _, rfl⟩
     rw [coeff_map]
     exact map_isIntegral (IsScalarTower.toAlgHom R A B) (A_int _)
@@ -1050,7 +1050,7 @@ theorem isIntegral_tower_bot_of_isIntegral (H : Function.Injective (algebraMap A
   rcases h with ⟨p, ⟨hp, hp'⟩⟩
   refine' ⟨p, ⟨hp, _⟩⟩
   rw [IsScalarTower.algebraMap_eq R A B, ← eval₂_map, eval₂_hom, ←
-    RingHom.map_zero (algebraMap A B)] at hp'
+    RingHom.map_zero (algebraMap A B)] at hp' 
   rw [eval₂_eq_eval_map]
   exact H hp'
 #align is_integral_tower_bot_of_is_integral isIntegral_tower_bot_of_isIntegral
@@ -1072,7 +1072,7 @@ theorem isIntegral_tower_bot_of_isIntegral_field {R A B : Type _} [CommRing R] [
 theorem RingHom.isIntegralElem_of_isIntegralElem_comp {x : T} (h : (g.comp f).IsIntegralElem x) :
     g.IsIntegralElem x :=
   let ⟨p, ⟨hp, hp'⟩⟩ := h
-  ⟨p.map f, hp.map f, by rwa [← eval₂_map] at hp'⟩
+  ⟨p.map f, hp.map f, by rwa [← eval₂_map] at hp' ⟩
 #align ring_hom.is_integral_elem_of_is_integral_elem_comp RingHom.isIntegralElem_of_isIntegralElem_comp
 
 theorem RingHom.isIntegral_tower_top_of_isIntegral (h : (g.comp f).IsIntegral) : g.IsIntegral :=
@@ -1085,7 +1085,7 @@ theorem isIntegral_tower_top_of_isIntegral {x : B} (h : IsIntegral R x) : IsInte
   by
   rcases h with ⟨p, ⟨hp, hp'⟩⟩
   refine' ⟨p.map (algebraMap R A), ⟨hp.map (algebraMap R A), _⟩⟩
-  rw [IsScalarTower.algebraMap_eq R A B, ← eval₂_map] at hp'
+  rw [IsScalarTower.algebraMap_eq R A B, ← eval₂_map] at hp' 
   exact hp'
 #align is_integral_tower_top_of_is_integral isIntegral_tower_top_of_isIntegral
 
@@ -1135,7 +1135,7 @@ theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial
     apply (injective_iff_map_eq_zero (algebraMap R S)).mp hRS
     have a_inv_ne_zero : a_inv ≠ 0 := right_ne_zero_of_mul (mt ha_inv.symm.trans one_ne_zero)
     refine' (mul_eq_zero.mp _).resolve_right (pow_ne_zero p.nat_degree a_inv_ne_zero)
-    rw [eval₂_eq_sum_range] at hp
+    rw [eval₂_eq_sum_range] at hp 
     rw [RingHom.map_sum, Finset.sum_mul]
     refine' (Finset.sum_congr rfl fun i hi => _).trans hp
     rw [RingHom.map_mul, mul_assoc]
@@ -1146,7 +1146,7 @@ theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial
   -- Since `q(a) = 0` and `q(a) = q'(a) * a + 1`, we have `a * -q'(a) = 1`.
   -- TODO: we could use a lemma for `polynomial.div_X` here.
   rw [Finset.sum_range_succ_comm, p_monic.coeff_nat_degree, one_mul, tsub_self, pow_zero,
-    add_eq_zero_iff_eq_neg, eq_comm] at hq
+    add_eq_zero_iff_eq_neg, eq_comm] at hq 
   rw [mul_comm, neg_mul, Finset.sum_mul]
   convert hq using 2
   refine' Finset.sum_congr rfl fun i hi => _
Diff
@@ -39,9 +39,9 @@ Let `R` be a `comm_ring` and let `A` be an R-algebra.
 -/
 
 
-open Classical
+open scoped Classical
 
-open BigOperators Polynomial
+open scoped BigOperators Polynomial
 
 open Polynomial Submodule
 
@@ -681,7 +681,7 @@ theorem IsIntegral.pow_iff {x : A} {n : ℕ} (hn : 0 < n) : IsIntegral R (x ^ n)
   ⟨isIntegral_of_pow hn, fun hx => IsIntegral.pow hx n⟩
 #align is_integral.pow_iff IsIntegral.pow_iff
 
-open TensorProduct
+open scoped TensorProduct
 
 theorem IsIntegral.tmul (x : A) {y : B} (h : IsIntegral R y) : IsIntegral A (x ⊗ₜ[R] y) :=
   by
@@ -745,6 +745,7 @@ theorem leadingCoeff_smul_normalizeScaleRoots (p : R[X]) :
 #align leading_coeff_smul_normalize_scale_roots leadingCoeff_smul_normalizeScaleRoots
 -/
 
+#print normalizeScaleRoots_support /-
 theorem normalizeScaleRoots_support : (normalizeScaleRoots p).support ≤ p.support :=
   by
   intro x
@@ -754,6 +755,7 @@ theorem normalizeScaleRoots_support : (normalizeScaleRoots p).support ≤ p.supp
   intro h₁ h₂
   exact (h₂ h₁).rec _
 #align normalize_scale_roots_support normalizeScaleRoots_support
+-/
 
 #print normalizeScaleRoots_degree /-
 theorem normalizeScaleRoots_degree : (normalizeScaleRoots p).degree = p.degree :=
Diff
@@ -89,32 +89,14 @@ protected def Algebra.IsIntegral : Prop :=
 
 variable {R A}
 
-/- warning: ring_hom.is_integral_map -> RingHom.is_integral_map is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_3 : Ring.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S _inst_3))) {x : R}, RingHom.IsIntegralElem.{u1, u2} R S _inst_1 _inst_3 f (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S _inst_3))) (fun (_x : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S _inst_3))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S _inst_3))) f x)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_3 : Ring.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3))) {x : R}, RingHom.IsIntegralElem.{u2, u1} R S _inst_1 _inst_3 f (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3)))))) f x)
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_map RingHom.is_integral_mapₓ'. -/
 theorem RingHom.is_integral_map {x : R} : f.IsIntegralElem (f x) :=
   ⟨X - C x, monic_X_sub_C _, by simp⟩
 #align ring_hom.is_integral_map RingHom.is_integral_map
 
-/- warning: is_integral_algebra_map -> isIntegral_algebraMap is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : Ring.{u2} A] [_inst_4 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2)] {x : R}, IsIntegral.{u1, u2} R A _inst_1 _inst_2 _inst_4 (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2))) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2))) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) x)
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : Ring.{u1} A] [_inst_4 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2)] {x : R}, IsIntegral.{u2, u1} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) x) _inst_1 _inst_2 _inst_4 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2))) R A (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2))) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2))) R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)) (RingHom.instRingHomClassRingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))))) (algebraMap.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) x)
-Case conversion may be inaccurate. Consider using '#align is_integral_algebra_map isIntegral_algebraMapₓ'. -/
 theorem isIntegral_algebraMap {x : R} : IsIntegral R (algebraMap R A x) :=
   (algebraMap R A).is_integral_map
 #align is_integral_algebra_map isIntegral_algebraMap
 
-/- warning: is_integral_of_noetherian -> isIntegral_of_noetherian is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : Ring.{u2} A] [_inst_4 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2)], (IsNoetherian.{u1, u2} R A (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} A (NonUnitalNonAssocRing.toAddCommGroup.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) -> (forall (x : A), IsIntegral.{u1, u2} R A _inst_1 _inst_2 _inst_4 x)
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : Ring.{u1} A] [_inst_4 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2)], (IsNoetherian.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) -> (forall (x : A), IsIntegral.{u2, u1} R A _inst_1 _inst_2 _inst_4 x)
-Case conversion may be inaccurate. Consider using '#align is_integral_of_noetherian isIntegral_of_noetherianₓ'. -/
 theorem isIntegral_of_noetherian (H : IsNoetherian R A) (x : A) : IsIntegral R x :=
   by
   let leval : R[X] →ₗ[R] A := (aeval x).toLinearMap
@@ -135,9 +117,6 @@ theorem isIntegral_of_noetherian (H : IsNoetherian R A) (x : A) : IsIntegral R x
   rw [LinearMap.map_sub, hpe, sub_self]
 #align is_integral_of_noetherian isIntegral_of_noetherian
 
-/- warning: is_integral_of_submodule_noetherian -> isIntegral_of_submodule_noetherian is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_of_submodule_noetherian isIntegral_of_submodule_noetherianₓ'. -/
 theorem isIntegral_of_submodule_noetherian (S : Subalgebra R A) (H : IsNoetherian R S.toSubmodule)
     (x : A) (hx : x ∈ S) : IsIntegral R x :=
   by
@@ -163,9 +142,6 @@ variable [CommRing R] [CommRing A] [CommRing B] [CommRing S]
 
 variable [Algebra R A] [Algebra R B] (f : R →+* S)
 
-/- warning: map_is_integral -> map_isIntegral is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align map_is_integral map_isIntegralₓ'. -/
 theorem map_isIntegral {B C F : Type _} [Ring B] [Ring C] [Algebra R B] [Algebra A B] [Algebra R C]
     [IsScalarTower R A B] [Algebra A C] [IsScalarTower R A C] {b : B} [AlgHomClass F A B C] (f : F)
     (hb : IsIntegral R b) : IsIntegral R (f b) :=
@@ -176,9 +152,6 @@ theorem map_isIntegral {B C F : Type _} [Ring B] [Ring C] [Algebra R B] [Algebra
     aeval_alg_hom_apply, aeval_map_algebra_map, aeval_def, hP.2, _root_.map_zero]
 #align map_is_integral map_isIntegral
 
-/- warning: is_integral_map_of_comp_eq_of_is_integral -> isIntegral_map_of_comp_eq_of_isIntegral is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_map_of_comp_eq_of_is_integral isIntegral_map_of_comp_eq_of_isIntegralₓ'. -/
 theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type _} [CommRing R] [CommRing S]
     [CommRing T] [CommRing U] [Algebra R S] [Algebra T U] (φ : R →+* T) (ψ : S →+* U)
     (h : (algebraMap T U).comp φ = ψ.comp (algebraMap R S)) {a : S} (ha : IsIntegral R a) :
@@ -190,9 +163,6 @@ theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type _} [CommRing R]
     RingHom.map_zero]
 #align is_integral_map_of_comp_eq_of_is_integral isIntegral_map_of_comp_eq_of_isIntegral
 
-/- warning: is_integral_alg_hom_iff -> isIntegral_algHom_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_alg_hom_iff isIntegral_algHom_iffₓ'. -/
 theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
     (f : A →ₐ[R] B) (hf : Function.Injective f) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x :=
   by
@@ -203,51 +173,27 @@ theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Al
     map_eq_zero_iff f hf] at hx
 #align is_integral_alg_hom_iff isIntegral_algHom_iff
 
-/- warning: is_integral_alg_equiv -> isIntegral_algEquiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_alg_equiv isIntegral_algEquivₓ'. -/
 @[simp]
 theorem isIntegral_algEquiv {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
     (f : A ≃ₐ[R] B) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x :=
   ⟨fun h => by simpa using map_isIntegral f.symm.to_alg_hom h, map_isIntegral f.toAlgHom⟩
 #align is_integral_alg_equiv isIntegral_algEquiv
 
-/- warning: is_integral_of_is_scalar_tower -> isIntegral_of_isScalarTower is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_8 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6)))))] {x : B}, (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_6 x) -> (IsIntegral.{u2, u3} A B _inst_2 (CommRing.toRing.{u3} B _inst_3) _inst_7 x)
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_6 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_8 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_5) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)] {x : B}, (IsIntegral.{u1, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_6 x) -> (IsIntegral.{u3, u2} A B _inst_2 (CommRing.toRing.{u2} B _inst_3) _inst_7 x)
-Case conversion may be inaccurate. Consider using '#align is_integral_of_is_scalar_tower isIntegral_of_isScalarTowerₓ'. -/
 theorem isIntegral_of_isScalarTower [Algebra A B] [IsScalarTower R A B] {x : B}
     (hx : IsIntegral R x) : IsIntegral A x :=
   let ⟨p, hp, hpx⟩ := hx
   ⟨p.map <| algebraMap R A, hp.map _, by rw [← aeval_def, aeval_map_algebra_map, aeval_def, hpx]⟩
 #align is_integral_of_is_scalar_tower isIntegral_of_isScalarTower
 
-/- warning: map_is_integral_int -> map_isIntegral_int is a dubious translation:
-lean 3 declaration is
-  forall {B : Type.{u1}} {C : Type.{u2}} {F : Type.{u3}} [_inst_7 : Ring.{u1} B] [_inst_8 : Ring.{u2} C] {b : B} [_inst_9 : RingHomClass.{u3, u1, u2} F B C (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B _inst_7)) (NonAssocRing.toNonAssocSemiring.{u2} C (Ring.toNonAssocRing.{u2} C _inst_8))] (f : F), (IsIntegral.{0, u1} Int B Int.commRing _inst_7 (algebraInt.{u1} B _inst_7) b) -> (IsIntegral.{0, u2} Int C Int.commRing _inst_8 (algebraInt.{u2} C _inst_8) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => B -> C) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F B (fun (_x : B) => C) (MulHomClass.toFunLike.{u3, u1, u2} F B C (Distrib.toHasMul.{u1} B (NonUnitalNonAssocSemiring.toDistrib.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B _inst_7))))) (Distrib.toHasMul.{u2} C (NonUnitalNonAssocSemiring.toDistrib.{u2} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} C (NonAssocRing.toNonAssocSemiring.{u2} C (Ring.toNonAssocRing.{u2} C _inst_8))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F B C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} C (NonAssocRing.toNonAssocSemiring.{u2} C (Ring.toNonAssocRing.{u2} C _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u3, u1, u2} F B C (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B _inst_7)) (NonAssocRing.toNonAssocSemiring.{u2} C (Ring.toNonAssocRing.{u2} C _inst_8)) _inst_9)))) f b))
-but is expected to have type
-  forall {B : Type.{u3}} {C : Type.{u2}} {F : Type.{u1}} [_inst_7 : Ring.{u3} B] [_inst_8 : Ring.{u2} C] {b : B} [_inst_9 : RingHomClass.{u1, u3, u2} F B C (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)) (Semiring.toNonAssocSemiring.{u2} C (Ring.toSemiring.{u2} C _inst_8))] (f : F), (IsIntegral.{0, u3} Int B Int.instCommRingInt _inst_7 (algebraInt.{u3} B _inst_7) b) -> (IsIntegral.{0, u2} Int ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : B) => C) b) Int.instCommRingInt _inst_8 (algebraInt.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : B) => C) b) _inst_8) (FunLike.coe.{succ u1, succ u3, succ u2} F B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : B) => C) _x) (MulHomClass.toFunLike.{u1, u3, u2} F B C (NonUnitalNonAssocSemiring.toMul.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{u2} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} C (Semiring.toNonAssocSemiring.{u2} C (Ring.toSemiring.{u2} C _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u1, u3, u2} F B C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} C (Semiring.toNonAssocSemiring.{u2} C (Ring.toSemiring.{u2} C _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u1, u3, u2} F B C (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)) (Semiring.toNonAssocSemiring.{u2} C (Ring.toSemiring.{u2} C _inst_8)) _inst_9))) f b))
-Case conversion may be inaccurate. Consider using '#align map_is_integral_int map_isIntegral_intₓ'. -/
 theorem map_isIntegral_int {B C F : Type _} [Ring B] [Ring C] {b : B} [RingHomClass F B C] (f : F)
     (hb : IsIntegral ℤ b) : IsIntegral ℤ (f b) :=
   map_isIntegral (f : B →+* C).toIntAlgHom hb
 #align map_is_integral_int map_isIntegral_int
 
-/- warning: is_integral_of_subring -> isIntegral_ofSubring is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} (T : Subring.{u1} R (CommRing.toRing.{u1} R _inst_1)), (IsIntegral.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subring.{u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subring.{u1} R (CommRing.toRing.{u1} R _inst_1)) R (Subring.setLike.{u1} R (CommRing.toRing.{u1} R _inst_1))) T) A (Subring.toCommRing.{u1} R _inst_1 T) (CommRing.toRing.{u2} A _inst_2) (Algebra.ofSubring.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 T) x) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A} (T : Subring.{u2} R (CommRing.toRing.{u2} R _inst_1)), (IsIntegral.{u2, u1} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Subring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SetLike.instMembership.{u2, u2} (Subring.{u2} R (CommRing.toRing.{u2} R _inst_1)) R (Subring.instSetLikeSubring.{u2} R (CommRing.toRing.{u2} R _inst_1))) x T)) A (Subring.toCommRing.{u2} R _inst_1 T) (CommRing.toRing.{u1} A _inst_2) (Algebra.ofSubring.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 T) x) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x)
-Case conversion may be inaccurate. Consider using '#align is_integral_of_subring isIntegral_ofSubringₓ'. -/
 theorem isIntegral_ofSubring {x : A} (T : Subring R) (hx : IsIntegral T x) : IsIntegral R x :=
   isIntegral_of_isScalarTower hx
 #align is_integral_of_subring isIntegral_ofSubring
 
-/- warning: is_integral.algebra_map -> IsIntegral.algebraMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral.algebra_map IsIntegral.algebraMapₓ'. -/
 theorem IsIntegral.algebraMap [Algebra A B] [IsScalarTower R A B] {x : A} (h : IsIntegral R x) :
     IsIntegral R (algebraMap A B x) :=
   by
@@ -256,21 +202,12 @@ theorem IsIntegral.algebraMap [Algebra A B] [IsScalarTower R A B] {x : A} (h : I
   rw [IsScalarTower.algebraMap_eq R A B, ← hom_eval₂, hx, RingHom.map_zero]
 #align is_integral.algebra_map IsIntegral.algebraMap
 
-/- warning: is_integral_algebra_map_iff -> isIntegral_algebraMap_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_algebra_map_iff isIntegral_algebraMap_iffₓ'. -/
 theorem isIntegral_algebraMap_iff [Algebra A B] [IsScalarTower R A B] {x : A}
     (hAB : Function.Injective (algebraMap A B)) :
     IsIntegral R (algebraMap A B x) ↔ IsIntegral R x :=
   isIntegral_algHom_iff (IsScalarTower.toAlgHom R A B) hAB
 #align is_integral_algebra_map_iff isIntegral_algebraMap_iff
 
-/- warning: is_integral_iff_is_integral_closure_finite -> isIntegral_iff_isIntegral_closure_finite is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {r : A}, Iff (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 r) (Exists.{succ u1} (Set.{u1} R) (fun (s : Set.{u1} R) => And (Set.Finite.{u1} R s) (IsIntegral.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subring.{u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subring.{u1} R (CommRing.toRing.{u1} R _inst_1)) R (Subring.setLike.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Subring.closure.{u1} R (CommRing.toRing.{u1} R _inst_1) s)) A (Subring.toCommRing.{u1} R _inst_1 (Subring.closure.{u1} R (CommRing.toRing.{u1} R _inst_1) s)) (CommRing.toRing.{u2} A _inst_2) (Algebra.ofSubring.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (Subring.closure.{u1} R (CommRing.toRing.{u1} R _inst_1) s)) r)))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {r : A}, Iff (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 r) (Exists.{succ u2} (Set.{u2} R) (fun (s : Set.{u2} R) => And (Set.Finite.{u2} R s) (IsIntegral.{u2, u1} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Subring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SetLike.instMembership.{u2, u2} (Subring.{u2} R (CommRing.toRing.{u2} R _inst_1)) R (Subring.instSetLikeSubring.{u2} R (CommRing.toRing.{u2} R _inst_1))) x (Subring.closure.{u2} R (CommRing.toRing.{u2} R _inst_1) s))) A (Subring.toCommRing.{u2} R _inst_1 (Subring.closure.{u2} R (CommRing.toRing.{u2} R _inst_1) s)) (CommRing.toRing.{u1} A _inst_2) (Algebra.ofSubring.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (Subring.closure.{u2} R (CommRing.toRing.{u2} R _inst_1) s)) r)))
-Case conversion may be inaccurate. Consider using '#align is_integral_iff_is_integral_closure_finite isIntegral_iff_isIntegral_closure_finiteₓ'. -/
 theorem isIntegral_iff_isIntegral_closure_finite {r : A} :
     IsIntegral R r ↔ ∃ s : Set R, s.Finite ∧ IsIntegral (Subring.closure s) r :=
   by
@@ -282,9 +219,6 @@ theorem isIntegral_iff_isIntegral_closure_finite {r : A} :
   exact isIntegral_ofSubring _ hsr
 #align is_integral_iff_is_integral_closure_finite isIntegral_iff_isIntegral_closure_finite
 
-/- warning: fg_adjoin_singleton_of_integral -> FG_adjoin_singleton_of_integral is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align fg_adjoin_singleton_of_integral FG_adjoin_singleton_of_integralₓ'. -/
 theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
     (Algebra.adjoin R ({x} : Set A)).toSubmodule.FG :=
   by
@@ -313,9 +247,6 @@ theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
   exact lt_of_le_of_lt degree_le_nat_degree (WithBot.coe_lt_coe.2 hk)
 #align fg_adjoin_singleton_of_integral FG_adjoin_singleton_of_integral
 
-/- warning: fg_adjoin_of_finite -> FG_adjoin_of_finite is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align fg_adjoin_of_finite FG_adjoin_of_finiteₓ'. -/
 theorem FG_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsIntegral R x) :
     (Algebra.adjoin R s).toSubmodule.FG :=
   Set.Finite.induction_on hfs
@@ -334,17 +265,11 @@ theorem FG_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsI
     his
 #align fg_adjoin_of_finite FG_adjoin_of_finite
 
-/- warning: is_noetherian_adjoin_finset -> isNoetherian_adjoin_finset is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_noetherian_adjoin_finset isNoetherian_adjoin_finsetₓ'. -/
 theorem isNoetherian_adjoin_finset [IsNoetherianRing R] (s : Finset A)
     (hs : ∀ x ∈ s, IsIntegral R x) : IsNoetherian R (Algebra.adjoin R (↑s : Set A)) :=
   isNoetherian_of_fg_of_noetherian _ (FG_adjoin_of_finite s.finite_toSet hs)
 #align is_noetherian_adjoin_finset isNoetherian_adjoin_finset
 
-/- warning: is_integral_of_mem_of_fg -> isIntegral_of_mem_of_FG is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_of_mem_of_fg isIntegral_of_mem_of_FGₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /-- If `S` is a sub-`R`-algebra of `A` and `S` is finitely-generated as an `R`-module,
   then all elements of `S` are integral over `R`. -/
@@ -435,20 +360,11 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   exact Subalgebra.smul_mem _ (Algebra.subset_adjoin <| hlx1 hr) _
 #align is_integral_of_mem_of_fg isIntegral_of_mem_of_FG
 
-/- warning: module.End.is_integral -> Module.End.isIntegral is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_7 : AddCommGroup.{u2} M] [_inst_8 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7)] [_inst_9 : Module.Finite.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7) _inst_8], Algebra.IsIntegral.{u1, u2} R (Module.End.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7) _inst_8) _inst_1 (Module.End.ring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_7 _inst_8) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7) _inst_8)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_7 : AddCommGroup.{u2} M] [_inst_8 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7)] [_inst_9 : Module.Finite.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7) _inst_8], Algebra.IsIntegral.{u1, u2} R (Module.End.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7) _inst_8) _inst_1 (Module.End.ring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_7 _inst_8) (Module.instAlgebraEndToSemiringSemiring.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7) _inst_8)
-Case conversion may be inaccurate. Consider using '#align module.End.is_integral Module.End.isIntegralₓ'. -/
 theorem Module.End.isIntegral {M : Type _} [AddCommGroup M] [Module R M] [Module.Finite R M] :
     Algebra.IsIntegral R (Module.End R M) :=
   LinearMap.exists_monic_and_aeval_eq_zero R
 #align module.End.is_integral Module.End.isIntegral
 
-/- warning: is_integral_of_smul_mem_submodule -> isIntegral_of_smul_mem_submodule is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_of_smul_mem_submodule isIntegral_of_smul_mem_submoduleₓ'. -/
 /-- Suppose `A` is an `R`-algebra, `M` is an `A`-module such that `a • m ≠ 0` for all non-zero `a`
 and `m`. If `x : A` fixes a nontrivial f.g. `R`-submodule `N` of `M`, then `x` is `R`-integral. -/
 theorem isIntegral_of_smul_mem_submodule {M : Type _} [AddCommGroup M] [Module R M] [Module A M]
@@ -486,32 +402,14 @@ theorem isIntegral_of_smul_mem_submodule {M : Type _} [AddCommGroup M] [Module R
 
 variable {f}
 
-/- warning: ring_hom.finite.to_is_integral -> RingHom.Finite.to_isIntegral is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))}, (RingHom.Finite.{u1, u2} R S _inst_1 _inst_4 f) -> (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] {f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))}, (RingHom.Finite.{u2, u1} R S _inst_1 _inst_4 f) -> (RingHom.IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f)
-Case conversion may be inaccurate. Consider using '#align ring_hom.finite.to_is_integral RingHom.Finite.to_isIntegralₓ'. -/
 theorem RingHom.Finite.to_isIntegral (h : f.Finite) : f.IsIntegral :=
   letI := f.to_algebra
   fun x => isIntegral_of_mem_of_FG ⊤ h.1 _ trivial
 #align ring_hom.finite.to_is_integral RingHom.Finite.to_isIntegral
 
-/- warning: ring_hom.is_integral.of_finite -> RingHom.IsIntegral.of_finite is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))}, (RingHom.Finite.{u1, u2} R S _inst_1 _inst_4 f) -> (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] {f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))}, (RingHom.Finite.{u2, u1} R S _inst_1 _inst_4 f) -> (RingHom.IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f)
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral.of_finite RingHom.IsIntegral.of_finiteₓ'. -/
 alias RingHom.Finite.to_isIntegral ← RingHom.IsIntegral.of_finite
 #align ring_hom.is_integral.of_finite RingHom.IsIntegral.of_finite
 
-/- warning: ring_hom.is_integral.to_finite -> RingHom.IsIntegral.to_finite is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))}, (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f) -> (RingHom.FiniteType.{u1, u2} R S _inst_1 _inst_4 f) -> (RingHom.Finite.{u1, u2} R S _inst_1 _inst_4 f)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] {f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))}, (RingHom.IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f) -> (RingHom.FiniteType.{u2, u1} R S _inst_1 _inst_4 f) -> (RingHom.Finite.{u2, u1} R S _inst_1 _inst_4 f)
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral.to_finite RingHom.IsIntegral.to_finiteₓ'. -/
 theorem RingHom.IsIntegral.to_finite (h : f.IsIntegral) (h' : f.FiniteType) : f.Finite :=
   by
   letI := f.to_algebra
@@ -522,32 +420,14 @@ theorem RingHom.IsIntegral.to_finite (h : f.IsIntegral) (h' : f.FiniteType) : f.
   exact FG_adjoin_of_finite (Set.toFinite _) fun x _ => h x
 #align ring_hom.is_integral.to_finite RingHom.IsIntegral.to_finite
 
-/- warning: ring_hom.finite.of_is_integral_of_finite_type -> RingHom.Finite.of_isIntegral_of_finiteType is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))}, (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f) -> (RingHom.FiniteType.{u1, u2} R S _inst_1 _inst_4 f) -> (RingHom.Finite.{u1, u2} R S _inst_1 _inst_4 f)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] {f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))}, (RingHom.IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f) -> (RingHom.FiniteType.{u2, u1} R S _inst_1 _inst_4 f) -> (RingHom.Finite.{u2, u1} R S _inst_1 _inst_4 f)
-Case conversion may be inaccurate. Consider using '#align ring_hom.finite.of_is_integral_of_finite_type RingHom.Finite.of_isIntegral_of_finiteTypeₓ'. -/
 alias RingHom.IsIntegral.to_finite ← RingHom.Finite.of_isIntegral_of_finiteType
 #align ring_hom.finite.of_is_integral_of_finite_type RingHom.Finite.of_isIntegral_of_finiteType
 
-/- warning: ring_hom.finite_iff_is_integral_and_finite_type -> RingHom.finite_iff_isIntegral_and_finiteType is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))}, Iff (RingHom.Finite.{u1, u2} R S _inst_1 _inst_4 f) (And (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f) (RingHom.FiniteType.{u1, u2} R S _inst_1 _inst_4 f))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] {f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))}, Iff (RingHom.Finite.{u2, u1} R S _inst_1 _inst_4 f) (And (RingHom.IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f) (RingHom.FiniteType.{u2, u1} R S _inst_1 _inst_4 f))
-Case conversion may be inaccurate. Consider using '#align ring_hom.finite_iff_is_integral_and_finite_type RingHom.finite_iff_isIntegral_and_finiteTypeₓ'. -/
 /-- finite = integral + finite type -/
 theorem RingHom.finite_iff_isIntegral_and_finiteType : f.Finite ↔ f.IsIntegral ∧ f.FiniteType :=
   ⟨fun h => ⟨h.to_isIntegral, h.to_finiteType⟩, fun ⟨h, h'⟩ => h.toFinite h'⟩
 #align ring_hom.finite_iff_is_integral_and_finite_type RingHom.finite_iff_isIntegral_and_finiteType
 
-/- warning: algebra.is_integral.finite -> Algebra.IsIntegral.finite is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], (Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5) -> (forall [h' : Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5], Module.Finite.{u1, u2} R A (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} A (NonUnitalNonAssocRing.toAddCommGroup.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))], (Algebra.IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5) -> (forall [h' : Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5], Module.Finite.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))
-Case conversion may be inaccurate. Consider using '#align algebra.is_integral.finite Algebra.IsIntegral.finiteₓ'. -/
 theorem Algebra.IsIntegral.finite (h : Algebra.IsIntegral R A) [h' : Algebra.FiniteType R A] :
     Module.Finite R A :=
   by
@@ -556,24 +436,12 @@ theorem Algebra.IsIntegral.finite (h : Algebra.IsIntegral R A) [h' : Algebra.Fin
   delta RingHom.Finite at this; convert this; ext; exact Algebra.smul_def _ _
 #align algebra.is_integral.finite Algebra.IsIntegral.finite
 
-/- warning: algebra.is_integral.of_finite -> Algebra.IsIntegral.of_finite is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [h : Module.Finite.{u1, u2} R A (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} A (NonUnitalNonAssocRing.toAddCommGroup.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)], Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] [h : Module.Finite.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)], Algebra.IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5
-Case conversion may be inaccurate. Consider using '#align algebra.is_integral.of_finite Algebra.IsIntegral.of_finiteₓ'. -/
 theorem Algebra.IsIntegral.of_finite [h : Module.Finite R A] : Algebra.IsIntegral R A :=
   by
   apply RingHom.Finite.to_isIntegral
   delta RingHom.Finite; convert h; ext; exact (Algebra.smul_def _ _).symm
 #align algebra.is_integral.of_finite Algebra.IsIntegral.of_finite
 
-/- warning: algebra.finite_iff_is_integral_and_finite_type -> Algebra.finite_iff_isIntegral_and_finiteType is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Module.Finite.{u1, u2} R A (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} A (NonUnitalNonAssocRing.toAddCommGroup.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (And (Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5) (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))], Iff (Module.Finite.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (And (Algebra.IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5) (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))
-Case conversion may be inaccurate. Consider using '#align algebra.finite_iff_is_integral_and_finite_type Algebra.finite_iff_isIntegral_and_finiteTypeₓ'. -/
 /-- finite = integral + finite type -/
 theorem Algebra.finite_iff_isIntegral_and_finiteType :
     Module.Finite R A ↔ Algebra.IsIntegral R A ∧ Algebra.FiniteType R A :=
@@ -582,12 +450,6 @@ theorem Algebra.finite_iff_isIntegral_and_finiteType :
 
 variable (f)
 
-/- warning: ring_hom.is_integral_of_mem_closure -> RingHom.is_integral_of_mem_closure is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) {x : S} {y : S} {z : S}, (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f y) -> (Membership.Mem.{u2, u2} S (Subring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (SetLike.hasMem.{u2, u2} (Subring.{u2} S (CommRing.toRing.{u2} S _inst_4)) S (Subring.setLike.{u2} S (CommRing.toRing.{u2} S _inst_4))) z (Subring.closure.{u2} S (CommRing.toRing.{u2} S _inst_4) (Insert.insert.{u2, u2} S (Set.{u2} S) (Set.hasInsert.{u2} S) x (Singleton.singleton.{u2, u2} S (Set.{u2} S) (Set.hasSingleton.{u2} S) y)))) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f z)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) {x : S} {y : S} {z : S}, (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f y) -> (Membership.mem.{u1, u1} S (Subring.{u1} S (CommRing.toRing.{u1} S _inst_4)) (SetLike.instMembership.{u1, u1} (Subring.{u1} S (CommRing.toRing.{u1} S _inst_4)) S (Subring.instSetLikeSubring.{u1} S (CommRing.toRing.{u1} S _inst_4))) z (Subring.closure.{u1} S (CommRing.toRing.{u1} S _inst_4) (Insert.insert.{u1, u1} S (Set.{u1} S) (Set.instInsertSet.{u1} S) x (Singleton.singleton.{u1, u1} S (Set.{u1} S) (Set.instSingletonSet.{u1} S) y)))) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f z)
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_of_mem_closure RingHom.is_integral_of_mem_closureₓ'. -/
 theorem RingHom.is_integral_of_mem_closure {x y z : S} (hx : f.IsIntegralElem x)
     (hy : f.IsIntegralElem y) (hz : z ∈ Subring.closure ({x, y} : Set S)) : f.IsIntegralElem z :=
   by
@@ -599,140 +461,62 @@ theorem RingHom.is_integral_of_mem_closure {x y z : S} (hx : f.IsIntegralElem x)
       (Algebra.mem_adjoin_iff.2 <| Subring.closure_mono (Set.subset_union_right _ _) hz)
 #align ring_hom.is_integral_of_mem_closure RingHom.is_integral_of_mem_closure
 
-/- warning: is_integral_of_mem_closure -> isIntegral_of_mem_closure is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} {y : A} {z : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 y) -> (Membership.Mem.{u2, u2} A (Subring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (SetLike.hasMem.{u2, u2} (Subring.{u2} A (CommRing.toRing.{u2} A _inst_2)) A (Subring.setLike.{u2} A (CommRing.toRing.{u2} A _inst_2))) z (Subring.closure.{u2} A (CommRing.toRing.{u2} A _inst_2) (Insert.insert.{u2, u2} A (Set.{u2} A) (Set.hasInsert.{u2} A) x (Singleton.singleton.{u2, u2} A (Set.{u2} A) (Set.hasSingleton.{u2} A) y)))) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 z)
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A} {y : A} {z : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 y) -> (Membership.mem.{u1, u1} A (Subring.{u1} A (CommRing.toRing.{u1} A _inst_2)) (SetLike.instMembership.{u1, u1} (Subring.{u1} A (CommRing.toRing.{u1} A _inst_2)) A (Subring.instSetLikeSubring.{u1} A (CommRing.toRing.{u1} A _inst_2))) z (Subring.closure.{u1} A (CommRing.toRing.{u1} A _inst_2) (Insert.insert.{u1, u1} A (Set.{u1} A) (Set.instInsertSet.{u1} A) x (Singleton.singleton.{u1, u1} A (Set.{u1} A) (Set.instSingletonSet.{u1} A) y)))) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 z)
-Case conversion may be inaccurate. Consider using '#align is_integral_of_mem_closure isIntegral_of_mem_closureₓ'. -/
 theorem isIntegral_of_mem_closure {x y z : A} (hx : IsIntegral R x) (hy : IsIntegral R y)
     (hz : z ∈ Subring.closure ({x, y} : Set A)) : IsIntegral R z :=
   (algebraMap R A).is_integral_of_mem_closure hx hy hz
 #align is_integral_of_mem_closure isIntegral_of_mem_closure
 
-/- warning: ring_hom.is_integral_zero -> RingHom.is_integral_zero is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))), RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))), RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (CommMonoidWithZero.toZero.{u1} S (CommSemiring.toCommMonoidWithZero.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_zero RingHom.is_integral_zeroₓ'. -/
 theorem RingHom.is_integral_zero : f.IsIntegralElem 0 :=
   f.map_zero ▸ f.is_integral_map
 #align ring_hom.is_integral_zero RingHom.is_integral_zero
 
-/- warning: is_integral_zero -> isIntegral_zero is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (MulZeroClass.toHasZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))], IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (CommMonoidWithZero.toZero.{u1} A (CommSemiring.toCommMonoidWithZero.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align is_integral_zero isIntegral_zeroₓ'. -/
 theorem isIntegral_zero : IsIntegral R (0 : A) :=
   (algebraMap R A).is_integral_zero
 #align is_integral_zero isIntegral_zero
 
-/- warning: ring_hom.is_integral_one -> RingHom.is_integral_one is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))), RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (OfNat.ofNat.{u2} S 1 (OfNat.mk.{u2} S 1 (One.one.{u2} S (AddMonoidWithOne.toOne.{u2} S (AddGroupWithOne.toAddMonoidWithOne.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (CommRing.toRing.{u2} S _inst_4))))))))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))), RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f (OfNat.ofNat.{u1} S 1 (One.toOfNat1.{u1} S (Semiring.toOne.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_one RingHom.is_integral_oneₓ'. -/
 theorem RingHom.is_integral_one : f.IsIntegralElem 1 :=
   f.map_one ▸ f.is_integral_map
 #align ring_hom.is_integral_one RingHom.is_integral_one
 
-/- warning: is_integral_one -> isIntegral_one is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (OfNat.ofNat.{u2} A 1 (OfNat.mk.{u2} A 1 (One.one.{u2} A (AddMonoidWithOne.toOne.{u2} A (AddGroupWithOne.toAddMonoidWithOne.{u2} A (AddCommGroupWithOne.toAddGroupWithOne.{u2} A (Ring.toAddCommGroupWithOne.{u2} A (CommRing.toRing.{u2} A _inst_2))))))))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))], IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (OfNat.ofNat.{u1} A 1 (One.toOfNat1.{u1} A (Semiring.toOne.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align is_integral_one isIntegral_oneₓ'. -/
 theorem isIntegral_one : IsIntegral R (1 : A) :=
   (algebraMap R A).is_integral_one
 #align is_integral_one isIntegral_one
 
-/- warning: ring_hom.is_integral_add -> RingHom.is_integral_add is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) {x : S} {y : S}, (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f y) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (Ring.toDistrib.{u2} S (CommRing.toRing.{u2} S _inst_4)))) x y))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) {x : S} {y : S}, (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f y) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_4))))))) x y))
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_add RingHom.is_integral_addₓ'. -/
 theorem RingHom.is_integral_add {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x + y) :=
   f.is_integral_of_mem_closure hx hy <|
     Subring.add_mem _ (Subring.subset_closure (Or.inl rfl)) (Subring.subset_closure (Or.inr rfl))
 #align ring_hom.is_integral_add RingHom.is_integral_add
 
-/- warning: is_integral_add -> isIntegral_add is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} {y : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 y) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (Distrib.toHasAdd.{u2} A (Ring.toDistrib.{u2} A (CommRing.toRing.{u2} A _inst_2)))) x y))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A} {y : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 y) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (Distrib.toAdd.{u1} A (NonUnitalNonAssocSemiring.toDistrib.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))))) x y))
-Case conversion may be inaccurate. Consider using '#align is_integral_add isIntegral_addₓ'. -/
 theorem isIntegral_add {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x + y) :=
   (algebraMap R A).is_integral_add hx hy
 #align is_integral_add isIntegral_add
 
-/- warning: ring_hom.is_integral_neg -> RingHom.is_integral_neg is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) {x : S}, (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (Neg.neg.{u2} S (SubNegMonoid.toHasNeg.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) x))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) {x : S}, (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f (Neg.neg.{u1} S (Ring.toNeg.{u1} S (CommRing.toRing.{u1} S _inst_4)) x))
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_neg RingHom.is_integral_negₓ'. -/
 theorem RingHom.is_integral_neg {x : S} (hx : f.IsIntegralElem x) : f.IsIntegralElem (-x) :=
   f.is_integral_of_mem_closure hx hx (Subring.neg_mem _ (Subring.subset_closure (Or.inl rfl)))
 #align ring_hom.is_integral_neg RingHom.is_integral_neg
 
-/- warning: is_integral_neg -> isIntegral_neg is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (Neg.neg.{u2} A (SubNegMonoid.toHasNeg.{u2} A (AddGroup.toSubNegMonoid.{u2} A (AddGroupWithOne.toAddGroup.{u2} A (AddCommGroupWithOne.toAddGroupWithOne.{u2} A (Ring.toAddCommGroupWithOne.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) x))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (Neg.neg.{u1} A (Ring.toNeg.{u1} A (CommRing.toRing.{u1} A _inst_2)) x))
-Case conversion may be inaccurate. Consider using '#align is_integral_neg isIntegral_negₓ'. -/
 theorem isIntegral_neg {x : A} (hx : IsIntegral R x) : IsIntegral R (-x) :=
   (algebraMap R A).is_integral_neg hx
 #align is_integral_neg isIntegral_neg
 
-/- warning: ring_hom.is_integral_sub -> RingHom.is_integral_sub is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) {x : S} {y : S}, (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f y) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (CommRing.toRing.{u2} S _inst_4))))))) x y))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) {x : S} {y : S}, (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f y) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f (HSub.hSub.{u1, u1, u1} S S S (instHSub.{u1} S (Ring.toSub.{u1} S (CommRing.toRing.{u1} S _inst_4))) x y))
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_sub RingHom.is_integral_subₓ'. -/
 theorem RingHom.is_integral_sub {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x - y) := by
   simpa only [sub_eq_add_neg] using f.is_integral_add hx (f.is_integral_neg hy)
 #align ring_hom.is_integral_sub RingHom.is_integral_sub
 
-/- warning: is_integral_sub -> isIntegral_sub is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} {y : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 y) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HSub.hSub.{u2, u2, u2} A A A (instHSub.{u2} A (SubNegMonoid.toHasSub.{u2} A (AddGroup.toSubNegMonoid.{u2} A (AddGroupWithOne.toAddGroup.{u2} A (AddCommGroupWithOne.toAddGroupWithOne.{u2} A (Ring.toAddCommGroupWithOne.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) x y))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A} {y : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 y) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HSub.hSub.{u1, u1, u1} A A A (instHSub.{u1} A (Ring.toSub.{u1} A (CommRing.toRing.{u1} A _inst_2))) x y))
-Case conversion may be inaccurate. Consider using '#align is_integral_sub isIntegral_subₓ'. -/
 theorem isIntegral_sub {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x - y) :=
   (algebraMap R A).is_integral_sub hx hy
 #align is_integral_sub isIntegral_sub
 
-/- warning: ring_hom.is_integral_mul -> RingHom.is_integral_mul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) {x : S} {y : S}, (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f y) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (HMul.hMul.{u2, u2, u2} S S S (instHMul.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (CommRing.toRing.{u2} S _inst_4)))) x y))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) {x : S} {y : S}, (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f y) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f (HMul.hMul.{u1, u1, u1} S S S (instHMul.{u1} S (NonUnitalNonAssocRing.toMul.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_4))))) x y))
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_mul RingHom.is_integral_mulₓ'. -/
 theorem RingHom.is_integral_mul {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x * y) :=
   f.is_integral_of_mem_closure hx hy
     (Subring.mul_mem _ (Subring.subset_closure (Or.inl rfl)) (Subring.subset_closure (Or.inr rfl)))
 #align ring_hom.is_integral_mul RingHom.is_integral_mul
 
-/- warning: is_integral_mul -> isIntegral_mul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} {y : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 y) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (Ring.toDistrib.{u2} A (CommRing.toRing.{u2} A _inst_2)))) x y))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A} {y : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 y) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HMul.hMul.{u1, u1, u1} A A A (instHMul.{u1} A (NonUnitalNonAssocRing.toMul.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) x y))
-Case conversion may be inaccurate. Consider using '#align is_integral_mul isIntegral_mulₓ'. -/
 theorem isIntegral_mul {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x * y) :=
   (algebraMap R A).is_integral_mul hx hy
@@ -747,12 +531,6 @@ theorem isIntegral_smul [Algebra S A] [Algebra R S] [IsScalarTower R S A] {x : A
 #align is_integral_smul isIntegral_smul
 -/
 
-/- warning: is_integral_of_pow -> isIntegral_of_pow is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HPow.hPow.{u2, 0, u2} A Nat A (instHPow.{u2, 0} A Nat (Monoid.Pow.{u2} A (Ring.toMonoid.{u2} A (CommRing.toRing.{u2} A _inst_2)))) x n)) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HPow.hPow.{u1, 0, u1} A Nat A (instHPow.{u1, 0} A Nat (Monoid.Pow.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))))) x n)) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x)
-Case conversion may be inaccurate. Consider using '#align is_integral_of_pow isIntegral_of_powₓ'. -/
 theorem isIntegral_of_pow {x : A} {n : ℕ} (hn : 0 < n) (hx : IsIntegral R <| x ^ n) :
     IsIntegral R x := by
   rcases hx with ⟨p, ⟨hmonic, heval⟩⟩
@@ -776,9 +554,6 @@ def integralClosure : Subalgebra R A
 #align integral_closure integralClosure
 -/
 
-/- warning: mem_integral_closure_iff_mem_fg -> mem_integralClosure_iff_mem_FG is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mem_integral_closure_iff_mem_fg mem_integralClosure_iff_mem_FGₓ'. -/
 theorem mem_integralClosure_iff_mem_FG {r : A} :
     r ∈ integralClosure R A ↔ ∃ M : Subalgebra R A, M.toSubmodule.FG ∧ r ∈ M :=
   ⟨fun hr =>
@@ -788,12 +563,6 @@ theorem mem_integralClosure_iff_mem_FG {r : A} :
 
 variable {R} {A}
 
-/- warning: adjoin_le_integral_closure -> adjoin_le_integralClosure is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 (Singleton.singleton.{u2, u2} A (Set.{u2} A) (Set.hasSingleton.{u2} A) x)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.instCompleteLatticeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))) (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Singleton.singleton.{u1, u1} A (Set.{u1} A) (Set.instSingletonSet.{u1} A) x)) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_5))
-Case conversion may be inaccurate. Consider using '#align adjoin_le_integral_closure adjoin_le_integralClosureₓ'. -/
 theorem adjoin_le_integralClosure {x : A} (hx : IsIntegral R x) :
     Algebra.adjoin R {x} ≤ integralClosure R A :=
   by
@@ -802,12 +571,6 @@ theorem adjoin_le_integralClosure {x : A} (hx : IsIntegral R x) :
   exact hx
 #align adjoin_le_integral_closure adjoin_le_integralClosure
 
-/- warning: le_integral_closure_iff_is_integral -> le_integralClosure_iff_isIntegral is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {S : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5}, Iff (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))) S (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) (Algebra.IsIntegral.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) S) _inst_1 (Subalgebra.toRing.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 S) (Subalgebra.algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 S))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {S : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5}, Iff (LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.instCompleteLatticeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))) S (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_5)) (Algebra.IsIntegral.{u2, u1} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x S)) _inst_1 (Subalgebra.toRing.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 S) (Subalgebra.algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 S))
-Case conversion may be inaccurate. Consider using '#align le_integral_closure_iff_is_integral le_integralClosure_iff_isIntegralₓ'. -/
 theorem le_integralClosure_iff_isIntegral {S : Subalgebra R A} :
     S ≤ integralClosure R A ↔ Algebra.IsIntegral R S :=
   SetLike.forall.symm.trans
@@ -816,17 +579,11 @@ theorem le_integralClosure_iff_isIntegral {S : Subalgebra R A} :
         isIntegral_algebraMap_iff Subtype.coe_injective)
 #align le_integral_closure_iff_is_integral le_integralClosure_iff_isIntegral
 
-/- warning: is_integral_sup -> isIntegral_sup is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_sup isIntegral_supₓ'. -/
 theorem isIntegral_sup {S T : Subalgebra R A} :
     Algebra.IsIntegral R ↥(S ⊔ T) ↔ Algebra.IsIntegral R S ∧ Algebra.IsIntegral R T := by
   simp only [← le_integralClosure_iff_isIntegral, sup_le_iff]
 #align is_integral_sup isIntegral_sup
 
-/- warning: integral_closure_map_alg_equiv -> integralClosure_map_algEquiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align integral_closure_map_alg_equiv integralClosure_map_algEquivₓ'. -/
 /-- Mapping an integral closure along an `alg_equiv` gives the integral closure. -/
 theorem integralClosure_map_algEquiv (f : A ≃ₐ[R] B) :
     (integralClosure R A).map (f : A →ₐ[R] B) = integralClosure R B :=
@@ -841,12 +598,6 @@ theorem integralClosure_map_algEquiv (f : A ≃ₐ[R] B) :
     simp
 #align integral_closure_map_alg_equiv integralClosure_map_algEquiv
 
-/- warning: integral_closure.is_integral -> integralClosure.isIntegral is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] (x : coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)), IsIntegral.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) _inst_1 (Subalgebra.toRing.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) (Subalgebra.algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) x
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] (x : Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) x (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5))), IsIntegral.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) x (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5))) _inst_1 (Subalgebra.toRing.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) (Subalgebra.algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) x
-Case conversion may be inaccurate. Consider using '#align integral_closure.is_integral integralClosure.isIntegralₓ'. -/
 theorem integralClosure.isIntegral (x : integralClosure R A) : IsIntegral R x :=
   let ⟨p, hpm, hpx⟩ := x.2
   ⟨p, hpm,
@@ -854,12 +605,6 @@ theorem integralClosure.isIntegral (x : integralClosure R A) : IsIntegral R x :=
       rwa [← aeval_def, Subtype.val_eq_coe, ← Subalgebra.val_apply, aeval_alg_hom_apply] at hpx⟩
 #align integral_closure.is_integral integralClosure.isIntegral
 
-/- warning: ring_hom.is_integral_of_is_integral_mul_unit -> RingHom.is_integral_of_is_integral_mul_unit is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (x : S) (y : S) (r : R), (Eq.{succ u2} S (HMul.hMul.{u2, u2, u2} S S S (instHMul.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (fun (_x : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f r) y) (OfNat.ofNat.{u2} S 1 (OfNat.mk.{u2} S 1 (One.one.{u2} S (AddMonoidWithOne.toOne.{u2} S (AddGroupWithOne.toAddMonoidWithOne.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (CommRing.toRing.{u2} S _inst_4))))))))) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (HMul.hMul.{u2, u2, u2} S S S (instHMul.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (CommRing.toRing.{u2} S _inst_4)))) x y)) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f x)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (x : S) (y : S) (r : R), (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (NonUnitalNonAssocRing.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (NonAssocRing.toNonUnitalNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (Ring.toNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (CommRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) _inst_4))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R S (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))))) f r) y) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) _inst_4)))))) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (HMul.hMul.{u2, u2, u2} S S S (instHMul.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))))) x y)) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f x)
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_of_is_integral_mul_unit RingHom.is_integral_of_is_integral_mul_unitₓ'. -/
 theorem RingHom.is_integral_of_is_integral_mul_unit (x y : S) (r : R) (hr : f r * y = 1)
     (hx : f.IsIntegralElem (x * y)) : f.IsIntegralElem x :=
   by
@@ -869,23 +614,11 @@ theorem RingHom.is_integral_of_is_integral_mul_unit (x y : S) (r : R) (hr : f r
   rw [mul_comm x y, ← mul_assoc, hr, one_mul]
 #align ring_hom.is_integral_of_is_integral_mul_unit RingHom.is_integral_of_is_integral_mul_unit
 
-/- warning: is_integral_of_is_integral_mul_unit -> isIntegral_of_isIntegral_mul_unit is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} {y : A} {r : R}, (Eq.{succ u2} A (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (Ring.toDistrib.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) r) y) (OfNat.ofNat.{u2} A 1 (OfNat.mk.{u2} A 1 (One.one.{u2} A (AddMonoidWithOne.toOne.{u2} A (AddGroupWithOne.toAddMonoidWithOne.{u2} A (AddCommGroupWithOne.toAddGroupWithOne.{u2} A (Ring.toAddCommGroupWithOne.{u2} A (CommRing.toRing.{u2} A _inst_2))))))))) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (Ring.toDistrib.{u2} A (CommRing.toRing.{u2} A _inst_2)))) x y)) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] {x : A} {y : A} {r : R}, (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) A ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (NonUnitalNonAssocRing.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (NonAssocRing.toNonUnitalNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (Ring.toNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (CommRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) r) y) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) _inst_2)))))) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocRing.toMul.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2))))) x y)) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)
-Case conversion may be inaccurate. Consider using '#align is_integral_of_is_integral_mul_unit isIntegral_of_isIntegral_mul_unitₓ'. -/
 theorem isIntegral_of_isIntegral_mul_unit {x y : A} {r : R} (hr : algebraMap R A r * y = 1)
     (hx : IsIntegral R (x * y)) : IsIntegral R x :=
   (algebraMap R A).is_integral_of_is_integral_mul_unit x y r hr hx
 #align is_integral_of_is_integral_mul_unit isIntegral_of_isIntegral_mul_unit
 
-/- warning: is_integral_of_mem_closure' -> isIntegral_of_mem_closure' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] (G : Set.{u2} A), (forall (x : A), (Membership.Mem.{u2, u2} A (Set.{u2} A) (Set.hasMem.{u2} A) x G) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)) -> (forall (x : A), (Membership.Mem.{u2, u2} A (Subring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (SetLike.hasMem.{u2, u2} (Subring.{u2} A (CommRing.toRing.{u2} A _inst_2)) A (Subring.setLike.{u2} A (CommRing.toRing.{u2} A _inst_2))) x (Subring.closure.{u2} A (CommRing.toRing.{u2} A _inst_2) G)) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] (G : Set.{u2} A), (forall (x : A), (Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x G) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)) -> (forall (x : A), (Membership.mem.{u2, u2} A (Subring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (SetLike.instMembership.{u2, u2} (Subring.{u2} A (CommRing.toRing.{u2} A _inst_2)) A (Subring.instSetLikeSubring.{u2} A (CommRing.toRing.{u2} A _inst_2))) x (Subring.closure.{u2} A (CommRing.toRing.{u2} A _inst_2) G)) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x))
-Case conversion may be inaccurate. Consider using '#align is_integral_of_mem_closure' isIntegral_of_mem_closure'ₓ'. -/
 /-- Generalization of `is_integral_of_mem_closure` bootstrapped up from that lemma -/
 theorem isIntegral_of_mem_closure' (G : Set A) (hG : ∀ x ∈ G, IsIntegral R x) :
     ∀ x ∈ Subring.closure G, IsIntegral R x := fun x hx =>
@@ -893,43 +626,19 @@ theorem isIntegral_of_mem_closure' (G : Set A) (hG : ∀ x ∈ G, IsIntegral R x
     (fun _ => isIntegral_neg) fun _ _ => isIntegral_mul
 #align is_integral_of_mem_closure' isIntegral_of_mem_closure'
 
-/- warning: is_integral_of_mem_closure'' -> is_integral_of_mem_closure'' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {S : Type.{u2}} [_inst_7 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_7)))} (G : Set.{u2} S), (forall (x : S), (Membership.Mem.{u2, u2} S (Set.{u2} S) (Set.hasMem.{u2} S) x G) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_7) f x)) -> (forall (x : S), (Membership.Mem.{u2, u2} S (Subring.{u2} S (CommRing.toRing.{u2} S _inst_7)) (SetLike.hasMem.{u2, u2} (Subring.{u2} S (CommRing.toRing.{u2} S _inst_7)) S (Subring.setLike.{u2} S (CommRing.toRing.{u2} S _inst_7))) x (Subring.closure.{u2} S (CommRing.toRing.{u2} S _inst_7) G)) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_7) f x))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {S : Type.{u2}} [_inst_7 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))} (G : Set.{u2} S), (forall (x : S), (Membership.mem.{u2, u2} S (Set.{u2} S) (Set.instMembershipSet.{u2} S) x G) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_7) f x)) -> (forall (x : S), (Membership.mem.{u2, u2} S (Subring.{u2} S (CommRing.toRing.{u2} S _inst_7)) (SetLike.instMembership.{u2, u2} (Subring.{u2} S (CommRing.toRing.{u2} S _inst_7)) S (Subring.instSetLikeSubring.{u2} S (CommRing.toRing.{u2} S _inst_7))) x (Subring.closure.{u2} S (CommRing.toRing.{u2} S _inst_7) G)) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_7) f x))
-Case conversion may be inaccurate. Consider using '#align is_integral_of_mem_closure'' is_integral_of_mem_closure''ₓ'. -/
 theorem is_integral_of_mem_closure'' {S : Type _} [CommRing S] {f : R →+* S} (G : Set S)
     (hG : ∀ x ∈ G, f.IsIntegralElem x) : ∀ x ∈ Subring.closure G, f.IsIntegralElem x := fun x hx =>
   @isIntegral_of_mem_closure' R S _ _ f.toAlgebra G hG x hx
 #align is_integral_of_mem_closure'' is_integral_of_mem_closure''
 
-/- warning: is_integral.pow -> IsIntegral.pow is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (forall (n : Nat), IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HPow.hPow.{u2, 0, u2} A Nat A (instHPow.{u2, 0} A Nat (Monoid.Pow.{u2} A (Ring.toMonoid.{u2} A (CommRing.toRing.{u2} A _inst_2)))) x n))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (forall (n : Nat), IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HPow.hPow.{u1, 0, u1} A Nat A (instHPow.{u1, 0} A Nat (Monoid.Pow.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))))) x n))
-Case conversion may be inaccurate. Consider using '#align is_integral.pow IsIntegral.powₓ'. -/
 theorem IsIntegral.pow {x : A} (h : IsIntegral R x) (n : ℕ) : IsIntegral R (x ^ n) :=
   (integralClosure R A).pow_mem h n
 #align is_integral.pow IsIntegral.pow
 
-/- warning: is_integral.nsmul -> IsIntegral.nsmul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (forall (n : Nat), IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (SMul.smul.{0, u2} Nat A (AddMonoid.SMul.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddGroupWithOne.toAddMonoidWithOne.{u2} A (AddCommGroupWithOne.toAddGroupWithOne.{u2} A (Ring.toAddCommGroupWithOne.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) n x))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (forall (n : Nat), IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HSMul.hSMul.{0, u1, u1} Nat A A (instHSMul.{0, u1} Nat A (AddMonoid.SMul.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddGroupWithOne.toAddMonoidWithOne.{u1} A (Ring.toAddGroupWithOne.{u1} A (CommRing.toRing.{u1} A _inst_2)))))) n x))
-Case conversion may be inaccurate. Consider using '#align is_integral.nsmul IsIntegral.nsmulₓ'. -/
 theorem IsIntegral.nsmul {x : A} (h : IsIntegral R x) (n : ℕ) : IsIntegral R (n • x) :=
   (integralClosure R A).nsmul_mem h n
 #align is_integral.nsmul IsIntegral.nsmul
 
-/- warning: is_integral.zsmul -> IsIntegral.zsmul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (forall (n : Int), IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (SMul.smul.{0, u2} Int A (SubNegMonoid.SMulInt.{u2} A (AddGroup.toSubNegMonoid.{u2} A (AddGroupWithOne.toAddGroup.{u2} A (AddCommGroupWithOne.toAddGroupWithOne.{u2} A (Ring.toAddCommGroupWithOne.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) n x))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (forall (n : Int), IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HSMul.hSMul.{0, u1, u1} Int A A (instHSMul.{0, u1} Int A (SubNegMonoid.SMulInt.{u1} A (AddGroup.toSubNegMonoid.{u1} A (AddGroupWithOne.toAddGroup.{u1} A (Ring.toAddGroupWithOne.{u1} A (CommRing.toRing.{u1} A _inst_2)))))) n x))
-Case conversion may be inaccurate. Consider using '#align is_integral.zsmul IsIntegral.zsmulₓ'. -/
 theorem IsIntegral.zsmul {x : A} (h : IsIntegral R x) (n : ℤ) : IsIntegral R (n • x) :=
   (integralClosure R A).zsmul_mem h n
 #align is_integral.zsmul IsIntegral.zsmul
@@ -948,23 +657,11 @@ theorem IsIntegral.multiset_sum {s : Multiset A} (h : ∀ x ∈ s, IsIntegral R
 #align is_integral.multiset_sum IsIntegral.multiset_sum
 -/
 
-/- warning: is_integral.prod -> IsIntegral.prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {α : Type.{u3}} {s : Finset.{u3} α} (f : α -> A), (forall (x : α), (Membership.Mem.{u3, u3} α (Finset.{u3} α) (Finset.hasMem.{u3} α) x s) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (f x))) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (Finset.prod.{u2, u3} A α (CommRing.toCommMonoid.{u2} A _inst_2) s (fun (x : α) => f x)))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {α : Type.{u3}} {s : Finset.{u3} α} (f : α -> A), (forall (x : α), (Membership.mem.{u3, u3} α (Finset.{u3} α) (Finset.instMembershipFinset.{u3} α) x s) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (f x))) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (Finset.prod.{u1, u3} A α (CommRing.toCommMonoid.{u1} A _inst_2) s (fun (x : α) => f x)))
-Case conversion may be inaccurate. Consider using '#align is_integral.prod IsIntegral.prodₓ'. -/
 theorem IsIntegral.prod {α : Type _} {s : Finset α} (f : α → A) (h : ∀ x ∈ s, IsIntegral R (f x)) :
     IsIntegral R (∏ x in s, f x) :=
   (integralClosure R A).prod_mem h
 #align is_integral.prod IsIntegral.prod
 
-/- warning: is_integral.sum -> IsIntegral.sum is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {α : Type.{u3}} {s : Finset.{u3} α} (f : α -> A), (forall (x : α), (Membership.Mem.{u3, u3} α (Finset.{u3} α) (Finset.hasMem.{u3} α) x s) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (f x))) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (Finset.sum.{u2, u3} A α (AddCommGroup.toAddCommMonoid.{u2} A (NonUnitalNonAssocRing.toAddCommGroup.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2))))) s (fun (x : α) => f x)))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {α : Type.{u3}} {s : Finset.{u3} α} (f : α -> A), (forall (x : α), (Membership.mem.{u3, u3} α (Finset.{u3} α) (Finset.instMembershipFinset.{u3} α) x s) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (f x))) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (Finset.sum.{u1, u3} A α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) s (fun (x : α) => f x)))
-Case conversion may be inaccurate. Consider using '#align is_integral.sum IsIntegral.sumₓ'. -/
 theorem IsIntegral.sum {α : Type _} {s : Finset α} (f : α → A) (h : ∀ x ∈ s, IsIntegral R (f x)) :
     IsIntegral R (∑ x in s, f x) :=
   (integralClosure R A).sum_mem h
@@ -979,12 +676,6 @@ theorem IsIntegral.det {n : Type _} [Fintype n] [DecidableEq n] {M : Matrix n n
 #align is_integral.det IsIntegral.det
 -/
 
-/- warning: is_integral.pow_iff -> IsIntegral.pow_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Iff (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HPow.hPow.{u2, 0, u2} A Nat A (instHPow.{u2, 0} A Nat (Monoid.Pow.{u2} A (Ring.toMonoid.{u2} A (CommRing.toRing.{u2} A _inst_2)))) x n)) (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Iff (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HPow.hPow.{u1, 0, u1} A Nat A (instHPow.{u1, 0} A Nat (Monoid.Pow.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))))) x n)) (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x))
-Case conversion may be inaccurate. Consider using '#align is_integral.pow_iff IsIntegral.pow_iffₓ'. -/
 @[simp]
 theorem IsIntegral.pow_iff {x : A} {n : ℕ} (hn : 0 < n) : IsIntegral R (x ^ n) ↔ IsIntegral R x :=
   ⟨isIntegral_of_pow hn, fun hx => IsIntegral.pow hx n⟩
@@ -992,12 +683,6 @@ theorem IsIntegral.pow_iff {x : A} {n : ℕ} (hn : 0 < n) : IsIntegral R (x ^ n)
 
 open TensorProduct
 
-/- warning: is_integral.tmul -> IsIntegral.tmul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] (x : A) {y : B}, (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_6 y) -> (IsIntegral.{u2, max u2 u3} A (TensorProduct.{u1, u2, u3} R (CommRing.toCommSemiring.{u1} R _inst_1) A B (AddCommGroup.toAddCommMonoid.{u2} A (NonUnitalNonAssocRing.toAddCommGroup.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (AddCommGroup.toAddCommMonoid.{u3} B (NonUnitalNonAssocRing.toAddCommGroup.{u3} B (NonAssocRing.toNonUnitalNonAssocRing.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6)) _inst_2 (Algebra.TensorProduct.TensorProduct.ring.{u1, u2, u3} R _inst_1 A (CommRing.toRing.{u2} A _inst_2) _inst_5 B (CommRing.toRing.{u3} B _inst_3) _inst_6) (Algebra.TensorProduct.leftAlgebra.{u1, u2, u3, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6 A (CommRing.toCommSemiring.{u2} A _inst_2) _inst_5 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (IsScalarTower.right.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (TensorProduct.tmul.{u1, u2, u3} R (CommRing.toCommSemiring.{u1} R _inst_1) A B (AddCommGroup.toAddCommMonoid.{u2} A (NonUnitalNonAssocRing.toAddCommGroup.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (AddCommGroup.toAddCommMonoid.{u3} B (NonUnitalNonAssocRing.toAddCommGroup.{u3} B (NonAssocRing.toNonUnitalNonAssocRing.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6) x y))
-but is expected to have type
-  forall {R : Type.{u3}} {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u2} B] [_inst_5 : Algebra.{u3, u1} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] [_inst_6 : Algebra.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] (x : A) {y : B}, (IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_6 y) -> (IsIntegral.{u1, max u2 u1} A (TensorProduct.{u3, u1, u2} R (CommRing.toCommSemiring.{u3} R _inst_1) A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_3))))) (Algebra.toModule.{u3, u1} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.toModule.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) _inst_2 (Algebra.TensorProduct.instRingTensorProductToCommSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonAssocRingToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonAssocRingToModuleToSemiringToModuleToSemiring.{u3, u1, u2} R _inst_1 A (CommRing.toRing.{u1} A _inst_2) _inst_5 B (CommRing.toRing.{u2} B _inst_3) _inst_6) (Algebra.TensorProduct.leftAlgebra.{u3, u1, u2, u1} R (CommRing.toCommSemiring.{u3} R _inst_1) A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6 A (CommRing.toCommSemiring.{u1} A _inst_2) _inst_5 (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (IsScalarTower.right.{u3, u1} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (TensorProduct.tmul.{u3, u1, u2} R (CommRing.toCommSemiring.{u3} R _inst_1) A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_3))))) (Algebra.toModule.{u3, u1} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.toModule.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) x y))
-Case conversion may be inaccurate. Consider using '#align is_integral.tmul IsIntegral.tmulₓ'. -/
 theorem IsIntegral.tmul (x : A) {y : B} (h : IsIntegral R y) : IsIntegral A (x ⊗ₜ[R] y) :=
   by
   obtain ⟨p, hp, hp'⟩ := h
@@ -1028,12 +713,6 @@ noncomputable def normalizeScaleRoots (p : R[X]) : R[X] :=
 #align normalize_scale_roots normalizeScaleRoots
 -/
 
-/- warning: normalize_scale_roots_coeff_mul_leading_coeff_pow -> normalizeScaleRoots_coeff_mul_leadingCoeff_pow is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (i : Nat), (LE.le.{0} Nat Nat.hasLe (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Polynomial.natDegree.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p)) -> (Eq.{succ u1} R (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Polynomial.coeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (normalizeScaleRoots.{u1} R _inst_1 p) i) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p) i)) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Polynomial.coeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p i) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Polynomial.natDegree.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (p : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (i : Nat), (LE.le.{0} Nat instLENat (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Polynomial.natDegree.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) -> (Eq.{succ u1} R (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (normalizeScaleRoots.{u1} R _inst_1 p) i) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p) i)) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p i) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Polynomial.natDegree.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))
-Case conversion may be inaccurate. Consider using '#align normalize_scale_roots_coeff_mul_leading_coeff_pow normalizeScaleRoots_coeff_mul_leadingCoeff_powₓ'. -/
 theorem normalizeScaleRoots_coeff_mul_leadingCoeff_pow (i : ℕ) (hp : 1 ≤ natDegree p) :
     (normalizeScaleRoots p).coeff i * p.leadingCoeff ^ i =
       p.coeff i * p.leadingCoeff ^ (p.natDegree - 1) :=
@@ -1066,12 +745,6 @@ theorem leadingCoeff_smul_normalizeScaleRoots (p : R[X]) :
 #align leading_coeff_smul_normalize_scale_roots leadingCoeff_smul_normalizeScaleRoots
 -/
 
-/- warning: normalize_scale_roots_support -> normalizeScaleRoots_support is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))), LE.le.{0} (Finset.{0} Nat) (Preorder.toHasLe.{0} (Finset.{0} Nat) (PartialOrder.toPreorder.{0} (Finset.{0} Nat) (Finset.partialOrder.{0} Nat))) (Polynomial.support.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (normalizeScaleRoots.{u1} R _inst_1 p)) (Polynomial.support.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (p : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))), LE.le.{0} (Finset.{0} Nat) (Preorder.toLE.{0} (Finset.{0} Nat) (PartialOrder.toPreorder.{0} (Finset.{0} Nat) (Finset.partialOrder.{0} Nat))) (Polynomial.support.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (normalizeScaleRoots.{u1} R _inst_1 p)) (Polynomial.support.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)
-Case conversion may be inaccurate. Consider using '#align normalize_scale_roots_support normalizeScaleRoots_supportₓ'. -/
 theorem normalizeScaleRoots_support : (normalizeScaleRoots p).support ≤ p.support :=
   by
   intro x
@@ -1092,9 +765,6 @@ theorem normalizeScaleRoots_degree : (normalizeScaleRoots p).degree = p.degree :
 #align normalize_scale_roots_degree normalizeScaleRoots_degree
 -/
 
-/- warning: normalize_scale_roots_eval₂_leading_coeff_mul -> normalizeScaleRoots_eval₂_leadingCoeff_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align normalize_scale_roots_eval₂_leading_coeff_mul normalizeScaleRoots_eval₂_leadingCoeff_mulₓ'. -/
 theorem normalizeScaleRoots_eval₂_leadingCoeff_mul (h : 1 ≤ p.natDegree) (f : R →+* S) (x : S) :
     (normalizeScaleRoots p).eval₂ f (f p.leadingCoeff * x) =
       f p.leadingCoeff ^ (p.natDegree - 1) * p.eval₂ f x :=
@@ -1118,12 +788,6 @@ theorem normalizeScaleRoots_monic (h : p ≠ 0) : (normalizeScaleRoots p).Monic
 #align normalize_scale_roots_monic normalizeScaleRoots_monic
 -/
 
-/- warning: ring_hom.is_integral_elem_leading_coeff_mul -> RingHom.isIntegralElem_leadingCoeff_mul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (x : S), (Eq.{succ u2} S (Polynomial.eval₂.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) f x p) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))))) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (HMul.hMul.{u2, u2, u2} S S S (instHMul.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (fun (_x : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p)) x))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (p : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (x : S), (Eq.{succ u2} S (Polynomial.eval₂.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) f x p) (OfNat.ofNat.{u2} S 0 (Zero.toOfNat0.{u2} S (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))))) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) (NonUnitalNonAssocRing.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) (NonAssocRing.toNonUnitalNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) (Ring.toNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) (CommRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) _inst_4))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R S (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))))) f (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) x))
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_elem_leading_coeff_mul RingHom.isIntegralElem_leadingCoeff_mulₓ'. -/
 /-- Given a `p : R[X]` and a `x : S` such that `p.eval₂ f x = 0`,
 `f p.leading_coeff * x` is integral. -/
 theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
@@ -1145,9 +809,6 @@ theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
       rw [eq_C_of_nat_degree_eq_zero h', map_C, h, C_eq_zero]
 #align ring_hom.is_integral_elem_leading_coeff_mul RingHom.isIntegralElem_leadingCoeff_mul
 
-/- warning: is_integral_leading_coeff_smul -> isIntegral_leadingCoeff_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_leading_coeff_smul isIntegral_leadingCoeff_smulₓ'. -/
 /-- Given a `p : R[X]` and a root `x : S`,
 then `p.leading_coeff • x : S` is integral over `R`. -/
 theorem isIntegral_leadingCoeff_smul [Algebra R S] (h : aeval x p = 0) :
@@ -1177,12 +838,6 @@ class IsIntegralClosure (A R B : Type _) [CommRing R] [CommSemiring A] [CommRing
 #align is_integral_closure IsIntegralClosure
 -/
 
-/- warning: integral_closure.is_integral_closure -> integralClosure.isIntegralClosure is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) (A : Type.{u2}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], IsIntegralClosure.{u2, u1, u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3)) R A _inst_1 (Subalgebra.toCommSemiring.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3)) _inst_2 _inst_3 (Subalgebra.toAlgebra.{u2, u1, u2} A R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))
-but is expected to have type
-  forall (R : Type.{u1}) (A : Type.{u2}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))], IsIntegralClosure.{u2, u1, u2} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) x (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) R A _inst_1 (Subalgebra.toCommSemiring.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3)) _inst_2 _inst_3 (Subalgebra.toAlgebra.{u2, u1, u2} A R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))
-Case conversion may be inaccurate. Consider using '#align integral_closure.is_integral_closure integralClosure.isIntegralClosureₓ'. -/
 instance integralClosure.isIntegralClosure (R A : Type _) [CommRing R] [CommRing A] [Algebra R A] :
     IsIntegralClosure (integralClosure R A) R A :=
   ⟨Subtype.coe_injective, fun x => ⟨fun h => ⟨⟨x, h⟩, rfl⟩, by rintro ⟨⟨_, h⟩, rfl⟩; exact h⟩⟩
@@ -1196,30 +851,15 @@ variable [Algebra R B] [Algebra A B] [IsIntegralClosure A R B]
 
 variable (R) {A} (B)
 
-/- warning: is_integral_closure.is_integral -> IsIntegralClosure.isIntegral is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {A : Type.{u2}} (B : Type.{u3}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] (x : A), IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_7 x
-but is expected to have type
-  forall (R : Type.{u3}) {A : Type.{u2}} (B : Type.{u1}) [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_4 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_5 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u3, u1} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u3, u2, u1} R A B (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_7) (Algebra.toSMul.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_4)] (x : A), IsIntegral.{u3, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_7 x
-Case conversion may be inaccurate. Consider using '#align is_integral_closure.is_integral IsIntegralClosure.isIntegralₓ'. -/
 protected theorem isIntegral [Algebra R A] [IsScalarTower R A B] (x : A) : IsIntegral R x :=
   (isIntegral_algebraMap_iff (algebraMap_injective A R B)).mp <|
     show IsIntegral R (algebraMap A B x) from isIntegral_iff.mpr ⟨x, rfl⟩
 #align is_integral_closure.is_integral IsIntegralClosure.isIntegral
 
-/- warning: is_integral_closure.is_integral_algebra -> IsIntegralClosure.isIntegral_algebra is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {A : Type.{u2}} (B : Type.{u3}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))], Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_7
-but is expected to have type
-  forall (R : Type.{u3}) {A : Type.{u2}} (B : Type.{u1}) [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_4 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_5 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u3, u1} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u3, u2, u1} R A B (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_7) (Algebra.toSMul.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_4)], Algebra.IsIntegral.{u3, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_7
-Case conversion may be inaccurate. Consider using '#align is_integral_closure.is_integral_algebra IsIntegralClosure.isIntegral_algebraₓ'. -/
 theorem isIntegral_algebra [Algebra R A] [IsScalarTower R A B] : Algebra.IsIntegral R A := fun x =>
   IsIntegralClosure.isIntegral R B x
 #align is_integral_closure.is_integral_algebra IsIntegralClosure.isIntegral_algebra
 
-/- warning: is_integral_closure.no_zero_smul_divisors -> IsIntegralClosure.noZeroSMulDivisors is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_closure.no_zero_smul_divisors IsIntegralClosure.noZeroSMulDivisorsₓ'. -/
 theorem noZeroSMulDivisors [Algebra R A] [IsScalarTower R A B] [NoZeroSMulDivisors R B] :
     NoZeroSMulDivisors R A :=
   by
@@ -1238,66 +878,33 @@ noncomputable def mk' (x : B) (hx : IsIntegral R x) : A :=
 #align is_integral_closure.mk' IsIntegralClosure.mk'
 -/
 
-/- warning: is_integral_closure.algebra_map_mk' -> IsIntegralClosure.algebraMap_mk' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} (A : Type.{u2}) {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] (x : B) (hx : IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 x), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5) (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 x hx)) x
-but is expected to have type
-  forall {R : Type.{u3}} (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : Algebra.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_5 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_6 : IsIntegralClosure.{u1, u3, u2} A R B _inst_1 (CommRing.toCommSemiring.{u1} A _inst_2) _inst_3 _inst_4 _inst_5] (x : B) (hx : IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_4 x), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 x hx)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))) (RingHom.instRingHomClassRingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (algebraMap.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_5) (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 x hx)) x
-Case conversion may be inaccurate. Consider using '#align is_integral_closure.algebra_map_mk' IsIntegralClosure.algebraMap_mk'ₓ'. -/
 @[simp]
 theorem algebraMap_mk' (x : B) (hx : IsIntegral R x) : algebraMap A B (mk' A x hx) = x :=
   Classical.choose_spec (isIntegral_iff.mp hx)
 #align is_integral_closure.algebra_map_mk' IsIntegralClosure.algebraMap_mk'
 
-/- warning: is_integral_closure.mk'_one -> IsIntegralClosure.mk'_one is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} (A : Type.{u2}) {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] (h : optParam.{0} (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 (OfNat.ofNat.{u3} B 1 (OfNat.mk.{u3} B 1 (One.one.{u3} B (AddMonoidWithOne.toOne.{u3} B (AddGroupWithOne.toAddMonoidWithOne.{u3} B (AddCommGroupWithOne.toAddGroupWithOne.{u3} B (Ring.toAddCommGroupWithOne.{u3} B (CommRing.toRing.{u3} B _inst_3))))))))) (isIntegral_one.{u1, u3} R B _inst_1 _inst_3 _inst_4)), Eq.{succ u2} A (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (OfNat.ofNat.{u3} B 1 (OfNat.mk.{u3} B 1 (One.one.{u3} B (AddMonoidWithOne.toOne.{u3} B (AddGroupWithOne.toAddMonoidWithOne.{u3} B (AddCommGroupWithOne.toAddGroupWithOne.{u3} B (Ring.toAddCommGroupWithOne.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) h) (OfNat.ofNat.{u2} A 1 (OfNat.mk.{u2} A 1 (One.one.{u2} A (AddMonoidWithOne.toOne.{u2} A (AddGroupWithOne.toAddMonoidWithOne.{u2} A (AddCommGroupWithOne.toAddGroupWithOne.{u2} A (Ring.toAddCommGroupWithOne.{u2} A (CommRing.toRing.{u2} A _inst_2))))))))
-but is expected to have type
-  forall {R : Type.{u3}} (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : Algebra.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_5 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_6 : IsIntegralClosure.{u1, u3, u2} A R B _inst_1 (CommRing.toCommSemiring.{u1} A _inst_2) _inst_3 _inst_4 _inst_5] (h : optParam.{0} (IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_4 (OfNat.ofNat.{u2} B 1 (One.toOfNat1.{u2} B (Semiring.toOne.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (isIntegral_one.{u2, u3} R B _inst_1 _inst_3 _inst_4)), Eq.{succ u1} A (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (OfNat.ofNat.{u2} B 1 (One.toOfNat1.{u2} B (Semiring.toOne.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) h) (OfNat.ofNat.{u1} A 1 (One.toOfNat1.{u1} A (Semiring.toOne.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align is_integral_closure.mk'_one IsIntegralClosure.mk'_oneₓ'. -/
 @[simp]
 theorem mk'_one (h : IsIntegral R (1 : B) := isIntegral_one) : mk' A 1 h = 1 :=
   algebraMap_injective A R B <| by rw [algebra_map_mk', RingHom.map_one]
 #align is_integral_closure.mk'_one IsIntegralClosure.mk'_one
 
-/- warning: is_integral_closure.mk'_zero -> IsIntegralClosure.mk'_zero is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} (A : Type.{u2}) {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] (h : optParam.{0} (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (MulZeroClass.toHasZero.{u3} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} B (NonAssocRing.toNonUnitalNonAssocRing.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))))) (isIntegral_zero.{u1, u3} R B _inst_1 _inst_3 _inst_4)), Eq.{succ u2} A (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (MulZeroClass.toHasZero.{u3} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} B (NonAssocRing.toNonUnitalNonAssocRing.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_3))))))))) h) (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (MulZeroClass.toHasZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))))
-but is expected to have type
-  forall {R : Type.{u3}} (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : Algebra.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_5 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_6 : IsIntegralClosure.{u1, u3, u2} A R B _inst_1 (CommRing.toCommSemiring.{u1} A _inst_2) _inst_3 _inst_4 _inst_5] (h : optParam.{0} (IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_4 (OfNat.ofNat.{u2} B 0 (Zero.toOfNat0.{u2} B (CommMonoidWithZero.toZero.{u2} B (CommSemiring.toCommMonoidWithZero.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (isIntegral_zero.{u2, u3} R B _inst_1 _inst_3 _inst_4)), Eq.{succ u1} A (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (OfNat.ofNat.{u2} B 0 (Zero.toOfNat0.{u2} B (CommMonoidWithZero.toZero.{u2} B (CommSemiring.toCommMonoidWithZero.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) h) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (CommMonoidWithZero.toZero.{u1} A (CommSemiring.toCommMonoidWithZero.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align is_integral_closure.mk'_zero IsIntegralClosure.mk'_zeroₓ'. -/
 @[simp]
 theorem mk'_zero (h : IsIntegral R (0 : B) := isIntegral_zero) : mk' A 0 h = 0 :=
   algebraMap_injective A R B <| by rw [algebra_map_mk', RingHom.map_zero]
 #align is_integral_closure.mk'_zero IsIntegralClosure.mk'_zero
 
-/- warning: is_integral_closure.mk'_add -> IsIntegralClosure.mk'_add is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} (A : Type.{u2}) {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] (x : B) (y : B) (hx : IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 x) (hy : IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 y), Eq.{succ u2} A (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (Distrib.toHasAdd.{u3} B (Ring.toDistrib.{u3} B (CommRing.toRing.{u3} B _inst_3)))) x y) (isIntegral_add.{u1, u3} R B _inst_1 _inst_3 _inst_4 x y hx hy)) (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (Distrib.toHasAdd.{u2} A (Ring.toDistrib.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 x hx) (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 y hy))
-but is expected to have type
-  forall {R : Type.{u3}} (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : Algebra.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_5 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_6 : IsIntegralClosure.{u1, u3, u2} A R B _inst_1 (CommRing.toCommSemiring.{u1} A _inst_2) _inst_3 _inst_4 _inst_5] (x : B) (y : B) (hx : IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_4 x) (hy : IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_4 y), Eq.{succ u1} A (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (HAdd.hAdd.{u2, u2, u2} B B B (instHAdd.{u2} B (Distrib.toAdd.{u2} B (NonUnitalNonAssocSemiring.toDistrib.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_3))))))) x y) (isIntegral_add.{u2, u3} R B _inst_1 _inst_3 _inst_4 x y hx hy)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (Distrib.toAdd.{u1} A (NonUnitalNonAssocSemiring.toDistrib.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))))) (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 x hx) (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 y hy))
-Case conversion may be inaccurate. Consider using '#align is_integral_closure.mk'_add IsIntegralClosure.mk'_addₓ'. -/
 @[simp]
 theorem mk'_add (x y : B) (hx : IsIntegral R x) (hy : IsIntegral R y) :
     mk' A (x + y) (isIntegral_add hx hy) = mk' A x hx + mk' A y hy :=
   algebraMap_injective A R B <| by simp only [algebra_map_mk', RingHom.map_add]
 #align is_integral_closure.mk'_add IsIntegralClosure.mk'_add
 
-/- warning: is_integral_closure.mk'_mul -> IsIntegralClosure.mk'_mul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} (A : Type.{u2}) {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] (x : B) (y : B) (hx : IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 x) (hy : IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 y), Eq.{succ u2} A (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (HMul.hMul.{u3, u3, u3} B B B (instHMul.{u3} B (Distrib.toHasMul.{u3} B (Ring.toDistrib.{u3} B (CommRing.toRing.{u3} B _inst_3)))) x y) (isIntegral_mul.{u1, u3} R B _inst_1 _inst_3 _inst_4 x y hx hy)) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (Ring.toDistrib.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 x hx) (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 y hy))
-but is expected to have type
-  forall {R : Type.{u3}} (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : Algebra.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_5 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_6 : IsIntegralClosure.{u1, u3, u2} A R B _inst_1 (CommRing.toCommSemiring.{u1} A _inst_2) _inst_3 _inst_4 _inst_5] (x : B) (y : B) (hx : IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_4 x) (hy : IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_4 y), Eq.{succ u1} A (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (HMul.hMul.{u2, u2, u2} B B B (instHMul.{u2} B (NonUnitalNonAssocRing.toMul.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_3))))) x y) (isIntegral_mul.{u2, u3} R B _inst_1 _inst_3 _inst_4 x y hx hy)) (HMul.hMul.{u1, u1, u1} A A A (instHMul.{u1} A (NonUnitalNonAssocRing.toMul.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 x hx) (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 y hy))
-Case conversion may be inaccurate. Consider using '#align is_integral_closure.mk'_mul IsIntegralClosure.mk'_mulₓ'. -/
 @[simp]
 theorem mk'_mul (x y : B) (hx : IsIntegral R x) (hy : IsIntegral R y) :
     mk' A (x * y) (isIntegral_mul hx hy) = mk' A x hx * mk' A y hy :=
   algebraMap_injective A R B <| by simp only [algebra_map_mk', RingHom.map_mul]
 #align is_integral_closure.mk'_mul IsIntegralClosure.mk'_mul
 
-/- warning: is_integral_closure.mk'_algebra_map -> IsIntegralClosure.mk'_algebraMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_closure.mk'_algebra_map IsIntegralClosure.mk'_algebraMapₓ'. -/
 @[simp]
 theorem mk'_algebraMap [Algebra R A] [IsScalarTower R A B] (x : R)
     (h : IsIntegral R (algebraMap R B x) := isIntegral_algebraMap) :
@@ -1325,9 +932,6 @@ noncomputable def lift : S →ₐ[R] A
 #align is_integral_closure.lift IsIntegralClosure.lift
 -/
 
-/- warning: is_integral_closure.algebra_map_lift -> IsIntegralClosure.algebraMap_lift is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_closure.algebra_map_lift IsIntegralClosure.algebraMap_liftₓ'. -/
 @[simp]
 theorem algebraMap_lift (x : S) : algebraMap A B (lift A B h x) = algebraMap S B x :=
   algebraMap_mk' _ _ _
@@ -1350,9 +954,6 @@ noncomputable def equiv : A ≃ₐ[R] A' :=
 #align is_integral_closure.equiv IsIntegralClosure.equiv
 -/
 
-/- warning: is_integral_closure.algebra_map_equiv -> IsIntegralClosure.algebraMap_equiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_closure.algebra_map_equiv IsIntegralClosure.algebraMap_equivₓ'. -/
 @[simp]
 theorem algebraMap_equiv (x : A) : algebraMap A' B (equiv R A B A' x) = algebraMap A B x :=
   algebraMap_lift _ _ _ _
@@ -1374,9 +975,6 @@ variable [CommRing R] [CommRing A] [CommRing B] [CommRing S] [CommRing T]
 
 variable [Algebra A B] [Algebra R B] (f : R →+* S) (g : S →+* T)
 
-/- warning: is_integral_trans_aux -> isIntegral_trans_aux is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_trans_aux isIntegral_trans_auxₓ'. -/
 theorem isIntegral_trans_aux (x : B) {p : A[X]} (pmonic : Monic p) (hp : aeval x p = 0) :
     IsIntegral (adjoin R (↑(p.map <| algebraMap A B).frange : Set B)) x :=
   by
@@ -1403,12 +1001,6 @@ theorem isIntegral_trans_aux (x : B) {p : A[X]} (pmonic : Monic p) (hp : aeval x
 
 variable [Algebra R A] [IsScalarTower R A B]
 
-/- warning: is_integral_trans -> isIntegral_trans is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_8 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_9 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7)))))], (Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8) -> (forall (x : B), (IsIntegral.{u2, u3} A B _inst_2 (CommRing.toRing.{u3} B _inst_3) _inst_6 x) -> (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_7 x))
-but is expected to have type
-  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_6 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_7 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_8 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_9 : IsScalarTower.{u3, u2, u1} R A B (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_8) (Algebra.toSMul.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_7)], (Algebra.IsIntegral.{u3, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8) -> (forall (x : B), (IsIntegral.{u2, u1} A B _inst_2 (CommRing.toRing.{u1} B _inst_3) _inst_6 x) -> (IsIntegral.{u3, u1} R B _inst_1 (CommRing.toRing.{u1} B _inst_3) _inst_7 x))
-Case conversion may be inaccurate. Consider using '#align is_integral_trans isIntegral_transₓ'. -/
 /-- If A is an R-algebra all of whose elements are integral over R,
 and x is an element of an A-algebra that is integral over A, then x is integral over R.-/
 theorem isIntegral_trans (A_int : Algebra.IsIntegral R A) (x : B) (hx : IsIntegral A x) :
@@ -1425,12 +1017,6 @@ theorem isIntegral_trans (A_int : Algebra.IsIntegral R A) (x : B) (hx : IsIntegr
     exact isIntegral_trans_aux _ pmonic hp
 #align is_integral_trans isIntegral_trans
 
-/- warning: algebra.is_integral_trans -> Algebra.isIntegral_trans is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_8 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_9 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7)))))], (Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8) -> (Algebra.IsIntegral.{u2, u3} A B _inst_2 (CommRing.toRing.{u3} B _inst_3) _inst_6) -> (Algebra.IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_7)
-but is expected to have type
-  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_6 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_7 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_8 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_9 : IsScalarTower.{u3, u2, u1} R A B (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_8) (Algebra.toSMul.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_7)], (Algebra.IsIntegral.{u3, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8) -> (Algebra.IsIntegral.{u2, u1} A B _inst_2 (CommRing.toRing.{u1} B _inst_3) _inst_6) -> (Algebra.IsIntegral.{u3, u1} R B _inst_1 (CommRing.toRing.{u1} B _inst_3) _inst_7)
-Case conversion may be inaccurate. Consider using '#align algebra.is_integral_trans Algebra.isIntegral_transₓ'. -/
 /-- If A is an R-algebra all of whose elements are integral over R,
 and B is an A-algebra all of whose elements are integral over A,
 then all elements of B are integral over R.-/
@@ -1438,12 +1024,6 @@ theorem Algebra.isIntegral_trans (hA : Algebra.IsIntegral R A) (hB : Algebra.IsI
     Algebra.IsIntegral R B := fun x => isIntegral_trans hA x (hB x)
 #align algebra.is_integral_trans Algebra.isIntegral_trans
 
-/- warning: ring_hom.is_integral_trans -> RingHom.isIntegral_trans is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : CommRing.{u3} T] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (g : RingHom.{u2, u3} S T (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5)))), (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f) -> (RingHom.IsIntegral.{u2, u3} S T _inst_4 (CommRing.toRing.{u3} T _inst_5) g) -> (RingHom.IsIntegral.{u1, u3} R T _inst_1 (CommRing.toRing.{u3} T _inst_5) (RingHom.comp.{u1, u2, u3} R S T (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5))) g f))
-but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u2}} {T : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : CommRing.{u1} T] (f : RingHom.{u3, u2} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (g : RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_5)))), (RingHom.IsIntegral.{u3, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f) -> (RingHom.IsIntegral.{u2, u1} S T _inst_4 (CommRing.toRing.{u1} T _inst_5) g) -> (RingHom.IsIntegral.{u3, u1} R T _inst_1 (CommRing.toRing.{u1} T _inst_5) (RingHom.comp.{u3, u2, u1} R S T (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_5))) g f))
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_trans RingHom.isIntegral_transₓ'. -/
 theorem RingHom.isIntegral_trans (hf : f.IsIntegral) (hg : g.IsIntegral) : (g.comp f).IsIntegral :=
   @Algebra.isIntegral_trans R S T _ _ _ g.toAlgebra (g.comp f).toAlgebra f.toAlgebra
     (@IsScalarTower.of_algebraMap_eq R S T _ _ _ f.toAlgebra g.toAlgebra (g.comp f).toAlgebra
@@ -1451,30 +1031,15 @@ theorem RingHom.isIntegral_trans (hf : f.IsIntegral) (hg : g.IsIntegral) : (g.co
     hf hg
 #align ring_hom.is_integral_trans RingHom.isIntegral_trans
 
-/- warning: ring_hom.is_integral_of_surjective -> RingHom.isIntegral_of_surjective is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))), (Function.Surjective.{succ u1, succ u2} R S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (fun (_x : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f)) -> (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))), (Function.Surjective.{succ u2, succ u1} R S (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) f)) -> (RingHom.IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f)
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_of_surjective RingHom.isIntegral_of_surjectiveₓ'. -/
 theorem RingHom.isIntegral_of_surjective (hf : Function.Surjective f) : f.IsIntegral := fun x =>
   (hf x).recOn fun y hy => (hy ▸ f.is_integral_map : f.IsIntegralElem x)
 #align ring_hom.is_integral_of_surjective RingHom.isIntegral_of_surjective
 
-/- warning: is_integral_of_surjective -> isIntegral_of_surjective is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_8 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], (Function.Surjective.{succ u1, succ u2} R A (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8))) -> (Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8)
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_8 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))], (Function.Surjective.{succ u2, succ u1} R A (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) R A (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (RingHom.instRingHomClassRingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))))) (algebraMap.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_8))) -> (Algebra.IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_8)
-Case conversion may be inaccurate. Consider using '#align is_integral_of_surjective isIntegral_of_surjectiveₓ'. -/
 theorem isIntegral_of_surjective (h : Function.Surjective (algebraMap R A)) :
     Algebra.IsIntegral R A :=
   (algebraMap R A).isIntegral_of_surjective h
 #align is_integral_of_surjective isIntegral_of_surjective
 
-/- warning: is_integral_tower_bot_of_is_integral -> isIntegral_tower_bot_of_isIntegral is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_tower_bot_of_is_integral isIntegral_tower_bot_of_isIntegralₓ'. -/
 /-- If `R → A → B` is an algebra tower with `A → B` injective,
 then if the entire tower is an integral extension so is `R → A` -/
 theorem isIntegral_tower_bot_of_isIntegral (H : Function.Injective (algebraMap A B)) {x : A}
@@ -1488,12 +1053,6 @@ theorem isIntegral_tower_bot_of_isIntegral (H : Function.Injective (algebraMap A
   exact H hp'
 #align is_integral_tower_bot_of_is_integral isIntegral_tower_bot_of_isIntegral
 
-/- warning: ring_hom.is_integral_tower_bot_of_is_integral -> RingHom.isIntegral_tower_bot_of_isIntegral is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : CommRing.{u3} T] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (g : RingHom.{u2, u3} S T (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5)))), (Function.Injective.{succ u2, succ u3} S T (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} S T (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5)))) (fun (_x : RingHom.{u2, u3} S T (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5)))) => S -> T) (RingHom.hasCoeToFun.{u2, u3} S T (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5)))) g)) -> (RingHom.IsIntegral.{u1, u3} R T _inst_1 (CommRing.toRing.{u3} T _inst_5) (RingHom.comp.{u1, u2, u3} R S T (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5))) g f)) -> (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u3}} {T : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u3} S] [_inst_5 : CommRing.{u2} T] (f : RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4)))) (g : RingHom.{u3, u2} S T (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))), (Function.Injective.{succ u3, succ u2} S T (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} S T (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => T) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} S T (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))) S T (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))))) (NonUnitalNonAssocSemiring.toMul.{u2} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} T (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} S T (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))) S T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} T (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} S T (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))) S T (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5))) (RingHom.instRingHomClassRingHom.{u3, u2} S T (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5))))))) g)) -> (RingHom.IsIntegral.{u1, u2} R T _inst_1 (CommRing.toRing.{u2} T _inst_5) (RingHom.comp.{u1, u3, u2} R S T (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5))) g f)) -> (RingHom.IsIntegral.{u1, u3} R S _inst_1 (CommRing.toRing.{u3} S _inst_4) f)
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_tower_bot_of_is_integral RingHom.isIntegral_tower_bot_of_isIntegralₓ'. -/
 theorem RingHom.isIntegral_tower_bot_of_isIntegral (hg : Function.Injective g)
     (hfg : (g.comp f).IsIntegral) : f.IsIntegral := fun x =>
   @isIntegral_tower_bot_of_isIntegral R S T _ _ _ g.toAlgebra (g.comp f).toAlgebra f.toAlgebra
@@ -1502,43 +1061,22 @@ theorem RingHom.isIntegral_tower_bot_of_isIntegral (hg : Function.Injective g)
     hg x (hfg (g x))
 #align ring_hom.is_integral_tower_bot_of_is_integral RingHom.isIntegral_tower_bot_of_isIntegral
 
-/- warning: is_integral_tower_bot_of_is_integral_field -> isIntegral_tower_bot_of_isIntegral_field is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_tower_bot_of_is_integral_field isIntegral_tower_bot_of_isIntegral_fieldₓ'. -/
 theorem isIntegral_tower_bot_of_isIntegral_field {R A B : Type _} [CommRing R] [Field A]
     [CommRing B] [Nontrivial B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B]
     {x : A} (h : IsIntegral R (algebraMap A B x)) : IsIntegral R x :=
   isIntegral_tower_bot_of_isIntegral (algebraMap A B).Injective h
 #align is_integral_tower_bot_of_is_integral_field isIntegral_tower_bot_of_isIntegral_field
 
-/- warning: ring_hom.is_integral_elem_of_is_integral_elem_comp -> RingHom.isIntegralElem_of_isIntegralElem_comp is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : CommRing.{u3} T] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (g : RingHom.{u2, u3} S T (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5)))) {x : T}, (RingHom.IsIntegralElem.{u1, u3} R T _inst_1 (CommRing.toRing.{u3} T _inst_5) (RingHom.comp.{u1, u2, u3} R S T (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5))) g f) x) -> (RingHom.IsIntegralElem.{u2, u3} S T _inst_4 (CommRing.toRing.{u3} T _inst_5) g x)
-but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u1}} {T : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_4 : CommRing.{u1} S] [_inst_5 : CommRing.{u2} T] (f : RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (g : RingHom.{u1, u2} S T (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))) {x : T}, (RingHom.IsIntegralElem.{u3, u2} R T _inst_1 (CommRing.toRing.{u2} T _inst_5) (RingHom.comp.{u3, u1, u2} R S T (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5))) g f) x) -> (RingHom.IsIntegralElem.{u1, u2} S T _inst_4 (CommRing.toRing.{u2} T _inst_5) g x)
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_elem_of_is_integral_elem_comp RingHom.isIntegralElem_of_isIntegralElem_compₓ'. -/
 theorem RingHom.isIntegralElem_of_isIntegralElem_comp {x : T} (h : (g.comp f).IsIntegralElem x) :
     g.IsIntegralElem x :=
   let ⟨p, ⟨hp, hp'⟩⟩ := h
   ⟨p.map f, hp.map f, by rwa [← eval₂_map] at hp'⟩
 #align ring_hom.is_integral_elem_of_is_integral_elem_comp RingHom.isIntegralElem_of_isIntegralElem_comp
 
-/- warning: ring_hom.is_integral_tower_top_of_is_integral -> RingHom.isIntegral_tower_top_of_isIntegral is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : CommRing.{u3} T] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (g : RingHom.{u2, u3} S T (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5)))), (RingHom.IsIntegral.{u1, u3} R T _inst_1 (CommRing.toRing.{u3} T _inst_5) (RingHom.comp.{u1, u2, u3} R S T (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5))) g f)) -> (RingHom.IsIntegral.{u2, u3} S T _inst_4 (CommRing.toRing.{u3} T _inst_5) g)
-but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u1}} {T : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_4 : CommRing.{u1} S] [_inst_5 : CommRing.{u2} T] (f : RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (g : RingHom.{u1, u2} S T (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))), (RingHom.IsIntegral.{u3, u2} R T _inst_1 (CommRing.toRing.{u2} T _inst_5) (RingHom.comp.{u3, u1, u2} R S T (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5))) g f)) -> (RingHom.IsIntegral.{u1, u2} S T _inst_4 (CommRing.toRing.{u2} T _inst_5) g)
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_tower_top_of_is_integral RingHom.isIntegral_tower_top_of_isIntegralₓ'. -/
 theorem RingHom.isIntegral_tower_top_of_isIntegral (h : (g.comp f).IsIntegral) : g.IsIntegral :=
   fun x => RingHom.isIntegralElem_of_isIntegralElem_comp f g (h x)
 #align ring_hom.is_integral_tower_top_of_is_integral RingHom.isIntegral_tower_top_of_isIntegral
 
-/- warning: is_integral_tower_top_of_is_integral -> isIntegral_tower_top_of_isIntegral is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_8 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_9 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7)))))] {x : B}, (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_7 x) -> (IsIntegral.{u2, u3} A B _inst_2 (CommRing.toRing.{u3} B _inst_3) _inst_6 x)
-but is expected to have type
-  forall {R : Type.{u3}} {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u2} B] [_inst_6 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_8 : Algebra.{u3, u1} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] [_inst_9 : IsScalarTower.{u3, u1, u2} R A B (Algebra.toSMul.{u3, u1} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_8) (Algebra.toSMul.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) (Algebra.toSMul.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7)] {x : B}, (IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_7 x) -> (IsIntegral.{u1, u2} A B _inst_2 (CommRing.toRing.{u2} B _inst_3) _inst_6 x)
-Case conversion may be inaccurate. Consider using '#align is_integral_tower_top_of_is_integral isIntegral_tower_top_of_isIntegralₓ'. -/
 /-- If `R → A → B` is an algebra tower,
 then if the entire tower is an integral extension so is `A → B`. -/
 theorem isIntegral_tower_top_of_isIntegral {x : B} (h : IsIntegral R x) : IsIntegral A x :=
@@ -1549,12 +1087,6 @@ theorem isIntegral_tower_top_of_isIntegral {x : B} (h : IsIntegral R x) : IsInte
   exact hp'
 #align is_integral_tower_top_of_is_integral isIntegral_tower_top_of_isIntegral
 
-/- warning: ring_hom.is_integral_quotient_of_is_integral -> RingHom.isIntegral_quotient_of_isIntegral is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) {I : Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))}, (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f) -> (RingHom.IsIntegral.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I)) (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u1} R _inst_1 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)) (Ideal.quotientMap.{u1, u2} R S _inst_1 _inst_4 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I) I f (le_rfl.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I))))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) {I : Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))}, (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f) -> (RingHom.IsIntegral.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I)) (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u1} R _inst_1 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)) (Ideal.quotientMap.{u1, u2} R S _inst_1 _inst_4 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I) I f (le_rfl.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I))))
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_quotient_of_is_integral RingHom.isIntegral_quotient_of_isIntegralₓ'. -/
 theorem RingHom.isIntegral_quotient_of_isIntegral {I : Ideal S} (hf : f.IsIntegral) :
     (Ideal.quotientMap I f le_rfl).IsIntegral :=
   by
@@ -1564,20 +1096,11 @@ theorem RingHom.isIntegral_quotient_of_isIntegral {I : Ideal S} (hf : f.IsIntegr
   simpa only [hom_eval₂, eval₂_map] using congr_arg (Ideal.Quotient.mk I) hpx
 #align ring_hom.is_integral_quotient_of_is_integral RingHom.isIntegral_quotient_of_isIntegral
 
-/- warning: is_integral_quotient_of_is_integral -> isIntegral_quotient_of_isIntegral is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_8 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {I : Ideal.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))}, (Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8) -> (Algebra.IsIntegral.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Ideal.comap.{u1, u2, max u1 u2} R A (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (RingHom.ringHomClass.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8) I)) (HasQuotient.Quotient.{u2, u2} A (Ideal.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))) (Ideal.hasQuotient.{u2} A _inst_2) I) (Ideal.Quotient.commRing.{u1} R _inst_1 (Ideal.comap.{u1, u2, max u1 u2} R A (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (RingHom.ringHomClass.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8) I)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} A (Ideal.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))) (Ideal.hasQuotient.{u2} A _inst_2) I) (Ideal.Quotient.commRing.{u2} A _inst_2 I)) (Ideal.quotientAlgebra.{u1, u2} R _inst_1 A _inst_2 I _inst_8))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_8 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] {I : Ideal.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))}, (Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8) -> (Algebra.IsIntegral.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) (Ideal.comap.{u1, u2, max u1 u2} R A (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_8) I)) (HasQuotient.Quotient.{u2, u2} A (Ideal.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} A _inst_2) I) (Ideal.Quotient.commRing.{u1} R _inst_1 (Ideal.comap.{u1, u2, max u1 u2} R A (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_8) I)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} A (Ideal.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} A _inst_2) I) (Ideal.Quotient.commRing.{u2} A _inst_2 I)) (Ideal.quotientAlgebra.{u1, u2} R _inst_1 A _inst_2 I _inst_8))
-Case conversion may be inaccurate. Consider using '#align is_integral_quotient_of_is_integral isIntegral_quotient_of_isIntegralₓ'. -/
 theorem isIntegral_quotient_of_isIntegral {I : Ideal A} (hRA : Algebra.IsIntegral R A) :
     Algebra.IsIntegral (R ⧸ I.comap (algebraMap R A)) (A ⧸ I) :=
   (algebraMap R A).isIntegral_quotient_of_isIntegral hRA
 #align is_integral_quotient_of_is_integral isIntegral_quotient_of_isIntegral
 
-/- warning: is_integral_quotient_map_iff -> isIntegral_quotientMap_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_quotient_map_iff isIntegral_quotientMap_iffₓ'. -/
 theorem isIntegral_quotientMap_iff {I : Ideal S} :
     (Ideal.quotientMap I f le_rfl).IsIntegral ↔
       ((Ideal.Quotient.mk I).comp f : R →+* S ⧸ I).IsIntegral :=
@@ -1589,12 +1112,6 @@ theorem isIntegral_quotientMap_iff {I : Ideal S} :
   exact RingHom.isIntegral_of_surjective g Ideal.Quotient.mk_surjective
 #align is_integral_quotient_map_iff isIntegral_quotientMap_iff
 
-/- warning: is_field_of_is_integral_of_is_field -> isField_of_isIntegral_of_isField is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_10 : CommRing.{u1} R] [_inst_11 : Nontrivial.{u1} R] [_inst_12 : CommRing.{u2} S] [_inst_13 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12))] [_inst_14 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12))], (Algebra.IsIntegral.{u1, u2} R S _inst_10 (CommRing.toRing.{u2} S _inst_12) _inst_14) -> (Function.Injective.{succ u1, succ u2} R S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)) _inst_14))) -> (IsField.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12))) -> (IsField.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_10)))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_10 : CommRing.{u2} R] [_inst_11 : Nontrivial.{u2} R] [_inst_12 : CommRing.{u1} S] [_inst_13 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))] [_inst_14 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_10) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))], (Algebra.IsIntegral.{u2, u1} R S _inst_10 (CommRing.toRing.{u1} S _inst_12) _inst_14) -> (Function.Injective.{succ u2, succ u1} R S (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))))) (algebraMap.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_10) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)) _inst_14))) -> (IsField.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) -> (IsField.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10)))
-Case conversion may be inaccurate. Consider using '#align is_field_of_is_integral_of_is_field isField_of_isIntegral_of_isFieldₓ'. -/
 /-- If the integral extension `R → S` is injective, and `S` is a field, then `R` is also a field. -/
 theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial R] [CommRing S]
     [IsDomain S] [Algebra R S] (H : Algebra.IsIntegral R S)
@@ -1635,12 +1152,6 @@ theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial
   rw [mul_assoc, ← pow_succ', tsub_add_cancel_of_le this]
 #align is_field_of_is_integral_of_is_field isField_of_isIntegral_of_isField
 
-/- warning: is_field_of_is_integral_of_is_field' -> isField_of_isIntegral_of_isField' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_10 : CommRing.{u1} R] [_inst_11 : CommRing.{u2} S] [_inst_12 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_11))] [_inst_13 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_11))], (Algebra.IsIntegral.{u1, u2} R S _inst_10 (CommRing.toRing.{u2} S _inst_11) _inst_13) -> (IsField.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_10))) -> (IsField.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_11)))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_10 : CommRing.{u2} R] [_inst_11 : CommRing.{u1} S] [_inst_12 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_11))] [_inst_13 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_10) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_11))], (Algebra.IsIntegral.{u2, u1} R S _inst_10 (CommRing.toRing.{u1} S _inst_11) _inst_13) -> (IsField.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) -> (IsField.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_11)))
-Case conversion may be inaccurate. Consider using '#align is_field_of_is_integral_of_is_field' isField_of_isIntegral_of_isField'ₓ'. -/
 theorem isField_of_isIntegral_of_isField' {R S : Type _} [CommRing R] [CommRing S] [IsDomain S]
     [Algebra R S] (H : Algebra.IsIntegral R S) (hR : IsField R) : IsField S :=
   by
@@ -1658,12 +1169,6 @@ theorem isField_of_isIntegral_of_isField' {R S : Type _} [CommRing R] [CommRing
   exact ⟨y, subtype.ext_iff.mp hy⟩
 #align is_field_of_is_integral_of_is_field' isField_of_isIntegral_of_isField'
 
-/- warning: algebra.is_integral.is_field_iff_is_field -> Algebra.IsIntegral.isField_iff_isField is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_10 : CommRing.{u1} R] [_inst_11 : Nontrivial.{u1} R] [_inst_12 : CommRing.{u2} S] [_inst_13 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12))] [_inst_14 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12))], (Algebra.IsIntegral.{u1, u2} R S _inst_10 (CommRing.toRing.{u2} S _inst_12) _inst_14) -> (Function.Injective.{succ u1, succ u2} R S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)) _inst_14))) -> (Iff (IsField.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_10))) (IsField.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12))))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_10 : CommRing.{u2} R] [_inst_11 : Nontrivial.{u2} R] [_inst_12 : CommRing.{u1} S] [_inst_13 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))] [_inst_14 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_10) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))], (Algebra.IsIntegral.{u2, u1} R S _inst_10 (CommRing.toRing.{u1} S _inst_12) _inst_14) -> (Function.Injective.{succ u2, succ u1} R S (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))))) (algebraMap.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_10) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)) _inst_14))) -> (Iff (IsField.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (IsField.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))
-Case conversion may be inaccurate. Consider using '#align algebra.is_integral.is_field_iff_is_field Algebra.IsIntegral.isField_iff_isFieldₓ'. -/
 theorem Algebra.IsIntegral.isField_iff_isField {R S : Type _} [CommRing R] [Nontrivial R]
     [CommRing S] [IsDomain S] [Algebra R S] (H : Algebra.IsIntegral R S)
     (hRS : Function.Injective (algebraMap R S)) : IsField R ↔ IsField S :=
@@ -1672,9 +1177,6 @@ theorem Algebra.IsIntegral.isField_iff_isField {R S : Type _} [CommRing R] [Nont
 
 end Algebra
 
-/- warning: integral_closure_idem -> integralClosure_idem is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align integral_closure_idem integralClosure_idemₓ'. -/
 theorem integralClosure_idem {R : Type _} {A : Type _} [CommRing R] [CommRing A] [Algebra R A] :
     integralClosure (integralClosure R A : Set A) A = ⊥ :=
   eq_bot_iff.2 fun x hx =>
@@ -1692,12 +1194,6 @@ variable {R S : Type _} [CommRing R] [CommRing S] [IsDomain S] [Algebra R S]
 instance : IsDomain (integralClosure R S) :=
   inferInstance
 
-/- warning: roots_mem_integral_closure -> roots_mem_integralClosure is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} S] [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_4 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] {f : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))}, (Polynomial.Monic.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) f) -> (forall {a : S}, (Membership.Mem.{u2, u2} S (Multiset.{u2} S) (Multiset.hasMem.{u2} S) a (Polynomial.roots.{u2} S _inst_2 _inst_3 (Polynomial.map.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_4) f))) -> (Membership.Mem.{u2, u2} S (Subalgebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_4) (SetLike.hasMem.{u2, u2} (Subalgebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_4) S (Subalgebra.setLike.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_4)) a (integralClosure.{u1, u2} R S _inst_1 _inst_2 _inst_4)))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} S] [_inst_3 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))] [_inst_4 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))] {f : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))}, (Polynomial.Monic.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) f) -> (forall {a : S}, (Membership.mem.{u1, u1} S (Multiset.{u1} S) (Multiset.instMembershipMultiset.{u1} S) a (Polynomial.roots.{u1} S _inst_2 _inst_3 (Polynomial.map.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (algebraMap.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) _inst_4) f))) -> (Membership.mem.{u1, u1} S (Subalgebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) _inst_4) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) _inst_4) S (Subalgebra.instSetLikeSubalgebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) _inst_4)) a (integralClosure.{u2, u1} R S _inst_1 _inst_2 _inst_4)))
-Case conversion may be inaccurate. Consider using '#align roots_mem_integral_closure roots_mem_integralClosureₓ'. -/
 theorem roots_mem_integralClosure {f : R[X]} (hf : f.Monic) {a : S}
     (ha : a ∈ (f.map <| algebraMap R S).roots) : a ∈ integralClosure R S :=
   ⟨f, hf, (eval₂_eq_eval_map _).trans <| (mem_roots <| (hf.map _).NeZero).1 ha⟩
Diff
@@ -291,11 +291,8 @@ theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
   rcases hx with ⟨f, hfm, hfx⟩
   exists Finset.image ((· ^ ·) x) (Finset.range (nat_degree f + 1))
   apply le_antisymm
-  · rw [span_le]
-    intro s hs
-    rw [Finset.mem_coe] at hs
-    rcases Finset.mem_image.1 hs with ⟨k, hk, rfl⟩
-    clear hk
+  · rw [span_le]; intro s hs; rw [Finset.mem_coe] at hs
+    rcases Finset.mem_image.1 hs with ⟨k, hk, rfl⟩; clear hk
     exact (Algebra.adjoin R {x}).pow_mem (Algebra.subset_adjoin (Set.mem_singleton _)) k
   intro r hr; change r ∈ Algebra.adjoin R ({x} : Set A) at hr
   rw [Algebra.adjoin_singleton_eq_range_aeval] at hr
@@ -363,14 +360,11 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
     rwa [← @Finsupp.mem_span_image_iff_total A A R _ _ _ id (↑y) x, Set.image_id ↑y, hy]
   -- Note that `y ⊆ S`.
   have hyS : ∀ {p}, p ∈ y → p ∈ S := fun p hp =>
-    show p ∈ S.to_submodule by
-      rw [← hy]
-      exact subset_span hp
+    show p ∈ S.to_submodule by rw [← hy]; exact subset_span hp
   -- Now `S` is a subalgebra so the product of two elements of `y` is also in `S`.
   have : ∀ jk : (↑(y ×ˢ y) : Set (A × A)), jk.1.1 * jk.1.2 ∈ S.to_submodule := fun jk =>
     S.mul_mem (hyS (Finset.mem_product.1 jk.2).1) (hyS (Finset.mem_product.1 jk.2).2)
-  rw [← hy, ← Set.image_id ↑y] at this
-  simp only [Finsupp.mem_span_image_iff_total] at this
+  rw [← hy, ← Set.image_id ↑y] at this; simp only [Finsupp.mem_span_image_iff_total] at this
   -- Say `yᵢyⱼ = ∑rᵢⱼₖ yₖ`
   choose ly hly1 hly2
   -- Now let `S₀` be the subring of `R` generated by the `rᵢ` and the `rᵢⱼₖ`.
@@ -385,14 +379,11 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   have :
     span S₀ (insert 1 ↑y : Set A) * span S₀ (insert 1 ↑y : Set A) ≤ span S₀ (insert 1 ↑y : Set A) :=
     by
-    rw [span_mul_span]
-    refine' span_le.2 fun z hz => _
+    rw [span_mul_span]; refine' span_le.2 fun z hz => _
     rcases Set.mem_mul.1 hz with ⟨p, q, rfl | hp, hq, rfl⟩
-    · rw [one_mul]
-      exact subset_span hq
+    · rw [one_mul]; exact subset_span hq
     rcases hq with (rfl | hq)
-    · rw [mul_one]
-      exact subset_span (Or.inr hp)
+    · rw [mul_one]; exact subset_span (Or.inr hp)
     erw [← hly2 ⟨(p, q), Finset.mem_product.2 ⟨hp, hq⟩⟩]
     rw [Finsupp.total_apply, Finsupp.sum]
     refine' (span S₀ (insert 1 ↑y : Set A)).sum_mem fun t ht => _
@@ -402,8 +393,7 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
           Finset.mem_biUnion.2
             ⟨⟨(p, q), Finset.mem_product.2 ⟨hp, hq⟩⟩, Finset.mem_univ _,
               Finsupp.mem_frange.2 ⟨Finsupp.mem_support_iff.1 ht, _, rfl⟩⟩)
-    change (⟨_, this⟩ : S₀) • t ∈ _
-    exact smul_mem _ _ (subset_span <| Or.inr <| hly1 _ ht)
+    change (⟨_, this⟩ : S₀) • t ∈ _; exact smul_mem _ _ (subset_span <| Or.inr <| hly1 _ ht)
   -- Hence this span is a subring. Call this subring `S₁`.
   let S₁ : Subring A :=
     { carrier := span S₀ (insert 1 ↑y : Set A)
@@ -435,14 +425,9 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   refine'
     isIntegral_of_submodule_noetherian (Algebra.adjoin S₀ ↑y)
       (isNoetherian_of_fg_of_noetherian _
-        ⟨insert 1 y, by
-          rw [Finset.coe_insert]
-          ext z
-          simp [S₁]
-          convert foo z⟩)
+        ⟨insert 1 y, by rw [Finset.coe_insert]; ext z; simp [S₁]; convert foo z⟩)
       _ _
-  rw [← hlx2, Finsupp.total_apply, Finsupp.sum]
-  refine' Subalgebra.sum_mem _ fun r hr => _
+  rw [← hlx2, Finsupp.total_apply, Finsupp.sum]; refine' Subalgebra.sum_mem _ fun r hr => _
   have : lx r ∈ S₀ :=
     Subring.subset_closure (Finset.mem_union_left _ (Finset.mem_image_of_mem _ hr))
   change (⟨_, this⟩ : S₀) • r ∈ _
@@ -484,11 +469,7 @@ theorem isIntegral_of_smul_mem_submodule {M : Type _} [AddCommGroup M] [Module R
         map_smul' := fun r s => LinearMap.ext fun n => Subtype.ext <| smul_assoc r s n }
       (LinearMap.ext fun n => Subtype.ext <| one_smul _ _) fun x y =>
       LinearMap.ext fun n => Subtype.ext <| mul_smul x y n
-  obtain ⟨a, ha₁, ha₂⟩ : ∃ a ∈ N, a ≠ (0 : M) :=
-    by
-    by_contra h'
-    push_neg  at h'
-    apply hN
+  obtain ⟨a, ha₁, ha₂⟩ : ∃ a ∈ N, a ≠ (0 : M) := by by_contra h'; push_neg  at h'; apply hN;
     rwa [eq_bot_iff]
   have : Function.Injective f :=
     by
@@ -571,12 +552,7 @@ theorem Algebra.IsIntegral.finite (h : Algebra.IsIntegral R A) [h' : Algebra.Fin
     Module.Finite R A :=
   by
   have :=
-    h.to_finite
-      (by
-        delta RingHom.FiniteType
-        convert h'
-        ext
-        exact (Algebra.smul_def _ _).symm)
+    h.to_finite (by delta RingHom.FiniteType; convert h'; ext; exact (Algebra.smul_def _ _).symm)
   delta RingHom.Finite at this; convert this; ext; exact Algebra.smul_def _ _
 #align algebra.is_integral.finite Algebra.IsIntegral.finite
 
@@ -1026,8 +1002,7 @@ theorem IsIntegral.tmul (x : A) {y : B} (h : IsIntegral R y) : IsIntegral A (x 
   by
   obtain ⟨p, hp, hp'⟩ := h
   refine' ⟨(p.map (algebraMap R A)).scaleRoots x, _, _⟩
-  · rw [Polynomial.monic_scaleRoots_iff]
-    exact hp.map _
+  · rw [Polynomial.monic_scaleRoots_iff]; exact hp.map _
   convert@Polynomial.scaleRoots_eval₂_mul (A ⊗[R] B) A _ _ _
       algebra.tensor_product.include_left.to_ring_hom (1 ⊗ₜ y) x using
     2
@@ -1156,9 +1131,7 @@ theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
   by
   by_cases h' : 1 ≤ p.nat_degree
   · use normalizeScaleRoots p
-    have : p ≠ 0 := fun h'' => by
-      rw [h'', nat_degree_zero] at h'
-      exact Nat.not_succ_le_zero 0 h'
+    have : p ≠ 0 := fun h'' => by rw [h'', nat_degree_zero] at h'; exact Nat.not_succ_le_zero 0 h'
     use normalizeScaleRoots_monic p this
     rw [normalizeScaleRoots_eval₂_leadingCoeff_mul p h' f x, h, MulZeroClass.mul_zero]
   · by_cases hp : p.map f = 0
@@ -1212,10 +1185,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align integral_closure.is_integral_closure integralClosure.isIntegralClosureₓ'. -/
 instance integralClosure.isIntegralClosure (R A : Type _) [CommRing R] [CommRing A] [Algebra R A] :
     IsIntegralClosure (integralClosure R A) R A :=
-  ⟨Subtype.coe_injective, fun x =>
-    ⟨fun h => ⟨⟨x, h⟩, rfl⟩, by
-      rintro ⟨⟨_, h⟩, rfl⟩
-      exact h⟩⟩
+  ⟨Subtype.coe_injective, fun x => ⟨fun h => ⟨⟨x, h⟩, rfl⟩, by rintro ⟨⟨_, h⟩, rfl⟩; exact h⟩⟩
 #align integral_closure.is_integral_closure integralClosure.isIntegralClosure
 
 namespace IsIntegralClosure
@@ -1375,14 +1345,8 @@ variable [Algebra R A] [Algebra R A'] [IsScalarTower R A B] [IsScalarTower R A'
 /-- Integral closures are all isomorphic to each other. -/
 noncomputable def equiv : A ≃ₐ[R] A' :=
   AlgEquiv.ofAlgHom (lift _ B (isIntegral_algebra R B)) (lift _ B (isIntegral_algebra R B))
-    (by
-      ext x
-      apply algebra_map_injective A' R B
-      simp)
-    (by
-      ext x
-      apply algebra_map_injective A R B
-      simp)
+    (by ext x; apply algebra_map_injective A' R B; simp)
+    (by ext x; apply algebra_map_injective A R B; simp)
 #align is_integral_closure.equiv IsIntegralClosure.equiv
 -/
 
@@ -1419,24 +1383,19 @@ theorem isIntegral_trans_aux (x : B) {p : A[X]} (pmonic : Monic p) (hp : aeval x
   generalize hS : (↑(p.map <| algebraMap A B).frange : Set B) = S
   have coeffs_mem : ∀ i, (p.map <| algebraMap A B).coeff i ∈ adjoin R S :=
     by
-    intro i
-    by_cases hi : (p.map <| algebraMap A B).coeff i = 0
-    · rw [hi]
-      exact Subalgebra.zero_mem _
+    intro i; by_cases hi : (p.map <| algebraMap A B).coeff i = 0
+    · rw [hi]; exact Subalgebra.zero_mem _
     rw [← hS]
     exact subset_adjoin (coeff_mem_frange _ _ hi)
   obtain ⟨q, hq⟩ :
-    ∃ q : (adjoin R S)[X], q.map (algebraMap (adjoin R S) B) = (p.map <| algebraMap A B) :=
-    by
-    rw [← Set.mem_range]
-    exact (Polynomial.mem_map_range _).2 fun i => ⟨⟨_, coeffs_mem i⟩, rfl⟩
+    ∃ q : (adjoin R S)[X], q.map (algebraMap (adjoin R S) B) = (p.map <| algebraMap A B) := by
+    rw [← Set.mem_range]; exact (Polynomial.mem_map_range _).2 fun i => ⟨⟨_, coeffs_mem i⟩, rfl⟩
   use q
   constructor
   · suffices h : (q.map (algebraMap (adjoin R S) B)).Monic
     · refine' monic_of_injective _ h
       exact Subtype.val_injective
-    · rw [hq]
-      exact pmonic.map _
+    · rw [hq]; exact pmonic.map _
   · convert hp using 1
     replace hq := congr_arg (eval x) hq
     convert hq using 1 <;> symm <;> apply eval_map
Diff
@@ -136,10 +136,7 @@ theorem isIntegral_of_noetherian (H : IsNoetherian R A) (x : A) : IsIntegral R x
 #align is_integral_of_noetherian isIntegral_of_noetherian
 
 /- warning: is_integral_of_submodule_noetherian -> isIntegral_of_submodule_noetherian is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : Ring.{u2} A] [_inst_4 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2)] (S : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4), (IsNoetherian.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) A (Submodule.setLike.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))) (coeFn.{succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))))) (fun (_x : RelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))))))) => (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) -> (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))) (RelEmbedding.hasCoeToFun.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))))))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) S)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (coeFn.{succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))))) (fun (_x : RelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))))))) => (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) -> (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))) (RelEmbedding.hasCoeToFun.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))))))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) S)) (Submodule.module.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (coeFn.{succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))))) (fun (_x : RelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))))))) => (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) -> (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))) (RelEmbedding.hasCoeToFun.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))))))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) S))) -> (forall (x : A), (Membership.Mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.hasMem.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) x S) -> (IsIntegral.{u1, u2} R A _inst_1 _inst_2 _inst_4 x))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : Ring.{u1} A] [_inst_4 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2)] (S : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4), (IsNoetherian.{u2, u1} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) S) (SetLike.instMembership.{u1, u1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) S) A (Submodule.setLike.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4))) x (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (fun (a : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) a) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (Subalgebra.toSubmodule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) S))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (fun (_x : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (Subalgebra.toSubmodule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) S)) (Submodule.module.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (fun (_x : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (Subalgebra.toSubmodule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) S))) -> (forall (x : A), (Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) x S) -> (IsIntegral.{u2, u1} R A _inst_1 _inst_2 _inst_4 x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_of_submodule_noetherian isIntegral_of_submodule_noetherianₓ'. -/
 theorem isIntegral_of_submodule_noetherian (S : Subalgebra R A) (H : IsNoetherian R S.toSubmodule)
     (x : A) (hx : x ∈ S) : IsIntegral R x :=
@@ -167,10 +164,7 @@ variable [CommRing R] [CommRing A] [CommRing B] [CommRing S]
 variable [Algebra R A] [Algebra R B] (f : R →+* S)
 
 /- warning: map_is_integral -> map_isIntegral is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {B : Type.{u3}} {C : Type.{u4}} {F : Type.{u5}} [_inst_7 : Ring.{u3} B] [_inst_8 : Ring.{u4} C] [_inst_9 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B _inst_7)] [_inst_10 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7)] [_inst_11 : Algebra.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C _inst_8)] [_inst_12 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) _inst_10))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B _inst_7) _inst_9)))))] [_inst_13 : Algebra.{u2, u4} A C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u4} C _inst_8)] [_inst_14 : IsScalarTower.{u1, u2, u4} R A C (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toHasSmul.{u2, u4} A C (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (SMulWithZero.toSmulZeroClass.{u2, u4} A C (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (MulActionWithZero.toSMulWithZero.{u2, u4} A C (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (Module.toMulActionWithZero.{u2, u4} A C (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u2, u4} A C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13))))) (SMulZeroClass.toHasSmul.{u1, u4} R C (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R C (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R C (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (Module.toMulActionWithZero.{u1, u4} R C (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C _inst_8) _inst_11)))))] {b : B} [_inst_15 : AlgHomClass.{u5, u2, u3, u4} F A B C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) (Ring.toSemiring.{u4} C _inst_8) _inst_10 _inst_13] (f : F), (IsIntegral.{u1, u3} R B _inst_1 _inst_7 _inst_9 b) -> (IsIntegral.{u1, u4} R C _inst_1 _inst_8 _inst_11 (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => B -> C) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F B (fun (_x : B) => C) (SMulHomClass.toFunLike.{u5, u2, u3, u4} F A B C (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (DistribSMul.toSmulZeroClass.{u2, u3} A B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))))) (DistribMulAction.toDistribSMul.{u2, u3} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) _inst_10))))) (SMulZeroClass.toHasSmul.{u2, u4} A C (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (DistribSMul.toSmulZeroClass.{u2, u4} A C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))))) (DistribMulAction.toDistribSMul.{u2, u4} A C (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))) (Module.toDistribMulAction.{u2, u4} A C (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u2, u4} A C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13))))) (DistribMulActionHomClass.toSmulHomClass.{u5, u2, u3, u4} F A B C (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))) (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) _inst_10)) (Module.toDistribMulAction.{u2, u4} A C (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u2, u4} A C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u5, u2, u3, u4} F A B C (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) _inst_10)) (Module.toDistribMulAction.{u2, u4} A C (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u2, u4} A C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13)) (AlgHom.nonUnitalAlgHomClass.{u2, u3, u4, u5} A B C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) (Ring.toSemiring.{u4} C _inst_8) _inst_10 _inst_13 F _inst_15))))) f b))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {B : Type.{u5}} {C : Type.{u4}} {F : Type.{u3}} [_inst_7 : Ring.{u5} B] [_inst_8 : Ring.{u4} C] [_inst_9 : Algebra.{u2, u5} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u5} B _inst_7)] [_inst_10 : Algebra.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7)] [_inst_11 : Algebra.{u2, u4} R C (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u4} C _inst_8)] [_inst_12 : IsScalarTower.{u2, u1, u5} R A B (Algebra.toSMul.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.toSMul.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10) (Algebra.toSMul.{u2, u5} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u5} B _inst_7) _inst_9)] [_inst_13 : Algebra.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8)] [_inst_14 : IsScalarTower.{u2, u1, u4} R A C (Algebra.toSMul.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.toSMul.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13) (Algebra.toSMul.{u2, u4} R C (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u4} C _inst_8) _inst_11)] {b : B} [_inst_15 : AlgHomClass.{u3, u1, u5, u4} F A B C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) (Ring.toSemiring.{u4} C _inst_8) _inst_10 _inst_13] (f : F), (IsIntegral.{u2, u5} R B _inst_1 _inst_7 _inst_9 b) -> (IsIntegral.{u2, u4} R ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => C) b) _inst_1 _inst_8 _inst_11 (FunLike.coe.{succ u3, succ u5, succ u4} F B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => C) _x) (SMulHomClass.toFunLike.{u3, u1, u5, u4} F A B C (SMulZeroClass.toSMul.{u1, u5} A B (AddMonoid.toZero.{u5} B (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u5} A B (AddMonoid.toAddZeroClass.{u5} B (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u5} A B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7))))) (Module.toDistribMulAction.{u1, u5} A B (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))) (Algebra.toModule.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10))))) (SMulZeroClass.toSMul.{u1, u4} A C (AddMonoid.toZero.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u4} A C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u4} A C (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))) (Module.toDistribMulAction.{u1, u4} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13))))) (DistribMulActionHomClass.toSMulHomClass.{u3, u1, u5, u4} F A B C (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7))))) (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))) (Module.toDistribMulAction.{u1, u5} A B (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))) (Algebra.toModule.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10)) (Module.toDistribMulAction.{u1, u4} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u3, u1, u5, u4} F A B C (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))) (Module.toDistribMulAction.{u1, u5} A B (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))) (Algebra.toModule.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10)) (Module.toDistribMulAction.{u1, u4} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u5, u4, u3} A B C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) (Ring.toSemiring.{u4} C _inst_8) _inst_10 _inst_13 F _inst_15)))) f b))
+<too large>
 Case conversion may be inaccurate. Consider using '#align map_is_integral map_isIntegralₓ'. -/
 theorem map_isIntegral {B C F : Type _} [Ring B] [Ring C] [Algebra R B] [Algebra A B] [Algebra R C]
     [IsScalarTower R A B] [Algebra A C] [IsScalarTower R A C] {b : B} [AlgHomClass F A B C] (f : F)
@@ -183,10 +177,7 @@ theorem map_isIntegral {B C F : Type _} [Ring B] [Ring C] [Algebra R B] [Algebra
 #align map_is_integral map_isIntegral
 
 /- warning: is_integral_map_of_comp_eq_of_is_integral -> isIntegral_map_of_comp_eq_of_isIntegral is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} {U : Type.{u4}} [_inst_7 : CommRing.{u1} R] [_inst_8 : CommRing.{u2} S] [_inst_9 : CommRing.{u3} T] [_inst_10 : CommRing.{u4} U] [_inst_11 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_7) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_8))] [_inst_12 : Algebra.{u3, u4} T U (CommRing.toCommSemiring.{u3} T _inst_9) (Ring.toSemiring.{u4} U (CommRing.toRing.{u4} U _inst_10))] (φ : RingHom.{u1, u3} R T (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_7))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_9)))) (ψ : RingHom.{u2, u4} S U (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_8))) (NonAssocRing.toNonAssocSemiring.{u4} U (Ring.toNonAssocRing.{u4} U (CommRing.toRing.{u4} U _inst_10)))), (Eq.{max (succ u1) (succ u4)} (RingHom.{u1, u4} R U (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_7))) (Semiring.toNonAssocSemiring.{u4} U (Ring.toSemiring.{u4} U (CommRing.toRing.{u4} U _inst_10)))) (RingHom.comp.{u1, u3, u4} R T U (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_7))) (Semiring.toNonAssocSemiring.{u3} T (CommSemiring.toSemiring.{u3} T (CommRing.toCommSemiring.{u3} T _inst_9))) (Semiring.toNonAssocSemiring.{u4} U (Ring.toSemiring.{u4} U (CommRing.toRing.{u4} U _inst_10))) (algebraMap.{u3, u4} T U (CommRing.toCommSemiring.{u3} T _inst_9) (Ring.toSemiring.{u4} U (CommRing.toRing.{u4} U _inst_10)) _inst_12) φ) (RingHom.comp.{u1, u2, u4} R S U (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_7))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_8))) (NonAssocRing.toNonAssocSemiring.{u4} U (Ring.toNonAssocRing.{u4} U (CommRing.toRing.{u4} U _inst_10))) ψ (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_7) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_8)) _inst_11))) -> (forall {a : S}, (IsIntegral.{u1, u2} R S _inst_7 (CommRing.toRing.{u2} S _inst_8) _inst_11 a) -> (IsIntegral.{u3, u4} T U _inst_9 (CommRing.toRing.{u4} U _inst_10) _inst_12 (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (RingHom.{u2, u4} S U (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_8))) (NonAssocRing.toNonAssocSemiring.{u4} U (Ring.toNonAssocRing.{u4} U (CommRing.toRing.{u4} U _inst_10)))) (fun (_x : RingHom.{u2, u4} S U (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_8))) (NonAssocRing.toNonAssocSemiring.{u4} U (Ring.toNonAssocRing.{u4} U (CommRing.toRing.{u4} U _inst_10)))) => S -> U) (RingHom.hasCoeToFun.{u2, u4} S U (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_8))) (NonAssocRing.toNonAssocSemiring.{u4} U (Ring.toNonAssocRing.{u4} U (CommRing.toRing.{u4} U _inst_10)))) ψ a)))
-but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {T : Type.{u2}} {U : Type.{u1}} [_inst_7 : CommRing.{u4} R] [_inst_8 : CommRing.{u3} S] [_inst_9 : CommRing.{u2} T] [_inst_10 : CommRing.{u1} U] [_inst_11 : Algebra.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_7) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))] [_inst_12 : Algebra.{u2, u1} T U (CommRing.toCommSemiring.{u2} T _inst_9) (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10))] (φ : RingHom.{u4, u2} R T (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_7))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_9)))) (ψ : RingHom.{u3, u1} S U (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)))), (Eq.{max (succ u4) (succ u1)} (RingHom.{u4, u1} R U (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_7))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)))) (RingHom.comp.{u4, u2, u1} R T U (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_7))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_9))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10))) (algebraMap.{u2, u1} T U (CommRing.toCommSemiring.{u2} T _inst_9) (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)) _inst_12) φ) (RingHom.comp.{u4, u3, u1} R S U (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_7))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10))) ψ (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_7) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8)) _inst_11))) -> (forall {a : S}, (IsIntegral.{u4, u3} R S _inst_7 (CommRing.toRing.{u3} S _inst_8) _inst_11 a) -> (IsIntegral.{u2, u1} T ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => U) a) _inst_9 (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => U) a) _inst_10) _inst_12 (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} S U (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => U) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} S U (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)))) S U (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))))) (NonUnitalNonAssocSemiring.toMul.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S U (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)))) S U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S U (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)))) S U (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10))) (RingHom.instRingHomClassRingHom.{u3, u1} S U (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10))))))) ψ a)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_map_of_comp_eq_of_is_integral isIntegral_map_of_comp_eq_of_isIntegralₓ'. -/
 theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type _} [CommRing R] [CommRing S]
     [CommRing T] [CommRing U] [Algebra R S] [Algebra T U] (φ : R →+* T) (ψ : S →+* U)
@@ -200,10 +191,7 @@ theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type _} [CommRing R]
 #align is_integral_map_of_comp_eq_of_is_integral isIntegral_map_of_comp_eq_of_isIntegral
 
 /- warning: is_integral_alg_hom_iff -> isIntegral_algHom_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {A : Type.{u2}} {B : Type.{u3}} [_inst_7 : Ring.{u2} A] [_inst_8 : Ring.{u3} B] [_inst_9 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7)] [_inst_10 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B _inst_8)] (f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10), (Function.Injective.{succ u2, succ u3} A B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) (fun (_x : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) f)) -> (forall {x : A}, Iff (IsIntegral.{u1, u3} R B _inst_1 _inst_8 _inst_10 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) (fun (_x : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) f x)) (IsIntegral.{u1, u2} R A _inst_1 _inst_7 _inst_9 x))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {A : Type.{u3}} {B : Type.{u2}} [_inst_7 : Ring.{u3} A] [_inst_8 : Ring.{u2} B] [_inst_9 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7)] [_inst_10 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8)] (f : AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10), (Function.Injective.{succ u3, succ u2} A B (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9))))) (SMulZeroClass.toSMul.{u1, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u2} R B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) (AlgHom.algHomClass.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10))))) f)) -> (forall {x : A}, Iff (IsIntegral.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_1 _inst_8 _inst_10 (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9))))) (SMulZeroClass.toSMul.{u1, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u2} R B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) (AlgHom.algHomClass.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10))))) f x)) (IsIntegral.{u1, u3} R A _inst_1 _inst_7 _inst_9 x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_alg_hom_iff isIntegral_algHom_iffₓ'. -/
 theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
     (f : A →ₐ[R] B) (hf : Function.Injective f) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x :=
@@ -216,10 +204,7 @@ theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Al
 #align is_integral_alg_hom_iff isIntegral_algHom_iff
 
 /- warning: is_integral_alg_equiv -> isIntegral_algEquiv is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {A : Type.{u2}} {B : Type.{u3}} [_inst_7 : Ring.{u2} A] [_inst_8 : Ring.{u3} B] [_inst_9 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7)] [_inst_10 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B _inst_8)] (f : AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) {x : A}, Iff (IsIntegral.{u1, u3} R B _inst_1 _inst_8 _inst_10 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) (fun (_x : AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) => A -> B) (AlgEquiv.hasCoeToFun.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) f x)) (IsIntegral.{u1, u2} R A _inst_1 _inst_7 _inst_9 x)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {A : Type.{u3}} {B : Type.{u2}} [_inst_7 : Ring.{u3} A] [_inst_8 : Ring.{u2} B] [_inst_9 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7)] [_inst_10 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8)] (f : AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) {x : A}, Iff (IsIntegral.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_1 _inst_8 _inst_10 (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9))))) (SMulZeroClass.toSMul.{u1, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u2} R B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) (AlgEquivClass.toAlgHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10)))))) f x)) (IsIntegral.{u1, u3} R A _inst_1 _inst_7 _inst_9 x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_alg_equiv isIntegral_algEquivₓ'. -/
 @[simp]
 theorem isIntegral_algEquiv {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
@@ -261,10 +246,7 @@ theorem isIntegral_ofSubring {x : A} (T : Subring R) (hx : IsIntegral T x) : IsI
 #align is_integral_of_subring isIntegral_ofSubring
 
 /- warning: is_integral.algebra_map -> IsIntegral.algebraMap is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_8 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6)))))] {x : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_6 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7) x))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_6 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_8 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_5) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)] {x : A}, (IsIntegral.{u1, u3} R A _inst_1 (CommRing.toRing.{u3} A _inst_2) _inst_5 x) -> (IsIntegral.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_1 (CommRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_3) _inst_6 (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral.algebra_map IsIntegral.algebraMapₓ'. -/
 theorem IsIntegral.algebraMap [Algebra A B] [IsScalarTower R A B] {x : A} (h : IsIntegral R x) :
     IsIntegral R (algebraMap A B x) :=
@@ -275,10 +257,7 @@ theorem IsIntegral.algebraMap [Algebra A B] [IsScalarTower R A B] {x : A} (h : I
 #align is_integral.algebra_map IsIntegral.algebraMap
 
 /- warning: is_integral_algebra_map_iff -> isIntegral_algebraMap_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_8 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6)))))] {x : A}, (Function.Injective.{succ u2, succ u3} A B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7))) -> (Iff (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_6 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7) x)) (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_6 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_8 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_5) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)] {x : A}, (Function.Injective.{succ u3, succ u2} A B (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7))) -> (Iff (IsIntegral.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_1 (CommRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_3) _inst_6 (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) x)) (IsIntegral.{u1, u3} R A _inst_1 (CommRing.toRing.{u3} A _inst_2) _inst_5 x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_algebra_map_iff isIntegral_algebraMap_iffₓ'. -/
 theorem isIntegral_algebraMap_iff [Algebra A B] [IsScalarTower R A B] {x : A}
     (hAB : Function.Injective (algebraMap A B)) :
@@ -304,10 +283,7 @@ theorem isIntegral_iff_isIntegral_closure_finite {r : A} :
 #align is_integral_iff_is_integral_closure_finite isIntegral_iff_isIntegral_closure_finite
 
 /- warning: fg_adjoin_singleton_of_integral -> FG_adjoin_singleton_of_integral is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] (x : A), (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (Submodule.FG.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (coeFn.{succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))))) (fun (_x : RelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) => (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) -> (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))) (RelEmbedding.hasCoeToFun.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 (Singleton.singleton.{u2, u2} A (Set.{u2} A) (Set.hasSingleton.{u2} A) x))))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] (x : A), (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (Submodule.FG.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (fun (_x : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (Subalgebra.toSubmodule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Singleton.singleton.{u1, u1} A (Set.{u1} A) (Set.instSingletonSet.{u1} A) x))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align fg_adjoin_singleton_of_integral FG_adjoin_singleton_of_integralₓ'. -/
 theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
     (Algebra.adjoin R ({x} : Set A)).toSubmodule.FG :=
@@ -341,10 +317,7 @@ theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
 #align fg_adjoin_singleton_of_integral FG_adjoin_singleton_of_integral
 
 /- warning: fg_adjoin_of_finite -> FG_adjoin_of_finite is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {s : Set.{u2} A}, (Set.Finite.{u2} A s) -> (forall (x : A), (Membership.Mem.{u2, u2} A (Set.{u2} A) (Set.hasMem.{u2} A) x s) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)) -> (Submodule.FG.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (coeFn.{succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))))) (fun (_x : RelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) => (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) -> (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))) (RelEmbedding.hasCoeToFun.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 s)))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] {s : Set.{u2} A}, (Set.Finite.{u2} A s) -> (forall (x : A), (Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x s) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)) -> (Submodule.FG.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (FunLike.coe.{succ u2, succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5))))))) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (fun (_x : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) _x) (RelHomClass.toFunLike.{u2, u2, u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5))))))) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) => LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) => LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5 s)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align fg_adjoin_of_finite FG_adjoin_of_finiteₓ'. -/
 theorem FG_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsIntegral R x) :
     (Algebra.adjoin R s).toSubmodule.FG :=
@@ -365,10 +338,7 @@ theorem FG_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsI
 #align fg_adjoin_of_finite FG_adjoin_of_finite
 
 /- warning: is_noetherian_adjoin_finset -> isNoetherian_adjoin_finset is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_7 : IsNoetherianRing.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] (s : Finset.{u2} A), (forall (x : A), (Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)) -> (IsNoetherian.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} A) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (Finset.Set.hasCoeT.{u2} A))) s))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} A) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (Finset.Set.hasCoeT.{u2} A))) s))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} A) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (Finset.Set.hasCoeT.{u2} A))) s))) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} A) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (Finset.Set.hasCoeT.{u2} A))) s))) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} A) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (Finset.Set.hasCoeT.{u2} A))) s))) (Subalgebra.toRing.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} A) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (Finset.Set.hasCoeT.{u2} A))) s))))))) (Subalgebra.module.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} A) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (Finset.Set.hasCoeT.{u2} A))) s))))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] [_inst_7 : IsNoetherianRing.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] (s : Finset.{u1} A), (forall (x : A), (Membership.mem.{u1, u1} A (Finset.{u1} A) (Finset.instMembershipFinset.{u1} A) x s) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x)) -> (IsNoetherian.{u2, u1} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Finset.toSet.{u1} A s)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Finset.toSet.{u1} A s)))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Finset.toSet.{u1} A s)))) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Finset.toSet.{u1} A s)))) (Ring.toNonAssocRing.{u1} (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Finset.toSet.{u1} A s)))) (Subalgebra.toRing.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Finset.toSet.{u1} A s))))))) (Subalgebra.instModuleSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebraToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToNonAssocSemiringToSubsemiring.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Finset.toSet.{u1} A s))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_noetherian_adjoin_finset isNoetherian_adjoin_finsetₓ'. -/
 theorem isNoetherian_adjoin_finset [IsNoetherianRing R] (s : Finset A)
     (hs : ∀ x ∈ s, IsIntegral R x) : IsNoetherian R (Algebra.adjoin R (↑s : Set A)) :=
@@ -376,10 +346,7 @@ theorem isNoetherian_adjoin_finset [IsNoetherianRing R] (s : Finset A)
 #align is_noetherian_adjoin_finset isNoetherian_adjoin_finset
 
 /- warning: is_integral_of_mem_of_fg -> isIntegral_of_mem_of_FG is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] (S : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5), (Submodule.FG.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (coeFn.{succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))))) (fun (_x : RelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) => (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) -> (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))) (RelEmbedding.hasCoeToFun.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) S)) -> (forall (x : A), (Membership.Mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.hasMem.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) x S) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] (S : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5), (Submodule.FG.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (fun (_x : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (Subalgebra.toSubmodule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) S)) -> (forall (x : A), (Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x S) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_of_mem_of_fg isIntegral_of_mem_of_FGₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /-- If `S` is a sub-`R`-algebra of `A` and `S` is finitely-generated as an `R`-module,
@@ -495,10 +462,7 @@ theorem Module.End.isIntegral {M : Type _} [AddCommGroup M] [Module R M] [Module
 #align module.End.is_integral Module.End.isIntegral
 
 /- warning: is_integral_of_smul_mem_submodule -> isIntegral_of_smul_mem_submodule is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {M : Type.{u3}} [_inst_7 : AddCommGroup.{u3} M] [_inst_8 : Module.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)] [_inst_9 : Module.{u2, u3} A M (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)] [_inst_10 : IsScalarTower.{u1, u2, u3} R A M (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (Module.toMulActionWithZero.{u2, u3} A M (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_9)))) (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (Module.toMulActionWithZero.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8))))] [_inst_11 : NoZeroSMulDivisors.{u2, u3} A M (MulZeroClass.toHasZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (SubNegMonoid.toAddMonoid.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (Module.toMulActionWithZero.{u2, u3} A M (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_9))))] (N : Submodule.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8), (Ne.{succ u3} (Submodule.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) N (Bot.bot.{u3} (Submodule.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) (Submodule.hasBot.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8))) -> (Submodule.FG.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8 N) -> (forall (x : A), (forall (n : M), (Membership.Mem.{u3, u3} M (Submodule.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) M (Submodule.setLike.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8)) n N) -> (Membership.Mem.{u3, u3} M (Submodule.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) M (Submodule.setLike.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8)) (SMul.smul.{u2, u3} A M (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (Module.toMulActionWithZero.{u2, u3} A M (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_9)))) x n) N)) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {M : Type.{u3}} [_inst_7 : AddCommGroup.{u3} M] [_inst_8 : Module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)] [_inst_9 : Module.{u1, u3} A M (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)] [_inst_10 : IsScalarTower.{u2, u1, u3} R A M (Algebra.toSMul.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SMulZeroClass.toSMul.{u1, u3} A M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u3} A M (CommMonoidWithZero.toZero.{u1} A (CommSemiring.toCommMonoidWithZero.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A M (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (Module.toMulActionWithZero.{u1, u3} A M (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_9)))) (SMulZeroClass.toSMul.{u2, u3} R M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (SMulWithZero.toSMulZeroClass.{u2, u3} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (Module.toMulActionWithZero.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8))))] [_inst_11 : NoZeroSMulDivisors.{u1, u3} A M (CommMonoidWithZero.toZero.{u1} A (CommSemiring.toCommMonoidWithZero.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (SMulZeroClass.toSMul.{u1, u3} A M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u3} A M (CommMonoidWithZero.toZero.{u1} A (CommSemiring.toCommMonoidWithZero.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A M (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (Module.toMulActionWithZero.{u1, u3} A M (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_9))))] (N : Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8), (Ne.{succ u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) (Submodule.instBotSubmodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8))) -> (Submodule.FG.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8 N) -> (forall (x : A), (forall (n : M), (Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8)) n N) -> (Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8)) (HSMul.hSMul.{u1, u3, u3} A M M (instHSMul.{u1, u3} A M (SMulZeroClass.toSMul.{u1, u3} A M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u3} A M (CommMonoidWithZero.toZero.{u1} A (CommSemiring.toCommMonoidWithZero.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A M (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (Module.toMulActionWithZero.{u1, u3} A M (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_9))))) x n) N)) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_of_smul_mem_submodule isIntegral_of_smul_mem_submoduleₓ'. -/
 /-- Suppose `A` is an `R`-algebra, `M` is an `A`-module such that `a • m ≠ 0` for all non-zero `a`
 and `m`. If `x : A` fixes a nontrivial f.g. `R`-submodule `N` of `M`, then `x` is `R`-integral. -/
@@ -837,10 +801,7 @@ def integralClosure : Subalgebra R A
 -/
 
 /- warning: mem_integral_closure_iff_mem_fg -> mem_integralClosure_iff_mem_FG is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) (A : Type.{u2}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {r : A}, Iff (Membership.Mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.hasMem.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) r (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) (Exists.{succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (fun (M : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) => And (Submodule.FG.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (coeFn.{succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))))) (fun (_x : RelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) => (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) -> (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))) (RelEmbedding.hasCoeToFun.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) M)) (Membership.Mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.hasMem.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) r M)))
-but is expected to have type
-  forall (R : Type.{u1}) (A : Type.{u2}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] {r : A}, Iff (Membership.mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) r (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) (Exists.{succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (fun (M : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => And (Submodule.FG.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (FunLike.coe.{succ u2, succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5))))))) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (fun (_x : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) _x) (RelHomClass.toFunLike.{u2, u2, u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5))))))) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) => LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) => LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) M)) (Membership.mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) r M)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align mem_integral_closure_iff_mem_fg mem_integralClosure_iff_mem_FGₓ'. -/
 theorem mem_integralClosure_iff_mem_FG {r : A} :
     r ∈ integralClosure R A ↔ ∃ M : Subalgebra R A, M.toSubmodule.FG ∧ r ∈ M :=
@@ -880,10 +841,7 @@ theorem le_integralClosure_iff_isIntegral {S : Subalgebra R A} :
 #align le_integral_closure_iff_is_integral le_integralClosure_iff_isIntegral
 
 /- warning: is_integral_sup -> isIntegral_sup is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {S : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5} {T : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5}, Iff (Algebra.IsIntegral.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Sup.sup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SemilatticeSup.toHasSup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Lattice.toSemilatticeSup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Algebra.Subalgebra.completeLattice.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) S T)) _inst_1 (Subalgebra.toRing.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (Sup.sup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SemilatticeSup.toHasSup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Lattice.toSemilatticeSup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Algebra.Subalgebra.completeLattice.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) S T)) (Subalgebra.algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 (Sup.sup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SemilatticeSup.toHasSup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Lattice.toSemilatticeSup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Algebra.Subalgebra.completeLattice.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) S T))) (And (Algebra.IsIntegral.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) S) _inst_1 (Subalgebra.toRing.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 S) (Subalgebra.algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 S)) (Algebra.IsIntegral.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) T) _inst_1 (Subalgebra.toRing.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 T) (Subalgebra.algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 T)))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {S : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5} {T : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5}, Iff (Algebra.IsIntegral.{u2, u1} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x (Sup.sup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SemilatticeSup.toSup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Lattice.toSemilatticeSup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (ConditionallyCompleteLattice.toLattice.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.instCompleteLatticeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))) S T))) _inst_1 (Subalgebra.toRing.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (Sup.sup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SemilatticeSup.toSup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Lattice.toSemilatticeSup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (ConditionallyCompleteLattice.toLattice.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.instCompleteLatticeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))) S T)) (Subalgebra.algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Sup.sup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SemilatticeSup.toSup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Lattice.toSemilatticeSup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (ConditionallyCompleteLattice.toLattice.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.instCompleteLatticeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))) S T))) (And (Algebra.IsIntegral.{u2, u1} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x S)) _inst_1 (Subalgebra.toRing.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 S) (Subalgebra.algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 S)) (Algebra.IsIntegral.{u2, u1} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x T)) _inst_1 (Subalgebra.toRing.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 T) (Subalgebra.algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 T)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_sup isIntegral_supₓ'. -/
 theorem isIntegral_sup {S T : Subalgebra R A} :
     Algebra.IsIntegral R ↥(S ⊔ T) ↔ Algebra.IsIntegral R S ∧ Algebra.IsIntegral R T := by
@@ -891,10 +849,7 @@ theorem isIntegral_sup {S T : Subalgebra R A} :
 #align is_integral_sup isIntegral_sup
 
 /- warning: integral_closure_map_alg_equiv -> integralClosure_map_algEquiv is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] (f : AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6), Eq.{succ u3} (Subalgebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6) (Subalgebra.map.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6 ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (AlgHomClass.coeTC.{u1, u2, u3, max u2 u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6 (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (AlgEquivClass.toAlgHomClass.{max u2 u3, u1, u2, u3} (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6 (AlgEquiv.algEquivClass.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6))))) f) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) (integralClosure.{u1, u3} R B _inst_1 _inst_3 _inst_6)
-but is expected to have type
-  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_5 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_6 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] (f : AlgEquiv.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6), Eq.{succ u1} (Subalgebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6) (Subalgebra.map.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6 (AlgHomClass.toAlgHom.{u3, u2, u1, max u2 u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6 (AlgEquiv.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) (AlgEquivClass.toAlgHomClass.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6 (AlgEquiv.instAlgEquivClassAlgEquiv.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6)) f) (integralClosure.{u3, u2} R A _inst_1 _inst_2 _inst_5)) (integralClosure.{u3, u1} R B _inst_1 _inst_3 _inst_6)
+<too large>
 Case conversion may be inaccurate. Consider using '#align integral_closure_map_alg_equiv integralClosure_map_algEquivₓ'. -/
 /-- Mapping an integral closure along an `alg_equiv` gives the integral closure. -/
 theorem integralClosure_map_algEquiv (f : A ≃ₐ[R] B) :
@@ -1163,10 +1118,7 @@ theorem normalizeScaleRoots_degree : (normalizeScaleRoots p).degree = p.degree :
 -/
 
 /- warning: normalize_scale_roots_eval₂_leading_coeff_mul -> normalizeScaleRoots_eval₂_leadingCoeff_mul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))), (LE.le.{0} Nat Nat.hasLe (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Polynomial.natDegree.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p)) -> (forall (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (x : S), Eq.{succ u2} S (Polynomial.eval₂.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) f (HMul.hMul.{u2, u2, u2} S S S (instHMul.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (fun (_x : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p)) x) (normalizeScaleRoots.{u1} R _inst_1 p)) (HMul.hMul.{u2, u2, u2} S S S (instHMul.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (HPow.hPow.{u2, 0, u2} S Nat S (instHPow.{u2, 0} S Nat (Monoid.Pow.{u2} S (Ring.toMonoid.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (fun (_x : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p)) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Polynomial.natDegree.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Polynomial.eval₂.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) f x p)))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (p : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))), (LE.le.{0} Nat instLENat (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Polynomial.natDegree.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) -> (forall (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (x : S), Eq.{succ u1} S (Polynomial.eval₂.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) f (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (NonUnitalNonAssocRing.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) _inst_4))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) f (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) x) (normalizeScaleRoots.{u2} R _inst_1 p)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (NonUnitalNonAssocRing.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) _inst_4))))) (HPow.hPow.{u1, 0, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (instHPow.{u1, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) Nat (Monoid.Pow.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (MonoidWithZero.toMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (CommSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) _inst_4)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) f (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Polynomial.natDegree.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Polynomial.eval₂.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) f x p)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align normalize_scale_roots_eval₂_leading_coeff_mul normalizeScaleRoots_eval₂_leadingCoeff_mulₓ'. -/
 theorem normalizeScaleRoots_eval₂_leadingCoeff_mul (h : 1 ≤ p.natDegree) (f : R →+* S) (x : S) :
     (normalizeScaleRoots p).eval₂ f (f p.leadingCoeff * x) =
@@ -1221,10 +1173,7 @@ theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
 #align ring_hom.is_integral_elem_leading_coeff_mul RingHom.isIntegralElem_leadingCoeff_mul
 
 /- warning: is_integral_leading_coeff_smul -> isIntegral_leadingCoeff_smul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (x : S) [_inst_7 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))], (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) (fun (_x : AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> S) ([anonymous].{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) (Polynomial.aeval.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) _inst_7 x) p) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))))) -> (IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) _inst_7 (SMul.smul.{u1, u2} R S (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) _inst_7))))) (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p) x))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (p : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (x : S) [_inst_7 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))], (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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))))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (SMulZeroClass.toSMul.{u2, u1} R S (AddMonoid.toZero.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (DistribSMul.toSMulZeroClass.{u2, u1} R S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (DistribMulAction.toDistribSMul.{u2, u1} R S (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) (Module.toDistribMulAction.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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))))))) (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7 (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7))))) (Polynomial.aeval.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) _inst_4)))))) -> (IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) _inst_7 (HSMul.hSMul.{u2, u1, u1} R S S (instHSMul.{u2, u1} R S (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7)) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p) x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_leading_coeff_smul isIntegral_leadingCoeff_smulₓ'. -/
 /-- Given a `p : R[X]` and a root `x : S`,
 then `p.leading_coeff • x : S` is integral over `R`. -/
@@ -1299,10 +1248,7 @@ theorem isIntegral_algebra [Algebra R A] [IsScalarTower R A B] : Algebra.IsInteg
 #align is_integral_closure.is_integral_algebra IsIntegralClosure.isIntegral_algebra
 
 /- warning: is_integral_closure.no_zero_smul_divisors -> IsIntegralClosure.noZeroSMulDivisors is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {A : Type.{u2}} (B : Type.{u3}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] [_inst_9 : NoZeroSMulDivisors.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (MulZeroClass.toHasZero.{u3} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} B (NonAssocRing.toNonUnitalNonAssocRing.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_3)))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))], NoZeroSMulDivisors.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (MulZeroClass.toHasZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_7)))))
-but is expected to have type
-  forall (R : Type.{u3}) {A : Type.{u2}} (B : Type.{u1}) [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_4 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_5 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u3, u1} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u3, u2, u1} R A B (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_7) (Algebra.toSMul.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_4)] [_inst_9 : NoZeroSMulDivisors.{u3, u1} R B (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommMonoidWithZero.toZero.{u1} B (CommSemiring.toCommMonoidWithZero.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_4)], NoZeroSMulDivisors.{u3, u2} R A (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommMonoidWithZero.toZero.{u2} A (CommSemiring.toCommMonoidWithZero.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_7)
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_closure.no_zero_smul_divisors IsIntegralClosure.noZeroSMulDivisorsₓ'. -/
 theorem noZeroSMulDivisors [Algebra R A] [IsScalarTower R A B] [NoZeroSMulDivisors R B] :
     NoZeroSMulDivisors R A :=
@@ -1380,10 +1326,7 @@ theorem mk'_mul (x y : B) (hx : IsIntegral R x) (hy : IsIntegral R y) :
 #align is_integral_closure.mk'_mul IsIntegralClosure.mk'_mul
 
 /- warning: is_integral_closure.mk'_algebra_map -> IsIntegralClosure.mk'_algebraMap is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} (A : Type.{u2}) {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] (x : R) (h : optParam.{0} (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} R B (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u1, u3} R B (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => R -> B) (RingHom.hasCoeToFun.{u1, u3} R B (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4) x)) (isIntegral_algebraMap.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 x)), Eq.{succ u2} A (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} R B (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u1, u3} R B (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => R -> B) (RingHom.hasCoeToFun.{u1, u3} R B (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4) x) h) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_7) x)
-but is expected to have type
-  forall {R : Type.{u3}} (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_4 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_5 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u3, u1} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u3, u2, u1} R A B (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_7) (Algebra.toSMul.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_4)] (x : R) (h : optParam.{0} (IsIntegral.{u3, u1} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => B) x) _inst_1 (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => B) x) _inst_3) _inst_4 (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => B) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R B (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))))) (algebraMap.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_4) x)) (isIntegral_algebraMap.{u1, u3} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => B) x) _inst_1 (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => B) x) _inst_3) _inst_4 x)), Eq.{succ u2} A (IsIntegralClosure.mk'.{u3, u2, u1} R A ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => B) x) _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => B) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R B (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))))) (algebraMap.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_4) x) h) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R A (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R A (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R A (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R A (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R A (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R A (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (RingHom.instRingHomClassRingHom.{u3, u2} R A (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (algebraMap.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_7) x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_closure.mk'_algebra_map IsIntegralClosure.mk'_algebraMapₓ'. -/
 @[simp]
 theorem mk'_algebraMap [Algebra R A] [IsScalarTower R A B] (x : R)
@@ -1413,10 +1356,7 @@ noncomputable def lift : S →ₐ[R] A
 -/
 
 /- warning: is_integral_closure.algebra_map_lift -> IsIntegralClosure.algebraMap_lift is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} (A : Type.{u2}) (B : Type.{u3}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] {S : Type.{u4}} [_inst_7 : CommRing.{u4} S] [_inst_8 : Algebra.{u1, u4} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7))] [_inst_9 : Algebra.{u4, u3} S B (CommRing.toCommSemiring.{u4} S _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_10 : IsScalarTower.{u1, u4, u3} R S B (SMulZeroClass.toHasSmul.{u1, u4} R S (AddZeroClass.toHasZero.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)))))))) (Module.toMulActionWithZero.{u1, u4} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7))))) (Algebra.toModule.{u1, u4} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)) _inst_8))))) (SMulZeroClass.toHasSmul.{u4, u3} S B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u4, u3} S B (MulZeroClass.toHasZero.{u4} S (MulZeroOneClass.toMulZeroClass.{u4} S (MonoidWithZero.toMulZeroOneClass.{u4} S (Semiring.toMonoidWithZero.{u4} S (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u4, u3} S B (Semiring.toMonoidWithZero.{u4} S (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u4, u3} S B (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u4, u3} S B (CommRing.toCommSemiring.{u4} S _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_9))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] [_inst_11 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_12 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_11))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] (h : Algebra.IsIntegral.{u1, u4} R S _inst_1 (CommRing.toRing.{u4} S _inst_7) _inst_8) (x : S), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5) (coeFn.{max (succ u4) (succ u2), max (succ u4) (succ u2)} (AlgHom.{u1, u4, u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8 _inst_11) (fun (_x : AlgHom.{u1, u4, u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8 _inst_11) => S -> A) ([anonymous].{u1, u4, u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8 _inst_11) (IsIntegralClosure.lift.{u1, u2, u3, u4} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 S _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h) x)) (coeFn.{max (succ u4) (succ u3), max (succ u4) (succ u3)} (RingHom.{u4, u3} S B (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u4, u3} S B (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => S -> B) (RingHom.hasCoeToFun.{u4, u3} S B (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u4, u3} S B (CommRing.toCommSemiring.{u4} S _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_9) x)
-but is expected to have type
-  forall {R : Type.{u1}} (A : Type.{u3}) (B : Type.{u4}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u4} B] [_inst_4 : Algebra.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_5 : Algebra.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_6 : IsIntegralClosure.{u3, u1, u4} A R B _inst_1 (CommRing.toCommSemiring.{u3} A _inst_2) _inst_3 _inst_4 _inst_5] {S : Type.{u2}} [_inst_7 : CommRing.{u2} S] [_inst_8 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))] [_inst_9 : Algebra.{u2, u4} S B (CommRing.toCommSemiring.{u2} S _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_10 : IsScalarTower.{u1, u2, u4} R S B (Algebra.toSMul.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8) (Algebra.toSMul.{u2, u4} S B (CommRing.toCommSemiring.{u2} S _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_9) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] [_inst_11 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_12 : IsScalarTower.{u1, u3, u4} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11) (Algebra.toSMul.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] (h : Algebra.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_7) _inst_8) (x : S), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) S (fun (a : S) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : S) => A) a) (SMulHomClass.toFunLike.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (SMulZeroClass.toSMul.{u1, u2} R S (AddMonoid.toZero.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R S (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8))))) (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u2, u3, max u3 u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11 (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) (AlgHom.algHomClass.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11))))) (IsIntegralClosure.lift.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 S _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : S) => A) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (SMulZeroClass.toSMul.{u1, u2} R S (AddMonoid.toZero.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R S (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8))))) (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u2, u3, max u3 u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11 (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) (AlgHom.algHomClass.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11))))) (IsIntegralClosure.lift.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 S _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h) x)) (FunLike.coe.{max (succ u4) (succ u2), succ u2, succ u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => B) _x) (MulHomClass.toFunLike.{max u4 u2, u2, u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S B (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u2, u4} S B (CommRing.toCommSemiring.{u2} S _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_9) x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_closure.algebra_map_lift IsIntegralClosure.algebraMap_liftₓ'. -/
 @[simp]
 theorem algebraMap_lift (x : S) : algebraMap A B (lift A B h x) = algebraMap S B x :=
@@ -1447,10 +1387,7 @@ noncomputable def equiv : A ≃ₐ[R] A' :=
 -/
 
 /- warning: is_integral_closure.algebra_map_equiv -> IsIntegralClosure.algebraMap_equiv is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) (A : Type.{u2}) (B : Type.{u3}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] (A' : Type.{u4}) [_inst_7 : CommRing.{u4} A'] [_inst_8 : Algebra.{u4, u3} A' B (CommRing.toCommSemiring.{u4} A' _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_9 : IsIntegralClosure.{u4, u1, u3} A' R B _inst_1 (CommRing.toCommSemiring.{u4} A' _inst_7) _inst_3 _inst_4 _inst_8] [_inst_10 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_11 : Algebra.{u1, u4} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7))] [_inst_12 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_10))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] [_inst_13 : IsScalarTower.{u1, u4, u3} R A' B (SMulZeroClass.toHasSmul.{u1, u4} R A' (AddZeroClass.toHasZero.{u4} A' (AddMonoid.toAddZeroClass.{u4} A' (AddCommMonoid.toAddMonoid.{u4} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} A' (Semiring.toNonAssocSemiring.{u4} A' (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R A' (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u4} A' (AddMonoid.toAddZeroClass.{u4} A' (AddCommMonoid.toAddMonoid.{u4} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} A' (Semiring.toNonAssocSemiring.{u4} A' (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R A' (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u4} A' (AddMonoid.toAddZeroClass.{u4} A' (AddCommMonoid.toAddMonoid.{u4} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} A' (Semiring.toNonAssocSemiring.{u4} A' (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)))))))) (Module.toMulActionWithZero.{u1, u4} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} A' (Semiring.toNonAssocSemiring.{u4} A' (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7))))) (Algebra.toModule.{u1, u4} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)) _inst_11))))) (SMulZeroClass.toHasSmul.{u4, u3} A' B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u4, u3} A' B (MulZeroClass.toHasZero.{u4} A' (MulZeroOneClass.toMulZeroClass.{u4} A' (MonoidWithZero.toMulZeroOneClass.{u4} A' (Semiring.toMonoidWithZero.{u4} A' (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u4, u3} A' B (Semiring.toMonoidWithZero.{u4} A' (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u4, u3} A' B (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u4, u3} A' B (CommRing.toCommSemiring.{u4} A' _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_8))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] (x : A), Eq.{succ u3} B (coeFn.{max (succ u4) (succ u3), max (succ u4) (succ u3)} (RingHom.{u4, u3} A' B (Semiring.toNonAssocSemiring.{u4} A' (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u4, u3} A' B (Semiring.toNonAssocSemiring.{u4} A' (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A' -> B) (RingHom.hasCoeToFun.{u4, u3} A' B (Semiring.toNonAssocSemiring.{u4} A' (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u4, u3} A' B (CommRing.toCommSemiring.{u4} A' _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_8) (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (AlgEquiv.{u1, u2, u4} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)) _inst_10 _inst_11) (fun (_x : AlgEquiv.{u1, u2, u4} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)) _inst_10 _inst_11) => A -> A') (AlgEquiv.hasCoeToFun.{u1, u2, u4} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)) _inst_10 _inst_11) (IsIntegralClosure.equiv.{u1, u2, u3, u4} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 A' _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 _inst_13) x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5) x)
-but is expected to have type
-  forall (R : Type.{u1}) (A : Type.{u3}) (B : Type.{u4}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u4} B] [_inst_4 : Algebra.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_5 : Algebra.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_6 : IsIntegralClosure.{u3, u1, u4} A R B _inst_1 (CommRing.toCommSemiring.{u3} A _inst_2) _inst_3 _inst_4 _inst_5] (A' : Type.{u2}) [_inst_7 : CommRing.{u2} A'] [_inst_8 : Algebra.{u2, u4} A' B (CommRing.toCommSemiring.{u2} A' _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_9 : IsIntegralClosure.{u2, u1, u4} A' R B _inst_1 (CommRing.toCommSemiring.{u2} A' _inst_7) _inst_3 _inst_4 _inst_8] [_inst_10 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_11 : Algebra.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))] [_inst_12 : IsScalarTower.{u1, u3, u4} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10) (Algebra.toSMul.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] [_inst_13 : IsScalarTower.{u1, u2, u4} R A' B (Algebra.toSMul.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11) (Algebra.toSMul.{u2, u4} A' B (CommRing.toCommSemiring.{u2} A' _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_8) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] (x : A), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A') => B) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) A (fun (a : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => A') a) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10))))) (SMulZeroClass.toSMul.{u1, u2} R A' (AddMonoid.toZero.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A' (AddMonoid.toAddZeroClass.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) (AlgEquivClass.toAlgHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11)))))) (IsIntegralClosure.equiv.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 A' _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 _inst_13) x)) (FunLike.coe.{max (succ u4) (succ u2), succ u2, succ u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A') => B) _x) (MulHomClass.toFunLike.{max u4 u2, u2, u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' B (NonUnitalNonAssocSemiring.toMul.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u2, u4} A' B (CommRing.toCommSemiring.{u2} A' _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_8) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => A') _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10))))) (SMulZeroClass.toSMul.{u1, u2} R A' (AddMonoid.toZero.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A' (AddMonoid.toAddZeroClass.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) (AlgEquivClass.toAlgHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11)))))) (IsIntegralClosure.equiv.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 A' _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 _inst_13) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_closure.algebra_map_equiv IsIntegralClosure.algebraMap_equivₓ'. -/
 @[simp]
 theorem algebraMap_equiv (x : A) : algebraMap A' B (equiv R A B A' x) = algebraMap A B x :=
@@ -1474,10 +1411,7 @@ variable [CommRing R] [CommRing A] [CommRing B] [CommRing S] [CommRing T]
 variable [Algebra A B] [Algebra R B] (f : R →+* S) (g : S →+* T)
 
 /- warning: is_integral_trans_aux -> isIntegral_trans_aux is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] (x : B) {p : Polynomial.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))}, (Polynomial.Monic.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) p) -> (Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u2, u2, u3} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) B (CommRing.toCommSemiring.{u2} A _inst_2) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) _inst_6) (fun (_x : AlgHom.{u2, u2, u3} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) B (CommRing.toCommSemiring.{u2} A _inst_2) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) _inst_6) => (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) -> B) ([anonymous].{u2, u2, u3} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) B (CommRing.toCommSemiring.{u2} A _inst_2) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) _inst_6) (Polynomial.aeval.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6 x) p) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (MulZeroClass.toHasZero.{u3} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} B (NonAssocRing.toNonUnitalNonAssocRing.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))))) -> (IsIntegral.{u3, u3} (coeSort.{succ u3, succ (succ u3)} (Subalgebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Subalgebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7) B (Subalgebra.setLike.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7)) (Algebra.adjoin.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} B) (Set.{u3} B) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (Finset.Set.hasCoeT.{u3} B))) (Polynomial.frange.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.map.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6) p))))) B (Subalgebra.toCommRing.{u1, u3} R B _inst_1 _inst_3 _inst_7 (Algebra.adjoin.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} B) (Set.{u3} B) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (Finset.Set.hasCoeT.{u3} B))) (Polynomial.frange.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.map.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6) p))))) (CommRing.toRing.{u3} B _inst_3) (Subalgebra.toAlgebra.{u3, u1, u3} B R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u3} B _inst_3) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7 (Algebra.id.{u3} B (CommRing.toCommSemiring.{u3} B _inst_3)) (Algebra.adjoin.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} B) (Set.{u3} B) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (Finset.Set.hasCoeT.{u3} B))) (Polynomial.frange.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.map.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6) p))))) x)
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_6 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] (x : B) {p : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))}, (Polynomial.Monic.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) p) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (fun (_x : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) _x) (SMulHomClass.toFunLike.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (SMulZeroClass.toSMul.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddMonoid.toZero.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))))) (DistribSMul.toSMulZeroClass.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))))) (DistribMulAction.toDistribSMul.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (Module.toDistribMulAction.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Algebra.toModule.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))))) (SMulZeroClass.toSMul.{u3, u2} A B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u3, u2} A B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (Module.toDistribMulAction.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Algebra.toModule.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (Module.toDistribMulAction.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Algebra.toModule.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u3, u2, max u2 u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6 (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) (AlgHom.algHomClass.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6))))) (Polynomial.aeval.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (CommSemiring.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) _inst_3)))))) -> (IsIntegral.{u2, u2} (Subtype.{succ u2} B (fun (x : B) => Membership.mem.{u2, u2} B (Subalgebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) B (Subalgebra.instSetLikeSubalgebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7)) x (Algebra.adjoin.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7 (Finset.toSet.{u2} B (Polynomial.frange.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.map.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) p)))))) B (Subalgebra.toCommRing.{u1, u2} R B _inst_1 _inst_3 _inst_7 (Algebra.adjoin.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7 (Finset.toSet.{u2} B (Polynomial.frange.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.map.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) p))))) (CommRing.toRing.{u2} B _inst_3) (Subalgebra.toAlgebra.{u2, u1, u2} B R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} B _inst_3) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) _inst_7 (Algebra.id.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Algebra.adjoin.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7 (Finset.toSet.{u2} B (Polynomial.frange.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.map.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) p))))) x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_trans_aux isIntegral_trans_auxₓ'. -/
 theorem isIntegral_trans_aux (x : B) {p : A[X]} (pmonic : Monic p) (hp : aeval x p = 0) :
     IsIntegral (adjoin R (↑(p.map <| algebraMap A B).frange : Set B)) x :=
@@ -1580,10 +1514,7 @@ theorem isIntegral_of_surjective (h : Function.Surjective (algebraMap R A)) :
 #align is_integral_of_surjective isIntegral_of_surjective
 
 /- warning: is_integral_tower_bot_of_is_integral -> isIntegral_tower_bot_of_isIntegral is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_8 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_9 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7)))))], (Function.Injective.{succ u2, succ u3} A B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6))) -> (forall {x : A}, (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_7 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6) x)) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8 x))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_6 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_8 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_9 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7)], (Function.Injective.{succ u3, succ u2} A B (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6))) -> (forall {x : A}, (IsIntegral.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_1 (CommRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_3) _inst_7 (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) x)) -> (IsIntegral.{u1, u3} R A _inst_1 (CommRing.toRing.{u3} A _inst_2) _inst_8 x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_tower_bot_of_is_integral isIntegral_tower_bot_of_isIntegralₓ'. -/
 /-- If `R → A → B` is an algebra tower with `A → B` injective,
 then if the entire tower is an integral extension so is `R → A` -/
@@ -1613,10 +1544,7 @@ theorem RingHom.isIntegral_tower_bot_of_isIntegral (hg : Function.Injective g)
 #align ring_hom.is_integral_tower_bot_of_is_integral RingHom.isIntegral_tower_bot_of_isIntegral
 
 /- warning: is_integral_tower_bot_of_is_integral_field -> isIntegral_tower_bot_of_isIntegral_field is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_10 : CommRing.{u1} R] [_inst_11 : Field.{u2} A] [_inst_12 : CommRing.{u3} B] [_inst_13 : Nontrivial.{u3} B] [_inst_14 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11)))] [_inst_15 : Algebra.{u2, u3} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12))] [_inst_16 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12))] [_inst_17 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11))))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11)))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11))) _inst_14))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11))))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12))))) (Algebra.toModule.{u2, u3} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)) _inst_15))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)) _inst_16)))))] {x : A}, (IsIntegral.{u1, u3} R B _inst_10 (CommRing.toRing.{u3} B _inst_12) _inst_16 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))) (algebraMap.{u2, u3} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)) _inst_15) x)) -> (IsIntegral.{u1, u2} R A _inst_10 (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11)) _inst_14 x)
-but is expected to have type
-  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_10 : CommRing.{u3} R] [_inst_11 : Field.{u2} A] [_inst_12 : CommRing.{u1} B] [_inst_13 : Nontrivial.{u1} B] [_inst_14 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_10) (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))] [_inst_15 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12))] [_inst_16 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_10) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12))] [_inst_17 : IsScalarTower.{u3, u2, u1} R A B (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_10) (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11))) _inst_14) (Algebra.toSMul.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)) _inst_15) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_10) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)) _inst_16)] {x : A}, (IsIntegral.{u3, u1} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_10 (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_12) _inst_16 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)))) A B (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)))) A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12))))))) (algebraMap.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)) _inst_15) x)) -> (IsIntegral.{u3, u2} R A _inst_10 (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11)) _inst_14 x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_tower_bot_of_is_integral_field isIntegral_tower_bot_of_isIntegral_fieldₓ'. -/
 theorem isIntegral_tower_bot_of_isIntegral_field {R A B : Type _} [CommRing R] [Field A]
     [CommRing B] [Nontrivial B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B]
@@ -1689,10 +1617,7 @@ theorem isIntegral_quotient_of_isIntegral {I : Ideal A} (hRA : Algebra.IsIntegra
 #align is_integral_quotient_of_is_integral isIntegral_quotient_of_isIntegral
 
 /- warning: is_integral_quotient_map_iff -> isIntegral_quotientMap_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) {I : Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))}, Iff (RingHom.IsIntegral.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I)) (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u1} R _inst_1 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)) (Ideal.quotientMap.{u1, u2} R S _inst_1 _inst_4 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I) I f (le_rfl.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I)))) (RingHom.IsIntegral.{u1, u2} R (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) _inst_1 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)) (RingHom.comp.{u1, u2, u2} R S (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (Ring.toNonAssocRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)))) (Ideal.Quotient.mk.{u2} S _inst_4 I) f))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) {I : Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))}, Iff (RingHom.IsIntegral.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I)) (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u1} R _inst_1 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)) (Ideal.quotientMap.{u1, u2} R S _inst_1 _inst_4 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I) I f (le_rfl.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I)))) (RingHom.IsIntegral.{u1, u2} R (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) _inst_1 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)) (RingHom.comp.{u1, u2, u2} R S (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)))) (Ideal.Quotient.mk.{u2} S _inst_4 I) f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_integral_quotient_map_iff isIntegral_quotientMap_iffₓ'. -/
 theorem isIntegral_quotientMap_iff {I : Ideal S} :
     (Ideal.quotientMap I f le_rfl).IsIntegral ↔
@@ -1789,10 +1714,7 @@ theorem Algebra.IsIntegral.isField_iff_isField {R S : Type _} [CommRing R] [Nont
 end Algebra
 
 /- warning: integral_closure_idem -> integralClosure_idem is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Eq.{succ u2} (Subalgebra.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u1, u2} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Subalgebra.toAlgebra.{u2, u1, u2} A R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (integralClosure.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) A (Subalgebra.toCommRing.{u1, u2} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3)) _inst_2 (Subalgebra.toAlgebra.{u2, u1, u2} A R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Bot.bot.{u2} (Subalgebra.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u1, u2} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Subalgebra.toAlgebra.{u2, u1, u2} A R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (CompleteLattice.toHasBot.{u2} (Subalgebra.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u1, u2} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Subalgebra.toAlgebra.{u2, u1, u2} A R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Algebra.Subalgebra.completeLattice.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u1, u2} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Subalgebra.toAlgebra.{u2, u1, u2} A R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3)))))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))], Eq.{succ u1} (Subalgebra.{u1, u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u2, u1} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (Subalgebra.toAlgebra.{u1, u2, u1} A R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3 (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (integralClosure.{u1, u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) A (Subalgebra.toCommRing.{u2, u1} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3)) _inst_2 (Subalgebra.toAlgebra.{u1, u2, u1} A R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3 (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (Bot.bot.{u1} (Subalgebra.{u1, u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u2, u1} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (Subalgebra.toAlgebra.{u1, u2, u1} A R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3 (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (CompleteLattice.toBot.{u1} (Subalgebra.{u1, u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u2, u1} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (Subalgebra.toAlgebra.{u1, u2, u1} A R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3 (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (Algebra.instCompleteLatticeSubalgebra.{u1, u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u2, u1} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (Subalgebra.toAlgebra.{u1, u2, u1} A R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3 (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align integral_closure_idem integralClosure_idemₓ'. -/
 theorem integralClosure_idem {R : Type _} {A : Type _} [CommRing R] [CommRing A] [Algebra R A] :
     integralClosure (integralClosure R A : Set A) A = ⊥ :=
Diff
@@ -170,7 +170,7 @@ variable [Algebra R A] [Algebra R B] (f : R →+* S)
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {B : Type.{u3}} {C : Type.{u4}} {F : Type.{u5}} [_inst_7 : Ring.{u3} B] [_inst_8 : Ring.{u4} C] [_inst_9 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B _inst_7)] [_inst_10 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7)] [_inst_11 : Algebra.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C _inst_8)] [_inst_12 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) _inst_10))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B _inst_7) _inst_9)))))] [_inst_13 : Algebra.{u2, u4} A C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u4} C _inst_8)] [_inst_14 : IsScalarTower.{u1, u2, u4} R A C (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toHasSmul.{u2, u4} A C (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (SMulWithZero.toSmulZeroClass.{u2, u4} A C (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (MulActionWithZero.toSMulWithZero.{u2, u4} A C (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (Module.toMulActionWithZero.{u2, u4} A C (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u2, u4} A C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13))))) (SMulZeroClass.toHasSmul.{u1, u4} R C (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R C (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R C (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (Module.toMulActionWithZero.{u1, u4} R C (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C _inst_8) _inst_11)))))] {b : B} [_inst_15 : AlgHomClass.{u5, u2, u3, u4} F A B C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) (Ring.toSemiring.{u4} C _inst_8) _inst_10 _inst_13] (f : F), (IsIntegral.{u1, u3} R B _inst_1 _inst_7 _inst_9 b) -> (IsIntegral.{u1, u4} R C _inst_1 _inst_8 _inst_11 (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => B -> C) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F B (fun (_x : B) => C) (SMulHomClass.toFunLike.{u5, u2, u3, u4} F A B C (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (DistribSMul.toSmulZeroClass.{u2, u3} A B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))))) (DistribMulAction.toDistribSMul.{u2, u3} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) _inst_10))))) (SMulZeroClass.toHasSmul.{u2, u4} A C (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (DistribSMul.toSmulZeroClass.{u2, u4} A C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))))) (DistribMulAction.toDistribSMul.{u2, u4} A C (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))) (Module.toDistribMulAction.{u2, u4} A C (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u2, u4} A C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13))))) (DistribMulActionHomClass.toSmulHomClass.{u5, u2, u3, u4} F A B C (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))) (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) _inst_10)) (Module.toDistribMulAction.{u2, u4} A C (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u2, u4} A C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u5, u2, u3, u4} F A B C (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) _inst_10)) (Module.toDistribMulAction.{u2, u4} A C (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u2, u4} A C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13)) (AlgHom.nonUnitalAlgHomClass.{u2, u3, u4, u5} A B C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) (Ring.toSemiring.{u4} C _inst_8) _inst_10 _inst_13 F _inst_15))))) f b))
 but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {B : Type.{u5}} {C : Type.{u4}} {F : Type.{u3}} [_inst_7 : Ring.{u5} B] [_inst_8 : Ring.{u4} C] [_inst_9 : Algebra.{u2, u5} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u5} B _inst_7)] [_inst_10 : Algebra.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7)] [_inst_11 : Algebra.{u2, u4} R C (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u4} C _inst_8)] [_inst_12 : IsScalarTower.{u2, u1, u5} R A B (Algebra.toSMul.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.toSMul.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10) (Algebra.toSMul.{u2, u5} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u5} B _inst_7) _inst_9)] [_inst_13 : Algebra.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8)] [_inst_14 : IsScalarTower.{u2, u1, u4} R A C (Algebra.toSMul.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.toSMul.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13) (Algebra.toSMul.{u2, u4} R C (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u4} C _inst_8) _inst_11)] {b : B} [_inst_15 : AlgHomClass.{u3, u1, u5, u4} F A B C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) (Ring.toSemiring.{u4} C _inst_8) _inst_10 _inst_13] (f : F), (IsIntegral.{u2, u5} R B _inst_1 _inst_7 _inst_9 b) -> (IsIntegral.{u2, u4} R ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => C) b) _inst_1 _inst_8 _inst_11 (FunLike.coe.{succ u3, succ u5, succ u4} F B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => C) _x) (SMulHomClass.toFunLike.{u3, u1, u5, u4} F A B C (SMulZeroClass.toSMul.{u1, u5} A B (AddMonoid.toZero.{u5} B (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u5} A B (AddMonoid.toAddZeroClass.{u5} B (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u5} A B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7))))) (Module.toDistribMulAction.{u1, u5} A B (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))) (Algebra.toModule.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10))))) (SMulZeroClass.toSMul.{u1, u4} A C (AddMonoid.toZero.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u4} A C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u4} A C (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))) (Module.toDistribMulAction.{u1, u4} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13))))) (DistribMulActionHomClass.toSMulHomClass.{u3, u1, u5, u4} F A B C (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7))))) (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))) (Module.toDistribMulAction.{u1, u5} A B (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))) (Algebra.toModule.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10)) (Module.toDistribMulAction.{u1, u4} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u3, u1, u5, u4} F A B C (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))) (Module.toDistribMulAction.{u1, u5} A B (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))) (Algebra.toModule.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10)) (Module.toDistribMulAction.{u1, u4} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u5, u4, u3} A B C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) (Ring.toSemiring.{u4} C _inst_8) _inst_10 _inst_13 F _inst_15)))) f b))
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {B : Type.{u5}} {C : Type.{u4}} {F : Type.{u3}} [_inst_7 : Ring.{u5} B] [_inst_8 : Ring.{u4} C] [_inst_9 : Algebra.{u2, u5} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u5} B _inst_7)] [_inst_10 : Algebra.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7)] [_inst_11 : Algebra.{u2, u4} R C (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u4} C _inst_8)] [_inst_12 : IsScalarTower.{u2, u1, u5} R A B (Algebra.toSMul.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.toSMul.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10) (Algebra.toSMul.{u2, u5} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u5} B _inst_7) _inst_9)] [_inst_13 : Algebra.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8)] [_inst_14 : IsScalarTower.{u2, u1, u4} R A C (Algebra.toSMul.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.toSMul.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13) (Algebra.toSMul.{u2, u4} R C (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u4} C _inst_8) _inst_11)] {b : B} [_inst_15 : AlgHomClass.{u3, u1, u5, u4} F A B C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) (Ring.toSemiring.{u4} C _inst_8) _inst_10 _inst_13] (f : F), (IsIntegral.{u2, u5} R B _inst_1 _inst_7 _inst_9 b) -> (IsIntegral.{u2, u4} R ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => C) b) _inst_1 _inst_8 _inst_11 (FunLike.coe.{succ u3, succ u5, succ u4} F B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => C) _x) (SMulHomClass.toFunLike.{u3, u1, u5, u4} F A B C (SMulZeroClass.toSMul.{u1, u5} A B (AddMonoid.toZero.{u5} B (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u5} A B (AddMonoid.toAddZeroClass.{u5} B (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u5} A B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7))))) (Module.toDistribMulAction.{u1, u5} A B (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))) (Algebra.toModule.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10))))) (SMulZeroClass.toSMul.{u1, u4} A C (AddMonoid.toZero.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u4} A C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u4} A C (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))) (Module.toDistribMulAction.{u1, u4} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13))))) (DistribMulActionHomClass.toSMulHomClass.{u3, u1, u5, u4} F A B C (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7))))) (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))) (Module.toDistribMulAction.{u1, u5} A B (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))) (Algebra.toModule.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10)) (Module.toDistribMulAction.{u1, u4} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u3, u1, u5, u4} F A B C (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))) (Module.toDistribMulAction.{u1, u5} A B (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))) (Algebra.toModule.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10)) (Module.toDistribMulAction.{u1, u4} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u5, u4, u3} A B C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) (Ring.toSemiring.{u4} C _inst_8) _inst_10 _inst_13 F _inst_15)))) f b))
 Case conversion may be inaccurate. Consider using '#align map_is_integral map_isIntegralₓ'. -/
 theorem map_isIntegral {B C F : Type _} [Ring B] [Ring C] [Algebra R B] [Algebra A B] [Algebra R C]
     [IsScalarTower R A B] [Algebra A C] [IsScalarTower R A C] {b : B} [AlgHomClass F A B C] (f : F)
@@ -203,7 +203,7 @@ theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type _} [CommRing R]
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {A : Type.{u2}} {B : Type.{u3}} [_inst_7 : Ring.{u2} A] [_inst_8 : Ring.{u3} B] [_inst_9 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7)] [_inst_10 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B _inst_8)] (f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10), (Function.Injective.{succ u2, succ u3} A B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) (fun (_x : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) f)) -> (forall {x : A}, Iff (IsIntegral.{u1, u3} R B _inst_1 _inst_8 _inst_10 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) (fun (_x : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) f x)) (IsIntegral.{u1, u2} R A _inst_1 _inst_7 _inst_9 x))
 but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {A : Type.{u3}} {B : Type.{u2}} [_inst_7 : Ring.{u3} A] [_inst_8 : Ring.{u2} B] [_inst_9 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7)] [_inst_10 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8)] (f : AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10), (Function.Injective.{succ u3, succ u2} A B (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9))))) (SMulZeroClass.toSMul.{u1, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u2} R B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) (AlgHom.algHomClass.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10))))) f)) -> (forall {x : A}, Iff (IsIntegral.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_1 _inst_8 _inst_10 (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9))))) (SMulZeroClass.toSMul.{u1, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u2} R B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) (AlgHom.algHomClass.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10))))) f x)) (IsIntegral.{u1, u3} R A _inst_1 _inst_7 _inst_9 x))
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {A : Type.{u3}} {B : Type.{u2}} [_inst_7 : Ring.{u3} A] [_inst_8 : Ring.{u2} B] [_inst_9 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7)] [_inst_10 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8)] (f : AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10), (Function.Injective.{succ u3, succ u2} A B (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9))))) (SMulZeroClass.toSMul.{u1, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u2} R B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) (AlgHom.algHomClass.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10))))) f)) -> (forall {x : A}, Iff (IsIntegral.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_1 _inst_8 _inst_10 (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9))))) (SMulZeroClass.toSMul.{u1, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u2} R B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) (AlgHom.algHomClass.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10))))) f x)) (IsIntegral.{u1, u3} R A _inst_1 _inst_7 _inst_9 x))
 Case conversion may be inaccurate. Consider using '#align is_integral_alg_hom_iff isIntegral_algHom_iffₓ'. -/
 theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
     (f : A →ₐ[R] B) (hf : Function.Injective f) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x :=
@@ -219,7 +219,7 @@ theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Al
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {A : Type.{u2}} {B : Type.{u3}} [_inst_7 : Ring.{u2} A] [_inst_8 : Ring.{u3} B] [_inst_9 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7)] [_inst_10 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B _inst_8)] (f : AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) {x : A}, Iff (IsIntegral.{u1, u3} R B _inst_1 _inst_8 _inst_10 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) (fun (_x : AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) => A -> B) (AlgEquiv.hasCoeToFun.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) f x)) (IsIntegral.{u1, u2} R A _inst_1 _inst_7 _inst_9 x)
 but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {A : Type.{u3}} {B : Type.{u2}} [_inst_7 : Ring.{u3} A] [_inst_8 : Ring.{u2} B] [_inst_9 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7)] [_inst_10 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8)] (f : AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) {x : A}, Iff (IsIntegral.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_1 _inst_8 _inst_10 (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9))))) (SMulZeroClass.toSMul.{u1, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u2} R B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) (AlgEquivClass.toAlgHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10)))))) f x)) (IsIntegral.{u1, u3} R A _inst_1 _inst_7 _inst_9 x)
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {A : Type.{u3}} {B : Type.{u2}} [_inst_7 : Ring.{u3} A] [_inst_8 : Ring.{u2} B] [_inst_9 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7)] [_inst_10 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8)] (f : AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) {x : A}, Iff (IsIntegral.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_1 _inst_8 _inst_10 (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9))))) (SMulZeroClass.toSMul.{u1, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u2} R B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) (AlgEquivClass.toAlgHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10)))))) f x)) (IsIntegral.{u1, u3} R A _inst_1 _inst_7 _inst_9 x)
 Case conversion may be inaccurate. Consider using '#align is_integral_alg_equiv isIntegral_algEquivₓ'. -/
 @[simp]
 theorem isIntegral_algEquiv {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
@@ -1224,7 +1224,7 @@ theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (x : S) [_inst_7 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))], (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) (fun (_x : AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> S) ([anonymous].{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) (Polynomial.aeval.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) _inst_7 x) p) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))))) -> (IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) _inst_7 (SMul.smul.{u1, u2} R S (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) _inst_7))))) (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p) x))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (p : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (x : S) [_inst_7 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))], (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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))))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (SMulZeroClass.toSMul.{u2, u1} R S (AddMonoid.toZero.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (DistribSMul.toSMulZeroClass.{u2, u1} R S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (DistribMulAction.toDistribSMul.{u2, u1} R S (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) (Module.toDistribMulAction.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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))))))) (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7 (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7))))) (Polynomial.aeval.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) _inst_4)))))) -> (IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) _inst_7 (HSMul.hSMul.{u2, u1, u1} R S S (instHSMul.{u2, u1} R S (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7)) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p) x))
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (p : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (x : S) [_inst_7 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))], (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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))))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (SMulZeroClass.toSMul.{u2, u1} R S (AddMonoid.toZero.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (DistribSMul.toSMulZeroClass.{u2, u1} R S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (DistribMulAction.toDistribSMul.{u2, u1} R S (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) (Module.toDistribMulAction.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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))))))) (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7 (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7))))) (Polynomial.aeval.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) _inst_4)))))) -> (IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) _inst_7 (HSMul.hSMul.{u2, u1, u1} R S S (instHSMul.{u2, u1} R S (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7)) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p) x))
 Case conversion may be inaccurate. Consider using '#align is_integral_leading_coeff_smul isIntegral_leadingCoeff_smulₓ'. -/
 /-- Given a `p : R[X]` and a root `x : S`,
 then `p.leading_coeff • x : S` is integral over `R`. -/
@@ -1416,7 +1416,7 @@ noncomputable def lift : S →ₐ[R] A
 lean 3 declaration is
   forall {R : Type.{u1}} (A : Type.{u2}) (B : Type.{u3}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] {S : Type.{u4}} [_inst_7 : CommRing.{u4} S] [_inst_8 : Algebra.{u1, u4} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7))] [_inst_9 : Algebra.{u4, u3} S B (CommRing.toCommSemiring.{u4} S _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_10 : IsScalarTower.{u1, u4, u3} R S B (SMulZeroClass.toHasSmul.{u1, u4} R S (AddZeroClass.toHasZero.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)))))))) (Module.toMulActionWithZero.{u1, u4} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7))))) (Algebra.toModule.{u1, u4} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)) _inst_8))))) (SMulZeroClass.toHasSmul.{u4, u3} S B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u4, u3} S B (MulZeroClass.toHasZero.{u4} S (MulZeroOneClass.toMulZeroClass.{u4} S (MonoidWithZero.toMulZeroOneClass.{u4} S (Semiring.toMonoidWithZero.{u4} S (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u4, u3} S B (Semiring.toMonoidWithZero.{u4} S (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u4, u3} S B (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u4, u3} S B (CommRing.toCommSemiring.{u4} S _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_9))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] [_inst_11 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_12 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_11))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] (h : Algebra.IsIntegral.{u1, u4} R S _inst_1 (CommRing.toRing.{u4} S _inst_7) _inst_8) (x : S), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5) (coeFn.{max (succ u4) (succ u2), max (succ u4) (succ u2)} (AlgHom.{u1, u4, u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8 _inst_11) (fun (_x : AlgHom.{u1, u4, u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8 _inst_11) => S -> A) ([anonymous].{u1, u4, u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8 _inst_11) (IsIntegralClosure.lift.{u1, u2, u3, u4} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 S _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h) x)) (coeFn.{max (succ u4) (succ u3), max (succ u4) (succ u3)} (RingHom.{u4, u3} S B (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u4, u3} S B (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => S -> B) (RingHom.hasCoeToFun.{u4, u3} S B (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u4, u3} S B (CommRing.toCommSemiring.{u4} S _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_9) x)
 but is expected to have type
-  forall {R : Type.{u1}} (A : Type.{u3}) (B : Type.{u4}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u4} B] [_inst_4 : Algebra.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_5 : Algebra.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_6 : IsIntegralClosure.{u3, u1, u4} A R B _inst_1 (CommRing.toCommSemiring.{u3} A _inst_2) _inst_3 _inst_4 _inst_5] {S : Type.{u2}} [_inst_7 : CommRing.{u2} S] [_inst_8 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))] [_inst_9 : Algebra.{u2, u4} S B (CommRing.toCommSemiring.{u2} S _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_10 : IsScalarTower.{u1, u2, u4} R S B (Algebra.toSMul.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8) (Algebra.toSMul.{u2, u4} S B (CommRing.toCommSemiring.{u2} S _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_9) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] [_inst_11 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_12 : IsScalarTower.{u1, u3, u4} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11) (Algebra.toSMul.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] (h : Algebra.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_7) _inst_8) (x : S), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) S (fun (a : S) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : S) => A) a) (SMulHomClass.toFunLike.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (SMulZeroClass.toSMul.{u1, u2} R S (AddMonoid.toZero.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R S (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8))))) (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u2, u3, max u3 u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11 (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) (AlgHom.algHomClass.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11))))) (IsIntegralClosure.lift.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 S _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : S) => A) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (SMulZeroClass.toSMul.{u1, u2} R S (AddMonoid.toZero.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R S (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8))))) (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u2, u3, max u3 u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11 (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) (AlgHom.algHomClass.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11))))) (IsIntegralClosure.lift.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 S _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h) x)) (FunLike.coe.{max (succ u4) (succ u2), succ u2, succ u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => B) _x) (MulHomClass.toFunLike.{max u4 u2, u2, u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S B (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u2, u4} S B (CommRing.toCommSemiring.{u2} S _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_9) x)
+  forall {R : Type.{u1}} (A : Type.{u3}) (B : Type.{u4}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u4} B] [_inst_4 : Algebra.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_5 : Algebra.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_6 : IsIntegralClosure.{u3, u1, u4} A R B _inst_1 (CommRing.toCommSemiring.{u3} A _inst_2) _inst_3 _inst_4 _inst_5] {S : Type.{u2}} [_inst_7 : CommRing.{u2} S] [_inst_8 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))] [_inst_9 : Algebra.{u2, u4} S B (CommRing.toCommSemiring.{u2} S _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_10 : IsScalarTower.{u1, u2, u4} R S B (Algebra.toSMul.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8) (Algebra.toSMul.{u2, u4} S B (CommRing.toCommSemiring.{u2} S _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_9) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] [_inst_11 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_12 : IsScalarTower.{u1, u3, u4} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11) (Algebra.toSMul.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] (h : Algebra.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_7) _inst_8) (x : S), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) S (fun (a : S) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : S) => A) a) (SMulHomClass.toFunLike.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (SMulZeroClass.toSMul.{u1, u2} R S (AddMonoid.toZero.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R S (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8))))) (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u2, u3, max u3 u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11 (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) (AlgHom.algHomClass.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11))))) (IsIntegralClosure.lift.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 S _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : S) => A) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (SMulZeroClass.toSMul.{u1, u2} R S (AddMonoid.toZero.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R S (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8))))) (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u2, u3, max u3 u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11 (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) (AlgHom.algHomClass.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11))))) (IsIntegralClosure.lift.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 S _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h) x)) (FunLike.coe.{max (succ u4) (succ u2), succ u2, succ u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => B) _x) (MulHomClass.toFunLike.{max u4 u2, u2, u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S B (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u2, u4} S B (CommRing.toCommSemiring.{u2} S _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_9) x)
 Case conversion may be inaccurate. Consider using '#align is_integral_closure.algebra_map_lift IsIntegralClosure.algebraMap_liftₓ'. -/
 @[simp]
 theorem algebraMap_lift (x : S) : algebraMap A B (lift A B h x) = algebraMap S B x :=
@@ -1450,7 +1450,7 @@ noncomputable def equiv : A ≃ₐ[R] A' :=
 lean 3 declaration is
   forall (R : Type.{u1}) (A : Type.{u2}) (B : Type.{u3}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] (A' : Type.{u4}) [_inst_7 : CommRing.{u4} A'] [_inst_8 : Algebra.{u4, u3} A' B (CommRing.toCommSemiring.{u4} A' _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_9 : IsIntegralClosure.{u4, u1, u3} A' R B _inst_1 (CommRing.toCommSemiring.{u4} A' _inst_7) _inst_3 _inst_4 _inst_8] [_inst_10 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_11 : Algebra.{u1, u4} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7))] [_inst_12 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_10))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] [_inst_13 : IsScalarTower.{u1, u4, u3} R A' B (SMulZeroClass.toHasSmul.{u1, u4} R A' (AddZeroClass.toHasZero.{u4} A' (AddMonoid.toAddZeroClass.{u4} A' (AddCommMonoid.toAddMonoid.{u4} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} A' (Semiring.toNonAssocSemiring.{u4} A' (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R A' (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u4} A' (AddMonoid.toAddZeroClass.{u4} A' (AddCommMonoid.toAddMonoid.{u4} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} A' (Semiring.toNonAssocSemiring.{u4} A' (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R A' (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u4} A' (AddMonoid.toAddZeroClass.{u4} A' (AddCommMonoid.toAddMonoid.{u4} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} A' (Semiring.toNonAssocSemiring.{u4} A' (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)))))))) (Module.toMulActionWithZero.{u1, u4} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} A' (Semiring.toNonAssocSemiring.{u4} A' (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7))))) (Algebra.toModule.{u1, u4} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)) _inst_11))))) (SMulZeroClass.toHasSmul.{u4, u3} A' B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u4, u3} A' B (MulZeroClass.toHasZero.{u4} A' (MulZeroOneClass.toMulZeroClass.{u4} A' (MonoidWithZero.toMulZeroOneClass.{u4} A' (Semiring.toMonoidWithZero.{u4} A' (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u4, u3} A' B (Semiring.toMonoidWithZero.{u4} A' (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u4, u3} A' B (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u4, u3} A' B (CommRing.toCommSemiring.{u4} A' _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_8))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] (x : A), Eq.{succ u3} B (coeFn.{max (succ u4) (succ u3), max (succ u4) (succ u3)} (RingHom.{u4, u3} A' B (Semiring.toNonAssocSemiring.{u4} A' (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u4, u3} A' B (Semiring.toNonAssocSemiring.{u4} A' (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A' -> B) (RingHom.hasCoeToFun.{u4, u3} A' B (Semiring.toNonAssocSemiring.{u4} A' (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u4, u3} A' B (CommRing.toCommSemiring.{u4} A' _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_8) (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (AlgEquiv.{u1, u2, u4} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)) _inst_10 _inst_11) (fun (_x : AlgEquiv.{u1, u2, u4} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)) _inst_10 _inst_11) => A -> A') (AlgEquiv.hasCoeToFun.{u1, u2, u4} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)) _inst_10 _inst_11) (IsIntegralClosure.equiv.{u1, u2, u3, u4} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 A' _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 _inst_13) x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5) x)
 but is expected to have type
-  forall (R : Type.{u1}) (A : Type.{u3}) (B : Type.{u4}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u4} B] [_inst_4 : Algebra.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_5 : Algebra.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_6 : IsIntegralClosure.{u3, u1, u4} A R B _inst_1 (CommRing.toCommSemiring.{u3} A _inst_2) _inst_3 _inst_4 _inst_5] (A' : Type.{u2}) [_inst_7 : CommRing.{u2} A'] [_inst_8 : Algebra.{u2, u4} A' B (CommRing.toCommSemiring.{u2} A' _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_9 : IsIntegralClosure.{u2, u1, u4} A' R B _inst_1 (CommRing.toCommSemiring.{u2} A' _inst_7) _inst_3 _inst_4 _inst_8] [_inst_10 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_11 : Algebra.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))] [_inst_12 : IsScalarTower.{u1, u3, u4} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10) (Algebra.toSMul.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] [_inst_13 : IsScalarTower.{u1, u2, u4} R A' B (Algebra.toSMul.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11) (Algebra.toSMul.{u2, u4} A' B (CommRing.toCommSemiring.{u2} A' _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_8) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] (x : A), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A') => B) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) A (fun (a : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => A') a) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10))))) (SMulZeroClass.toSMul.{u1, u2} R A' (AddMonoid.toZero.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A' (AddMonoid.toAddZeroClass.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) (AlgEquivClass.toAlgHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11)))))) (IsIntegralClosure.equiv.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 A' _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 _inst_13) x)) (FunLike.coe.{max (succ u4) (succ u2), succ u2, succ u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A') => B) _x) (MulHomClass.toFunLike.{max u4 u2, u2, u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' B (NonUnitalNonAssocSemiring.toMul.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u2, u4} A' B (CommRing.toCommSemiring.{u2} A' _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_8) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => A') _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10))))) (SMulZeroClass.toSMul.{u1, u2} R A' (AddMonoid.toZero.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A' (AddMonoid.toAddZeroClass.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) (AlgEquivClass.toAlgHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11)))))) (IsIntegralClosure.equiv.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 A' _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 _inst_13) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) x)
+  forall (R : Type.{u1}) (A : Type.{u3}) (B : Type.{u4}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u4} B] [_inst_4 : Algebra.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_5 : Algebra.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_6 : IsIntegralClosure.{u3, u1, u4} A R B _inst_1 (CommRing.toCommSemiring.{u3} A _inst_2) _inst_3 _inst_4 _inst_5] (A' : Type.{u2}) [_inst_7 : CommRing.{u2} A'] [_inst_8 : Algebra.{u2, u4} A' B (CommRing.toCommSemiring.{u2} A' _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_9 : IsIntegralClosure.{u2, u1, u4} A' R B _inst_1 (CommRing.toCommSemiring.{u2} A' _inst_7) _inst_3 _inst_4 _inst_8] [_inst_10 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_11 : Algebra.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))] [_inst_12 : IsScalarTower.{u1, u3, u4} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10) (Algebra.toSMul.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] [_inst_13 : IsScalarTower.{u1, u2, u4} R A' B (Algebra.toSMul.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11) (Algebra.toSMul.{u2, u4} A' B (CommRing.toCommSemiring.{u2} A' _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_8) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] (x : A), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A') => B) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) A (fun (a : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => A') a) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10))))) (SMulZeroClass.toSMul.{u1, u2} R A' (AddMonoid.toZero.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A' (AddMonoid.toAddZeroClass.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) (AlgEquivClass.toAlgHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11)))))) (IsIntegralClosure.equiv.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 A' _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 _inst_13) x)) (FunLike.coe.{max (succ u4) (succ u2), succ u2, succ u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A') => B) _x) (MulHomClass.toFunLike.{max u4 u2, u2, u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' B (NonUnitalNonAssocSemiring.toMul.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u2, u4} A' B (CommRing.toCommSemiring.{u2} A' _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_8) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => A') _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10))))) (SMulZeroClass.toSMul.{u1, u2} R A' (AddMonoid.toZero.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A' (AddMonoid.toAddZeroClass.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) (AlgEquivClass.toAlgHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11)))))) (IsIntegralClosure.equiv.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 A' _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 _inst_13) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) x)
 Case conversion may be inaccurate. Consider using '#align is_integral_closure.algebra_map_equiv IsIntegralClosure.algebraMap_equivₓ'. -/
 @[simp]
 theorem algebraMap_equiv (x : A) : algebraMap A' B (equiv R A B A' x) = algebraMap A B x :=
@@ -1477,7 +1477,7 @@ variable [Algebra A B] [Algebra R B] (f : R →+* S) (g : S →+* T)
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] (x : B) {p : Polynomial.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))}, (Polynomial.Monic.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) p) -> (Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u2, u2, u3} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) B (CommRing.toCommSemiring.{u2} A _inst_2) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) _inst_6) (fun (_x : AlgHom.{u2, u2, u3} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) B (CommRing.toCommSemiring.{u2} A _inst_2) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) _inst_6) => (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) -> B) ([anonymous].{u2, u2, u3} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) B (CommRing.toCommSemiring.{u2} A _inst_2) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) _inst_6) (Polynomial.aeval.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6 x) p) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (MulZeroClass.toHasZero.{u3} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} B (NonAssocRing.toNonUnitalNonAssocRing.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))))) -> (IsIntegral.{u3, u3} (coeSort.{succ u3, succ (succ u3)} (Subalgebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Subalgebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7) B (Subalgebra.setLike.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7)) (Algebra.adjoin.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} B) (Set.{u3} B) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (Finset.Set.hasCoeT.{u3} B))) (Polynomial.frange.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.map.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6) p))))) B (Subalgebra.toCommRing.{u1, u3} R B _inst_1 _inst_3 _inst_7 (Algebra.adjoin.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} B) (Set.{u3} B) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (Finset.Set.hasCoeT.{u3} B))) (Polynomial.frange.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.map.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6) p))))) (CommRing.toRing.{u3} B _inst_3) (Subalgebra.toAlgebra.{u3, u1, u3} B R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u3} B _inst_3) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7 (Algebra.id.{u3} B (CommRing.toCommSemiring.{u3} B _inst_3)) (Algebra.adjoin.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} B) (Set.{u3} B) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (Finset.Set.hasCoeT.{u3} B))) (Polynomial.frange.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.map.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6) p))))) x)
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_6 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] (x : B) {p : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))}, (Polynomial.Monic.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) p) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (fun (_x : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) _x) (SMulHomClass.toFunLike.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (SMulZeroClass.toSMul.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddMonoid.toZero.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))))) (DistribSMul.toSMulZeroClass.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))))) (DistribMulAction.toDistribSMul.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (Module.toDistribMulAction.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Algebra.toModule.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))))) (SMulZeroClass.toSMul.{u3, u2} A B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u3, u2} A B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (Module.toDistribMulAction.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Algebra.toModule.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (Module.toDistribMulAction.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Algebra.toModule.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u3, u2, max u2 u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6 (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) (AlgHom.algHomClass.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6))))) (Polynomial.aeval.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (CommSemiring.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) _inst_3)))))) -> (IsIntegral.{u2, u2} (Subtype.{succ u2} B (fun (x : B) => Membership.mem.{u2, u2} B (Subalgebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) B (Subalgebra.instSetLikeSubalgebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7)) x (Algebra.adjoin.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7 (Finset.toSet.{u2} B (Polynomial.frange.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.map.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) p)))))) B (Subalgebra.toCommRing.{u1, u2} R B _inst_1 _inst_3 _inst_7 (Algebra.adjoin.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7 (Finset.toSet.{u2} B (Polynomial.frange.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.map.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) p))))) (CommRing.toRing.{u2} B _inst_3) (Subalgebra.toAlgebra.{u2, u1, u2} B R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} B _inst_3) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) _inst_7 (Algebra.id.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Algebra.adjoin.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7 (Finset.toSet.{u2} B (Polynomial.frange.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.map.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) p))))) x)
+  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_6 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] (x : B) {p : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))}, (Polynomial.Monic.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) p) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (fun (_x : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) _x) (SMulHomClass.toFunLike.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (SMulZeroClass.toSMul.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddMonoid.toZero.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))))) (DistribSMul.toSMulZeroClass.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))))) (DistribMulAction.toDistribSMul.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (Module.toDistribMulAction.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Algebra.toModule.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))))) (SMulZeroClass.toSMul.{u3, u2} A B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u3, u2} A B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (Module.toDistribMulAction.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Algebra.toModule.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (Module.toDistribMulAction.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Algebra.toModule.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u3, u2, max u2 u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6 (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) (AlgHom.algHomClass.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6))))) (Polynomial.aeval.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (CommSemiring.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) _inst_3)))))) -> (IsIntegral.{u2, u2} (Subtype.{succ u2} B (fun (x : B) => Membership.mem.{u2, u2} B (Subalgebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) B (Subalgebra.instSetLikeSubalgebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7)) x (Algebra.adjoin.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7 (Finset.toSet.{u2} B (Polynomial.frange.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.map.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) p)))))) B (Subalgebra.toCommRing.{u1, u2} R B _inst_1 _inst_3 _inst_7 (Algebra.adjoin.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7 (Finset.toSet.{u2} B (Polynomial.frange.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.map.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) p))))) (CommRing.toRing.{u2} B _inst_3) (Subalgebra.toAlgebra.{u2, u1, u2} B R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} B _inst_3) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) _inst_7 (Algebra.id.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Algebra.adjoin.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7 (Finset.toSet.{u2} B (Polynomial.frange.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.map.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) p))))) x)
 Case conversion may be inaccurate. Consider using '#align is_integral_trans_aux isIntegral_trans_auxₓ'. -/
 theorem isIntegral_trans_aux (x : B) {p : A[X]} (pmonic : Monic p) (hp : aeval x p = 0) :
     IsIntegral (adjoin R (↑(p.map <| algebraMap A B).frange : Set B)) x :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau
 
 ! This file was ported from Lean 3 source module ring_theory.integral_closure
-! leanprover-community/mathlib commit 641b6a82006416ec431b2987b354af9311fed4f2
+! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -20,6 +20,9 @@ import Mathbin.RingTheory.TensorProduct
 /-!
 # Integral closure of a subring.
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 If A is an R-algebra then `a : A` is integral over R if it is a root of a monic polynomial
 with coefficients in R. Enough theory is developed to prove that integral elements
 form a sub-R-algebra of A.
Diff
@@ -48,44 +48,70 @@ variable {R S A : Type _}
 
 variable [CommRing R] [Ring A] [Ring S] (f : R →+* S)
 
+#print RingHom.IsIntegralElem /-
 /-- An element `x` of `A` is said to be integral over `R` with respect to `f`
 if it is a root of a monic polynomial `p : R[X]` evaluated under `f` -/
 def RingHom.IsIntegralElem (f : R →+* A) (x : A) :=
   ∃ p : R[X], Monic p ∧ eval₂ f x p = 0
 #align ring_hom.is_integral_elem RingHom.IsIntegralElem
+-/
 
+#print RingHom.IsIntegral /-
 /-- A ring homomorphism `f : R →+* A` is said to be integral
 if every element `A` is integral with respect to the map `f` -/
 def RingHom.IsIntegral (f : R →+* A) :=
   ∀ x : A, f.IsIntegralElem x
 #align ring_hom.is_integral RingHom.IsIntegral
+-/
 
 variable [Algebra R A] (R)
 
+#print IsIntegral /-
 /-- An element `x` of an algebra `A` over a commutative ring `R` is said to be *integral*,
 if it is a root of some monic polynomial `p : R[X]`.
 Equivalently, the element is integral over `R` with respect to the induced `algebra_map` -/
 def IsIntegral (x : A) : Prop :=
   (algebraMap R A).IsIntegralElem x
 #align is_integral IsIntegral
+-/
 
 variable (A)
 
+#print Algebra.IsIntegral /-
 /-- An algebra is integral if every element of the extension is integral over the base ring -/
 protected def Algebra.IsIntegral : Prop :=
   (algebraMap R A).IsIntegral
 #align algebra.is_integral Algebra.IsIntegral
+-/
 
 variable {R A}
 
+/- warning: ring_hom.is_integral_map -> RingHom.is_integral_map is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_3 : Ring.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S _inst_3))) {x : R}, RingHom.IsIntegralElem.{u1, u2} R S _inst_1 _inst_3 f (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S _inst_3))) (fun (_x : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S _inst_3))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S _inst_3))) f x)
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_3 : Ring.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3))) {x : R}, RingHom.IsIntegralElem.{u2, u1} R S _inst_1 _inst_3 f (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (Ring.toSemiring.{u1} S _inst_3)))))) f x)
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_map RingHom.is_integral_mapₓ'. -/
 theorem RingHom.is_integral_map {x : R} : f.IsIntegralElem (f x) :=
   ⟨X - C x, monic_X_sub_C _, by simp⟩
 #align ring_hom.is_integral_map RingHom.is_integral_map
 
+/- warning: is_integral_algebra_map -> isIntegral_algebraMap is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : Ring.{u2} A] [_inst_4 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2)] {x : R}, IsIntegral.{u1, u2} R A _inst_1 _inst_2 _inst_4 (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2))) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2))) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) x)
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : Ring.{u1} A] [_inst_4 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2)] {x : R}, IsIntegral.{u2, u1} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) x) _inst_1 _inst_2 _inst_4 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2))) R A (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2))) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2))) R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)) (RingHom.instRingHomClassRingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))))) (algebraMap.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) x)
+Case conversion may be inaccurate. Consider using '#align is_integral_algebra_map isIntegral_algebraMapₓ'. -/
 theorem isIntegral_algebraMap {x : R} : IsIntegral R (algebraMap R A x) :=
   (algebraMap R A).is_integral_map
 #align is_integral_algebra_map isIntegral_algebraMap
 
+/- warning: is_integral_of_noetherian -> isIntegral_of_noetherian is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : Ring.{u2} A] [_inst_4 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2)], (IsNoetherian.{u1, u2} R A (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} A (NonUnitalNonAssocRing.toAddCommGroup.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) -> (forall (x : A), IsIntegral.{u1, u2} R A _inst_1 _inst_2 _inst_4 x)
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : Ring.{u1} A] [_inst_4 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2)], (IsNoetherian.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) -> (forall (x : A), IsIntegral.{u2, u1} R A _inst_1 _inst_2 _inst_4 x)
+Case conversion may be inaccurate. Consider using '#align is_integral_of_noetherian isIntegral_of_noetherianₓ'. -/
 theorem isIntegral_of_noetherian (H : IsNoetherian R A) (x : A) : IsIntegral R x :=
   by
   let leval : R[X] →ₗ[R] A := (aeval x).toLinearMap
@@ -106,6 +132,12 @@ theorem isIntegral_of_noetherian (H : IsNoetherian R A) (x : A) : IsIntegral R x
   rw [LinearMap.map_sub, hpe, sub_self]
 #align is_integral_of_noetherian isIntegral_of_noetherian
 
+/- warning: is_integral_of_submodule_noetherian -> isIntegral_of_submodule_noetherian is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : Ring.{u2} A] [_inst_4 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2)] (S : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4), (IsNoetherian.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) A (Submodule.setLike.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))) (coeFn.{succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))))) (fun (_x : RelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))))))) => (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) -> (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))) (RelEmbedding.hasCoeToFun.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))))))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) S)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Submodule.addCommMonoid.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (coeFn.{succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))))) (fun (_x : RelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))))))) => (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) -> (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))) (RelEmbedding.hasCoeToFun.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))))))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) S)) (Submodule.module.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (coeFn.{succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))))) (fun (_x : RelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))))))) => (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) -> (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))) (RelEmbedding.hasCoeToFun.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A _inst_2)))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)))))))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) S))) -> (forall (x : A), (Membership.Mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) (SetLike.hasMem.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_2) _inst_4)) x S) -> (IsIntegral.{u1, u2} R A _inst_1 _inst_2 _inst_4 x))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : Ring.{u1} A] [_inst_4 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2)] (S : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4), (IsNoetherian.{u2, u1} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) S) (SetLike.instMembership.{u1, u1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) S) A (Submodule.setLike.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4))) x (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (fun (a : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) a) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (Subalgebra.toSubmodule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) S))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Submodule.addCommMonoid.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (fun (_x : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (Subalgebra.toSubmodule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) S)) (Submodule.module.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (fun (_x : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A _inst_2)))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (Subalgebra.toSubmodule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) S))) -> (forall (x : A), (Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A _inst_2) _inst_4)) x S) -> (IsIntegral.{u2, u1} R A _inst_1 _inst_2 _inst_4 x))
+Case conversion may be inaccurate. Consider using '#align is_integral_of_submodule_noetherian isIntegral_of_submodule_noetherianₓ'. -/
 theorem isIntegral_of_submodule_noetherian (S : Subalgebra R A) (H : IsNoetherian R S.toSubmodule)
     (x : A) (hx : x ∈ S) : IsIntegral R x :=
   by
@@ -131,6 +163,12 @@ variable [CommRing R] [CommRing A] [CommRing B] [CommRing S]
 
 variable [Algebra R A] [Algebra R B] (f : R →+* S)
 
+/- warning: map_is_integral -> map_isIntegral is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {B : Type.{u3}} {C : Type.{u4}} {F : Type.{u5}} [_inst_7 : Ring.{u3} B] [_inst_8 : Ring.{u4} C] [_inst_9 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B _inst_7)] [_inst_10 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7)] [_inst_11 : Algebra.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C _inst_8)] [_inst_12 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) _inst_10))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B _inst_7) _inst_9)))))] [_inst_13 : Algebra.{u2, u4} A C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u4} C _inst_8)] [_inst_14 : IsScalarTower.{u1, u2, u4} R A C (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toHasSmul.{u2, u4} A C (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (SMulWithZero.toSmulZeroClass.{u2, u4} A C (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (MulActionWithZero.toSMulWithZero.{u2, u4} A C (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (Module.toMulActionWithZero.{u2, u4} A C (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u2, u4} A C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13))))) (SMulZeroClass.toHasSmul.{u1, u4} R C (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R C (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R C (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (Module.toMulActionWithZero.{u1, u4} R C (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C _inst_8) _inst_11)))))] {b : B} [_inst_15 : AlgHomClass.{u5, u2, u3, u4} F A B C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) (Ring.toSemiring.{u4} C _inst_8) _inst_10 _inst_13] (f : F), (IsIntegral.{u1, u3} R B _inst_1 _inst_7 _inst_9 b) -> (IsIntegral.{u1, u4} R C _inst_1 _inst_8 _inst_11 (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => B -> C) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F B (fun (_x : B) => C) (SMulHomClass.toFunLike.{u5, u2, u3, u4} F A B C (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))))) (DistribSMul.toSmulZeroClass.{u2, u3} A B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))))) (DistribMulAction.toDistribSMul.{u2, u3} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) _inst_10))))) (SMulZeroClass.toHasSmul.{u2, u4} A C (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))))) (DistribSMul.toSmulZeroClass.{u2, u4} A C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))))) (DistribMulAction.toDistribSMul.{u2, u4} A C (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))) (Module.toDistribMulAction.{u2, u4} A C (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u2, u4} A C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13))))) (DistribMulActionHomClass.toSmulHomClass.{u5, u2, u3, u4} F A B C (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))))) (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) _inst_10)) (Module.toDistribMulAction.{u2, u4} A C (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u2, u4} A C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u5, u2, u3, u4} F A B C (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) _inst_10)) (Module.toDistribMulAction.{u2, u4} A C (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u2, u4} A C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13)) (AlgHom.nonUnitalAlgHomClass.{u2, u3, u4, u5} A B C (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B _inst_7) (Ring.toSemiring.{u4} C _inst_8) _inst_10 _inst_13 F _inst_15))))) f b))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {B : Type.{u5}} {C : Type.{u4}} {F : Type.{u3}} [_inst_7 : Ring.{u5} B] [_inst_8 : Ring.{u4} C] [_inst_9 : Algebra.{u2, u5} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u5} B _inst_7)] [_inst_10 : Algebra.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7)] [_inst_11 : Algebra.{u2, u4} R C (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u4} C _inst_8)] [_inst_12 : IsScalarTower.{u2, u1, u5} R A B (Algebra.toSMul.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.toSMul.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10) (Algebra.toSMul.{u2, u5} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u5} B _inst_7) _inst_9)] [_inst_13 : Algebra.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8)] [_inst_14 : IsScalarTower.{u2, u1, u4} R A C (Algebra.toSMul.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.toSMul.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13) (Algebra.toSMul.{u2, u4} R C (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u4} C _inst_8) _inst_11)] {b : B} [_inst_15 : AlgHomClass.{u3, u1, u5, u4} F A B C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) (Ring.toSemiring.{u4} C _inst_8) _inst_10 _inst_13] (f : F), (IsIntegral.{u2, u5} R B _inst_1 _inst_7 _inst_9 b) -> (IsIntegral.{u2, u4} R ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => C) b) _inst_1 _inst_8 _inst_11 (FunLike.coe.{succ u3, succ u5, succ u4} F B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => C) _x) (SMulHomClass.toFunLike.{u3, u1, u5, u4} F A B C (SMulZeroClass.toSMul.{u1, u5} A B (AddMonoid.toZero.{u5} B (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u5} A B (AddMonoid.toAddZeroClass.{u5} B (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u5} A B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7))))) (Module.toDistribMulAction.{u1, u5} A B (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))) (Algebra.toModule.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10))))) (SMulZeroClass.toSMul.{u1, u4} A C (AddMonoid.toZero.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u4} A C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u4} A C (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))) (Module.toDistribMulAction.{u1, u4} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13))))) (DistribMulActionHomClass.toSMulHomClass.{u3, u1, u5, u4} F A B C (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u5} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7))))) (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))))) (Module.toDistribMulAction.{u1, u5} A B (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))) (Algebra.toModule.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10)) (Module.toDistribMulAction.{u1, u4} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u3, u1, u5, u4} F A B C (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8))) (Module.toDistribMulAction.{u1, u5} A B (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u5} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} B (Semiring.toNonAssocSemiring.{u5} B (Ring.toSemiring.{u5} B _inst_7)))) (Algebra.toModule.{u1, u5} A B (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) _inst_10)) (Module.toDistribMulAction.{u1, u4} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C _inst_8)))) (Algebra.toModule.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u4} C _inst_8) _inst_13)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u5, u4, u3} A B C (CommRing.toCommSemiring.{u1} A _inst_2) (Ring.toSemiring.{u5} B _inst_7) (Ring.toSemiring.{u4} C _inst_8) _inst_10 _inst_13 F _inst_15)))) f b))
+Case conversion may be inaccurate. Consider using '#align map_is_integral map_isIntegralₓ'. -/
 theorem map_isIntegral {B C F : Type _} [Ring B] [Ring C] [Algebra R B] [Algebra A B] [Algebra R C]
     [IsScalarTower R A B] [Algebra A C] [IsScalarTower R A C] {b : B} [AlgHomClass F A B C] (f : F)
     (hb : IsIntegral R b) : IsIntegral R (f b) :=
@@ -141,6 +179,12 @@ theorem map_isIntegral {B C F : Type _} [Ring B] [Ring C] [Algebra R B] [Algebra
     aeval_alg_hom_apply, aeval_map_algebra_map, aeval_def, hP.2, _root_.map_zero]
 #align map_is_integral map_isIntegral
 
+/- warning: is_integral_map_of_comp_eq_of_is_integral -> isIntegral_map_of_comp_eq_of_isIntegral is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} {U : Type.{u4}} [_inst_7 : CommRing.{u1} R] [_inst_8 : CommRing.{u2} S] [_inst_9 : CommRing.{u3} T] [_inst_10 : CommRing.{u4} U] [_inst_11 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_7) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_8))] [_inst_12 : Algebra.{u3, u4} T U (CommRing.toCommSemiring.{u3} T _inst_9) (Ring.toSemiring.{u4} U (CommRing.toRing.{u4} U _inst_10))] (φ : RingHom.{u1, u3} R T (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_7))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_9)))) (ψ : RingHom.{u2, u4} S U (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_8))) (NonAssocRing.toNonAssocSemiring.{u4} U (Ring.toNonAssocRing.{u4} U (CommRing.toRing.{u4} U _inst_10)))), (Eq.{max (succ u1) (succ u4)} (RingHom.{u1, u4} R U (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_7))) (Semiring.toNonAssocSemiring.{u4} U (Ring.toSemiring.{u4} U (CommRing.toRing.{u4} U _inst_10)))) (RingHom.comp.{u1, u3, u4} R T U (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_7))) (Semiring.toNonAssocSemiring.{u3} T (CommSemiring.toSemiring.{u3} T (CommRing.toCommSemiring.{u3} T _inst_9))) (Semiring.toNonAssocSemiring.{u4} U (Ring.toSemiring.{u4} U (CommRing.toRing.{u4} U _inst_10))) (algebraMap.{u3, u4} T U (CommRing.toCommSemiring.{u3} T _inst_9) (Ring.toSemiring.{u4} U (CommRing.toRing.{u4} U _inst_10)) _inst_12) φ) (RingHom.comp.{u1, u2, u4} R S U (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_7))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_8))) (NonAssocRing.toNonAssocSemiring.{u4} U (Ring.toNonAssocRing.{u4} U (CommRing.toRing.{u4} U _inst_10))) ψ (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_7) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_8)) _inst_11))) -> (forall {a : S}, (IsIntegral.{u1, u2} R S _inst_7 (CommRing.toRing.{u2} S _inst_8) _inst_11 a) -> (IsIntegral.{u3, u4} T U _inst_9 (CommRing.toRing.{u4} U _inst_10) _inst_12 (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (RingHom.{u2, u4} S U (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_8))) (NonAssocRing.toNonAssocSemiring.{u4} U (Ring.toNonAssocRing.{u4} U (CommRing.toRing.{u4} U _inst_10)))) (fun (_x : RingHom.{u2, u4} S U (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_8))) (NonAssocRing.toNonAssocSemiring.{u4} U (Ring.toNonAssocRing.{u4} U (CommRing.toRing.{u4} U _inst_10)))) => S -> U) (RingHom.hasCoeToFun.{u2, u4} S U (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_8))) (NonAssocRing.toNonAssocSemiring.{u4} U (Ring.toNonAssocRing.{u4} U (CommRing.toRing.{u4} U _inst_10)))) ψ a)))
+but is expected to have type
+  forall {R : Type.{u4}} {S : Type.{u3}} {T : Type.{u2}} {U : Type.{u1}} [_inst_7 : CommRing.{u4} R] [_inst_8 : CommRing.{u3} S] [_inst_9 : CommRing.{u2} T] [_inst_10 : CommRing.{u1} U] [_inst_11 : Algebra.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_7) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))] [_inst_12 : Algebra.{u2, u1} T U (CommRing.toCommSemiring.{u2} T _inst_9) (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10))] (φ : RingHom.{u4, u2} R T (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_7))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_9)))) (ψ : RingHom.{u3, u1} S U (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)))), (Eq.{max (succ u4) (succ u1)} (RingHom.{u4, u1} R U (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_7))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)))) (RingHom.comp.{u4, u2, u1} R T U (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_7))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_9))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10))) (algebraMap.{u2, u1} T U (CommRing.toCommSemiring.{u2} T _inst_9) (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)) _inst_12) φ) (RingHom.comp.{u4, u3, u1} R S U (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_7))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10))) ψ (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_7) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8)) _inst_11))) -> (forall {a : S}, (IsIntegral.{u4, u3} R S _inst_7 (CommRing.toRing.{u3} S _inst_8) _inst_11 a) -> (IsIntegral.{u2, u1} T ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => U) a) _inst_9 (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => U) a) _inst_10) _inst_12 (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} S U (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => U) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} S U (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)))) S U (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))))) (NonUnitalNonAssocSemiring.toMul.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S U (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)))) S U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S U (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10)))) S U (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10))) (RingHom.instRingHomClassRingHom.{u3, u1} S U (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_8))) (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U (CommRing.toCommSemiring.{u1} U _inst_10))))))) ψ a)))
+Case conversion may be inaccurate. Consider using '#align is_integral_map_of_comp_eq_of_is_integral isIntegral_map_of_comp_eq_of_isIntegralₓ'. -/
 theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type _} [CommRing R] [CommRing S]
     [CommRing T] [CommRing U] [Algebra R S] [Algebra T U] (φ : R →+* T) (ψ : S →+* U)
     (h : (algebraMap T U).comp φ = ψ.comp (algebraMap R S)) {a : S} (ha : IsIntegral R a) :
@@ -152,6 +196,12 @@ theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type _} [CommRing R]
     RingHom.map_zero]
 #align is_integral_map_of_comp_eq_of_is_integral isIntegral_map_of_comp_eq_of_isIntegral
 
+/- warning: is_integral_alg_hom_iff -> isIntegral_algHom_iff is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {A : Type.{u2}} {B : Type.{u3}} [_inst_7 : Ring.{u2} A] [_inst_8 : Ring.{u3} B] [_inst_9 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7)] [_inst_10 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B _inst_8)] (f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10), (Function.Injective.{succ u2, succ u3} A B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) (fun (_x : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) f)) -> (forall {x : A}, Iff (IsIntegral.{u1, u3} R B _inst_1 _inst_8 _inst_10 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) (fun (_x : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) f x)) (IsIntegral.{u1, u2} R A _inst_1 _inst_7 _inst_9 x))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {A : Type.{u3}} {B : Type.{u2}} [_inst_7 : Ring.{u3} A] [_inst_8 : Ring.{u2} B] [_inst_9 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7)] [_inst_10 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8)] (f : AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10), (Function.Injective.{succ u3, succ u2} A B (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9))))) (SMulZeroClass.toSMul.{u1, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u2} R B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) (AlgHom.algHomClass.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10))))) f)) -> (forall {x : A}, Iff (IsIntegral.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_1 _inst_8 _inst_10 (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9))))) (SMulZeroClass.toSMul.{u1, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u2} R B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgHom.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) (AlgHom.algHomClass.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10))))) f x)) (IsIntegral.{u1, u3} R A _inst_1 _inst_7 _inst_9 x))
+Case conversion may be inaccurate. Consider using '#align is_integral_alg_hom_iff isIntegral_algHom_iffₓ'. -/
 theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
     (f : A →ₐ[R] B) (hf : Function.Injective f) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x :=
   by
@@ -162,27 +212,57 @@ theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Al
     map_eq_zero_iff f hf] at hx
 #align is_integral_alg_hom_iff isIntegral_algHom_iff
 
+/- warning: is_integral_alg_equiv -> isIntegral_algEquiv is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {A : Type.{u2}} {B : Type.{u3}} [_inst_7 : Ring.{u2} A] [_inst_8 : Ring.{u3} B] [_inst_9 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7)] [_inst_10 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B _inst_8)] (f : AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) {x : A}, Iff (IsIntegral.{u1, u3} R B _inst_1 _inst_8 _inst_10 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) (fun (_x : AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) => A -> B) (AlgEquiv.hasCoeToFun.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A _inst_7) (Ring.toSemiring.{u3} B _inst_8) _inst_9 _inst_10) f x)) (IsIntegral.{u1, u2} R A _inst_1 _inst_7 _inst_9 x)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {A : Type.{u3}} {B : Type.{u2}} [_inst_7 : Ring.{u3} A] [_inst_8 : Ring.{u2} B] [_inst_9 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7)] [_inst_10 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8)] (f : AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) {x : A}, Iff (IsIntegral.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_1 _inst_8 _inst_10 (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9))))) (SMulZeroClass.toSMul.{u1, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribSMul.toSMulZeroClass.{u1, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))))) (DistribMulAction.toDistribSMul.{u1, u2} R B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A _inst_7)))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) _inst_9)) (Module.toDistribMulAction.{u1, u2} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_8)))) (Algebra.toModule.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B _inst_8) _inst_10)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) (AlgEquivClass.toAlgHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10) R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10 (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u3, u2} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A _inst_7) (Ring.toSemiring.{u2} B _inst_8) _inst_9 _inst_10)))))) f x)) (IsIntegral.{u1, u3} R A _inst_1 _inst_7 _inst_9 x)
+Case conversion may be inaccurate. Consider using '#align is_integral_alg_equiv isIntegral_algEquivₓ'. -/
 @[simp]
 theorem isIntegral_algEquiv {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
     (f : A ≃ₐ[R] B) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x :=
   ⟨fun h => by simpa using map_isIntegral f.symm.to_alg_hom h, map_isIntegral f.toAlgHom⟩
 #align is_integral_alg_equiv isIntegral_algEquiv
 
+/- warning: is_integral_of_is_scalar_tower -> isIntegral_of_isScalarTower is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_8 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6)))))] {x : B}, (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_6 x) -> (IsIntegral.{u2, u3} A B _inst_2 (CommRing.toRing.{u3} B _inst_3) _inst_7 x)
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_6 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_8 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_5) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)] {x : B}, (IsIntegral.{u1, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_6 x) -> (IsIntegral.{u3, u2} A B _inst_2 (CommRing.toRing.{u2} B _inst_3) _inst_7 x)
+Case conversion may be inaccurate. Consider using '#align is_integral_of_is_scalar_tower isIntegral_of_isScalarTowerₓ'. -/
 theorem isIntegral_of_isScalarTower [Algebra A B] [IsScalarTower R A B] {x : B}
     (hx : IsIntegral R x) : IsIntegral A x :=
   let ⟨p, hp, hpx⟩ := hx
   ⟨p.map <| algebraMap R A, hp.map _, by rw [← aeval_def, aeval_map_algebra_map, aeval_def, hpx]⟩
 #align is_integral_of_is_scalar_tower isIntegral_of_isScalarTower
 
+/- warning: map_is_integral_int -> map_isIntegral_int is a dubious translation:
+lean 3 declaration is
+  forall {B : Type.{u1}} {C : Type.{u2}} {F : Type.{u3}} [_inst_7 : Ring.{u1} B] [_inst_8 : Ring.{u2} C] {b : B} [_inst_9 : RingHomClass.{u3, u1, u2} F B C (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B _inst_7)) (NonAssocRing.toNonAssocSemiring.{u2} C (Ring.toNonAssocRing.{u2} C _inst_8))] (f : F), (IsIntegral.{0, u1} Int B Int.commRing _inst_7 (algebraInt.{u1} B _inst_7) b) -> (IsIntegral.{0, u2} Int C Int.commRing _inst_8 (algebraInt.{u2} C _inst_8) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => B -> C) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F B (fun (_x : B) => C) (MulHomClass.toFunLike.{u3, u1, u2} F B C (Distrib.toHasMul.{u1} B (NonUnitalNonAssocSemiring.toDistrib.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B _inst_7))))) (Distrib.toHasMul.{u2} C (NonUnitalNonAssocSemiring.toDistrib.{u2} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} C (NonAssocRing.toNonAssocSemiring.{u2} C (Ring.toNonAssocRing.{u2} C _inst_8))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F B C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} C (NonAssocRing.toNonAssocSemiring.{u2} C (Ring.toNonAssocRing.{u2} C _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u3, u1, u2} F B C (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B _inst_7)) (NonAssocRing.toNonAssocSemiring.{u2} C (Ring.toNonAssocRing.{u2} C _inst_8)) _inst_9)))) f b))
+but is expected to have type
+  forall {B : Type.{u3}} {C : Type.{u2}} {F : Type.{u1}} [_inst_7 : Ring.{u3} B] [_inst_8 : Ring.{u2} C] {b : B} [_inst_9 : RingHomClass.{u1, u3, u2} F B C (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)) (Semiring.toNonAssocSemiring.{u2} C (Ring.toSemiring.{u2} C _inst_8))] (f : F), (IsIntegral.{0, u3} Int B Int.instCommRingInt _inst_7 (algebraInt.{u3} B _inst_7) b) -> (IsIntegral.{0, u2} Int ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : B) => C) b) Int.instCommRingInt _inst_8 (algebraInt.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : B) => C) b) _inst_8) (FunLike.coe.{succ u1, succ u3, succ u2} F B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : B) => C) _x) (MulHomClass.toFunLike.{u1, u3, u2} F B C (NonUnitalNonAssocSemiring.toMul.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{u2} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} C (Semiring.toNonAssocSemiring.{u2} C (Ring.toSemiring.{u2} C _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u1, u3, u2} F B C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} C (Semiring.toNonAssocSemiring.{u2} C (Ring.toSemiring.{u2} C _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u1, u3, u2} F B C (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B _inst_7)) (Semiring.toNonAssocSemiring.{u2} C (Ring.toSemiring.{u2} C _inst_8)) _inst_9))) f b))
+Case conversion may be inaccurate. Consider using '#align map_is_integral_int map_isIntegral_intₓ'. -/
 theorem map_isIntegral_int {B C F : Type _} [Ring B] [Ring C] {b : B} [RingHomClass F B C] (f : F)
     (hb : IsIntegral ℤ b) : IsIntegral ℤ (f b) :=
   map_isIntegral (f : B →+* C).toIntAlgHom hb
 #align map_is_integral_int map_isIntegral_int
 
+/- warning: is_integral_of_subring -> isIntegral_ofSubring is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} (T : Subring.{u1} R (CommRing.toRing.{u1} R _inst_1)), (IsIntegral.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subring.{u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subring.{u1} R (CommRing.toRing.{u1} R _inst_1)) R (Subring.setLike.{u1} R (CommRing.toRing.{u1} R _inst_1))) T) A (Subring.toCommRing.{u1} R _inst_1 T) (CommRing.toRing.{u2} A _inst_2) (Algebra.ofSubring.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 T) x) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A} (T : Subring.{u2} R (CommRing.toRing.{u2} R _inst_1)), (IsIntegral.{u2, u1} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Subring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SetLike.instMembership.{u2, u2} (Subring.{u2} R (CommRing.toRing.{u2} R _inst_1)) R (Subring.instSetLikeSubring.{u2} R (CommRing.toRing.{u2} R _inst_1))) x T)) A (Subring.toCommRing.{u2} R _inst_1 T) (CommRing.toRing.{u1} A _inst_2) (Algebra.ofSubring.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 T) x) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x)
+Case conversion may be inaccurate. Consider using '#align is_integral_of_subring isIntegral_ofSubringₓ'. -/
 theorem isIntegral_ofSubring {x : A} (T : Subring R) (hx : IsIntegral T x) : IsIntegral R x :=
   isIntegral_of_isScalarTower hx
 #align is_integral_of_subring isIntegral_ofSubring
 
+/- warning: is_integral.algebra_map -> IsIntegral.algebraMap is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_8 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6)))))] {x : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_6 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7) x))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_6 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_8 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_5) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)] {x : A}, (IsIntegral.{u1, u3} R A _inst_1 (CommRing.toRing.{u3} A _inst_2) _inst_5 x) -> (IsIntegral.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_1 (CommRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_3) _inst_6 (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) x))
+Case conversion may be inaccurate. Consider using '#align is_integral.algebra_map IsIntegral.algebraMapₓ'. -/
 theorem IsIntegral.algebraMap [Algebra A B] [IsScalarTower R A B] {x : A} (h : IsIntegral R x) :
     IsIntegral R (algebraMap A B x) :=
   by
@@ -191,12 +271,24 @@ theorem IsIntegral.algebraMap [Algebra A B] [IsScalarTower R A B] {x : A} (h : I
   rw [IsScalarTower.algebraMap_eq R A B, ← hom_eval₂, hx, RingHom.map_zero]
 #align is_integral.algebra_map IsIntegral.algebraMap
 
+/- warning: is_integral_algebra_map_iff -> isIntegral_algebraMap_iff is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_8 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6)))))] {x : A}, (Function.Injective.{succ u2, succ u3} A B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7))) -> (Iff (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_6 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7) x)) (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_6 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_8 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_5) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)] {x : A}, (Function.Injective.{succ u3, succ u2} A B (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7))) -> (Iff (IsIntegral.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_1 (CommRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_3) _inst_6 (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) x)) (IsIntegral.{u1, u3} R A _inst_1 (CommRing.toRing.{u3} A _inst_2) _inst_5 x))
+Case conversion may be inaccurate. Consider using '#align is_integral_algebra_map_iff isIntegral_algebraMap_iffₓ'. -/
 theorem isIntegral_algebraMap_iff [Algebra A B] [IsScalarTower R A B] {x : A}
     (hAB : Function.Injective (algebraMap A B)) :
     IsIntegral R (algebraMap A B x) ↔ IsIntegral R x :=
   isIntegral_algHom_iff (IsScalarTower.toAlgHom R A B) hAB
 #align is_integral_algebra_map_iff isIntegral_algebraMap_iff
 
+/- warning: is_integral_iff_is_integral_closure_finite -> isIntegral_iff_isIntegral_closure_finite is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {r : A}, Iff (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 r) (Exists.{succ u1} (Set.{u1} R) (fun (s : Set.{u1} R) => And (Set.Finite.{u1} R s) (IsIntegral.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subring.{u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subring.{u1} R (CommRing.toRing.{u1} R _inst_1)) R (Subring.setLike.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Subring.closure.{u1} R (CommRing.toRing.{u1} R _inst_1) s)) A (Subring.toCommRing.{u1} R _inst_1 (Subring.closure.{u1} R (CommRing.toRing.{u1} R _inst_1) s)) (CommRing.toRing.{u2} A _inst_2) (Algebra.ofSubring.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (Subring.closure.{u1} R (CommRing.toRing.{u1} R _inst_1) s)) r)))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {r : A}, Iff (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 r) (Exists.{succ u2} (Set.{u2} R) (fun (s : Set.{u2} R) => And (Set.Finite.{u2} R s) (IsIntegral.{u2, u1} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Subring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (SetLike.instMembership.{u2, u2} (Subring.{u2} R (CommRing.toRing.{u2} R _inst_1)) R (Subring.instSetLikeSubring.{u2} R (CommRing.toRing.{u2} R _inst_1))) x (Subring.closure.{u2} R (CommRing.toRing.{u2} R _inst_1) s))) A (Subring.toCommRing.{u2} R _inst_1 (Subring.closure.{u2} R (CommRing.toRing.{u2} R _inst_1) s)) (CommRing.toRing.{u1} A _inst_2) (Algebra.ofSubring.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (Subring.closure.{u2} R (CommRing.toRing.{u2} R _inst_1) s)) r)))
+Case conversion may be inaccurate. Consider using '#align is_integral_iff_is_integral_closure_finite isIntegral_iff_isIntegral_closure_finiteₓ'. -/
 theorem isIntegral_iff_isIntegral_closure_finite {r : A} :
     IsIntegral R r ↔ ∃ s : Set R, s.Finite ∧ IsIntegral (Subring.closure s) r :=
   by
@@ -208,7 +300,13 @@ theorem isIntegral_iff_isIntegral_closure_finite {r : A} :
   exact isIntegral_ofSubring _ hsr
 #align is_integral_iff_is_integral_closure_finite isIntegral_iff_isIntegral_closure_finite
 
-theorem fG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
+/- warning: fg_adjoin_singleton_of_integral -> FG_adjoin_singleton_of_integral is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] (x : A), (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (Submodule.FG.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (coeFn.{succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))))) (fun (_x : RelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) => (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) -> (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))) (RelEmbedding.hasCoeToFun.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 (Singleton.singleton.{u2, u2} A (Set.{u2} A) (Set.hasSingleton.{u2} A) x))))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] (x : A), (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (Submodule.FG.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (fun (_x : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (Subalgebra.toSubmodule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Singleton.singleton.{u1, u1} A (Set.{u1} A) (Set.instSingletonSet.{u1} A) x))))
+Case conversion may be inaccurate. Consider using '#align fg_adjoin_singleton_of_integral FG_adjoin_singleton_of_integralₓ'. -/
+theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
     (Algebra.adjoin R ({x} : Set A)).toSubmodule.FG :=
   by
   rcases hx with ⟨f, hfm, hfx⟩
@@ -237,9 +335,15 @@ theorem fG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
   rw [degree_le_iff_coeff_zero] at this
   rw [mem_support_iff] at hkq; apply hkq; apply this
   exact lt_of_le_of_lt degree_le_nat_degree (WithBot.coe_lt_coe.2 hk)
-#align fg_adjoin_singleton_of_integral fG_adjoin_singleton_of_integral
-
-theorem fG_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsIntegral R x) :
+#align fg_adjoin_singleton_of_integral FG_adjoin_singleton_of_integral
+
+/- warning: fg_adjoin_of_finite -> FG_adjoin_of_finite is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {s : Set.{u2} A}, (Set.Finite.{u2} A s) -> (forall (x : A), (Membership.Mem.{u2, u2} A (Set.{u2} A) (Set.hasMem.{u2} A) x s) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)) -> (Submodule.FG.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (coeFn.{succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))))) (fun (_x : RelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) => (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) -> (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))) (RelEmbedding.hasCoeToFun.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 s)))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] {s : Set.{u2} A}, (Set.Finite.{u2} A s) -> (forall (x : A), (Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x s) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)) -> (Submodule.FG.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (FunLike.coe.{succ u2, succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5))))))) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (fun (_x : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) _x) (RelHomClass.toFunLike.{u2, u2, u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5))))))) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) => LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) => LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5 s)))
+Case conversion may be inaccurate. Consider using '#align fg_adjoin_of_finite FG_adjoin_of_finiteₓ'. -/
+theorem FG_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsIntegral R x) :
     (Algebra.adjoin R s).toSubmodule.FG :=
   Set.Finite.induction_on hfs
     (fun _ =>
@@ -253,19 +357,31 @@ theorem fG_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsI
       rw [← Set.union_singleton, Algebra.adjoin_union_coe_submodule] <;>
         exact
           fg.mul (ih fun i hi => his i <| Set.mem_insert_of_mem a hi)
-            (fG_adjoin_singleton_of_integral _ <| his a <| Set.mem_insert a s))
+            (FG_adjoin_singleton_of_integral _ <| his a <| Set.mem_insert a s))
     his
-#align fg_adjoin_of_finite fG_adjoin_of_finite
-
+#align fg_adjoin_of_finite FG_adjoin_of_finite
+
+/- warning: is_noetherian_adjoin_finset -> isNoetherian_adjoin_finset is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_7 : IsNoetherianRing.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] (s : Finset.{u2} A), (forall (x : A), (Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)) -> (IsNoetherian.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} A) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (Finset.Set.hasCoeT.{u2} A))) s))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} A) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (Finset.Set.hasCoeT.{u2} A))) s))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} A) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (Finset.Set.hasCoeT.{u2} A))) s))) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} A) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (Finset.Set.hasCoeT.{u2} A))) s))) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} A) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (Finset.Set.hasCoeT.{u2} A))) s))) (Subalgebra.toRing.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} A) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (Finset.Set.hasCoeT.{u2} A))) s))))))) (Subalgebra.module.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} A) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} A) (Set.{u2} A) (Finset.Set.hasCoeT.{u2} A))) s))))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] [_inst_7 : IsNoetherianRing.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] (s : Finset.{u1} A), (forall (x : A), (Membership.mem.{u1, u1} A (Finset.{u1} A) (Finset.instMembershipFinset.{u1} A) x s) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x)) -> (IsNoetherian.{u2, u1} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Finset.toSet.{u1} A s)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Finset.toSet.{u1} A s)))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Finset.toSet.{u1} A s)))) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Finset.toSet.{u1} A s)))) (Ring.toNonAssocRing.{u1} (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Finset.toSet.{u1} A s)))) (Subalgebra.toRing.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Finset.toSet.{u1} A s))))))) (Subalgebra.instModuleSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebraToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToNonAssocSemiringToSubsemiring.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Finset.toSet.{u1} A s))))
+Case conversion may be inaccurate. Consider using '#align is_noetherian_adjoin_finset isNoetherian_adjoin_finsetₓ'. -/
 theorem isNoetherian_adjoin_finset [IsNoetherianRing R] (s : Finset A)
     (hs : ∀ x ∈ s, IsIntegral R x) : IsNoetherian R (Algebra.adjoin R (↑s : Set A)) :=
-  isNoetherian_of_fg_of_noetherian _ (fG_adjoin_of_finite s.finite_toSet hs)
+  isNoetherian_of_fg_of_noetherian _ (FG_adjoin_of_finite s.finite_toSet hs)
 #align is_noetherian_adjoin_finset isNoetherian_adjoin_finset
 
+/- warning: is_integral_of_mem_of_fg -> isIntegral_of_mem_of_FG is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] (S : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5), (Submodule.FG.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (coeFn.{succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))))) (fun (_x : RelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) => (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) -> (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))) (RelEmbedding.hasCoeToFun.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) S)) -> (forall (x : A), (Membership.Mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.hasMem.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) x S) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] (S : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5), (Submodule.FG.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (FunLike.coe.{succ u1, succ u1, succ u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (fun (_x : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (OrderEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))))) (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) => LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) => LE.le.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Preorder.toLE.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (Subalgebra.toSubmodule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) S)) -> (forall (x : A), (Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x S) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x))
+Case conversion may be inaccurate. Consider using '#align is_integral_of_mem_of_fg isIntegral_of_mem_of_FGₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /-- If `S` is a sub-`R`-algebra of `A` and `S` is finitely-generated as an `R`-module,
   then all elements of `S` are integral over `R`. -/
-theorem isIntegral_of_mem_of_fG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x : A) (hx : x ∈ S) :
+theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x : A) (hx : x ∈ S) :
     IsIntegral R x :=
   by
   -- say `x ∈ S`. We want to prove that `x` is integral over `R`.
@@ -362,13 +478,25 @@ theorem isIntegral_of_mem_of_fG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   change (⟨_, this⟩ : S₀) • r ∈ _
   rw [Finsupp.mem_supported] at hlx1
   exact Subalgebra.smul_mem _ (Algebra.subset_adjoin <| hlx1 hr) _
-#align is_integral_of_mem_of_fg isIntegral_of_mem_of_fG
-
+#align is_integral_of_mem_of_fg isIntegral_of_mem_of_FG
+
+/- warning: module.End.is_integral -> Module.End.isIntegral is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_7 : AddCommGroup.{u2} M] [_inst_8 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7)] [_inst_9 : Module.Finite.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7) _inst_8], Algebra.IsIntegral.{u1, u2} R (Module.End.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7) _inst_8) _inst_1 (Module.End.ring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_7 _inst_8) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7) _inst_8)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_7 : AddCommGroup.{u2} M] [_inst_8 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7)] [_inst_9 : Module.Finite.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7) _inst_8], Algebra.IsIntegral.{u1, u2} R (Module.End.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7) _inst_8) _inst_1 (Module.End.ring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_7 _inst_8) (Module.instAlgebraEndToSemiringSemiring.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_7) _inst_8)
+Case conversion may be inaccurate. Consider using '#align module.End.is_integral Module.End.isIntegralₓ'. -/
 theorem Module.End.isIntegral {M : Type _} [AddCommGroup M] [Module R M] [Module.Finite R M] :
     Algebra.IsIntegral R (Module.End R M) :=
   LinearMap.exists_monic_and_aeval_eq_zero R
 #align module.End.is_integral Module.End.isIntegral
 
+/- warning: is_integral_of_smul_mem_submodule -> isIntegral_of_smul_mem_submodule is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {M : Type.{u3}} [_inst_7 : AddCommGroup.{u3} M] [_inst_8 : Module.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)] [_inst_9 : Module.{u2, u3} A M (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)] [_inst_10 : IsScalarTower.{u1, u2, u3} R A M (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (Module.toMulActionWithZero.{u2, u3} A M (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_9)))) (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (Module.toMulActionWithZero.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8))))] [_inst_11 : NoZeroSMulDivisors.{u2, u3} A M (MulZeroClass.toHasZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (SubNegMonoid.toAddMonoid.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (Module.toMulActionWithZero.{u2, u3} A M (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_9))))] (N : Submodule.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8), (Ne.{succ u3} (Submodule.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) N (Bot.bot.{u3} (Submodule.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) (Submodule.hasBot.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8))) -> (Submodule.FG.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8 N) -> (forall (x : A), (forall (n : M), (Membership.Mem.{u3, u3} M (Submodule.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) M (Submodule.setLike.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8)) n N) -> (Membership.Mem.{u3, u3} M (Submodule.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) M (Submodule.setLike.{u1, u3} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8)) (SMul.smul.{u2, u3} A M (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (SMulWithZero.toSmulZeroClass.{u2, u3} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)))) (Module.toMulActionWithZero.{u2, u3} A M (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_9)))) x n) N)) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {M : Type.{u3}} [_inst_7 : AddCommGroup.{u3} M] [_inst_8 : Module.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)] [_inst_9 : Module.{u1, u3} A M (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7)] [_inst_10 : IsScalarTower.{u2, u1, u3} R A M (Algebra.toSMul.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SMulZeroClass.toSMul.{u1, u3} A M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u3} A M (CommMonoidWithZero.toZero.{u1} A (CommSemiring.toCommMonoidWithZero.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A M (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (Module.toMulActionWithZero.{u1, u3} A M (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_9)))) (SMulZeroClass.toSMul.{u2, u3} R M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (SMulWithZero.toSMulZeroClass.{u2, u3} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (Module.toMulActionWithZero.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8))))] [_inst_11 : NoZeroSMulDivisors.{u1, u3} A M (CommMonoidWithZero.toZero.{u1} A (CommSemiring.toCommMonoidWithZero.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (SMulZeroClass.toSMul.{u1, u3} A M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u3} A M (CommMonoidWithZero.toZero.{u1} A (CommSemiring.toCommMonoidWithZero.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A M (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (Module.toMulActionWithZero.{u1, u3} A M (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_9))))] (N : Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8), (Ne.{succ u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) N (Bot.bot.{u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) (Submodule.instBotSubmodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8))) -> (Submodule.FG.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8 N) -> (forall (x : A), (forall (n : M), (Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8)) n N) -> (Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8) M (Submodule.setLike.{u2, u3} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_8)) (HSMul.hSMul.{u1, u3, u3} A M M (instHSMul.{u1, u3} A M (SMulZeroClass.toSMul.{u1, u3} A M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (SMulWithZero.toSMulZeroClass.{u1, u3} A M (CommMonoidWithZero.toZero.{u1} A (CommSemiring.toCommMonoidWithZero.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A M (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_7))))) (Module.toMulActionWithZero.{u1, u3} A M (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_7) _inst_9))))) x n) N)) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x))
+Case conversion may be inaccurate. Consider using '#align is_integral_of_smul_mem_submodule isIntegral_of_smul_mem_submoduleₓ'. -/
 /-- Suppose `A` is an `R`-algebra, `M` is an `A`-module such that `a • m ≠ 0` for all non-zero `a`
 and `m`. If `x : A` fixes a nontrivial f.g. `R`-submodule `N` of `M`, then `x` is `R`-integral. -/
 theorem isIntegral_of_smul_mem_submodule {M : Type _} [AddCommGroup M] [Module R M] [Module A M]
@@ -410,14 +538,32 @@ theorem isIntegral_of_smul_mem_submodule {M : Type _} [AddCommGroup M] [Module R
 
 variable {f}
 
+/- warning: ring_hom.finite.to_is_integral -> RingHom.Finite.to_isIntegral is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))}, (RingHom.Finite.{u1, u2} R S _inst_1 _inst_4 f) -> (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f)
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] {f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))}, (RingHom.Finite.{u2, u1} R S _inst_1 _inst_4 f) -> (RingHom.IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f)
+Case conversion may be inaccurate. Consider using '#align ring_hom.finite.to_is_integral RingHom.Finite.to_isIntegralₓ'. -/
 theorem RingHom.Finite.to_isIntegral (h : f.Finite) : f.IsIntegral :=
   letI := f.to_algebra
-  fun x => isIntegral_of_mem_of_fG ⊤ h.1 _ trivial
+  fun x => isIntegral_of_mem_of_FG ⊤ h.1 _ trivial
 #align ring_hom.finite.to_is_integral RingHom.Finite.to_isIntegral
 
+/- warning: ring_hom.is_integral.of_finite -> RingHom.IsIntegral.of_finite is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))}, (RingHom.Finite.{u1, u2} R S _inst_1 _inst_4 f) -> (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f)
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] {f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))}, (RingHom.Finite.{u2, u1} R S _inst_1 _inst_4 f) -> (RingHom.IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f)
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral.of_finite RingHom.IsIntegral.of_finiteₓ'. -/
 alias RingHom.Finite.to_isIntegral ← RingHom.IsIntegral.of_finite
 #align ring_hom.is_integral.of_finite RingHom.IsIntegral.of_finite
 
+/- warning: ring_hom.is_integral.to_finite -> RingHom.IsIntegral.to_finite is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))}, (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f) -> (RingHom.FiniteType.{u1, u2} R S _inst_1 _inst_4 f) -> (RingHom.Finite.{u1, u2} R S _inst_1 _inst_4 f)
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] {f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))}, (RingHom.IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f) -> (RingHom.FiniteType.{u2, u1} R S _inst_1 _inst_4 f) -> (RingHom.Finite.{u2, u1} R S _inst_1 _inst_4 f)
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral.to_finite RingHom.IsIntegral.to_finiteₓ'. -/
 theorem RingHom.IsIntegral.to_finite (h : f.IsIntegral) (h' : f.FiniteType) : f.Finite :=
   by
   letI := f.to_algebra
@@ -425,17 +571,35 @@ theorem RingHom.IsIntegral.to_finite (h : f.IsIntegral) (h' : f.FiniteType) : f.
   constructor
   change (⊤ : Subalgebra R S).toSubmodule.FG
   rw [← hs]
-  exact fG_adjoin_of_finite (Set.toFinite _) fun x _ => h x
+  exact FG_adjoin_of_finite (Set.toFinite _) fun x _ => h x
 #align ring_hom.is_integral.to_finite RingHom.IsIntegral.to_finite
 
+/- warning: ring_hom.finite.of_is_integral_of_finite_type -> RingHom.Finite.of_isIntegral_of_finiteType is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))}, (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f) -> (RingHom.FiniteType.{u1, u2} R S _inst_1 _inst_4 f) -> (RingHom.Finite.{u1, u2} R S _inst_1 _inst_4 f)
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] {f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))}, (RingHom.IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f) -> (RingHom.FiniteType.{u2, u1} R S _inst_1 _inst_4 f) -> (RingHom.Finite.{u2, u1} R S _inst_1 _inst_4 f)
+Case conversion may be inaccurate. Consider using '#align ring_hom.finite.of_is_integral_of_finite_type RingHom.Finite.of_isIntegral_of_finiteTypeₓ'. -/
 alias RingHom.IsIntegral.to_finite ← RingHom.Finite.of_isIntegral_of_finiteType
 #align ring_hom.finite.of_is_integral_of_finite_type RingHom.Finite.of_isIntegral_of_finiteType
 
+/- warning: ring_hom.finite_iff_is_integral_and_finite_type -> RingHom.finite_iff_isIntegral_and_finiteType is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))}, Iff (RingHom.Finite.{u1, u2} R S _inst_1 _inst_4 f) (And (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f) (RingHom.FiniteType.{u1, u2} R S _inst_1 _inst_4 f))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] {f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))}, Iff (RingHom.Finite.{u2, u1} R S _inst_1 _inst_4 f) (And (RingHom.IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f) (RingHom.FiniteType.{u2, u1} R S _inst_1 _inst_4 f))
+Case conversion may be inaccurate. Consider using '#align ring_hom.finite_iff_is_integral_and_finite_type RingHom.finite_iff_isIntegral_and_finiteTypeₓ'. -/
 /-- finite = integral + finite type -/
 theorem RingHom.finite_iff_isIntegral_and_finiteType : f.Finite ↔ f.IsIntegral ∧ f.FiniteType :=
   ⟨fun h => ⟨h.to_isIntegral, h.to_finiteType⟩, fun ⟨h, h'⟩ => h.toFinite h'⟩
 #align ring_hom.finite_iff_is_integral_and_finite_type RingHom.finite_iff_isIntegral_and_finiteType
 
+/- warning: algebra.is_integral.finite -> Algebra.IsIntegral.finite is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], (Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5) -> (forall [h' : Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5], Module.Finite.{u1, u2} R A (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} A (NonUnitalNonAssocRing.toAddCommGroup.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))], (Algebra.IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5) -> (forall [h' : Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5], Module.Finite.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))
+Case conversion may be inaccurate. Consider using '#align algebra.is_integral.finite Algebra.IsIntegral.finiteₓ'. -/
 theorem Algebra.IsIntegral.finite (h : Algebra.IsIntegral R A) [h' : Algebra.FiniteType R A] :
     Module.Finite R A :=
   by
@@ -449,12 +613,24 @@ theorem Algebra.IsIntegral.finite (h : Algebra.IsIntegral R A) [h' : Algebra.Fin
   delta RingHom.Finite at this; convert this; ext; exact Algebra.smul_def _ _
 #align algebra.is_integral.finite Algebra.IsIntegral.finite
 
+/- warning: algebra.is_integral.of_finite -> Algebra.IsIntegral.of_finite is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [h : Module.Finite.{u1, u2} R A (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} A (NonUnitalNonAssocRing.toAddCommGroup.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)], Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] [h : Module.Finite.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)], Algebra.IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5
+Case conversion may be inaccurate. Consider using '#align algebra.is_integral.of_finite Algebra.IsIntegral.of_finiteₓ'. -/
 theorem Algebra.IsIntegral.of_finite [h : Module.Finite R A] : Algebra.IsIntegral R A :=
   by
   apply RingHom.Finite.to_isIntegral
   delta RingHom.Finite; convert h; ext; exact (Algebra.smul_def _ _).symm
 #align algebra.is_integral.of_finite Algebra.IsIntegral.of_finite
 
+/- warning: algebra.finite_iff_is_integral_and_finite_type -> Algebra.finite_iff_isIntegral_and_finiteType is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Module.Finite.{u1, u2} R A (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} A (NonUnitalNonAssocRing.toAddCommGroup.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (And (Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5) (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))], Iff (Module.Finite.{u2, u1} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) (Algebra.toModule.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (And (Algebra.IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5) (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))
+Case conversion may be inaccurate. Consider using '#align algebra.finite_iff_is_integral_and_finite_type Algebra.finite_iff_isIntegral_and_finiteTypeₓ'. -/
 /-- finite = integral + finite type -/
 theorem Algebra.finite_iff_isIntegral_and_finiteType :
     Module.Finite R A ↔ Algebra.IsIntegral R A ∧ Algebra.FiniteType R A :=
@@ -463,85 +639,177 @@ theorem Algebra.finite_iff_isIntegral_and_finiteType :
 
 variable (f)
 
+/- warning: ring_hom.is_integral_of_mem_closure -> RingHom.is_integral_of_mem_closure is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) {x : S} {y : S} {z : S}, (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f y) -> (Membership.Mem.{u2, u2} S (Subring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (SetLike.hasMem.{u2, u2} (Subring.{u2} S (CommRing.toRing.{u2} S _inst_4)) S (Subring.setLike.{u2} S (CommRing.toRing.{u2} S _inst_4))) z (Subring.closure.{u2} S (CommRing.toRing.{u2} S _inst_4) (Insert.insert.{u2, u2} S (Set.{u2} S) (Set.hasInsert.{u2} S) x (Singleton.singleton.{u2, u2} S (Set.{u2} S) (Set.hasSingleton.{u2} S) y)))) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f z)
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) {x : S} {y : S} {z : S}, (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f y) -> (Membership.mem.{u1, u1} S (Subring.{u1} S (CommRing.toRing.{u1} S _inst_4)) (SetLike.instMembership.{u1, u1} (Subring.{u1} S (CommRing.toRing.{u1} S _inst_4)) S (Subring.instSetLikeSubring.{u1} S (CommRing.toRing.{u1} S _inst_4))) z (Subring.closure.{u1} S (CommRing.toRing.{u1} S _inst_4) (Insert.insert.{u1, u1} S (Set.{u1} S) (Set.instInsertSet.{u1} S) x (Singleton.singleton.{u1, u1} S (Set.{u1} S) (Set.instSingletonSet.{u1} S) y)))) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f z)
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_of_mem_closure RingHom.is_integral_of_mem_closureₓ'. -/
 theorem RingHom.is_integral_of_mem_closure {x y z : S} (hx : f.IsIntegralElem x)
     (hy : f.IsIntegralElem y) (hz : z ∈ Subring.closure ({x, y} : Set S)) : f.IsIntegralElem z :=
   by
   letI : Algebra R S := f.to_algebra
-  have := (fG_adjoin_singleton_of_integral x hx).mul (fG_adjoin_singleton_of_integral y hy)
+  have := (FG_adjoin_singleton_of_integral x hx).mul (FG_adjoin_singleton_of_integral y hy)
   rw [← Algebra.adjoin_union_coe_submodule, Set.singleton_union] at this
   exact
-    isIntegral_of_mem_of_fG (Algebra.adjoin R {x, y}) this z
+    isIntegral_of_mem_of_FG (Algebra.adjoin R {x, y}) this z
       (Algebra.mem_adjoin_iff.2 <| Subring.closure_mono (Set.subset_union_right _ _) hz)
 #align ring_hom.is_integral_of_mem_closure RingHom.is_integral_of_mem_closure
 
+/- warning: is_integral_of_mem_closure -> isIntegral_of_mem_closure is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} {y : A} {z : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 y) -> (Membership.Mem.{u2, u2} A (Subring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (SetLike.hasMem.{u2, u2} (Subring.{u2} A (CommRing.toRing.{u2} A _inst_2)) A (Subring.setLike.{u2} A (CommRing.toRing.{u2} A _inst_2))) z (Subring.closure.{u2} A (CommRing.toRing.{u2} A _inst_2) (Insert.insert.{u2, u2} A (Set.{u2} A) (Set.hasInsert.{u2} A) x (Singleton.singleton.{u2, u2} A (Set.{u2} A) (Set.hasSingleton.{u2} A) y)))) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 z)
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A} {y : A} {z : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 y) -> (Membership.mem.{u1, u1} A (Subring.{u1} A (CommRing.toRing.{u1} A _inst_2)) (SetLike.instMembership.{u1, u1} (Subring.{u1} A (CommRing.toRing.{u1} A _inst_2)) A (Subring.instSetLikeSubring.{u1} A (CommRing.toRing.{u1} A _inst_2))) z (Subring.closure.{u1} A (CommRing.toRing.{u1} A _inst_2) (Insert.insert.{u1, u1} A (Set.{u1} A) (Set.instInsertSet.{u1} A) x (Singleton.singleton.{u1, u1} A (Set.{u1} A) (Set.instSingletonSet.{u1} A) y)))) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 z)
+Case conversion may be inaccurate. Consider using '#align is_integral_of_mem_closure isIntegral_of_mem_closureₓ'. -/
 theorem isIntegral_of_mem_closure {x y z : A} (hx : IsIntegral R x) (hy : IsIntegral R y)
     (hz : z ∈ Subring.closure ({x, y} : Set A)) : IsIntegral R z :=
   (algebraMap R A).is_integral_of_mem_closure hx hy hz
 #align is_integral_of_mem_closure isIntegral_of_mem_closure
 
+/- warning: ring_hom.is_integral_zero -> RingHom.is_integral_zero is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))), RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))), RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f (OfNat.ofNat.{u1} S 0 (Zero.toOfNat0.{u1} S (CommMonoidWithZero.toZero.{u1} S (CommSemiring.toCommMonoidWithZero.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_zero RingHom.is_integral_zeroₓ'. -/
 theorem RingHom.is_integral_zero : f.IsIntegralElem 0 :=
   f.map_zero ▸ f.is_integral_map
 #align ring_hom.is_integral_zero RingHom.is_integral_zero
 
+/- warning: is_integral_zero -> isIntegral_zero is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (MulZeroClass.toHasZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))], IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (CommMonoidWithZero.toZero.{u1} A (CommSemiring.toCommMonoidWithZero.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align is_integral_zero isIntegral_zeroₓ'. -/
 theorem isIntegral_zero : IsIntegral R (0 : A) :=
   (algebraMap R A).is_integral_zero
 #align is_integral_zero isIntegral_zero
 
+/- warning: ring_hom.is_integral_one -> RingHom.is_integral_one is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))), RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (OfNat.ofNat.{u2} S 1 (OfNat.mk.{u2} S 1 (One.one.{u2} S (AddMonoidWithOne.toOne.{u2} S (AddGroupWithOne.toAddMonoidWithOne.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (CommRing.toRing.{u2} S _inst_4))))))))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))), RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f (OfNat.ofNat.{u1} S 1 (One.toOfNat1.{u1} S (Semiring.toOne.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_one RingHom.is_integral_oneₓ'. -/
 theorem RingHom.is_integral_one : f.IsIntegralElem 1 :=
   f.map_one ▸ f.is_integral_map
 #align ring_hom.is_integral_one RingHom.is_integral_one
 
+/- warning: is_integral_one -> isIntegral_one is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (OfNat.ofNat.{u2} A 1 (OfNat.mk.{u2} A 1 (One.one.{u2} A (AddMonoidWithOne.toOne.{u2} A (AddGroupWithOne.toAddMonoidWithOne.{u2} A (AddCommGroupWithOne.toAddGroupWithOne.{u2} A (Ring.toAddCommGroupWithOne.{u2} A (CommRing.toRing.{u2} A _inst_2))))))))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))], IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (OfNat.ofNat.{u1} A 1 (One.toOfNat1.{u1} A (Semiring.toOne.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align is_integral_one isIntegral_oneₓ'. -/
 theorem isIntegral_one : IsIntegral R (1 : A) :=
   (algebraMap R A).is_integral_one
 #align is_integral_one isIntegral_one
 
+/- warning: ring_hom.is_integral_add -> RingHom.is_integral_add is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) {x : S} {y : S}, (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f y) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (HAdd.hAdd.{u2, u2, u2} S S S (instHAdd.{u2} S (Distrib.toHasAdd.{u2} S (Ring.toDistrib.{u2} S (CommRing.toRing.{u2} S _inst_4)))) x y))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) {x : S} {y : S}, (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f y) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f (HAdd.hAdd.{u1, u1, u1} S S S (instHAdd.{u1} S (Distrib.toAdd.{u1} S (NonUnitalNonAssocSemiring.toDistrib.{u1} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_4))))))) x y))
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_add RingHom.is_integral_addₓ'. -/
 theorem RingHom.is_integral_add {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x + y) :=
   f.is_integral_of_mem_closure hx hy <|
     Subring.add_mem _ (Subring.subset_closure (Or.inl rfl)) (Subring.subset_closure (Or.inr rfl))
 #align ring_hom.is_integral_add RingHom.is_integral_add
 
+/- warning: is_integral_add -> isIntegral_add is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} {y : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 y) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (Distrib.toHasAdd.{u2} A (Ring.toDistrib.{u2} A (CommRing.toRing.{u2} A _inst_2)))) x y))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A} {y : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 y) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (Distrib.toAdd.{u1} A (NonUnitalNonAssocSemiring.toDistrib.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))))) x y))
+Case conversion may be inaccurate. Consider using '#align is_integral_add isIntegral_addₓ'. -/
 theorem isIntegral_add {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x + y) :=
   (algebraMap R A).is_integral_add hx hy
 #align is_integral_add isIntegral_add
 
+/- warning: ring_hom.is_integral_neg -> RingHom.is_integral_neg is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) {x : S}, (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (Neg.neg.{u2} S (SubNegMonoid.toHasNeg.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) x))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) {x : S}, (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f (Neg.neg.{u1} S (Ring.toNeg.{u1} S (CommRing.toRing.{u1} S _inst_4)) x))
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_neg RingHom.is_integral_negₓ'. -/
 theorem RingHom.is_integral_neg {x : S} (hx : f.IsIntegralElem x) : f.IsIntegralElem (-x) :=
   f.is_integral_of_mem_closure hx hx (Subring.neg_mem _ (Subring.subset_closure (Or.inl rfl)))
 #align ring_hom.is_integral_neg RingHom.is_integral_neg
 
+/- warning: is_integral_neg -> isIntegral_neg is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (Neg.neg.{u2} A (SubNegMonoid.toHasNeg.{u2} A (AddGroup.toSubNegMonoid.{u2} A (AddGroupWithOne.toAddGroup.{u2} A (AddCommGroupWithOne.toAddGroupWithOne.{u2} A (Ring.toAddCommGroupWithOne.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) x))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (Neg.neg.{u1} A (Ring.toNeg.{u1} A (CommRing.toRing.{u1} A _inst_2)) x))
+Case conversion may be inaccurate. Consider using '#align is_integral_neg isIntegral_negₓ'. -/
 theorem isIntegral_neg {x : A} (hx : IsIntegral R x) : IsIntegral R (-x) :=
   (algebraMap R A).is_integral_neg hx
 #align is_integral_neg isIntegral_neg
 
+/- warning: ring_hom.is_integral_sub -> RingHom.is_integral_sub is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) {x : S} {y : S}, (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f y) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (HSub.hSub.{u2, u2, u2} S S S (instHSub.{u2} S (SubNegMonoid.toHasSub.{u2} S (AddGroup.toSubNegMonoid.{u2} S (AddGroupWithOne.toAddGroup.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (CommRing.toRing.{u2} S _inst_4))))))) x y))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) {x : S} {y : S}, (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f y) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f (HSub.hSub.{u1, u1, u1} S S S (instHSub.{u1} S (Ring.toSub.{u1} S (CommRing.toRing.{u1} S _inst_4))) x y))
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_sub RingHom.is_integral_subₓ'. -/
 theorem RingHom.is_integral_sub {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x - y) := by
   simpa only [sub_eq_add_neg] using f.is_integral_add hx (f.is_integral_neg hy)
 #align ring_hom.is_integral_sub RingHom.is_integral_sub
 
+/- warning: is_integral_sub -> isIntegral_sub is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} {y : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 y) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HSub.hSub.{u2, u2, u2} A A A (instHSub.{u2} A (SubNegMonoid.toHasSub.{u2} A (AddGroup.toSubNegMonoid.{u2} A (AddGroupWithOne.toAddGroup.{u2} A (AddCommGroupWithOne.toAddGroupWithOne.{u2} A (Ring.toAddCommGroupWithOne.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) x y))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A} {y : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 y) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HSub.hSub.{u1, u1, u1} A A A (instHSub.{u1} A (Ring.toSub.{u1} A (CommRing.toRing.{u1} A _inst_2))) x y))
+Case conversion may be inaccurate. Consider using '#align is_integral_sub isIntegral_subₓ'. -/
 theorem isIntegral_sub {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x - y) :=
   (algebraMap R A).is_integral_sub hx hy
 #align is_integral_sub isIntegral_sub
 
+/- warning: ring_hom.is_integral_mul -> RingHom.is_integral_mul is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) {x : S} {y : S}, (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f y) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (HMul.hMul.{u2, u2, u2} S S S (instHMul.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (CommRing.toRing.{u2} S _inst_4)))) x y))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) {x : S} {y : S}, (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f x) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f y) -> (RingHom.IsIntegralElem.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f (HMul.hMul.{u1, u1, u1} S S S (instHMul.{u1} S (NonUnitalNonAssocRing.toMul.{u1} S (NonAssocRing.toNonUnitalNonAssocRing.{u1} S (Ring.toNonAssocRing.{u1} S (CommRing.toRing.{u1} S _inst_4))))) x y))
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_mul RingHom.is_integral_mulₓ'. -/
 theorem RingHom.is_integral_mul {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x * y) :=
   f.is_integral_of_mem_closure hx hy
     (Subring.mul_mem _ (Subring.subset_closure (Or.inl rfl)) (Subring.subset_closure (Or.inr rfl)))
 #align ring_hom.is_integral_mul RingHom.is_integral_mul
 
+/- warning: is_integral_mul -> isIntegral_mul is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} {y : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 y) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (Ring.toDistrib.{u2} A (CommRing.toRing.{u2} A _inst_2)))) x y))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A} {y : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 y) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HMul.hMul.{u1, u1, u1} A A A (instHMul.{u1} A (NonUnitalNonAssocRing.toMul.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) x y))
+Case conversion may be inaccurate. Consider using '#align is_integral_mul isIntegral_mulₓ'. -/
 theorem isIntegral_mul {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x * y) :=
   (algebraMap R A).is_integral_mul hx hy
 #align is_integral_mul isIntegral_mul
 
+#print isIntegral_smul /-
 theorem isIntegral_smul [Algebra S A] [Algebra R S] [IsScalarTower R S A] {x : A} (r : R)
     (hx : IsIntegral S x) : IsIntegral S (r • x) :=
   by
   rw [Algebra.smul_def, IsScalarTower.algebraMap_apply R S A]
   exact isIntegral_mul isIntegral_algebraMap hx
 #align is_integral_smul isIntegral_smul
+-/
 
+/- warning: is_integral_of_pow -> isIntegral_of_pow is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HPow.hPow.{u2, 0, u2} A Nat A (instHPow.{u2, 0} A Nat (Monoid.Pow.{u2} A (Ring.toMonoid.{u2} A (CommRing.toRing.{u2} A _inst_2)))) x n)) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HPow.hPow.{u1, 0, u1} A Nat A (instHPow.{u1, 0} A Nat (Monoid.Pow.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))))) x n)) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x)
+Case conversion may be inaccurate. Consider using '#align is_integral_of_pow isIntegral_of_powₓ'. -/
 theorem isIntegral_of_pow {x : A} {n : ℕ} (hn : 0 < n) (hx : IsIntegral R <| x ^ n) :
     IsIntegral R x := by
   rcases hx with ⟨p, ⟨hmonic, heval⟩⟩
@@ -552,6 +820,7 @@ theorem isIntegral_of_pow {x : A} {n : ℕ} (hn : 0 < n) (hx : IsIntegral R <| x
 
 variable (R A)
 
+#print integralClosure /-
 /-- The integral closure of R in an R-algebra A. -/
 def integralClosure : Subalgebra R A
     where
@@ -562,16 +831,29 @@ def integralClosure : Subalgebra R A
   mul_mem' _ _ := isIntegral_mul
   algebraMap_mem' x := isIntegral_algebraMap
 #align integral_closure integralClosure
+-/
 
-theorem mem_integralClosure_iff_mem_fG {r : A} :
+/- warning: mem_integral_closure_iff_mem_fg -> mem_integralClosure_iff_mem_FG is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) (A : Type.{u2}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {r : A}, Iff (Membership.Mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.hasMem.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) r (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) (Exists.{succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (fun (M : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) => And (Submodule.FG.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (coeFn.{succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))))) (fun (_x : RelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) => (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) -> (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))) (RelEmbedding.hasCoeToFun.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteSemilatticeInf.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))))))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) M)) (Membership.Mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.hasMem.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) r M)))
+but is expected to have type
+  forall (R : Type.{u1}) (A : Type.{u2}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] {r : A}, Iff (Membership.mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) r (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) (Exists.{succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (fun (M : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => And (Submodule.FG.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (FunLike.coe.{succ u2, succ u2, succ u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5))))))) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (fun (_x : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) _x) (RelHomClass.toFunLike.{u2, u2, u2} (OrderEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5))))))) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) => LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) => LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (Preorder.toLE.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instPartialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) => LE.le.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Preorder.toLE.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Submodule.completeLattice.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (Subalgebra.toSubmodule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) M)) (Membership.mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) r M)))
+Case conversion may be inaccurate. Consider using '#align mem_integral_closure_iff_mem_fg mem_integralClosure_iff_mem_FGₓ'. -/
+theorem mem_integralClosure_iff_mem_FG {r : A} :
     r ∈ integralClosure R A ↔ ∃ M : Subalgebra R A, M.toSubmodule.FG ∧ r ∈ M :=
   ⟨fun hr =>
-    ⟨Algebra.adjoin R {r}, fG_adjoin_singleton_of_integral _ hr, Algebra.subset_adjoin rfl⟩,
-    fun ⟨M, Hf, hrM⟩ => isIntegral_of_mem_of_fG M Hf _ hrM⟩
-#align mem_integral_closure_iff_mem_fg mem_integralClosure_iff_mem_fG
+    ⟨Algebra.adjoin R {r}, FG_adjoin_singleton_of_integral _ hr, Algebra.subset_adjoin rfl⟩,
+    fun ⟨M, Hf, hrM⟩ => isIntegral_of_mem_of_FG M Hf _ hrM⟩
+#align mem_integral_closure_iff_mem_fg mem_integralClosure_iff_mem_FG
 
 variable {R} {A}
 
+/- warning: adjoin_le_integral_closure -> adjoin_le_integralClosure is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))) (Algebra.adjoin.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 (Singleton.singleton.{u2, u2} A (Set.{u2} A) (Set.hasSingleton.{u2} A) x)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.instCompleteLatticeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))) (Algebra.adjoin.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Singleton.singleton.{u1, u1} A (Set.{u1} A) (Set.instSingletonSet.{u1} A) x)) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_5))
+Case conversion may be inaccurate. Consider using '#align adjoin_le_integral_closure adjoin_le_integralClosureₓ'. -/
 theorem adjoin_le_integralClosure {x : A} (hx : IsIntegral R x) :
     Algebra.adjoin R {x} ≤ integralClosure R A :=
   by
@@ -580,6 +862,12 @@ theorem adjoin_le_integralClosure {x : A} (hx : IsIntegral R x) :
   exact hx
 #align adjoin_le_integral_closure adjoin_le_integralClosure
 
+/- warning: le_integral_closure_iff_is_integral -> le_integralClosure_iff_isIntegral is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {S : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5}, Iff (LE.le.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Preorder.toHasLe.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SetLike.partialOrder.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)))) S (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) (Algebra.IsIntegral.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) S) _inst_1 (Subalgebra.toRing.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 S) (Subalgebra.algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 S))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {S : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5}, Iff (LE.le.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Preorder.toLE.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (PartialOrder.toPreorder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.instCompleteLatticeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))) S (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_5)) (Algebra.IsIntegral.{u2, u1} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x S)) _inst_1 (Subalgebra.toRing.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 S) (Subalgebra.algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 S))
+Case conversion may be inaccurate. Consider using '#align le_integral_closure_iff_is_integral le_integralClosure_iff_isIntegralₓ'. -/
 theorem le_integralClosure_iff_isIntegral {S : Subalgebra R A} :
     S ≤ integralClosure R A ↔ Algebra.IsIntegral R S :=
   SetLike.forall.symm.trans
@@ -588,11 +876,23 @@ theorem le_integralClosure_iff_isIntegral {S : Subalgebra R A} :
         isIntegral_algebraMap_iff Subtype.coe_injective)
 #align le_integral_closure_iff_is_integral le_integralClosure_iff_isIntegral
 
+/- warning: is_integral_sup -> isIntegral_sup is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {S : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5} {T : Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5}, Iff (Algebra.IsIntegral.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Sup.sup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SemilatticeSup.toHasSup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Lattice.toSemilatticeSup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Algebra.Subalgebra.completeLattice.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) S T)) _inst_1 (Subalgebra.toRing.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (Sup.sup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SemilatticeSup.toHasSup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Lattice.toSemilatticeSup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Algebra.Subalgebra.completeLattice.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) S T)) (Subalgebra.algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 (Sup.sup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (SemilatticeSup.toHasSup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Lattice.toSemilatticeSup.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Algebra.Subalgebra.completeLattice.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) S T))) (And (Algebra.IsIntegral.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) S) _inst_1 (Subalgebra.toRing.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 S) (Subalgebra.algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 S)) (Algebra.IsIntegral.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) T) _inst_1 (Subalgebra.toRing.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 T) (Subalgebra.algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 T)))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {S : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5} {T : Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5}, Iff (Algebra.IsIntegral.{u2, u1} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x (Sup.sup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SemilatticeSup.toSup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Lattice.toSemilatticeSup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (ConditionallyCompleteLattice.toLattice.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.instCompleteLatticeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))) S T))) _inst_1 (Subalgebra.toRing.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (Sup.sup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SemilatticeSup.toSup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Lattice.toSemilatticeSup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (ConditionallyCompleteLattice.toLattice.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.instCompleteLatticeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))) S T)) (Subalgebra.algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 (Sup.sup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SemilatticeSup.toSup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Lattice.toSemilatticeSup.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (ConditionallyCompleteLattice.toLattice.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.instCompleteLatticeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5))))) S T))) (And (Algebra.IsIntegral.{u2, u1} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x S)) _inst_1 (Subalgebra.toRing.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 S) (Subalgebra.algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 S)) (Algebra.IsIntegral.{u2, u1} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) x T)) _inst_1 (Subalgebra.toRing.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 T) (Subalgebra.algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 T)))
+Case conversion may be inaccurate. Consider using '#align is_integral_sup isIntegral_supₓ'. -/
 theorem isIntegral_sup {S T : Subalgebra R A} :
     Algebra.IsIntegral R ↥(S ⊔ T) ↔ Algebra.IsIntegral R S ∧ Algebra.IsIntegral R T := by
   simp only [← le_integralClosure_iff_isIntegral, sup_le_iff]
 #align is_integral_sup isIntegral_sup
 
+/- warning: integral_closure_map_alg_equiv -> integralClosure_map_algEquiv is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] (f : AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6), Eq.{succ u3} (Subalgebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6) (Subalgebra.map.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6 ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (AlgHomClass.coeTC.{u1, u2, u3, max u2 u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6 (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (AlgEquivClass.toAlgHomClass.{max u2 u3, u1, u2, u3} (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6 (AlgEquiv.algEquivClass.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6))))) f) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) (integralClosure.{u1, u3} R B _inst_1 _inst_3 _inst_6)
+but is expected to have type
+  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_5 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_6 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] (f : AlgEquiv.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6), Eq.{succ u1} (Subalgebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6) (Subalgebra.map.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5 (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6 (AlgHomClass.toAlgHom.{u3, u2, u1, max u2 u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6 (AlgEquiv.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) (AlgEquivClass.toAlgHomClass.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6 (AlgEquiv.instAlgEquivClassAlgEquiv.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6)) f) (integralClosure.{u3, u2} R A _inst_1 _inst_2 _inst_5)) (integralClosure.{u3, u1} R B _inst_1 _inst_3 _inst_6)
+Case conversion may be inaccurate. Consider using '#align integral_closure_map_alg_equiv integralClosure_map_algEquivₓ'. -/
 /-- Mapping an integral closure along an `alg_equiv` gives the integral closure. -/
 theorem integralClosure_map_algEquiv (f : A ≃ₐ[R] B) :
     (integralClosure R A).map (f : A →ₐ[R] B) = integralClosure R B :=
@@ -607,6 +907,12 @@ theorem integralClosure_map_algEquiv (f : A ≃ₐ[R] B) :
     simp
 #align integral_closure_map_alg_equiv integralClosure_map_algEquiv
 
+/- warning: integral_closure.is_integral -> integralClosure.isIntegral is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] (x : coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)), IsIntegral.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) _inst_1 (Subalgebra.toRing.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) (Subalgebra.algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) x
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] (x : Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) x (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5))), IsIntegral.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) x (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5))) _inst_1 (Subalgebra.toRing.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) (Subalgebra.algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_5)) x
+Case conversion may be inaccurate. Consider using '#align integral_closure.is_integral integralClosure.isIntegralₓ'. -/
 theorem integralClosure.isIntegral (x : integralClosure R A) : IsIntegral R x :=
   let ⟨p, hpm, hpx⟩ := x.2
   ⟨p, hpm,
@@ -614,6 +920,12 @@ theorem integralClosure.isIntegral (x : integralClosure R A) : IsIntegral R x :=
       rwa [← aeval_def, Subtype.val_eq_coe, ← Subalgebra.val_apply, aeval_alg_hom_apply] at hpx⟩
 #align integral_closure.is_integral integralClosure.isIntegral
 
+/- warning: ring_hom.is_integral_of_is_integral_mul_unit -> RingHom.is_integral_of_is_integral_mul_unit is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (x : S) (y : S) (r : R), (Eq.{succ u2} S (HMul.hMul.{u2, u2, u2} S S S (instHMul.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (fun (_x : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f r) y) (OfNat.ofNat.{u2} S 1 (OfNat.mk.{u2} S 1 (One.one.{u2} S (AddMonoidWithOne.toOne.{u2} S (AddGroupWithOne.toAddMonoidWithOne.{u2} S (AddCommGroupWithOne.toAddGroupWithOne.{u2} S (Ring.toAddCommGroupWithOne.{u2} S (CommRing.toRing.{u2} S _inst_4))))))))) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (HMul.hMul.{u2, u2, u2} S S S (instHMul.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (CommRing.toRing.{u2} S _inst_4)))) x y)) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f x)
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (x : S) (y : S) (r : R), (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (NonUnitalNonAssocRing.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (NonAssocRing.toNonUnitalNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (Ring.toNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (CommRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) _inst_4))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R S (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))))) f r) y) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) _inst_4)))))) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (HMul.hMul.{u2, u2, u2} S S S (instHMul.{u2} S (NonUnitalNonAssocRing.toMul.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))))) x y)) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f x)
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_of_is_integral_mul_unit RingHom.is_integral_of_is_integral_mul_unitₓ'. -/
 theorem RingHom.is_integral_of_is_integral_mul_unit (x y : S) (r : R) (hr : f r * y = 1)
     (hx : f.IsIntegralElem (x * y)) : f.IsIntegralElem x :=
   by
@@ -623,11 +935,23 @@ theorem RingHom.is_integral_of_is_integral_mul_unit (x y : S) (r : R) (hr : f r
   rw [mul_comm x y, ← mul_assoc, hr, one_mul]
 #align ring_hom.is_integral_of_is_integral_mul_unit RingHom.is_integral_of_is_integral_mul_unit
 
+/- warning: is_integral_of_is_integral_mul_unit -> isIntegral_of_isIntegral_mul_unit is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} {y : A} {r : R}, (Eq.{succ u2} A (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (Ring.toDistrib.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) r) y) (OfNat.ofNat.{u2} A 1 (OfNat.mk.{u2} A 1 (One.one.{u2} A (AddMonoidWithOne.toOne.{u2} A (AddGroupWithOne.toAddMonoidWithOne.{u2} A (AddCommGroupWithOne.toAddGroupWithOne.{u2} A (Ring.toAddCommGroupWithOne.{u2} A (CommRing.toRing.{u2} A _inst_2))))))))) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (Ring.toDistrib.{u2} A (CommRing.toRing.{u2} A _inst_2)))) x y)) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] {x : A} {y : A} {r : R}, (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) A ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (NonUnitalNonAssocRing.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (NonAssocRing.toNonUnitalNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (Ring.toNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (CommRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) _inst_2))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5) r) y) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) r) _inst_2)))))) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocRing.toMul.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2))))) x y)) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)
+Case conversion may be inaccurate. Consider using '#align is_integral_of_is_integral_mul_unit isIntegral_of_isIntegral_mul_unitₓ'. -/
 theorem isIntegral_of_isIntegral_mul_unit {x y : A} {r : R} (hr : algebraMap R A r * y = 1)
     (hx : IsIntegral R (x * y)) : IsIntegral R x :=
   (algebraMap R A).is_integral_of_is_integral_mul_unit x y r hr hx
 #align is_integral_of_is_integral_mul_unit isIntegral_of_isIntegral_mul_unit
 
+/- warning: is_integral_of_mem_closure' -> isIntegral_of_mem_closure' is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] (G : Set.{u2} A), (forall (x : A), (Membership.Mem.{u2, u2} A (Set.{u2} A) (Set.hasMem.{u2} A) x G) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)) -> (forall (x : A), (Membership.Mem.{u2, u2} A (Subring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (SetLike.hasMem.{u2, u2} (Subring.{u2} A (CommRing.toRing.{u2} A _inst_2)) A (Subring.setLike.{u2} A (CommRing.toRing.{u2} A _inst_2))) x (Subring.closure.{u2} A (CommRing.toRing.{u2} A _inst_2) G)) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] (G : Set.{u2} A), (forall (x : A), (Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x G) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x)) -> (forall (x : A), (Membership.mem.{u2, u2} A (Subring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (SetLike.instMembership.{u2, u2} (Subring.{u2} A (CommRing.toRing.{u2} A _inst_2)) A (Subring.instSetLikeSubring.{u2} A (CommRing.toRing.{u2} A _inst_2))) x (Subring.closure.{u2} A (CommRing.toRing.{u2} A _inst_2) G)) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x))
+Case conversion may be inaccurate. Consider using '#align is_integral_of_mem_closure' isIntegral_of_mem_closure'ₓ'. -/
 /-- Generalization of `is_integral_of_mem_closure` bootstrapped up from that lemma -/
 theorem isIntegral_of_mem_closure' (G : Set A) (hG : ∀ x ∈ G, IsIntegral R x) :
     ∀ x ∈ Subring.closure G, IsIntegral R x := fun x hx =>
@@ -635,50 +959,98 @@ theorem isIntegral_of_mem_closure' (G : Set A) (hG : ∀ x ∈ G, IsIntegral R x
     (fun _ => isIntegral_neg) fun _ _ => isIntegral_mul
 #align is_integral_of_mem_closure' isIntegral_of_mem_closure'
 
+/- warning: is_integral_of_mem_closure'' -> is_integral_of_mem_closure'' is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {S : Type.{u2}} [_inst_7 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_7)))} (G : Set.{u2} S), (forall (x : S), (Membership.Mem.{u2, u2} S (Set.{u2} S) (Set.hasMem.{u2} S) x G) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_7) f x)) -> (forall (x : S), (Membership.Mem.{u2, u2} S (Subring.{u2} S (CommRing.toRing.{u2} S _inst_7)) (SetLike.hasMem.{u2, u2} (Subring.{u2} S (CommRing.toRing.{u2} S _inst_7)) S (Subring.setLike.{u2} S (CommRing.toRing.{u2} S _inst_7))) x (Subring.closure.{u2} S (CommRing.toRing.{u2} S _inst_7) G)) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_7) f x))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {S : Type.{u2}} [_inst_7 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))} (G : Set.{u2} S), (forall (x : S), (Membership.mem.{u2, u2} S (Set.{u2} S) (Set.instMembershipSet.{u2} S) x G) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_7) f x)) -> (forall (x : S), (Membership.mem.{u2, u2} S (Subring.{u2} S (CommRing.toRing.{u2} S _inst_7)) (SetLike.instMembership.{u2, u2} (Subring.{u2} S (CommRing.toRing.{u2} S _inst_7)) S (Subring.instSetLikeSubring.{u2} S (CommRing.toRing.{u2} S _inst_7))) x (Subring.closure.{u2} S (CommRing.toRing.{u2} S _inst_7) G)) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_7) f x))
+Case conversion may be inaccurate. Consider using '#align is_integral_of_mem_closure'' is_integral_of_mem_closure''ₓ'. -/
 theorem is_integral_of_mem_closure'' {S : Type _} [CommRing S] {f : R →+* S} (G : Set S)
     (hG : ∀ x ∈ G, f.IsIntegralElem x) : ∀ x ∈ Subring.closure G, f.IsIntegralElem x := fun x hx =>
   @isIntegral_of_mem_closure' R S _ _ f.toAlgebra G hG x hx
 #align is_integral_of_mem_closure'' is_integral_of_mem_closure''
 
+/- warning: is_integral.pow -> IsIntegral.pow is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (forall (n : Nat), IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HPow.hPow.{u2, 0, u2} A Nat A (instHPow.{u2, 0} A Nat (Monoid.Pow.{u2} A (Ring.toMonoid.{u2} A (CommRing.toRing.{u2} A _inst_2)))) x n))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (forall (n : Nat), IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HPow.hPow.{u1, 0, u1} A Nat A (instHPow.{u1, 0} A Nat (Monoid.Pow.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))))) x n))
+Case conversion may be inaccurate. Consider using '#align is_integral.pow IsIntegral.powₓ'. -/
 theorem IsIntegral.pow {x : A} (h : IsIntegral R x) (n : ℕ) : IsIntegral R (x ^ n) :=
   (integralClosure R A).pow_mem h n
 #align is_integral.pow IsIntegral.pow
 
+/- warning: is_integral.nsmul -> IsIntegral.nsmul is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (forall (n : Nat), IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (SMul.smul.{0, u2} Nat A (AddMonoid.SMul.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddGroupWithOne.toAddMonoidWithOne.{u2} A (AddCommGroupWithOne.toAddGroupWithOne.{u2} A (Ring.toAddCommGroupWithOne.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) n x))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (forall (n : Nat), IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HSMul.hSMul.{0, u1, u1} Nat A A (instHSMul.{0, u1} Nat A (AddMonoid.SMul.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddGroupWithOne.toAddMonoidWithOne.{u1} A (Ring.toAddGroupWithOne.{u1} A (CommRing.toRing.{u1} A _inst_2)))))) n x))
+Case conversion may be inaccurate. Consider using '#align is_integral.nsmul IsIntegral.nsmulₓ'. -/
 theorem IsIntegral.nsmul {x : A} (h : IsIntegral R x) (n : ℕ) : IsIntegral R (n • x) :=
   (integralClosure R A).nsmul_mem h n
 #align is_integral.nsmul IsIntegral.nsmul
 
+/- warning: is_integral.zsmul -> IsIntegral.zsmul is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A}, (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x) -> (forall (n : Int), IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (SMul.smul.{0, u2} Int A (SubNegMonoid.SMulInt.{u2} A (AddGroup.toSubNegMonoid.{u2} A (AddGroupWithOne.toAddGroup.{u2} A (AddCommGroupWithOne.toAddGroupWithOne.{u2} A (Ring.toAddCommGroupWithOne.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) n x))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A}, (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x) -> (forall (n : Int), IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HSMul.hSMul.{0, u1, u1} Int A A (instHSMul.{0, u1} Int A (SubNegMonoid.SMulInt.{u1} A (AddGroup.toSubNegMonoid.{u1} A (AddGroupWithOne.toAddGroup.{u1} A (Ring.toAddGroupWithOne.{u1} A (CommRing.toRing.{u1} A _inst_2)))))) n x))
+Case conversion may be inaccurate. Consider using '#align is_integral.zsmul IsIntegral.zsmulₓ'. -/
 theorem IsIntegral.zsmul {x : A} (h : IsIntegral R x) (n : ℤ) : IsIntegral R (n • x) :=
   (integralClosure R A).zsmul_mem h n
 #align is_integral.zsmul IsIntegral.zsmul
 
+#print IsIntegral.multiset_prod /-
 theorem IsIntegral.multiset_prod {s : Multiset A} (h : ∀ x ∈ s, IsIntegral R x) :
     IsIntegral R s.Prod :=
   (integralClosure R A).multiset_prod_mem h
 #align is_integral.multiset_prod IsIntegral.multiset_prod
+-/
 
+#print IsIntegral.multiset_sum /-
 theorem IsIntegral.multiset_sum {s : Multiset A} (h : ∀ x ∈ s, IsIntegral R x) :
     IsIntegral R s.Sum :=
   (integralClosure R A).multiset_sum_mem h
 #align is_integral.multiset_sum IsIntegral.multiset_sum
+-/
 
+/- warning: is_integral.prod -> IsIntegral.prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {α : Type.{u3}} {s : Finset.{u3} α} (f : α -> A), (forall (x : α), (Membership.Mem.{u3, u3} α (Finset.{u3} α) (Finset.hasMem.{u3} α) x s) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (f x))) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (Finset.prod.{u2, u3} A α (CommRing.toCommMonoid.{u2} A _inst_2) s (fun (x : α) => f x)))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {α : Type.{u3}} {s : Finset.{u3} α} (f : α -> A), (forall (x : α), (Membership.mem.{u3, u3} α (Finset.{u3} α) (Finset.instMembershipFinset.{u3} α) x s) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (f x))) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (Finset.prod.{u1, u3} A α (CommRing.toCommMonoid.{u1} A _inst_2) s (fun (x : α) => f x)))
+Case conversion may be inaccurate. Consider using '#align is_integral.prod IsIntegral.prodₓ'. -/
 theorem IsIntegral.prod {α : Type _} {s : Finset α} (f : α → A) (h : ∀ x ∈ s, IsIntegral R (f x)) :
     IsIntegral R (∏ x in s, f x) :=
   (integralClosure R A).prod_mem h
 #align is_integral.prod IsIntegral.prod
 
+/- warning: is_integral.sum -> IsIntegral.sum is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {α : Type.{u3}} {s : Finset.{u3} α} (f : α -> A), (forall (x : α), (Membership.Mem.{u3, u3} α (Finset.{u3} α) (Finset.hasMem.{u3} α) x s) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (f x))) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (Finset.sum.{u2, u3} A α (AddCommGroup.toAddCommMonoid.{u2} A (NonUnitalNonAssocRing.toAddCommGroup.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2))))) s (fun (x : α) => f x)))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {α : Type.{u3}} {s : Finset.{u3} α} (f : α -> A), (forall (x : α), (Membership.mem.{u3, u3} α (Finset.{u3} α) (Finset.instMembershipFinset.{u3} α) x s) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (f x))) -> (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (Finset.sum.{u1, u3} A α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) s (fun (x : α) => f x)))
+Case conversion may be inaccurate. Consider using '#align is_integral.sum IsIntegral.sumₓ'. -/
 theorem IsIntegral.sum {α : Type _} {s : Finset α} (f : α → A) (h : ∀ x ∈ s, IsIntegral R (f x)) :
     IsIntegral R (∑ x in s, f x) :=
   (integralClosure R A).sum_mem h
 #align is_integral.sum IsIntegral.sum
 
+#print IsIntegral.det /-
 theorem IsIntegral.det {n : Type _} [Fintype n] [DecidableEq n] {M : Matrix n n A}
     (h : ∀ i j, IsIntegral R (M i j)) : IsIntegral R M.det :=
   by
   rw [Matrix.det_apply]
   exact IsIntegral.sum _ fun σ hσ => IsIntegral.zsmul (IsIntegral.prod _ fun i hi => h _ _) _
 #align is_integral.det IsIntegral.det
+-/
 
+/- warning: is_integral.pow_iff -> IsIntegral.pow_iff is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {x : A} {n : Nat}, (LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) -> (Iff (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 (HPow.hPow.{u2, 0, u2} A Nat A (instHPow.{u2, 0} A Nat (Monoid.Pow.{u2} A (Ring.toMonoid.{u2} A (CommRing.toRing.{u2} A _inst_2)))) x n)) (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_5 x))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] {x : A} {n : Nat}, (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) -> (Iff (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 (HPow.hPow.{u1, 0, u1} A Nat A (instHPow.{u1, 0} A Nat (Monoid.Pow.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))))) x n)) (IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_5 x))
+Case conversion may be inaccurate. Consider using '#align is_integral.pow_iff IsIntegral.pow_iffₓ'. -/
 @[simp]
 theorem IsIntegral.pow_iff {x : A} {n : ℕ} (hn : 0 < n) : IsIntegral R (x ^ n) ↔ IsIntegral R x :=
   ⟨isIntegral_of_pow hn, fun hx => IsIntegral.pow hx n⟩
@@ -686,6 +1058,12 @@ theorem IsIntegral.pow_iff {x : A} {n : ℕ} (hn : 0 < n) : IsIntegral R (x ^ n)
 
 open TensorProduct
 
+/- warning: is_integral.tmul -> IsIntegral.tmul is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] (x : A) {y : B}, (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_6 y) -> (IsIntegral.{u2, max u2 u3} A (TensorProduct.{u1, u2, u3} R (CommRing.toCommSemiring.{u1} R _inst_1) A B (AddCommGroup.toAddCommMonoid.{u2} A (NonUnitalNonAssocRing.toAddCommGroup.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (AddCommGroup.toAddCommMonoid.{u3} B (NonUnitalNonAssocRing.toAddCommGroup.{u3} B (NonAssocRing.toNonUnitalNonAssocRing.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6)) _inst_2 (Algebra.TensorProduct.TensorProduct.ring.{u1, u2, u3} R _inst_1 A (CommRing.toRing.{u2} A _inst_2) _inst_5 B (CommRing.toRing.{u3} B _inst_3) _inst_6) (Algebra.TensorProduct.leftAlgebra.{u1, u2, u3, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5 B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6 A (CommRing.toCommSemiring.{u2} A _inst_2) _inst_5 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (IsScalarTower.right.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (TensorProduct.tmul.{u1, u2, u3} R (CommRing.toCommSemiring.{u1} R _inst_1) A B (AddCommGroup.toAddCommMonoid.{u2} A (NonUnitalNonAssocRing.toAddCommGroup.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (AddCommGroup.toAddCommMonoid.{u3} B (NonUnitalNonAssocRing.toAddCommGroup.{u3} B (NonAssocRing.toNonUnitalNonAssocRing.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6) x y))
+but is expected to have type
+  forall {R : Type.{u3}} {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u2} B] [_inst_5 : Algebra.{u3, u1} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] [_inst_6 : Algebra.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] (x : A) {y : B}, (IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_6 y) -> (IsIntegral.{u1, max u2 u1} A (TensorProduct.{u3, u1, u2} R (CommRing.toCommSemiring.{u3} R _inst_1) A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_3))))) (Algebra.toModule.{u3, u1} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.toModule.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) _inst_2 (Algebra.TensorProduct.instRingTensorProductToCommSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonAssocRingToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocRingToNonAssocRingToModuleToSemiringToModuleToSemiring.{u3, u1, u2} R _inst_1 A (CommRing.toRing.{u1} A _inst_2) _inst_5 B (CommRing.toRing.{u2} B _inst_3) _inst_6) (Algebra.TensorProduct.leftAlgebra.{u3, u1, u2, u1} R (CommRing.toCommSemiring.{u3} R _inst_1) A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5 B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6 A (CommRing.toCommSemiring.{u1} A _inst_2) _inst_5 (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (IsScalarTower.right.{u3, u1} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)) (TensorProduct.tmul.{u3, u1, u2} R (CommRing.toCommSemiring.{u3} R _inst_1) A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_3))))) (Algebra.toModule.{u3, u1} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5) (Algebra.toModule.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) x y))
+Case conversion may be inaccurate. Consider using '#align is_integral.tmul IsIntegral.tmulₓ'. -/
 theorem IsIntegral.tmul (x : A) {y : B} (h : IsIntegral R y) : IsIntegral A (x ⊗ₜ[R] y) :=
   by
   obtain ⟨p, hp, hp'⟩ := h
@@ -709,12 +1087,20 @@ section
 
 variable (p : R[X]) (x : S)
 
+#print normalizeScaleRoots /-
 /-- The monic polynomial whose roots are `p.leading_coeff * x` for roots `x` of `p`. -/
 noncomputable def normalizeScaleRoots (p : R[X]) : R[X] :=
   ∑ i in p.support,
     monomial i (if i = p.natDegree then 1 else p.coeff i * p.leadingCoeff ^ (p.natDegree - 1 - i))
 #align normalize_scale_roots normalizeScaleRoots
+-/
 
+/- warning: normalize_scale_roots_coeff_mul_leading_coeff_pow -> normalizeScaleRoots_coeff_mul_leadingCoeff_pow is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (i : Nat), (LE.le.{0} Nat Nat.hasLe (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Polynomial.natDegree.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p)) -> (Eq.{succ u1} R (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Polynomial.coeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (normalizeScaleRoots.{u1} R _inst_1 p) i) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p) i)) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Polynomial.coeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p i) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Polynomial.natDegree.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (p : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (i : Nat), (LE.le.{0} Nat instLENat (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Polynomial.natDegree.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) -> (Eq.{succ u1} R (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (normalizeScaleRoots.{u1} R _inst_1 p) i) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p) i)) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p i) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Polynomial.natDegree.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))
+Case conversion may be inaccurate. Consider using '#align normalize_scale_roots_coeff_mul_leading_coeff_pow normalizeScaleRoots_coeff_mul_leadingCoeff_powₓ'. -/
 theorem normalizeScaleRoots_coeff_mul_leadingCoeff_pow (i : ℕ) (hp : 1 ≤ natDegree p) :
     (normalizeScaleRoots p).coeff i * p.leadingCoeff ^ i =
       p.coeff i * p.leadingCoeff ^ (p.natDegree - 1) :=
@@ -730,6 +1116,7 @@ theorem normalizeScaleRoots_coeff_mul_leadingCoeff_pow (i : ℕ) (hp : 1 ≤ nat
     exact ⟨le_nat_degree_of_ne_zero h₁, h₂⟩
 #align normalize_scale_roots_coeff_mul_leading_coeff_pow normalizeScaleRoots_coeff_mul_leadingCoeff_pow
 
+#print leadingCoeff_smul_normalizeScaleRoots /-
 theorem leadingCoeff_smul_normalizeScaleRoots (p : R[X]) :
     p.leadingCoeff • normalizeScaleRoots p = scaleRoots p p.leadingCoeff :=
   by
@@ -744,7 +1131,14 @@ theorem leadingCoeff_smul_normalizeScaleRoots (p : R[X]) :
     rw [Nat.succ_le_iff]
     exact tsub_pos_of_lt (lt_of_le_of_ne (le_nat_degree_of_ne_zero h₁) h₂)
 #align leading_coeff_smul_normalize_scale_roots leadingCoeff_smul_normalizeScaleRoots
+-/
 
+/- warning: normalize_scale_roots_support -> normalizeScaleRoots_support is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))), LE.le.{0} (Finset.{0} Nat) (Preorder.toHasLe.{0} (Finset.{0} Nat) (PartialOrder.toPreorder.{0} (Finset.{0} Nat) (Finset.partialOrder.{0} Nat))) (Polynomial.support.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (normalizeScaleRoots.{u1} R _inst_1 p)) (Polynomial.support.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (p : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))), LE.le.{0} (Finset.{0} Nat) (Preorder.toLE.{0} (Finset.{0} Nat) (PartialOrder.toPreorder.{0} (Finset.{0} Nat) (Finset.partialOrder.{0} Nat))) (Polynomial.support.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (normalizeScaleRoots.{u1} R _inst_1 p)) (Polynomial.support.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)
+Case conversion may be inaccurate. Consider using '#align normalize_scale_roots_support normalizeScaleRoots_supportₓ'. -/
 theorem normalizeScaleRoots_support : (normalizeScaleRoots p).support ≤ p.support :=
   by
   intro x
@@ -755,6 +1149,7 @@ theorem normalizeScaleRoots_support : (normalizeScaleRoots p).support ≤ p.supp
   exact (h₂ h₁).rec _
 #align normalize_scale_roots_support normalizeScaleRoots_support
 
+#print normalizeScaleRoots_degree /-
 theorem normalizeScaleRoots_degree : (normalizeScaleRoots p).degree = p.degree :=
   by
   apply le_antisymm
@@ -762,7 +1157,14 @@ theorem normalizeScaleRoots_degree : (normalizeScaleRoots p).degree = p.degree :
   · rw [← degree_scale_roots, ← leadingCoeff_smul_normalizeScaleRoots]
     exact degree_smul_le _ _
 #align normalize_scale_roots_degree normalizeScaleRoots_degree
+-/
 
+/- warning: normalize_scale_roots_eval₂_leading_coeff_mul -> normalizeScaleRoots_eval₂_leadingCoeff_mul is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))), (LE.le.{0} Nat Nat.hasLe (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Polynomial.natDegree.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p)) -> (forall (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (x : S), Eq.{succ u2} S (Polynomial.eval₂.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) f (HMul.hMul.{u2, u2, u2} S S S (instHMul.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (fun (_x : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p)) x) (normalizeScaleRoots.{u1} R _inst_1 p)) (HMul.hMul.{u2, u2, u2} S S S (instHMul.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (HPow.hPow.{u2, 0, u2} S Nat S (instHPow.{u2, 0} S Nat (Monoid.Pow.{u2} S (Ring.toMonoid.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (fun (_x : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p)) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Polynomial.natDegree.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Polynomial.eval₂.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) f x p)))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (p : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))), (LE.le.{0} Nat instLENat (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) (Polynomial.natDegree.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) -> (forall (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (x : S), Eq.{succ u1} S (Polynomial.eval₂.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) f (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (NonUnitalNonAssocRing.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) _inst_4))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) f (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) x) (normalizeScaleRoots.{u2} R _inst_1 p)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (NonUnitalNonAssocRing.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) _inst_4))))) (HPow.hPow.{u1, 0, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (instHPow.{u1, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) Nat (Monoid.Pow.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (MonoidWithZero.toMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (CommSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) _inst_4)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) f (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p)) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Polynomial.natDegree.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Polynomial.eval₂.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) f x p)))
+Case conversion may be inaccurate. Consider using '#align normalize_scale_roots_eval₂_leading_coeff_mul normalizeScaleRoots_eval₂_leadingCoeff_mulₓ'. -/
 theorem normalizeScaleRoots_eval₂_leadingCoeff_mul (h : 1 ≤ p.natDegree) (f : R →+* S) (x : S) :
     (normalizeScaleRoots p).eval₂ f (f p.leadingCoeff * x) =
       f p.leadingCoeff ^ (p.natDegree - 1) * p.eval₂ f x :=
@@ -776,6 +1178,7 @@ theorem normalizeScaleRoots_eval₂_leadingCoeff_mul (h : 1 ≤ p.natDegree) (f
   ring
 #align normalize_scale_roots_eval₂_leading_coeff_mul normalizeScaleRoots_eval₂_leadingCoeff_mul
 
+#print normalizeScaleRoots_monic /-
 theorem normalizeScaleRoots_monic (h : p ≠ 0) : (normalizeScaleRoots p).Monic :=
   by
   delta monic leading_coeff
@@ -783,7 +1186,14 @@ theorem normalizeScaleRoots_monic (h : p ≠ 0) : (normalizeScaleRoots p).Monic
   suffices p = 0 → (0 : R) = 1 by simpa [normalizeScaleRoots, coeff_monomial]
   exact fun h' => (h h').rec _
 #align normalize_scale_roots_monic normalizeScaleRoots_monic
+-/
 
+/- warning: ring_hom.is_integral_elem_leading_coeff_mul -> RingHom.isIntegralElem_leadingCoeff_mul is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (x : S), (Eq.{succ u2} S (Polynomial.eval₂.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) f x p) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))))) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (HMul.hMul.{u2, u2, u2} S S S (instHMul.{u2} S (Distrib.toHasMul.{u2} S (Ring.toDistrib.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (fun (_x : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p)) x))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (p : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (x : S), (Eq.{succ u2} S (Polynomial.eval₂.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) f x p) (OfNat.ofNat.{u2} S 0 (Zero.toOfNat0.{u2} S (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))))) -> (RingHom.IsIntegralElem.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) (NonUnitalNonAssocRing.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) (NonAssocRing.toNonUnitalNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) (Ring.toNonAssocRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) (CommRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) _inst_4))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R S (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))))) f (Polynomial.leadingCoeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) p)) x))
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_elem_leading_coeff_mul RingHom.isIntegralElem_leadingCoeff_mulₓ'. -/
 /-- Given a `p : R[X]` and a `x : S` such that `p.eval₂ f x = 0`,
 `f p.leading_coeff * x` is integral. -/
 theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
@@ -807,6 +1217,12 @@ theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
       rw [eq_C_of_nat_degree_eq_zero h', map_C, h, C_eq_zero]
 #align ring_hom.is_integral_elem_leading_coeff_mul RingHom.isIntegralElem_leadingCoeff_mul
 
+/- warning: is_integral_leading_coeff_smul -> isIntegral_leadingCoeff_smul is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (x : S) [_inst_7 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))], (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) (fun (_x : AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> S) ([anonymous].{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) (Polynomial.aeval.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) _inst_7 x) p) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))))) -> (IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) _inst_7 (SMul.smul.{u1, u2} R S (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) _inst_7))))) (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p) x))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (p : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (x : S) [_inst_7 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))], (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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))))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (SMulZeroClass.toSMul.{u2, u1} R S (AddMonoid.toZero.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (DistribSMul.toSMulZeroClass.{u2, u1} R S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (DistribMulAction.toDistribSMul.{u2, u1} R S (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) (Module.toDistribMulAction.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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))))))) (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{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)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (Algebra.toModule.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7 (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _inst_7))))) (Polynomial.aeval.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => S) p) _inst_4)))))) -> (IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) _inst_7 (HSMul.hSMul.{u2, u1, u1} R S S (instHSMul.{u2, u1} R S (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)) _inst_7)) (Polynomial.leadingCoeff.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) p) x))
+Case conversion may be inaccurate. Consider using '#align is_integral_leading_coeff_smul isIntegral_leadingCoeff_smulₓ'. -/
 /-- Given a `p : R[X]` and a root `x : S`,
 then `p.leading_coeff • x : S` is integral over `R`. -/
 theorem isIntegral_leadingCoeff_smul [Algebra R S] (h : aeval x p = 0) :
@@ -823,6 +1239,7 @@ end
 
 section IsIntegralClosure
 
+#print IsIntegralClosure /-
 /- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`algebraMap_injective] [] -/
 /-- `is_integral_closure A R B` is the characteristic predicate stating `A` is
 the integral closure of `R` in `B`,
@@ -833,7 +1250,14 @@ class IsIntegralClosure (A R B : Type _) [CommRing R] [CommSemiring A] [CommRing
   algebraMap_injective : Function.Injective (algebraMap A B)
   isIntegral_iff : ∀ {x : B}, IsIntegral R x ↔ ∃ y, algebraMap A B y = x
 #align is_integral_closure IsIntegralClosure
+-/
 
+/- warning: integral_closure.is_integral_closure -> integralClosure.isIntegralClosure is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) (A : Type.{u2}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], IsIntegralClosure.{u2, u1, u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3)) R A _inst_1 (Subalgebra.toCommSemiring.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3)) _inst_2 _inst_3 (Subalgebra.toAlgebra.{u2, u1, u2} A R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))
+but is expected to have type
+  forall (R : Type.{u1}) (A : Type.{u2}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))], IsIntegralClosure.{u2, u1, u2} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) x (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) R A _inst_1 (Subalgebra.toCommSemiring.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3)) _inst_2 _inst_3 (Subalgebra.toAlgebra.{u2, u1, u2} A R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))
+Case conversion may be inaccurate. Consider using '#align integral_closure.is_integral_closure integralClosure.isIntegralClosureₓ'. -/
 instance integralClosure.isIntegralClosure (R A : Type _) [CommRing R] [CommRing A] [Algebra R A] :
     IsIntegralClosure (integralClosure R A) R A :=
   ⟨Subtype.coe_injective, fun x =>
@@ -850,15 +1274,33 @@ variable [Algebra R B] [Algebra A B] [IsIntegralClosure A R B]
 
 variable (R) {A} (B)
 
+/- warning: is_integral_closure.is_integral -> IsIntegralClosure.isIntegral is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) {A : Type.{u2}} (B : Type.{u3}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] (x : A), IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_7 x
+but is expected to have type
+  forall (R : Type.{u3}) {A : Type.{u2}} (B : Type.{u1}) [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_4 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_5 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u3, u1} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u3, u2, u1} R A B (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_7) (Algebra.toSMul.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_4)] (x : A), IsIntegral.{u3, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_7 x
+Case conversion may be inaccurate. Consider using '#align is_integral_closure.is_integral IsIntegralClosure.isIntegralₓ'. -/
 protected theorem isIntegral [Algebra R A] [IsScalarTower R A B] (x : A) : IsIntegral R x :=
   (isIntegral_algebraMap_iff (algebraMap_injective A R B)).mp <|
     show IsIntegral R (algebraMap A B x) from isIntegral_iff.mpr ⟨x, rfl⟩
 #align is_integral_closure.is_integral IsIntegralClosure.isIntegral
 
+/- warning: is_integral_closure.is_integral_algebra -> IsIntegralClosure.isIntegral_algebra is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) {A : Type.{u2}} (B : Type.{u3}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))], Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_7
+but is expected to have type
+  forall (R : Type.{u3}) {A : Type.{u2}} (B : Type.{u1}) [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_4 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_5 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u3, u1} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u3, u2, u1} R A B (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_7) (Algebra.toSMul.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_4)], Algebra.IsIntegral.{u3, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_7
+Case conversion may be inaccurate. Consider using '#align is_integral_closure.is_integral_algebra IsIntegralClosure.isIntegral_algebraₓ'. -/
 theorem isIntegral_algebra [Algebra R A] [IsScalarTower R A B] : Algebra.IsIntegral R A := fun x =>
   IsIntegralClosure.isIntegral R B x
 #align is_integral_closure.is_integral_algebra IsIntegralClosure.isIntegral_algebra
 
+/- warning: is_integral_closure.no_zero_smul_divisors -> IsIntegralClosure.noZeroSMulDivisors is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) {A : Type.{u2}} (B : Type.{u3}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] [_inst_9 : NoZeroSMulDivisors.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (MulZeroClass.toHasZero.{u3} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} B (NonAssocRing.toNonUnitalNonAssocRing.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_3)))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))], NoZeroSMulDivisors.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (MulZeroClass.toHasZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_7)))))
+but is expected to have type
+  forall (R : Type.{u3}) {A : Type.{u2}} (B : Type.{u1}) [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_4 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_5 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u3, u1} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u3, u2, u1} R A B (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_7) (Algebra.toSMul.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_4)] [_inst_9 : NoZeroSMulDivisors.{u3, u1} R B (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommMonoidWithZero.toZero.{u1} B (CommSemiring.toCommMonoidWithZero.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_4)], NoZeroSMulDivisors.{u3, u2} R A (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommMonoidWithZero.toZero.{u2} A (CommSemiring.toCommMonoidWithZero.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_7)
+Case conversion may be inaccurate. Consider using '#align is_integral_closure.no_zero_smul_divisors IsIntegralClosure.noZeroSMulDivisorsₓ'. -/
 theorem noZeroSMulDivisors [Algebra R A] [IsScalarTower R A B] [NoZeroSMulDivisors R B] :
     NoZeroSMulDivisors R A :=
   by
@@ -870,38 +1312,76 @@ theorem noZeroSMulDivisors [Algebra R A] [IsScalarTower R A B] [NoZeroSMulDiviso
 
 variable {R} (A) {B}
 
+#print IsIntegralClosure.mk' /-
 /-- If `x : B` is integral over `R`, then it is an element of the integral closure of `R` in `B`. -/
 noncomputable def mk' (x : B) (hx : IsIntegral R x) : A :=
   Classical.choose (isIntegral_iff.mp hx)
 #align is_integral_closure.mk' IsIntegralClosure.mk'
+-/
 
+/- warning: is_integral_closure.algebra_map_mk' -> IsIntegralClosure.algebraMap_mk' is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} (A : Type.{u2}) {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] (x : B) (hx : IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 x), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5) (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 x hx)) x
+but is expected to have type
+  forall {R : Type.{u3}} (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : Algebra.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_5 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_6 : IsIntegralClosure.{u1, u3, u2} A R B _inst_1 (CommRing.toCommSemiring.{u1} A _inst_2) _inst_3 _inst_4 _inst_5] (x : B) (hx : IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_4 x), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 x hx)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))) (RingHom.instRingHomClassRingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (algebraMap.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_5) (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 x hx)) x
+Case conversion may be inaccurate. Consider using '#align is_integral_closure.algebra_map_mk' IsIntegralClosure.algebraMap_mk'ₓ'. -/
 @[simp]
 theorem algebraMap_mk' (x : B) (hx : IsIntegral R x) : algebraMap A B (mk' A x hx) = x :=
   Classical.choose_spec (isIntegral_iff.mp hx)
 #align is_integral_closure.algebra_map_mk' IsIntegralClosure.algebraMap_mk'
 
+/- warning: is_integral_closure.mk'_one -> IsIntegralClosure.mk'_one is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} (A : Type.{u2}) {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] (h : optParam.{0} (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 (OfNat.ofNat.{u3} B 1 (OfNat.mk.{u3} B 1 (One.one.{u3} B (AddMonoidWithOne.toOne.{u3} B (AddGroupWithOne.toAddMonoidWithOne.{u3} B (AddCommGroupWithOne.toAddGroupWithOne.{u3} B (Ring.toAddCommGroupWithOne.{u3} B (CommRing.toRing.{u3} B _inst_3))))))))) (isIntegral_one.{u1, u3} R B _inst_1 _inst_3 _inst_4)), Eq.{succ u2} A (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (OfNat.ofNat.{u3} B 1 (OfNat.mk.{u3} B 1 (One.one.{u3} B (AddMonoidWithOne.toOne.{u3} B (AddGroupWithOne.toAddMonoidWithOne.{u3} B (AddCommGroupWithOne.toAddGroupWithOne.{u3} B (Ring.toAddCommGroupWithOne.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) h) (OfNat.ofNat.{u2} A 1 (OfNat.mk.{u2} A 1 (One.one.{u2} A (AddMonoidWithOne.toOne.{u2} A (AddGroupWithOne.toAddMonoidWithOne.{u2} A (AddCommGroupWithOne.toAddGroupWithOne.{u2} A (Ring.toAddCommGroupWithOne.{u2} A (CommRing.toRing.{u2} A _inst_2))))))))
+but is expected to have type
+  forall {R : Type.{u3}} (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : Algebra.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_5 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_6 : IsIntegralClosure.{u1, u3, u2} A R B _inst_1 (CommRing.toCommSemiring.{u1} A _inst_2) _inst_3 _inst_4 _inst_5] (h : optParam.{0} (IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_4 (OfNat.ofNat.{u2} B 1 (One.toOfNat1.{u2} B (Semiring.toOne.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (isIntegral_one.{u2, u3} R B _inst_1 _inst_3 _inst_4)), Eq.{succ u1} A (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (OfNat.ofNat.{u2} B 1 (One.toOfNat1.{u2} B (Semiring.toOne.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) h) (OfNat.ofNat.{u1} A 1 (One.toOfNat1.{u1} A (Semiring.toOne.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align is_integral_closure.mk'_one IsIntegralClosure.mk'_oneₓ'. -/
 @[simp]
 theorem mk'_one (h : IsIntegral R (1 : B) := isIntegral_one) : mk' A 1 h = 1 :=
   algebraMap_injective A R B <| by rw [algebra_map_mk', RingHom.map_one]
 #align is_integral_closure.mk'_one IsIntegralClosure.mk'_one
 
+/- warning: is_integral_closure.mk'_zero -> IsIntegralClosure.mk'_zero is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} (A : Type.{u2}) {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] (h : optParam.{0} (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (MulZeroClass.toHasZero.{u3} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} B (NonAssocRing.toNonUnitalNonAssocRing.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))))) (isIntegral_zero.{u1, u3} R B _inst_1 _inst_3 _inst_4)), Eq.{succ u2} A (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (MulZeroClass.toHasZero.{u3} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} B (NonAssocRing.toNonUnitalNonAssocRing.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_3))))))))) h) (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (MulZeroClass.toHasZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} A (NonAssocRing.toNonUnitalNonAssocRing.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))))
+but is expected to have type
+  forall {R : Type.{u3}} (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : Algebra.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_5 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_6 : IsIntegralClosure.{u1, u3, u2} A R B _inst_1 (CommRing.toCommSemiring.{u1} A _inst_2) _inst_3 _inst_4 _inst_5] (h : optParam.{0} (IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_4 (OfNat.ofNat.{u2} B 0 (Zero.toOfNat0.{u2} B (CommMonoidWithZero.toZero.{u2} B (CommSemiring.toCommMonoidWithZero.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (isIntegral_zero.{u2, u3} R B _inst_1 _inst_3 _inst_4)), Eq.{succ u1} A (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (OfNat.ofNat.{u2} B 0 (Zero.toOfNat0.{u2} B (CommMonoidWithZero.toZero.{u2} B (CommSemiring.toCommMonoidWithZero.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) h) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (CommMonoidWithZero.toZero.{u1} A (CommSemiring.toCommMonoidWithZero.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align is_integral_closure.mk'_zero IsIntegralClosure.mk'_zeroₓ'. -/
 @[simp]
 theorem mk'_zero (h : IsIntegral R (0 : B) := isIntegral_zero) : mk' A 0 h = 0 :=
   algebraMap_injective A R B <| by rw [algebra_map_mk', RingHom.map_zero]
 #align is_integral_closure.mk'_zero IsIntegralClosure.mk'_zero
 
+/- warning: is_integral_closure.mk'_add -> IsIntegralClosure.mk'_add is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} (A : Type.{u2}) {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] (x : B) (y : B) (hx : IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 x) (hy : IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 y), Eq.{succ u2} A (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (Distrib.toHasAdd.{u3} B (Ring.toDistrib.{u3} B (CommRing.toRing.{u3} B _inst_3)))) x y) (isIntegral_add.{u1, u3} R B _inst_1 _inst_3 _inst_4 x y hx hy)) (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (Distrib.toHasAdd.{u2} A (Ring.toDistrib.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 x hx) (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 y hy))
+but is expected to have type
+  forall {R : Type.{u3}} (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : Algebra.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_5 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_6 : IsIntegralClosure.{u1, u3, u2} A R B _inst_1 (CommRing.toCommSemiring.{u1} A _inst_2) _inst_3 _inst_4 _inst_5] (x : B) (y : B) (hx : IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_4 x) (hy : IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_4 y), Eq.{succ u1} A (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (HAdd.hAdd.{u2, u2, u2} B B B (instHAdd.{u2} B (Distrib.toAdd.{u2} B (NonUnitalNonAssocSemiring.toDistrib.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_3))))))) x y) (isIntegral_add.{u2, u3} R B _inst_1 _inst_3 _inst_4 x y hx hy)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (Distrib.toAdd.{u1} A (NonUnitalNonAssocSemiring.toDistrib.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))))) (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 x hx) (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 y hy))
+Case conversion may be inaccurate. Consider using '#align is_integral_closure.mk'_add IsIntegralClosure.mk'_addₓ'. -/
 @[simp]
 theorem mk'_add (x y : B) (hx : IsIntegral R x) (hy : IsIntegral R y) :
     mk' A (x + y) (isIntegral_add hx hy) = mk' A x hx + mk' A y hy :=
   algebraMap_injective A R B <| by simp only [algebra_map_mk', RingHom.map_add]
 #align is_integral_closure.mk'_add IsIntegralClosure.mk'_add
 
+/- warning: is_integral_closure.mk'_mul -> IsIntegralClosure.mk'_mul is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} (A : Type.{u2}) {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] (x : B) (y : B) (hx : IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 x) (hy : IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 y), Eq.{succ u2} A (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (HMul.hMul.{u3, u3, u3} B B B (instHMul.{u3} B (Distrib.toHasMul.{u3} B (Ring.toDistrib.{u3} B (CommRing.toRing.{u3} B _inst_3)))) x y) (isIntegral_mul.{u1, u3} R B _inst_1 _inst_3 _inst_4 x y hx hy)) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (Ring.toDistrib.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 x hx) (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 y hy))
+but is expected to have type
+  forall {R : Type.{u3}} (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : Algebra.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_5 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_6 : IsIntegralClosure.{u1, u3, u2} A R B _inst_1 (CommRing.toCommSemiring.{u1} A _inst_2) _inst_3 _inst_4 _inst_5] (x : B) (y : B) (hx : IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_4 x) (hy : IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_4 y), Eq.{succ u1} A (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (HMul.hMul.{u2, u2, u2} B B B (instHMul.{u2} B (NonUnitalNonAssocRing.toMul.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_3))))) x y) (isIntegral_mul.{u2, u3} R B _inst_1 _inst_3 _inst_4 x y hx hy)) (HMul.hMul.{u1, u1, u1} A A A (instHMul.{u1} A (NonUnitalNonAssocRing.toMul.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_2))))) (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 x hx) (IsIntegralClosure.mk'.{u3, u1, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 y hy))
+Case conversion may be inaccurate. Consider using '#align is_integral_closure.mk'_mul IsIntegralClosure.mk'_mulₓ'. -/
 @[simp]
 theorem mk'_mul (x y : B) (hx : IsIntegral R x) (hy : IsIntegral R y) :
     mk' A (x * y) (isIntegral_mul hx hy) = mk' A x hx * mk' A y hy :=
   algebraMap_injective A R B <| by simp only [algebra_map_mk', RingHom.map_mul]
 #align is_integral_closure.mk'_mul IsIntegralClosure.mk'_mul
 
+/- warning: is_integral_closure.mk'_algebra_map -> IsIntegralClosure.mk'_algebraMap is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} (A : Type.{u2}) {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] (x : R) (h : optParam.{0} (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} R B (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u1, u3} R B (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => R -> B) (RingHom.hasCoeToFun.{u1, u3} R B (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4) x)) (isIntegral_algebraMap.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_4 x)), Eq.{succ u2} A (IsIntegralClosure.mk'.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} R B (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u1, u3} R B (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => R -> B) (RingHom.hasCoeToFun.{u1, u3} R B (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4) x) h) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_7) x)
+but is expected to have type
+  forall {R : Type.{u3}} (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_4 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_5 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u3, u1} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] [_inst_7 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_8 : IsScalarTower.{u3, u2, u1} R A B (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_7) (Algebra.toSMul.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_4)] (x : R) (h : optParam.{0} (IsIntegral.{u3, u1} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => B) x) _inst_1 (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => B) x) _inst_3) _inst_4 (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => B) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R B (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))))) (algebraMap.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_4) x)) (isIntegral_algebraMap.{u1, u3} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => B) x) _inst_1 (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => B) x) _inst_3) _inst_4 x)), Eq.{succ u2} A (IsIntegralClosure.mk'.{u3, u2, u1} R A ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => B) x) _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => B) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R B (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u1} R B (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))))) (algebraMap.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_4) x) h) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} R A (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} R A (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R A (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R A (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} R A (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) R A (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (RingHom.instRingHomClassRingHom.{u3, u2} R A (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (algebraMap.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_7) x)
+Case conversion may be inaccurate. Consider using '#align is_integral_closure.mk'_algebra_map IsIntegralClosure.mk'_algebraMapₓ'. -/
 @[simp]
 theorem mk'_algebraMap [Algebra R A] [IsScalarTower R A B] (x : R)
     (h : IsIntegral R (algebraMap R B x) := isIntegral_algebraMap) :
@@ -915,6 +1395,7 @@ variable {R} (A B) {S : Type _} [CommRing S] [Algebra R S] [Algebra S B] [IsScal
 
 variable [Algebra R A] [IsScalarTower R A B] (h : Algebra.IsIntegral R S)
 
+#print IsIntegralClosure.lift /-
 /-- If `B / S / R` is a tower of ring extensions where `S` is integral over `R`,
 then `S` maps (uniquely) into an integral closure `B / A / R`. -/
 noncomputable def lift : S →ₐ[R] A
@@ -926,7 +1407,14 @@ noncomputable def lift : S →ₐ[R] A
   map_mul' x y := by simp_rw [← mk'_mul, RingHom.map_mul]
   commutes' x := by simp_rw [← IsScalarTower.algebraMap_apply, mk'_algebra_map]
 #align is_integral_closure.lift IsIntegralClosure.lift
+-/
 
+/- warning: is_integral_closure.algebra_map_lift -> IsIntegralClosure.algebraMap_lift is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} (A : Type.{u2}) (B : Type.{u3}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] {S : Type.{u4}} [_inst_7 : CommRing.{u4} S] [_inst_8 : Algebra.{u1, u4} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7))] [_inst_9 : Algebra.{u4, u3} S B (CommRing.toCommSemiring.{u4} S _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_10 : IsScalarTower.{u1, u4, u3} R S B (SMulZeroClass.toHasSmul.{u1, u4} R S (AddZeroClass.toHasZero.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)))))))) (Module.toMulActionWithZero.{u1, u4} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7))))) (Algebra.toModule.{u1, u4} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)) _inst_8))))) (SMulZeroClass.toHasSmul.{u4, u3} S B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u4, u3} S B (MulZeroClass.toHasZero.{u4} S (MulZeroOneClass.toMulZeroClass.{u4} S (MonoidWithZero.toMulZeroOneClass.{u4} S (Semiring.toMonoidWithZero.{u4} S (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u4, u3} S B (Semiring.toMonoidWithZero.{u4} S (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u4, u3} S B (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u4, u3} S B (CommRing.toCommSemiring.{u4} S _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_9))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] [_inst_11 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_12 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_11))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] (h : Algebra.IsIntegral.{u1, u4} R S _inst_1 (CommRing.toRing.{u4} S _inst_7) _inst_8) (x : S), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5) (coeFn.{max (succ u4) (succ u2), max (succ u4) (succ u2)} (AlgHom.{u1, u4, u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8 _inst_11) (fun (_x : AlgHom.{u1, u4, u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8 _inst_11) => S -> A) ([anonymous].{u1, u4, u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} S (CommRing.toRing.{u4} S _inst_7)) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8 _inst_11) (IsIntegralClosure.lift.{u1, u2, u3, u4} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 S _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h) x)) (coeFn.{max (succ u4) (succ u3), max (succ u4) (succ u3)} (RingHom.{u4, u3} S B (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u4, u3} S B (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => S -> B) (RingHom.hasCoeToFun.{u4, u3} S B (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S (CommRing.toCommSemiring.{u4} S _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u4, u3} S B (CommRing.toCommSemiring.{u4} S _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_9) x)
+but is expected to have type
+  forall {R : Type.{u1}} (A : Type.{u3}) (B : Type.{u4}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u4} B] [_inst_4 : Algebra.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_5 : Algebra.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_6 : IsIntegralClosure.{u3, u1, u4} A R B _inst_1 (CommRing.toCommSemiring.{u3} A _inst_2) _inst_3 _inst_4 _inst_5] {S : Type.{u2}} [_inst_7 : CommRing.{u2} S] [_inst_8 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))] [_inst_9 : Algebra.{u2, u4} S B (CommRing.toCommSemiring.{u2} S _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_10 : IsScalarTower.{u1, u2, u4} R S B (Algebra.toSMul.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8) (Algebra.toSMul.{u2, u4} S B (CommRing.toCommSemiring.{u2} S _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_9) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] [_inst_11 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_12 : IsScalarTower.{u1, u3, u4} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11) (Algebra.toSMul.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] (h : Algebra.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_7) _inst_8) (x : S), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) S (fun (a : S) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : S) => A) a) (SMulHomClass.toFunLike.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (SMulZeroClass.toSMul.{u1, u2} R S (AddMonoid.toZero.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R S (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8))))) (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u2, u3, max u3 u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11 (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) (AlgHom.algHomClass.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11))))) (IsIntegralClosure.lift.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 S _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : S) => A) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (SMulZeroClass.toSMul.{u1, u2} R S (AddMonoid.toZero.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R S (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8))))) (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u2, u3} (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) R S A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (Module.toDistribMulAction.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) _inst_8)) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u2, u3, max u3 u2} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11 (AlgHom.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11) (AlgHom.algHomClass.{u1, u2, u3} R S A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8 _inst_11))))) (IsIntegralClosure.lift.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 S _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 h) x)) (FunLike.coe.{max (succ u4) (succ u2), succ u2, succ u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => B) _x) (MulHomClass.toFunLike.{max u4 u2, u2, u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S B (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u2, u4} S B (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u2, u4} S B (CommRing.toCommSemiring.{u2} S _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_9) x)
+Case conversion may be inaccurate. Consider using '#align is_integral_closure.algebra_map_lift IsIntegralClosure.algebraMap_liftₓ'. -/
 @[simp]
 theorem algebraMap_lift (x : S) : algebraMap A B (lift A B h x) = algebraMap S B x :=
   algebraMap_mk' _ _ _
@@ -940,6 +1428,7 @@ variable (R A B) (A' : Type _) [CommRing A'] [Algebra A' B] [IsIntegralClosure A
 
 variable [Algebra R A] [Algebra R A'] [IsScalarTower R A B] [IsScalarTower R A' B]
 
+#print IsIntegralClosure.equiv /-
 /-- Integral closures are all isomorphic to each other. -/
 noncomputable def equiv : A ≃ₐ[R] A' :=
   AlgEquiv.ofAlgHom (lift _ B (isIntegral_algebra R B)) (lift _ B (isIntegral_algebra R B))
@@ -952,7 +1441,14 @@ noncomputable def equiv : A ≃ₐ[R] A' :=
       apply algebra_map_injective A R B
       simp)
 #align is_integral_closure.equiv IsIntegralClosure.equiv
+-/
 
+/- warning: is_integral_closure.algebra_map_equiv -> IsIntegralClosure.algebraMap_equiv is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) (A : Type.{u2}) (B : Type.{u3}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_5 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_6 : IsIntegralClosure.{u2, u1, u3} A R B _inst_1 (CommRing.toCommSemiring.{u2} A _inst_2) _inst_3 _inst_4 _inst_5] (A' : Type.{u4}) [_inst_7 : CommRing.{u4} A'] [_inst_8 : Algebra.{u4, u3} A' B (CommRing.toCommSemiring.{u4} A' _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_9 : IsIntegralClosure.{u4, u1, u3} A' R B _inst_1 (CommRing.toCommSemiring.{u4} A' _inst_7) _inst_3 _inst_4 _inst_8] [_inst_10 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_11 : Algebra.{u1, u4} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7))] [_inst_12 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_10))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] [_inst_13 : IsScalarTower.{u1, u4, u3} R A' B (SMulZeroClass.toHasSmul.{u1, u4} R A' (AddZeroClass.toHasZero.{u4} A' (AddMonoid.toAddZeroClass.{u4} A' (AddCommMonoid.toAddMonoid.{u4} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} A' (Semiring.toNonAssocSemiring.{u4} A' (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R A' (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u4} A' (AddMonoid.toAddZeroClass.{u4} A' (AddCommMonoid.toAddMonoid.{u4} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} A' (Semiring.toNonAssocSemiring.{u4} A' (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R A' (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u4} A' (AddMonoid.toAddZeroClass.{u4} A' (AddCommMonoid.toAddMonoid.{u4} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} A' (Semiring.toNonAssocSemiring.{u4} A' (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)))))))) (Module.toMulActionWithZero.{u1, u4} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} A' (Semiring.toNonAssocSemiring.{u4} A' (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7))))) (Algebra.toModule.{u1, u4} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)) _inst_11))))) (SMulZeroClass.toHasSmul.{u4, u3} A' B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u4, u3} A' B (MulZeroClass.toHasZero.{u4} A' (MulZeroOneClass.toMulZeroClass.{u4} A' (MonoidWithZero.toMulZeroOneClass.{u4} A' (Semiring.toMonoidWithZero.{u4} A' (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u4, u3} A' B (Semiring.toMonoidWithZero.{u4} A' (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u4, u3} A' B (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u4, u3} A' B (CommRing.toCommSemiring.{u4} A' _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_8))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_4)))))] (x : A), Eq.{succ u3} B (coeFn.{max (succ u4) (succ u3), max (succ u4) (succ u3)} (RingHom.{u4, u3} A' B (Semiring.toNonAssocSemiring.{u4} A' (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u4, u3} A' B (Semiring.toNonAssocSemiring.{u4} A' (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A' -> B) (RingHom.hasCoeToFun.{u4, u3} A' B (Semiring.toNonAssocSemiring.{u4} A' (CommSemiring.toSemiring.{u4} A' (CommRing.toCommSemiring.{u4} A' _inst_7))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u4, u3} A' B (CommRing.toCommSemiring.{u4} A' _inst_7) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_8) (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (AlgEquiv.{u1, u2, u4} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)) _inst_10 _inst_11) (fun (_x : AlgEquiv.{u1, u2, u4} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)) _inst_10 _inst_11) => A -> A') (AlgEquiv.hasCoeToFun.{u1, u2, u4} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u4} A' (CommRing.toRing.{u4} A' _inst_7)) _inst_10 _inst_11) (IsIntegralClosure.equiv.{u1, u2, u3, u4} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 A' _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 _inst_13) x)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5) x)
+but is expected to have type
+  forall (R : Type.{u1}) (A : Type.{u3}) (B : Type.{u4}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u4} B] [_inst_4 : Algebra.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_5 : Algebra.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_6 : IsIntegralClosure.{u3, u1, u4} A R B _inst_1 (CommRing.toCommSemiring.{u3} A _inst_2) _inst_3 _inst_4 _inst_5] (A' : Type.{u2}) [_inst_7 : CommRing.{u2} A'] [_inst_8 : Algebra.{u2, u4} A' B (CommRing.toCommSemiring.{u2} A' _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))] [_inst_9 : IsIntegralClosure.{u2, u1, u4} A' R B _inst_1 (CommRing.toCommSemiring.{u2} A' _inst_7) _inst_3 _inst_4 _inst_8] [_inst_10 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_11 : Algebra.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))] [_inst_12 : IsScalarTower.{u1, u3, u4} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10) (Algebra.toSMul.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] [_inst_13 : IsScalarTower.{u1, u2, u4} R A' B (Algebra.toSMul.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11) (Algebra.toSMul.{u2, u4} A' B (CommRing.toCommSemiring.{u2} A' _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_8) (Algebra.toSMul.{u1, u4} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_4)] (x : A), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A') => B) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) A (fun (a : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => A') a) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10))))) (SMulZeroClass.toSMul.{u1, u2} R A' (AddMonoid.toZero.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A' (AddMonoid.toAddZeroClass.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) (AlgEquivClass.toAlgHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11)))))) (IsIntegralClosure.equiv.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 A' _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 _inst_13) x)) (FunLike.coe.{max (succ u4) (succ u2), succ u2, succ u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A') => B) _x) (MulHomClass.toFunLike.{max u4 u2, u2, u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' B (NonUnitalNonAssocSemiring.toMul.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u4 u2, u2, u4} (RingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u2, u4} A' B (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u2, u4} A' B (CommRing.toCommSemiring.{u2} A' _inst_7) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_8) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => A') _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (SMulZeroClass.toSMul.{u1, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u3} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10))))) (SMulZeroClass.toSMul.{u1, u2} R A' (AddMonoid.toZero.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A' (AddMonoid.toAddZeroClass.{u2} A' (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u2} A' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)))) (Module.toDistribMulAction.{u1, u3} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_10)) (Module.toDistribMulAction.{u1, u2} R A' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A' (Semiring.toNonAssocSemiring.{u2} A' (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7))))) (Algebra.toModule.{u1, u2} R A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_11)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) (AlgEquivClass.toAlgHomClass.{max u3 u2, u1, u3, u2} (AlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11) R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11 (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u3, u2} R A A' (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} A' (CommRing.toCommSemiring.{u2} A' _inst_7)) _inst_10 _inst_11)))))) (IsIntegralClosure.equiv.{u1, u3, u4, u2} R A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 A' _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 _inst_13) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u4} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u4} B (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3))))))) (algebraMap.{u3, u4} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u4} B (CommRing.toCommSemiring.{u4} B _inst_3)) _inst_5) x)
+Case conversion may be inaccurate. Consider using '#align is_integral_closure.algebra_map_equiv IsIntegralClosure.algebraMap_equivₓ'. -/
 @[simp]
 theorem algebraMap_equiv (x : A) : algebraMap A' B (equiv R A B A' x) = algebraMap A B x :=
   algebraMap_lift _ _ _ _
@@ -974,6 +1470,12 @@ variable [CommRing R] [CommRing A] [CommRing B] [CommRing S] [CommRing T]
 
 variable [Algebra A B] [Algebra R B] (f : R →+* S) (g : S →+* T)
 
+/- warning: is_integral_trans_aux -> isIntegral_trans_aux is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] (x : B) {p : Polynomial.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))}, (Polynomial.Monic.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) p) -> (Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u2, u2, u3} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) B (CommRing.toCommSemiring.{u2} A _inst_2) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) _inst_6) (fun (_x : AlgHom.{u2, u2, u3} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) B (CommRing.toCommSemiring.{u2} A _inst_2) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) _inst_6) => (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) -> B) ([anonymous].{u2, u2, u3} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) B (CommRing.toCommSemiring.{u2} A _inst_2) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) _inst_6) (Polynomial.aeval.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6 x) p) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (MulZeroClass.toHasZero.{u3} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} B (NonAssocRing.toNonUnitalNonAssocRing.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))))) -> (IsIntegral.{u3, u3} (coeSort.{succ u3, succ (succ u3)} (Subalgebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Subalgebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7) B (Subalgebra.setLike.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7)) (Algebra.adjoin.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} B) (Set.{u3} B) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (Finset.Set.hasCoeT.{u3} B))) (Polynomial.frange.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.map.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6) p))))) B (Subalgebra.toCommRing.{u1, u3} R B _inst_1 _inst_3 _inst_7 (Algebra.adjoin.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} B) (Set.{u3} B) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (Finset.Set.hasCoeT.{u3} B))) (Polynomial.frange.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.map.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6) p))))) (CommRing.toRing.{u3} B _inst_3) (Subalgebra.toAlgebra.{u3, u1, u3} B R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u3} B _inst_3) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7 (Algebra.id.{u3} B (CommRing.toCommSemiring.{u3} B _inst_3)) (Algebra.adjoin.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} B) (Set.{u3} B) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} B) (Set.{u3} B) (Finset.Set.hasCoeT.{u3} B))) (Polynomial.frange.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Polynomial.map.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6) p))))) x)
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_6 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] (x : B) {p : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))}, (Polynomial.Monic.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) p) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (fun (_x : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) _x) (SMulHomClass.toFunLike.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (SMulZeroClass.toSMul.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddMonoid.toZero.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))))) (DistribSMul.toSMulZeroClass.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))))) (DistribMulAction.toDistribSMul.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (Module.toDistribMulAction.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Algebra.toModule.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))))) (SMulZeroClass.toSMul.{u3, u2} A B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u3, u2} A B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (Module.toDistribMulAction.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Algebra.toModule.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (Module.toDistribMulAction.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Algebra.toModule.{u3, u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u3, u2, max u2 u3} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6 (AlgHom.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6) (AlgHom.algHomClass.{u3, u3, u2} A (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) B (CommRing.toCommSemiring.{u3} A _inst_2) (Polynomial.semiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.algebraOfAlgebra.{u3, u3} A A (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (Algebra.id.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) _inst_6))))) (Polynomial.aeval.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (CommSemiring.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) => B) p) _inst_3)))))) -> (IsIntegral.{u2, u2} (Subtype.{succ u2} B (fun (x : B) => Membership.mem.{u2, u2} B (Subalgebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7) B (Subalgebra.instSetLikeSubalgebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7)) x (Algebra.adjoin.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7 (Finset.toSet.{u2} B (Polynomial.frange.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.map.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) p)))))) B (Subalgebra.toCommRing.{u1, u2} R B _inst_1 _inst_3 _inst_7 (Algebra.adjoin.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7 (Finset.toSet.{u2} B (Polynomial.frange.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.map.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) p))))) (CommRing.toRing.{u2} B _inst_3) (Subalgebra.toAlgebra.{u2, u1, u2} B R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} B _inst_3) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) _inst_7 (Algebra.id.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Algebra.adjoin.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7 (Finset.toSet.{u2} B (Polynomial.frange.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (Polynomial.map.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) p))))) x)
+Case conversion may be inaccurate. Consider using '#align is_integral_trans_aux isIntegral_trans_auxₓ'. -/
 theorem isIntegral_trans_aux (x : B) {p : A[X]} (pmonic : Monic p) (hp : aeval x p = 0) :
     IsIntegral (adjoin R (↑(p.map <| algebraMap A B).frange : Set B)) x :=
   by
@@ -1005,22 +1507,34 @@ theorem isIntegral_trans_aux (x : B) {p : A[X]} (pmonic : Monic p) (hp : aeval x
 
 variable [Algebra R A] [IsScalarTower R A B]
 
+/- warning: is_integral_trans -> isIntegral_trans is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_8 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_9 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7)))))], (Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8) -> (forall (x : B), (IsIntegral.{u2, u3} A B _inst_2 (CommRing.toRing.{u3} B _inst_3) _inst_6 x) -> (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_7 x))
+but is expected to have type
+  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_6 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_7 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_8 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_9 : IsScalarTower.{u3, u2, u1} R A B (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_8) (Algebra.toSMul.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_7)], (Algebra.IsIntegral.{u3, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8) -> (forall (x : B), (IsIntegral.{u2, u1} A B _inst_2 (CommRing.toRing.{u1} B _inst_3) _inst_6 x) -> (IsIntegral.{u3, u1} R B _inst_1 (CommRing.toRing.{u1} B _inst_3) _inst_7 x))
+Case conversion may be inaccurate. Consider using '#align is_integral_trans isIntegral_transₓ'. -/
 /-- If A is an R-algebra all of whose elements are integral over R,
 and x is an element of an A-algebra that is integral over A, then x is integral over R.-/
 theorem isIntegral_trans (A_int : Algebra.IsIntegral R A) (x : B) (hx : IsIntegral A x) :
     IsIntegral R x := by
   rcases hx with ⟨p, pmonic, hp⟩
   let S : Set B := ↑(p.map <| algebraMap A B).frange
-  refine' isIntegral_of_mem_of_fG (adjoin R (S ∪ {x})) _ _ (subset_adjoin <| Or.inr rfl)
-  refine' fg_trans (fG_adjoin_of_finite (Finset.finite_toSet _) fun x hx => _) _
+  refine' isIntegral_of_mem_of_FG (adjoin R (S ∪ {x})) _ _ (subset_adjoin <| Or.inr rfl)
+  refine' fg_trans (FG_adjoin_of_finite (Finset.finite_toSet _) fun x hx => _) _
   · rw [Finset.mem_coe, frange, Finset.mem_image] at hx
     rcases hx with ⟨i, _, rfl⟩
     rw [coeff_map]
     exact map_isIntegral (IsScalarTower.toAlgHom R A B) (A_int _)
-  · apply fG_adjoin_singleton_of_integral
+  · apply FG_adjoin_singleton_of_integral
     exact isIntegral_trans_aux _ pmonic hp
 #align is_integral_trans isIntegral_trans
 
+/- warning: algebra.is_integral_trans -> Algebra.isIntegral_trans is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_8 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_9 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7)))))], (Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8) -> (Algebra.IsIntegral.{u2, u3} A B _inst_2 (CommRing.toRing.{u3} B _inst_3) _inst_6) -> (Algebra.IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_7)
+but is expected to have type
+  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_6 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_7 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] [_inst_8 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_9 : IsScalarTower.{u3, u2, u1} R A B (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_8) (Algebra.toSMul.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_2) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_7)], (Algebra.IsIntegral.{u3, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8) -> (Algebra.IsIntegral.{u2, u1} A B _inst_2 (CommRing.toRing.{u1} B _inst_3) _inst_6) -> (Algebra.IsIntegral.{u3, u1} R B _inst_1 (CommRing.toRing.{u1} B _inst_3) _inst_7)
+Case conversion may be inaccurate. Consider using '#align algebra.is_integral_trans Algebra.isIntegral_transₓ'. -/
 /-- If A is an R-algebra all of whose elements are integral over R,
 and B is an A-algebra all of whose elements are integral over A,
 then all elements of B are integral over R.-/
@@ -1028,6 +1542,12 @@ theorem Algebra.isIntegral_trans (hA : Algebra.IsIntegral R A) (hB : Algebra.IsI
     Algebra.IsIntegral R B := fun x => isIntegral_trans hA x (hB x)
 #align algebra.is_integral_trans Algebra.isIntegral_trans
 
+/- warning: ring_hom.is_integral_trans -> RingHom.isIntegral_trans is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : CommRing.{u3} T] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (g : RingHom.{u2, u3} S T (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5)))), (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f) -> (RingHom.IsIntegral.{u2, u3} S T _inst_4 (CommRing.toRing.{u3} T _inst_5) g) -> (RingHom.IsIntegral.{u1, u3} R T _inst_1 (CommRing.toRing.{u3} T _inst_5) (RingHom.comp.{u1, u2, u3} R S T (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5))) g f))
+but is expected to have type
+  forall {R : Type.{u3}} {S : Type.{u2}} {T : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : CommRing.{u1} T] (f : RingHom.{u3, u2} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (g : RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_5)))), (RingHom.IsIntegral.{u3, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f) -> (RingHom.IsIntegral.{u2, u1} S T _inst_4 (CommRing.toRing.{u1} T _inst_5) g) -> (RingHom.IsIntegral.{u3, u1} R T _inst_1 (CommRing.toRing.{u1} T _inst_5) (RingHom.comp.{u3, u2, u1} R S T (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_5))) g f))
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_trans RingHom.isIntegral_transₓ'. -/
 theorem RingHom.isIntegral_trans (hf : f.IsIntegral) (hg : g.IsIntegral) : (g.comp f).IsIntegral :=
   @Algebra.isIntegral_trans R S T _ _ _ g.toAlgebra (g.comp f).toAlgebra f.toAlgebra
     (@IsScalarTower.of_algebraMap_eq R S T _ _ _ f.toAlgebra g.toAlgebra (g.comp f).toAlgebra
@@ -1035,15 +1555,33 @@ theorem RingHom.isIntegral_trans (hf : f.IsIntegral) (hg : g.IsIntegral) : (g.co
     hf hg
 #align ring_hom.is_integral_trans RingHom.isIntegral_trans
 
+/- warning: ring_hom.is_integral_of_surjective -> RingHom.isIntegral_of_surjective is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))), (Function.Surjective.{succ u1, succ u2} R S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (fun (_x : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f)) -> (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f)
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))), (Function.Surjective.{succ u2, succ u1} R S (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) f)) -> (RingHom.IsIntegral.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_4) f)
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_of_surjective RingHom.isIntegral_of_surjectiveₓ'. -/
 theorem RingHom.isIntegral_of_surjective (hf : Function.Surjective f) : f.IsIntegral := fun x =>
   (hf x).recOn fun y hy => (hy ▸ f.is_integral_map : f.IsIntegralElem x)
 #align ring_hom.is_integral_of_surjective RingHom.isIntegral_of_surjective
 
+/- warning: is_integral_of_surjective -> isIntegral_of_surjective is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_8 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], (Function.Surjective.{succ u1, succ u2} R A (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8))) -> (Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8)
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_8 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))], (Function.Surjective.{succ u2, succ u1} R A (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) R A (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)))) R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))) (RingHom.instRingHomClassRingHom.{u2, u1} R A (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))))))) (algebraMap.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_8))) -> (Algebra.IsIntegral.{u2, u1} R A _inst_1 (CommRing.toRing.{u1} A _inst_2) _inst_8)
+Case conversion may be inaccurate. Consider using '#align is_integral_of_surjective isIntegral_of_surjectiveₓ'. -/
 theorem isIntegral_of_surjective (h : Function.Surjective (algebraMap R A)) :
     Algebra.IsIntegral R A :=
   (algebraMap R A).isIntegral_of_surjective h
 #align is_integral_of_surjective isIntegral_of_surjective
 
+/- warning: is_integral_tower_bot_of_is_integral -> isIntegral_tower_bot_of_isIntegral is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_8 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_9 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7)))))], (Function.Injective.{succ u2, succ u3} A B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6))) -> (forall {x : A}, (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_7 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))) (algebraMap.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6) x)) -> (IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8 x))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_6 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_8 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_9 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_8) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7)], (Function.Injective.{succ u3, succ u2} A B (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6))) -> (forall {x : A}, (IsIntegral.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_1 (CommRing.toRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_3) _inst_7 (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))) (RingHom.instRingHomClassRingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (algebraMap.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) x)) -> (IsIntegral.{u1, u3} R A _inst_1 (CommRing.toRing.{u3} A _inst_2) _inst_8 x))
+Case conversion may be inaccurate. Consider using '#align is_integral_tower_bot_of_is_integral isIntegral_tower_bot_of_isIntegralₓ'. -/
 /-- If `R → A → B` is an algebra tower with `A → B` injective,
 then if the entire tower is an integral extension so is `R → A` -/
 theorem isIntegral_tower_bot_of_isIntegral (H : Function.Injective (algebraMap A B)) {x : A}
@@ -1057,6 +1595,12 @@ theorem isIntegral_tower_bot_of_isIntegral (H : Function.Injective (algebraMap A
   exact H hp'
 #align is_integral_tower_bot_of_is_integral isIntegral_tower_bot_of_isIntegral
 
+/- warning: ring_hom.is_integral_tower_bot_of_is_integral -> RingHom.isIntegral_tower_bot_of_isIntegral is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : CommRing.{u3} T] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (g : RingHom.{u2, u3} S T (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5)))), (Function.Injective.{succ u2, succ u3} S T (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} S T (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5)))) (fun (_x : RingHom.{u2, u3} S T (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5)))) => S -> T) (RingHom.hasCoeToFun.{u2, u3} S T (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5)))) g)) -> (RingHom.IsIntegral.{u1, u3} R T _inst_1 (CommRing.toRing.{u3} T _inst_5) (RingHom.comp.{u1, u2, u3} R S T (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5))) g f)) -> (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f)
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u3}} {T : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u3} S] [_inst_5 : CommRing.{u2} T] (f : RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4)))) (g : RingHom.{u3, u2} S T (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))), (Function.Injective.{succ u3, succ u2} S T (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} S T (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => T) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} S T (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))) S T (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))))) (NonUnitalNonAssocSemiring.toMul.{u2} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} T (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} S T (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))) S T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} T (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} S T (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))) S T (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5))) (RingHom.instRingHomClassRingHom.{u3, u2} S T (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5))))))) g)) -> (RingHom.IsIntegral.{u1, u2} R T _inst_1 (CommRing.toRing.{u2} T _inst_5) (RingHom.comp.{u1, u3, u2} R S T (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5))) g f)) -> (RingHom.IsIntegral.{u1, u3} R S _inst_1 (CommRing.toRing.{u3} S _inst_4) f)
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_tower_bot_of_is_integral RingHom.isIntegral_tower_bot_of_isIntegralₓ'. -/
 theorem RingHom.isIntegral_tower_bot_of_isIntegral (hg : Function.Injective g)
     (hfg : (g.comp f).IsIntegral) : f.IsIntegral := fun x =>
   @isIntegral_tower_bot_of_isIntegral R S T _ _ _ g.toAlgebra (g.comp f).toAlgebra f.toAlgebra
@@ -1065,22 +1609,46 @@ theorem RingHom.isIntegral_tower_bot_of_isIntegral (hg : Function.Injective g)
     hg x (hfg (g x))
 #align ring_hom.is_integral_tower_bot_of_is_integral RingHom.isIntegral_tower_bot_of_isIntegral
 
+/- warning: is_integral_tower_bot_of_is_integral_field -> isIntegral_tower_bot_of_isIntegral_field is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_10 : CommRing.{u1} R] [_inst_11 : Field.{u2} A] [_inst_12 : CommRing.{u3} B] [_inst_13 : Nontrivial.{u3} B] [_inst_14 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11)))] [_inst_15 : Algebra.{u2, u3} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12))] [_inst_16 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12))] [_inst_17 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11))))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11)))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11))) _inst_14))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11))))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12))))) (Algebra.toModule.{u2, u3} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)) _inst_15))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)) _inst_16)))))] {x : A}, (IsIntegral.{u1, u3} R B _inst_10 (CommRing.toRing.{u3} B _inst_12) _inst_16 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))) (fun (_x : RingHom.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))) => A -> B) (RingHom.hasCoeToFun.{u2, u3} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)))) (algebraMap.{u2, u3} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_12)) _inst_15) x)) -> (IsIntegral.{u1, u2} R A _inst_10 (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11)) _inst_14 x)
+but is expected to have type
+  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_10 : CommRing.{u3} R] [_inst_11 : Field.{u2} A] [_inst_12 : CommRing.{u1} B] [_inst_13 : Nontrivial.{u1} B] [_inst_14 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_10) (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))] [_inst_15 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12))] [_inst_16 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_10) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12))] [_inst_17 : IsScalarTower.{u3, u2, u1} R A B (Algebra.toSMul.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_10) (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11))) _inst_14) (Algebra.toSMul.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)) _inst_15) (Algebra.toSMul.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_10) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)) _inst_16)] {x : A}, (IsIntegral.{u3, u1} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_10 (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) x) _inst_12) _inst_16 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)))) A B (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)))) A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12))))))) (algebraMap.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_11)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_12)) _inst_15) x)) -> (IsIntegral.{u3, u2} R A _inst_10 (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_11)) _inst_14 x)
+Case conversion may be inaccurate. Consider using '#align is_integral_tower_bot_of_is_integral_field isIntegral_tower_bot_of_isIntegral_fieldₓ'. -/
 theorem isIntegral_tower_bot_of_isIntegral_field {R A B : Type _} [CommRing R] [Field A]
     [CommRing B] [Nontrivial B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B]
     {x : A} (h : IsIntegral R (algebraMap A B x)) : IsIntegral R x :=
   isIntegral_tower_bot_of_isIntegral (algebraMap A B).Injective h
 #align is_integral_tower_bot_of_is_integral_field isIntegral_tower_bot_of_isIntegral_field
 
+/- warning: ring_hom.is_integral_elem_of_is_integral_elem_comp -> RingHom.isIntegralElem_of_isIntegralElem_comp is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : CommRing.{u3} T] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (g : RingHom.{u2, u3} S T (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5)))) {x : T}, (RingHom.IsIntegralElem.{u1, u3} R T _inst_1 (CommRing.toRing.{u3} T _inst_5) (RingHom.comp.{u1, u2, u3} R S T (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5))) g f) x) -> (RingHom.IsIntegralElem.{u2, u3} S T _inst_4 (CommRing.toRing.{u3} T _inst_5) g x)
+but is expected to have type
+  forall {R : Type.{u3}} {S : Type.{u1}} {T : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_4 : CommRing.{u1} S] [_inst_5 : CommRing.{u2} T] (f : RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (g : RingHom.{u1, u2} S T (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))) {x : T}, (RingHom.IsIntegralElem.{u3, u2} R T _inst_1 (CommRing.toRing.{u2} T _inst_5) (RingHom.comp.{u3, u1, u2} R S T (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5))) g f) x) -> (RingHom.IsIntegralElem.{u1, u2} S T _inst_4 (CommRing.toRing.{u2} T _inst_5) g x)
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_elem_of_is_integral_elem_comp RingHom.isIntegralElem_of_isIntegralElem_compₓ'. -/
 theorem RingHom.isIntegralElem_of_isIntegralElem_comp {x : T} (h : (g.comp f).IsIntegralElem x) :
     g.IsIntegralElem x :=
   let ⟨p, ⟨hp, hp'⟩⟩ := h
   ⟨p.map f, hp.map f, by rwa [← eval₂_map] at hp'⟩
 #align ring_hom.is_integral_elem_of_is_integral_elem_comp RingHom.isIntegralElem_of_isIntegralElem_comp
 
+/- warning: ring_hom.is_integral_tower_top_of_is_integral -> RingHom.isIntegral_tower_top_of_isIntegral is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : CommRing.{u3} T] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (g : RingHom.{u2, u3} S T (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5)))), (RingHom.IsIntegral.{u1, u3} R T _inst_1 (CommRing.toRing.{u3} T _inst_5) (RingHom.comp.{u1, u2, u3} R S T (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u3} T (Ring.toNonAssocRing.{u3} T (CommRing.toRing.{u3} T _inst_5))) g f)) -> (RingHom.IsIntegral.{u2, u3} S T _inst_4 (CommRing.toRing.{u3} T _inst_5) g)
+but is expected to have type
+  forall {R : Type.{u3}} {S : Type.{u1}} {T : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_4 : CommRing.{u1} S] [_inst_5 : CommRing.{u2} T] (f : RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) (g : RingHom.{u1, u2} S T (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5)))), (RingHom.IsIntegral.{u3, u2} R T _inst_1 (CommRing.toRing.{u2} T _inst_5) (RingHom.comp.{u3, u1, u2} R S T (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} T (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_5))) g f)) -> (RingHom.IsIntegral.{u1, u2} S T _inst_4 (CommRing.toRing.{u2} T _inst_5) g)
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_tower_top_of_is_integral RingHom.isIntegral_tower_top_of_isIntegralₓ'. -/
 theorem RingHom.isIntegral_tower_top_of_isIntegral (h : (g.comp f).IsIntegral) : g.IsIntegral :=
   fun x => RingHom.isIntegralElem_of_isIntegralElem_comp f g (h x)
 #align ring_hom.is_integral_tower_top_of_is_integral RingHom.isIntegral_tower_top_of_isIntegral
 
+/- warning: is_integral_tower_top_of_is_integral -> isIntegral_tower_top_of_isIntegral is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_8 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_9 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_6))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_7)))))] {x : B}, (IsIntegral.{u1, u3} R B _inst_1 (CommRing.toRing.{u3} B _inst_3) _inst_7 x) -> (IsIntegral.{u2, u3} A B _inst_2 (CommRing.toRing.{u3} B _inst_3) _inst_6 x)
+but is expected to have type
+  forall {R : Type.{u3}} {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u2} B] [_inst_6 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_8 : Algebra.{u3, u1} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] [_inst_9 : IsScalarTower.{u3, u1, u2} R A B (Algebra.toSMul.{u3, u1} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_8) (Algebra.toSMul.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6) (Algebra.toSMul.{u3, u2} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_7)] {x : B}, (IsIntegral.{u3, u2} R B _inst_1 (CommRing.toRing.{u2} B _inst_3) _inst_7 x) -> (IsIntegral.{u1, u2} A B _inst_2 (CommRing.toRing.{u2} B _inst_3) _inst_6 x)
+Case conversion may be inaccurate. Consider using '#align is_integral_tower_top_of_is_integral isIntegral_tower_top_of_isIntegralₓ'. -/
 /-- If `R → A → B` is an algebra tower,
 then if the entire tower is an integral extension so is `A → B`. -/
 theorem isIntegral_tower_top_of_isIntegral {x : B} (h : IsIntegral R x) : IsIntegral A x :=
@@ -1091,6 +1659,12 @@ theorem isIntegral_tower_top_of_isIntegral {x : B} (h : IsIntegral R x) : IsInte
   exact hp'
 #align is_integral_tower_top_of_is_integral isIntegral_tower_top_of_isIntegral
 
+/- warning: ring_hom.is_integral_quotient_of_is_integral -> RingHom.isIntegral_quotient_of_isIntegral is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) {I : Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))}, (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f) -> (RingHom.IsIntegral.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I)) (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u1} R _inst_1 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)) (Ideal.quotientMap.{u1, u2} R S _inst_1 _inst_4 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I) I f (le_rfl.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I))))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) {I : Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))}, (RingHom.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_4) f) -> (RingHom.IsIntegral.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I)) (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u1} R _inst_1 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)) (Ideal.quotientMap.{u1, u2} R S _inst_1 _inst_4 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I) I f (le_rfl.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I))))
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_quotient_of_is_integral RingHom.isIntegral_quotient_of_isIntegralₓ'. -/
 theorem RingHom.isIntegral_quotient_of_isIntegral {I : Ideal S} (hf : f.IsIntegral) :
     (Ideal.quotientMap I f le_rfl).IsIntegral :=
   by
@@ -1100,11 +1674,23 @@ theorem RingHom.isIntegral_quotient_of_isIntegral {I : Ideal S} (hf : f.IsIntegr
   simpa only [hom_eval₂, eval₂_map] using congr_arg (Ideal.Quotient.mk I) hpx
 #align ring_hom.is_integral_quotient_of_is_integral RingHom.isIntegral_quotient_of_isIntegral
 
+/- warning: is_integral_quotient_of_is_integral -> isIntegral_quotient_of_isIntegral is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_8 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] {I : Ideal.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))}, (Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8) -> (Algebra.IsIntegral.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Ideal.comap.{u1, u2, max u1 u2} R A (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (RingHom.ringHomClass.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8) I)) (HasQuotient.Quotient.{u2, u2} A (Ideal.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))) (Ideal.hasQuotient.{u2} A _inst_2) I) (Ideal.Quotient.commRing.{u1} R _inst_1 (Ideal.comap.{u1, u2, max u1 u2} R A (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (RingHom.ringHomClass.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_8) I)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} A (Ideal.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))) (Ideal.hasQuotient.{u2} A _inst_2) I) (Ideal.Quotient.commRing.{u2} A _inst_2 I)) (Ideal.quotientAlgebra.{u1, u2} R _inst_1 A _inst_2 I _inst_8))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_8 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] {I : Ideal.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))}, (Algebra.IsIntegral.{u1, u2} R A _inst_1 (CommRing.toRing.{u2} A _inst_2) _inst_8) -> (Algebra.IsIntegral.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) (Ideal.comap.{u1, u2, max u1 u2} R A (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_8) I)) (HasQuotient.Quotient.{u2, u2} A (Ideal.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} A _inst_2) I) (Ideal.Quotient.commRing.{u1} R _inst_1 (Ideal.comap.{u1, u2, max u1 u2} R A (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (algebraMap.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_8) I)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} A (Ideal.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} A _inst_2) I) (Ideal.Quotient.commRing.{u2} A _inst_2 I)) (Ideal.quotientAlgebra.{u1, u2} R _inst_1 A _inst_2 I _inst_8))
+Case conversion may be inaccurate. Consider using '#align is_integral_quotient_of_is_integral isIntegral_quotient_of_isIntegralₓ'. -/
 theorem isIntegral_quotient_of_isIntegral {I : Ideal A} (hRA : Algebra.IsIntegral R A) :
     Algebra.IsIntegral (R ⧸ I.comap (algebraMap R A)) (A ⧸ I) :=
   (algebraMap R A).isIntegral_quotient_of_isIntegral hRA
 #align is_integral_quotient_of_is_integral isIntegral_quotient_of_isIntegral
 
+/- warning: is_integral_quotient_map_iff -> isIntegral_quotientMap_iff is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) {I : Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))}, Iff (RingHom.IsIntegral.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ideal.hasQuotient.{u1} R _inst_1) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I)) (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u1} R _inst_1 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)) (Ideal.quotientMap.{u1, u2} R S _inst_1 _inst_4 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I) I f (le_rfl.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Ideal.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) R (Submodule.setLike.{u1, u1} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4)))) f I)))) (RingHom.IsIntegral.{u1, u2} R (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) _inst_1 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)) (RingHom.comp.{u1, u2, u2} R S (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (Ring.toNonAssocRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ideal.hasQuotient.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)))) (Ideal.Quotient.mk.{u2} S _inst_4 I) f))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) {I : Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))}, Iff (RingHom.IsIntegral.{u1, u2} (HasQuotient.Quotient.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u1} R _inst_1) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I)) (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u1} R _inst_1 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I)) (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)) (Ideal.quotientMap.{u1, u2} R S _inst_1 _inst_4 (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I) I f (le_rfl.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) f I)))) (RingHom.IsIntegral.{u1, u2} R (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) _inst_1 (CommRing.toRing.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)) (RingHom.comp.{u1, u2, u2} R S (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (CommSemiring.toSemiring.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (CommRing.toCommSemiring.{u2} (HasQuotient.Quotient.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Ideal.instHasQuotientIdealToSemiringToCommSemiring.{u2} S _inst_4) I) (Ideal.Quotient.commRing.{u2} S _inst_4 I)))) (Ideal.Quotient.mk.{u2} S _inst_4 I) f))
+Case conversion may be inaccurate. Consider using '#align is_integral_quotient_map_iff isIntegral_quotientMap_iffₓ'. -/
 theorem isIntegral_quotientMap_iff {I : Ideal S} :
     (Ideal.quotientMap I f le_rfl).IsIntegral ↔
       ((Ideal.Quotient.mk I).comp f : R →+* S ⧸ I).IsIntegral :=
@@ -1116,6 +1702,12 @@ theorem isIntegral_quotientMap_iff {I : Ideal S} :
   exact RingHom.isIntegral_of_surjective g Ideal.Quotient.mk_surjective
 #align is_integral_quotient_map_iff isIntegral_quotientMap_iff
 
+/- warning: is_field_of_is_integral_of_is_field -> isField_of_isIntegral_of_isField is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_10 : CommRing.{u1} R] [_inst_11 : Nontrivial.{u1} R] [_inst_12 : CommRing.{u2} S] [_inst_13 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12))] [_inst_14 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12))], (Algebra.IsIntegral.{u1, u2} R S _inst_10 (CommRing.toRing.{u2} S _inst_12) _inst_14) -> (Function.Injective.{succ u1, succ u2} R S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)) _inst_14))) -> (IsField.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12))) -> (IsField.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_10)))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_10 : CommRing.{u2} R] [_inst_11 : Nontrivial.{u2} R] [_inst_12 : CommRing.{u1} S] [_inst_13 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))] [_inst_14 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_10) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))], (Algebra.IsIntegral.{u2, u1} R S _inst_10 (CommRing.toRing.{u1} S _inst_12) _inst_14) -> (Function.Injective.{succ u2, succ u1} R S (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))))) (algebraMap.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_10) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)) _inst_14))) -> (IsField.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) -> (IsField.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10)))
+Case conversion may be inaccurate. Consider using '#align is_field_of_is_integral_of_is_field isField_of_isIntegral_of_isFieldₓ'. -/
 /-- If the integral extension `R → S` is injective, and `S` is a field, then `R` is also a field. -/
 theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial R] [CommRing S]
     [IsDomain S] [Algebra R S] (H : Algebra.IsIntegral R S)
@@ -1156,14 +1748,20 @@ theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial
   rw [mul_assoc, ← pow_succ', tsub_add_cancel_of_le this]
 #align is_field_of_is_integral_of_is_field isField_of_isIntegral_of_isField
 
-theorem isField_of_isIntegral_of_is_field' {R S : Type _} [CommRing R] [CommRing S] [IsDomain S]
+/- warning: is_field_of_is_integral_of_is_field' -> isField_of_isIntegral_of_isField' is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_10 : CommRing.{u1} R] [_inst_11 : CommRing.{u2} S] [_inst_12 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_11))] [_inst_13 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_11))], (Algebra.IsIntegral.{u1, u2} R S _inst_10 (CommRing.toRing.{u2} S _inst_11) _inst_13) -> (IsField.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_10))) -> (IsField.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_11)))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_10 : CommRing.{u2} R] [_inst_11 : CommRing.{u1} S] [_inst_12 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_11))] [_inst_13 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_10) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_11))], (Algebra.IsIntegral.{u2, u1} R S _inst_10 (CommRing.toRing.{u1} S _inst_11) _inst_13) -> (IsField.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) -> (IsField.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_11)))
+Case conversion may be inaccurate. Consider using '#align is_field_of_is_integral_of_is_field' isField_of_isIntegral_of_isField'ₓ'. -/
+theorem isField_of_isIntegral_of_isField' {R S : Type _} [CommRing R] [CommRing S] [IsDomain S]
     [Algebra R S] (H : Algebra.IsIntegral R S) (hR : IsField R) : IsField S :=
   by
   letI := hR.to_field
   refine' ⟨⟨0, 1, zero_ne_one⟩, mul_comm, fun x hx => _⟩
   let A := Algebra.adjoin R ({x} : Set S)
   haveI : IsNoetherian R A :=
-    isNoetherian_of_fg_of_noetherian A.to_submodule (fG_adjoin_singleton_of_integral x (H x))
+    isNoetherian_of_fg_of_noetherian A.to_submodule (FG_adjoin_singleton_of_integral x (H x))
   haveI : Module.Finite R A := Module.IsNoetherian.finite R A
   obtain ⟨y, hy⟩ :=
     LinearMap.surjective_of_injective
@@ -1171,16 +1769,28 @@ theorem isField_of_isIntegral_of_is_field' {R S : Type _} [CommRing R] [CommRing
         hx (subtype.ext_iff.mp h))
       1
   exact ⟨y, subtype.ext_iff.mp hy⟩
-#align is_field_of_is_integral_of_is_field' isField_of_isIntegral_of_is_field'
-
+#align is_field_of_is_integral_of_is_field' isField_of_isIntegral_of_isField'
+
+/- warning: algebra.is_integral.is_field_iff_is_field -> Algebra.IsIntegral.isField_iff_isField is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_10 : CommRing.{u1} R] [_inst_11 : Nontrivial.{u1} R] [_inst_12 : CommRing.{u2} S] [_inst_13 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12))] [_inst_14 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12))], (Algebra.IsIntegral.{u1, u2} R S _inst_10 (CommRing.toRing.{u2} S _inst_12) _inst_14) -> (Function.Injective.{succ u1, succ u2} R S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_10))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)) _inst_14))) -> (Iff (IsField.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_10))) (IsField.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12))))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_10 : CommRing.{u2} R] [_inst_11 : Nontrivial.{u2} R] [_inst_12 : CommRing.{u1} S] [_inst_13 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))] [_inst_14 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_10) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))], (Algebra.IsIntegral.{u2, u1} R S _inst_10 (CommRing.toRing.{u1} S _inst_12) _inst_14) -> (Function.Injective.{succ u2, succ u1} R S (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))))) (algebraMap.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_10) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)) _inst_14))) -> (Iff (IsField.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))) (IsField.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))
+Case conversion may be inaccurate. Consider using '#align algebra.is_integral.is_field_iff_is_field Algebra.IsIntegral.isField_iff_isFieldₓ'. -/
 theorem Algebra.IsIntegral.isField_iff_isField {R S : Type _} [CommRing R] [Nontrivial R]
     [CommRing S] [IsDomain S] [Algebra R S] (H : Algebra.IsIntegral R S)
     (hRS : Function.Injective (algebraMap R S)) : IsField R ↔ IsField S :=
-  ⟨isField_of_isIntegral_of_is_field' H, isField_of_isIntegral_of_isField H hRS⟩
+  ⟨isField_of_isIntegral_of_isField' H, isField_of_isIntegral_of_isField H hRS⟩
 #align algebra.is_integral.is_field_iff_is_field Algebra.IsIntegral.isField_iff_isField
 
 end Algebra
 
+/- warning: integral_closure_idem -> integralClosure_idem is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Eq.{succ u2} (Subalgebra.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u1, u2} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Subalgebra.toAlgebra.{u2, u1, u2} A R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (integralClosure.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) A (Subalgebra.toCommRing.{u1, u2} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3)) _inst_2 (Subalgebra.toAlgebra.{u2, u1, u2} A R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Bot.bot.{u2} (Subalgebra.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u1, u2} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Subalgebra.toAlgebra.{u2, u1, u2} A R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (CompleteLattice.toHasBot.{u2} (Subalgebra.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u1, u2} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Subalgebra.toAlgebra.{u2, u1, u2} A R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Algebra.Subalgebra.completeLattice.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} A) Type.{u2} (Set.hasCoeToSort.{u2} A) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (HasLiftT.mk.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (CoeTCₓ.coe.{succ u2, succ u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Set.{u2} A) (SetLike.Set.hasCoeT.{u2, u2} (Subalgebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) A (Subalgebra.setLike.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)))) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u1, u2} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Subalgebra.toAlgebra.{u2, u1, u2} A R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3 (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (integralClosure.{u1, u2} R A _inst_1 _inst_2 _inst_3)))))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))], Eq.{succ u1} (Subalgebra.{u1, u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u2, u1} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (Subalgebra.toAlgebra.{u1, u2, u1} A R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3 (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (integralClosure.{u1, u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) A (Subalgebra.toCommRing.{u2, u1} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3)) _inst_2 (Subalgebra.toAlgebra.{u1, u2, u1} A R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3 (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (Bot.bot.{u1} (Subalgebra.{u1, u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u2, u1} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (Subalgebra.toAlgebra.{u1, u2, u1} A R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3 (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (CompleteLattice.toBot.{u1} (Subalgebra.{u1, u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u2, u1} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (Subalgebra.toAlgebra.{u1, u2, u1} A R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3 (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (Algebra.instCompleteLatticeSubalgebra.{u1, u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) A (CommRing.toCommSemiring.{u1} (Set.Elem.{u1} A (SetLike.coe.{u1, u1} (Subalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (Subalgebra.toCommRing.{u2, u1} R A _inst_1 _inst_2 _inst_3 (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (Subalgebra.toAlgebra.{u1, u2, u1} A R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommRing.toCommSemiring.{u1} A _inst_2) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3 (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (integralClosure.{u2, u1} R A _inst_1 _inst_2 _inst_3)))))
+Case conversion may be inaccurate. Consider using '#align integral_closure_idem integralClosure_idemₓ'. -/
 theorem integralClosure_idem {R : Type _} {A : Type _} [CommRing R] [CommRing A] [Algebra R A] :
     integralClosure (integralClosure R A : Set A) A = ⊥ :=
   eq_bot_iff.2 fun x hx =>
@@ -1198,6 +1808,12 @@ variable {R S : Type _} [CommRing R] [CommRing S] [IsDomain S] [Algebra R S]
 instance : IsDomain (integralClosure R S) :=
   inferInstance
 
+/- warning: roots_mem_integral_closure -> roots_mem_integralClosure is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} S] [_inst_3 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_4 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] {f : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))}, (Polynomial.Monic.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) f) -> (forall {a : S}, (Membership.Mem.{u2, u2} S (Multiset.{u2} S) (Multiset.hasMem.{u2} S) a (Polynomial.roots.{u2} S _inst_2 _inst_3 (Polynomial.map.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_4) f))) -> (Membership.Mem.{u2, u2} S (Subalgebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_4) (SetLike.hasMem.{u2, u2} (Subalgebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_4) S (Subalgebra.setLike.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_4)) a (integralClosure.{u1, u2} R S _inst_1 _inst_2 _inst_4)))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} S] [_inst_3 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))] [_inst_4 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))] {f : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))}, (Polynomial.Monic.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) f) -> (forall {a : S}, (Membership.mem.{u1, u1} S (Multiset.{u1} S) (Multiset.instMembershipMultiset.{u1} S) a (Polynomial.roots.{u1} S _inst_2 _inst_3 (Polynomial.map.{u2, u1} R S (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (algebraMap.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) _inst_4) f))) -> (Membership.mem.{u1, u1} S (Subalgebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) _inst_4) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) _inst_4) S (Subalgebra.instSetLikeSubalgebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) _inst_4)) a (integralClosure.{u2, u1} R S _inst_1 _inst_2 _inst_4)))
+Case conversion may be inaccurate. Consider using '#align roots_mem_integral_closure roots_mem_integralClosureₓ'. -/
 theorem roots_mem_integralClosure {f : R[X]} (hf : f.Monic) {a : S}
     (ha : a ∈ (f.map <| algebraMap R S).roots) : a ∈ integralClosure R S :=
   ⟨f, hf, (eval₂_eq_eval_map _).trans <| (mem_roots <| (hf.map _).NeZero).1 ha⟩
Diff
@@ -208,8 +208,8 @@ theorem isIntegral_iff_isIntegral_closure_finite {r : A} :
   exact isIntegral_ofSubring _ hsr
 #align is_integral_iff_is_integral_closure_finite isIntegral_iff_isIntegral_closure_finite
 
-theorem fg_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
-    (Algebra.adjoin R ({x} : Set A)).toSubmodule.Fg :=
+theorem fG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
+    (Algebra.adjoin R ({x} : Set A)).toSubmodule.FG :=
   by
   rcases hx with ⟨f, hfm, hfx⟩
   exists Finset.image ((· ^ ·) x) (Finset.range (nat_degree f + 1))
@@ -237,10 +237,10 @@ theorem fg_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
   rw [degree_le_iff_coeff_zero] at this
   rw [mem_support_iff] at hkq; apply hkq; apply this
   exact lt_of_le_of_lt degree_le_nat_degree (WithBot.coe_lt_coe.2 hk)
-#align fg_adjoin_singleton_of_integral fg_adjoin_singleton_of_integral
+#align fg_adjoin_singleton_of_integral fG_adjoin_singleton_of_integral
 
-theorem fg_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsIntegral R x) :
-    (Algebra.adjoin R s).toSubmodule.Fg :=
+theorem fG_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsIntegral R x) :
+    (Algebra.adjoin R s).toSubmodule.FG :=
   Set.Finite.induction_on hfs
     (fun _ =>
       ⟨{1},
@@ -253,19 +253,19 @@ theorem fg_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsI
       rw [← Set.union_singleton, Algebra.adjoin_union_coe_submodule] <;>
         exact
           fg.mul (ih fun i hi => his i <| Set.mem_insert_of_mem a hi)
-            (fg_adjoin_singleton_of_integral _ <| his a <| Set.mem_insert a s))
+            (fG_adjoin_singleton_of_integral _ <| his a <| Set.mem_insert a s))
     his
-#align fg_adjoin_of_finite fg_adjoin_of_finite
+#align fg_adjoin_of_finite fG_adjoin_of_finite
 
 theorem isNoetherian_adjoin_finset [IsNoetherianRing R] (s : Finset A)
     (hs : ∀ x ∈ s, IsIntegral R x) : IsNoetherian R (Algebra.adjoin R (↑s : Set A)) :=
-  isNoetherian_of_fg_of_noetherian _ (fg_adjoin_of_finite s.finite_toSet hs)
+  isNoetherian_of_fg_of_noetherian _ (fG_adjoin_of_finite s.finite_toSet hs)
 #align is_noetherian_adjoin_finset isNoetherian_adjoin_finset
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /-- If `S` is a sub-`R`-algebra of `A` and `S` is finitely-generated as an `R`-module,
   then all elements of `S` are integral over `R`. -/
-theorem isIntegral_of_mem_of_fg (S : Subalgebra R A) (HS : S.toSubmodule.Fg) (x : A) (hx : x ∈ S) :
+theorem isIntegral_of_mem_of_fG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x : A) (hx : x ∈ S) :
     IsIntegral R x :=
   by
   -- say `x ∈ S`. We want to prove that `x` is integral over `R`.
@@ -362,7 +362,7 @@ theorem isIntegral_of_mem_of_fg (S : Subalgebra R A) (HS : S.toSubmodule.Fg) (x
   change (⟨_, this⟩ : S₀) • r ∈ _
   rw [Finsupp.mem_supported] at hlx1
   exact Subalgebra.smul_mem _ (Algebra.subset_adjoin <| hlx1 hr) _
-#align is_integral_of_mem_of_fg isIntegral_of_mem_of_fg
+#align is_integral_of_mem_of_fg isIntegral_of_mem_of_fG
 
 theorem Module.End.isIntegral {M : Type _} [AddCommGroup M] [Module R M] [Module.Finite R M] :
     Algebra.IsIntegral R (Module.End R M) :=
@@ -372,7 +372,7 @@ theorem Module.End.isIntegral {M : Type _} [AddCommGroup M] [Module R M] [Module
 /-- Suppose `A` is an `R`-algebra, `M` is an `A`-module such that `a • m ≠ 0` for all non-zero `a`
 and `m`. If `x : A` fixes a nontrivial f.g. `R`-submodule `N` of `M`, then `x` is `R`-integral. -/
 theorem isIntegral_of_smul_mem_submodule {M : Type _} [AddCommGroup M] [Module R M] [Module A M]
-    [IsScalarTower R A M] [NoZeroSMulDivisors A M] (N : Submodule R M) (hN : N ≠ ⊥) (hN' : N.Fg)
+    [IsScalarTower R A M] [NoZeroSMulDivisors A M] (N : Submodule R M) (hN : N ≠ ⊥) (hN' : N.FG)
     (x : A) (hx : ∀ n ∈ N, x • n ∈ N) : IsIntegral R x :=
   by
   let A' : Subalgebra R A :=
@@ -412,7 +412,7 @@ variable {f}
 
 theorem RingHom.Finite.to_isIntegral (h : f.Finite) : f.IsIntegral :=
   letI := f.to_algebra
-  fun x => isIntegral_of_mem_of_fg ⊤ h.1 _ trivial
+  fun x => isIntegral_of_mem_of_fG ⊤ h.1 _ trivial
 #align ring_hom.finite.to_is_integral RingHom.Finite.to_isIntegral
 
 alias RingHom.Finite.to_isIntegral ← RingHom.IsIntegral.of_finite
@@ -423,9 +423,9 @@ theorem RingHom.IsIntegral.to_finite (h : f.IsIntegral) (h' : f.FiniteType) : f.
   letI := f.to_algebra
   obtain ⟨s, hs⟩ := h'
   constructor
-  change (⊤ : Subalgebra R S).toSubmodule.Fg
+  change (⊤ : Subalgebra R S).toSubmodule.FG
   rw [← hs]
-  exact fg_adjoin_of_finite (Set.toFinite _) fun x _ => h x
+  exact fG_adjoin_of_finite (Set.toFinite _) fun x _ => h x
 #align ring_hom.is_integral.to_finite RingHom.IsIntegral.to_finite
 
 alias RingHom.IsIntegral.to_finite ← RingHom.Finite.of_isIntegral_of_finiteType
@@ -467,10 +467,10 @@ theorem RingHom.is_integral_of_mem_closure {x y z : S} (hx : f.IsIntegralElem x)
     (hy : f.IsIntegralElem y) (hz : z ∈ Subring.closure ({x, y} : Set S)) : f.IsIntegralElem z :=
   by
   letI : Algebra R S := f.to_algebra
-  have := (fg_adjoin_singleton_of_integral x hx).mul (fg_adjoin_singleton_of_integral y hy)
+  have := (fG_adjoin_singleton_of_integral x hx).mul (fG_adjoin_singleton_of_integral y hy)
   rw [← Algebra.adjoin_union_coe_submodule, Set.singleton_union] at this
   exact
-    isIntegral_of_mem_of_fg (Algebra.adjoin R {x, y}) this z
+    isIntegral_of_mem_of_fG (Algebra.adjoin R {x, y}) this z
       (Algebra.mem_adjoin_iff.2 <| Subring.closure_mono (Set.subset_union_right _ _) hz)
 #align ring_hom.is_integral_of_mem_closure RingHom.is_integral_of_mem_closure
 
@@ -563,12 +563,12 @@ def integralClosure : Subalgebra R A
   algebraMap_mem' x := isIntegral_algebraMap
 #align integral_closure integralClosure
 
-theorem mem_integralClosure_iff_mem_fg {r : A} :
-    r ∈ integralClosure R A ↔ ∃ M : Subalgebra R A, M.toSubmodule.Fg ∧ r ∈ M :=
+theorem mem_integralClosure_iff_mem_fG {r : A} :
+    r ∈ integralClosure R A ↔ ∃ M : Subalgebra R A, M.toSubmodule.FG ∧ r ∈ M :=
   ⟨fun hr =>
-    ⟨Algebra.adjoin R {r}, fg_adjoin_singleton_of_integral _ hr, Algebra.subset_adjoin rfl⟩,
-    fun ⟨M, Hf, hrM⟩ => isIntegral_of_mem_of_fg M Hf _ hrM⟩
-#align mem_integral_closure_iff_mem_fg mem_integralClosure_iff_mem_fg
+    ⟨Algebra.adjoin R {r}, fG_adjoin_singleton_of_integral _ hr, Algebra.subset_adjoin rfl⟩,
+    fun ⟨M, Hf, hrM⟩ => isIntegral_of_mem_of_fG M Hf _ hrM⟩
+#align mem_integral_closure_iff_mem_fg mem_integralClosure_iff_mem_fG
 
 variable {R} {A}
 
@@ -1011,13 +1011,13 @@ theorem isIntegral_trans (A_int : Algebra.IsIntegral R A) (x : B) (hx : IsIntegr
     IsIntegral R x := by
   rcases hx with ⟨p, pmonic, hp⟩
   let S : Set B := ↑(p.map <| algebraMap A B).frange
-  refine' isIntegral_of_mem_of_fg (adjoin R (S ∪ {x})) _ _ (subset_adjoin <| Or.inr rfl)
-  refine' fg_trans (fg_adjoin_of_finite (Finset.finite_toSet _) fun x hx => _) _
+  refine' isIntegral_of_mem_of_fG (adjoin R (S ∪ {x})) _ _ (subset_adjoin <| Or.inr rfl)
+  refine' fg_trans (fG_adjoin_of_finite (Finset.finite_toSet _) fun x hx => _) _
   · rw [Finset.mem_coe, frange, Finset.mem_image] at hx
     rcases hx with ⟨i, _, rfl⟩
     rw [coeff_map]
     exact map_isIntegral (IsScalarTower.toAlgHom R A B) (A_int _)
-  · apply fg_adjoin_singleton_of_integral
+  · apply fG_adjoin_singleton_of_integral
     exact isIntegral_trans_aux _ pmonic hp
 #align is_integral_trans isIntegral_trans
 
@@ -1163,7 +1163,7 @@ theorem isField_of_isIntegral_of_is_field' {R S : Type _} [CommRing R] [CommRing
   refine' ⟨⟨0, 1, zero_ne_one⟩, mul_comm, fun x hx => _⟩
   let A := Algebra.adjoin R ({x} : Set S)
   haveI : IsNoetherian R A :=
-    isNoetherian_of_fg_of_noetherian A.to_submodule (fg_adjoin_singleton_of_integral x (H x))
+    isNoetherian_of_fg_of_noetherian A.to_submodule (fG_adjoin_singleton_of_integral x (H x))
   haveI : Module.Finite R A := Module.IsNoetherian.finite R A
   obtain ⟨y, hy⟩ :=
     LinearMap.surjective_of_injective
Diff
@@ -289,7 +289,7 @@ theorem isIntegral_of_mem_of_fg (S : Subalgebra R A) (HS : S.toSubmodule.Fg) (x
   choose ly hly1 hly2
   -- Now let `S₀` be the subring of `R` generated by the `rᵢ` and the `rᵢⱼₖ`.
   let S₀ : Subring R :=
-    Subring.closure ↑(lx.frange ∪ Finset.bunionᵢ Finset.univ (Finsupp.frange ∘ ly))
+    Subring.closure ↑(lx.frange ∪ Finset.biUnion Finset.univ (Finsupp.frange ∘ ly))
   -- It suffices to prove that `x` is integral over `S₀`.
   refine' isIntegral_ofSubring S₀ _
   letI : CommRing S₀ := SubringClass.toCommRing S₀
@@ -313,7 +313,7 @@ theorem isIntegral_of_mem_of_fg (S : Subalgebra R A) (HS : S.toSubmodule.Fg) (x
     have : ly ⟨(p, q), Finset.mem_product.2 ⟨hp, hq⟩⟩ t ∈ S₀ :=
       Subring.subset_closure
         (Finset.mem_union_right _ <|
-          Finset.mem_bunionᵢ.2
+          Finset.mem_biUnion.2
             ⟨⟨(p, q), Finset.mem_product.2 ⟨hp, hq⟩⟩, Finset.mem_univ _,
               Finsupp.mem_frange.2 ⟨Finsupp.mem_support_iff.1 ht, _, rfl⟩⟩)
     change (⟨_, this⟩ : S₀) • t ∈ _
Diff
@@ -823,7 +823,7 @@ end
 
 section IsIntegralClosure
 
-/- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`algebraMap_injective] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`algebraMap_injective] [] -/
 /-- `is_integral_closure A R B` is the characteristic predicate stating `A` is
 the integral closure of `R` in `B`,
 i.e. that an element of `B` is integral over `R` iff it is an element of (the image of) `A`.
Diff
@@ -692,14 +692,13 @@ theorem IsIntegral.tmul (x : A) {y : B} (h : IsIntegral R y) : IsIntegral A (x 
   refine' ⟨(p.map (algebraMap R A)).scaleRoots x, _, _⟩
   · rw [Polynomial.monic_scaleRoots_iff]
     exact hp.map _
-  convert
-    @Polynomial.scaleRoots_eval₂_mul (A ⊗[R] B) A _ _ _
+  convert@Polynomial.scaleRoots_eval₂_mul (A ⊗[R] B) A _ _ _
       algebra.tensor_product.include_left.to_ring_hom (1 ⊗ₜ y) x using
     2
   ·
     simp only [AlgHom.toRingHom_eq_coe, AlgHom.coe_toRingHom, mul_one, one_mul,
       Algebra.TensorProduct.includeLeft_apply, Algebra.TensorProduct.tmul_mul_tmul]
-  convert (MulZeroClass.mul_zero _).symm
+  convert(MulZeroClass.mul_zero _).symm
   rw [Polynomial.eval₂_map, Algebra.TensorProduct.includeLeft_comp_algebraMap, ←
     Polynomial.eval₂_map]
   convert Polynomial.eval₂_at_apply algebra.tensor_product.include_right.to_ring_hom y
Diff
@@ -225,7 +225,7 @@ theorem fg_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
   rcases(aeval x).mem_range.mp hr with ⟨p, rfl⟩
   rw [← mod_by_monic_add_div p hfm]
   rw [← aeval_def] at hfx
-  rw [AlgHom.map_add, AlgHom.map_mul, hfx, zero_mul, add_zero]
+  rw [AlgHom.map_add, AlgHom.map_mul, hfx, MulZeroClass.zero_mul, add_zero]
   have : degree (p %ₘ f) ≤ degree f := degree_mod_by_monic_le p hfm
   generalize p %ₘ f = q at this⊢
   rw [← sum_C_mul_X_pow_eq q, aeval_def, eval₂_sum, sum_def]
@@ -699,7 +699,7 @@ theorem IsIntegral.tmul (x : A) {y : B} (h : IsIntegral R y) : IsIntegral A (x 
   ·
     simp only [AlgHom.toRingHom_eq_coe, AlgHom.coe_toRingHom, mul_one, one_mul,
       Algebra.TensorProduct.includeLeft_apply, Algebra.TensorProduct.tmul_mul_tmul]
-  convert (mul_zero _).symm
+  convert (MulZeroClass.mul_zero _).symm
   rw [Polynomial.eval₂_map, Algebra.TensorProduct.includeLeft_comp_algebraMap, ←
     Polynomial.eval₂_map]
   convert Polynomial.eval₂_at_apply algebra.tensor_product.include_right.to_ring_hom y
@@ -721,7 +721,7 @@ theorem normalizeScaleRoots_coeff_mul_leadingCoeff_pow (i : ℕ) (hp : 1 ≤ nat
       p.coeff i * p.leadingCoeff ^ (p.natDegree - 1) :=
   by
   simp only [normalizeScaleRoots, finset_sum_coeff, coeff_monomial, Finset.sum_ite_eq', one_mul,
-    zero_mul, mem_support_iff, ite_mul, Ne.def, ite_not]
+    MulZeroClass.zero_mul, mem_support_iff, ite_mul, Ne.def, ite_not]
   split_ifs with h₁ h₂
   · simp [h₁]
   · rw [h₂, leading_coeff, ← pow_succ, tsub_add_cancel_of_le hp]
@@ -796,11 +796,11 @@ theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
       rw [h'', nat_degree_zero] at h'
       exact Nat.not_succ_le_zero 0 h'
     use normalizeScaleRoots_monic p this
-    rw [normalizeScaleRoots_eval₂_leadingCoeff_mul p h' f x, h, mul_zero]
+    rw [normalizeScaleRoots_eval₂_leadingCoeff_mul p h' f x, h, MulZeroClass.mul_zero]
   · by_cases hp : p.map f = 0
     · apply_fun fun q => coeff q p.nat_degree  at hp
       rw [coeff_map, coeff_zero, coeff_nat_degree] at hp
-      rw [hp, zero_mul]
+      rw [hp, MulZeroClass.zero_mul]
       exact f.is_integral_zero
     · rw [Nat.one_le_iff_ne_zero, Classical.not_not] at h'
       rw [eq_C_of_nat_degree_eq_zero h', eval₂_C] at h
Diff
@@ -79,7 +79,7 @@ protected def Algebra.IsIntegral : Prop :=
 variable {R A}
 
 theorem RingHom.is_integral_map {x : R} : f.IsIntegralElem (f x) :=
-  ⟨X - C x, monic_x_sub_c _, by simp⟩
+  ⟨X - C x, monic_X_sub_C _, by simp⟩
 #align ring_hom.is_integral_map RingHom.is_integral_map
 
 theorem isIntegral_algebraMap {x : R} : IsIntegral R (algebraMap R A x) :=
Diff
@@ -79,7 +79,7 @@ protected def Algebra.IsIntegral : Prop :=
 variable {R A}
 
 theorem RingHom.is_integral_map {x : R} : f.IsIntegralElem (f x) :=
-  ⟨x - c x, monic_x_sub_c _, by simp⟩
+  ⟨X - C x, monic_x_sub_c _, by simp⟩
 #align ring_hom.is_integral_map RingHom.is_integral_map
 
 theorem isIntegral_algebraMap {x : R} : IsIntegral R (algebraMap R A x) :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau
 
 ! This file was ported from Lean 3 source module ring_theory.integral_closure
-! leanprover-community/mathlib commit 825edd3cd735e87495b0c2a2114fc3929eefce41
+! leanprover-community/mathlib commit 641b6a82006416ec431b2987b354af9311fed4f2
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -860,6 +860,15 @@ theorem isIntegral_algebra [Algebra R A] [IsScalarTower R A B] : Algebra.IsInteg
   IsIntegralClosure.isIntegral R B x
 #align is_integral_closure.is_integral_algebra IsIntegralClosure.isIntegral_algebra
 
+theorem noZeroSMulDivisors [Algebra R A] [IsScalarTower R A B] [NoZeroSMulDivisors R B] :
+    NoZeroSMulDivisors R A :=
+  by
+  refine'
+    Function.Injective.noZeroSMulDivisors _ (IsIntegralClosure.algebraMap_injective A R B)
+      (map_zero _) fun _ _ => _
+  simp only [Algebra.algebraMap_eq_smul_one, IsScalarTower.smul_assoc]
+#align is_integral_closure.no_zero_smul_divisors IsIntegralClosure.noZeroSMulDivisors
+
 variable {R} (A) {B}
 
 /-- If `x : B` is integral over `R`, then it is an element of the integral closure of `R` in `B`. -/

Changes in mathlib4

mathlib3
mathlib4
refactor(RingTheory/IntegrallyClosed): generalize to IsIntegrallyClosedIn (#7857)

This refactor adds a new definition IsIntegrallyClosedIn R A equal to IsIntegralClosure R A A, and redefines IsIntegrallyClosed R to equal IsIntegrallyClosed R (FractionRing A). This should make it possible and convenient to generalize away from the fraction fields.

This also more closely approximates the conventions of the Stacks project.

This is a second attempt at the refactor, after #7116 which was much more messy.

Diff
@@ -879,6 +879,16 @@ protected theorem RingHom.IsIntegral.trans
   Algebra.IsIntegral.trans hf hg
 #align ring_hom.is_integral_trans RingHom.IsIntegral.trans
 
+/-- If `R → A → B` is an algebra tower, `C` is the integral closure of `R` in `B`
+and `A` is integral over `R`, then `C` is the integral closure of `A` in `B`. -/
+lemma IsIntegralClosure.tower_top {B C : Type*} [CommRing C] [CommRing B]
+    [Algebra R B] [Algebra A B] [Algebra C B] [IsScalarTower R A B]
+    [IsIntegralClosure C R B] (hRA : Algebra.IsIntegral R A) :
+    IsIntegralClosure C A B :=
+  ⟨IsIntegralClosure.algebraMap_injective _ R _,
+   fun hx => (IsIntegralClosure.isIntegral_iff).mp (isIntegral_trans hRA _ hx),
+   fun hx => ((IsIntegralClosure.isIntegral_iff (R := R)).mpr hx).tower_top⟩
+
 theorem RingHom.isIntegral_of_surjective (hf : Function.Surjective f) : f.IsIntegral :=
   fun x ↦ (hf x).recOn fun _y hy ↦ hy ▸ f.isIntegralElem_map
 #align ring_hom.is_integral_of_surjective RingHom.isIntegral_of_surjective
style: replace '.-/' by '. -/' (#11938)

Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR.

Diff
@@ -840,7 +840,7 @@ variable [Algebra A B] [Algebra R B] (f : R →+* S) (g : S →+* T)
 variable [Algebra R A] [IsScalarTower R A B]
 
 /-- If A is an R-algebra all of whose elements are integral over R,
-and x is an element of an A-algebra that is integral over A, then x is integral over R.-/
+and x is an element of an A-algebra that is integral over A, then x is integral over R. -/
 theorem isIntegral_trans (A_int : Algebra.IsIntegral R A) (x : B) (hx : IsIntegral A x) :
     IsIntegral R x := by
   rcases hx with ⟨p, pmonic, hp⟩
@@ -866,7 +866,7 @@ theorem isIntegral_trans (A_int : Algebra.IsIntegral R A) (x : B) (hx : IsIntegr
 
 /-- If A is an R-algebra all of whose elements are integral over R,
 and B is an A-algebra all of whose elements are integral over A,
-then all elements of B are integral over R.-/
+then all elements of B are integral over R. -/
 protected theorem Algebra.IsIntegral.trans
     (hA : Algebra.IsIntegral R A) (hB : Algebra.IsIntegral A B) : Algebra.IsIntegral R B :=
   fun x ↦ isIntegral_trans hA x (hB x)
move(Polynomial): Move out of Data (#11751)

Polynomial and MvPolynomial are algebraic objects, hence should be under Algebra (or at least not under Data)

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2019 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau
 -/
-import Mathlib.Data.Polynomial.Expand
+import Mathlib.Algebra.Polynomial.Expand
 import Mathlib.LinearAlgebra.FiniteDimensional
 import Mathlib.LinearAlgebra.Matrix.Charpoly.LinearMap
 import Mathlib.RingTheory.Adjoin.FG
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11813)
Diff
@@ -597,7 +597,7 @@ theorem normalizeScaleRoots_coeff_mul_leadingCoeff_pow (i : ℕ) (hp : 1 ≤ nat
     (normalizeScaleRoots p).coeff i * p.leadingCoeff ^ i =
       p.coeff i * p.leadingCoeff ^ (p.natDegree - 1) := by
   simp only [normalizeScaleRoots, finset_sum_coeff, coeff_monomial, Finset.sum_ite_eq', one_mul,
-    zero_mul, mem_support_iff, ite_mul, Ne.def, ite_not]
+    zero_mul, mem_support_iff, ite_mul, Ne, ite_not]
   split_ifs with h₁ h₂
   · simp [h₁]
   · rw [h₂, leadingCoeff, ← pow_succ', tsub_add_cancel_of_le hp]
@@ -611,7 +611,7 @@ theorem leadingCoeff_smul_normalizeScaleRoots (p : R[X]) :
     p.leadingCoeff • normalizeScaleRoots p = scaleRoots p p.leadingCoeff := by
   ext
   simp only [coeff_scaleRoots, normalizeScaleRoots, coeff_monomial, coeff_smul, Finset.smul_sum,
-    Ne.def, Finset.sum_ite_eq', finset_sum_coeff, smul_ite, smul_zero, mem_support_iff]
+    Ne, Finset.sum_ite_eq', finset_sum_coeff, smul_ite, smul_zero, mem_support_iff]
   -- Porting note: added the following `simp only`
   simp only [ge_iff_le, tsub_le_iff_right, smul_eq_mul, mul_ite, mul_one, mul_zero,
     Finset.sum_ite_eq', mem_support_iff, ne_eq, ite_not]
@@ -628,7 +628,7 @@ theorem normalizeScaleRoots_support : (normalizeScaleRoots p).support ≤ p.supp
   intro x
   contrapose
   simp only [not_mem_support_iff, normalizeScaleRoots, finset_sum_coeff, coeff_monomial,
-    Finset.sum_ite_eq', mem_support_iff, Ne.def, Classical.not_not, ite_eq_right_iff]
+    Finset.sum_ite_eq', mem_support_iff, Ne, Classical.not_not, ite_eq_right_iff]
   intro h₁ h₂
   exact (h₂ h₁).elim
 #align normalize_scale_roots_support normalizeScaleRoots_support
change the order of operation in zsmulRec and nsmulRec (#11451)

We change the following field in the definition of an additive commutative monoid:

 nsmul_succ : ∀ (n : ℕ) (x : G),
-  AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x
+  AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x

where the latter is more natural

We adjust the definitions of ^ in monoids, groups, etc. Originally there was a warning comment about why this natural order was preferred

use x * npowRec n x and not npowRec n x * x in the definition to make sure that definitional unfolding of npowRec is blocked, to avoid deep recursion issues.

but it seems to no longer apply.

Remarks on the PR :

  • pow_succ and pow_succ' have switched their meanings.
  • Most of the time, the proofs were adjusted by priming/unpriming one lemma, or exchanging left and right; a few proofs were more complicated to adjust.
  • In particular, [Mathlib/NumberTheory/RamificationInertia.lean] used Ideal.IsPrime.mul_mem_pow which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul.
  • the docstring for Cauchy condensation test in [Mathlib/Analysis/PSeries.lean] was mathematically incorrect, I added the mention that the function is antitone.
Diff
@@ -600,7 +600,7 @@ theorem normalizeScaleRoots_coeff_mul_leadingCoeff_pow (i : ℕ) (hp : 1 ≤ nat
     zero_mul, mem_support_iff, ite_mul, Ne.def, ite_not]
   split_ifs with h₁ h₂
   · simp [h₁]
-  · rw [h₂, leadingCoeff, ← pow_succ, tsub_add_cancel_of_le hp]
+  · rw [h₂, leadingCoeff, ← pow_succ', tsub_add_cancel_of_le hp]
   · rw [mul_assoc, ← pow_add, tsub_add_cancel_of_le]
     apply Nat.le_sub_one_of_lt
     rw [lt_iff_le_and_ne]
@@ -618,7 +618,7 @@ theorem leadingCoeff_smul_normalizeScaleRoots (p : R[X]) :
   split_ifs with h₁ h₂
   · simp [*]
   · simp [*]
-  · rw [mul_comm, mul_assoc, ← pow_succ', tsub_right_comm,
+  · rw [mul_comm, mul_assoc, ← pow_succ, tsub_right_comm,
       tsub_add_cancel_of_le]
     rw [Nat.succ_le_iff]
     exact tsub_pos_of_lt (lt_of_le_of_ne (le_natDegree_of_ne_zero h₁) h₂)
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
@@ -39,7 +39,6 @@ open BigOperators Polynomial Submodule
 section Ring
 
 variable {R S A : Type*}
-
 variable [CommRing R] [Ring A] [Ring S] (f : R →+* S)
 
 /-- An element `x` of `A` is said to be integral over `R` with respect to `f`
@@ -85,9 +84,7 @@ end Ring
 section
 
 variable {R A B S : Type*}
-
 variable [CommRing R] [CommRing A] [Ring B] [CommRing S]
-
 variable [Algebra R A] [Algebra R B] (f : R →+* S)
 
 theorem IsIntegral.map {B C F : Type*} [Ring B] [Ring C] [Algebra R B] [Algebra A B] [Algebra R C]
@@ -723,9 +720,7 @@ theorem algebraMap_injective (A R B : Type*) [CommRing R] [CommSemiring A] [Comm
   algebraMap_injective' R
 
 variable {R A B : Type*} [CommRing R] [CommRing A] [CommRing B]
-
 variable [Algebra R B] [Algebra A B] [IsIntegralClosure A R B]
-
 variable (R B)
 
 protected theorem isIntegral [Algebra R A] [IsScalarTower R A B] (x : A) : IsIntegral R x :=
@@ -791,7 +786,6 @@ section lift
 variable (B) {S : Type*} [CommRing S] [Algebra R S]
 -- split from above, since otherwise it does not synthesize `Semiring S`
 variable [Algebra S B] [IsScalarTower R S B]
-
 variable [Algebra R A] [IsScalarTower R A B] (h : Algebra.IsIntegral R S)
 
 /-- If `B / S / R` is a tower of ring extensions where `S` is integral over `R`,
@@ -816,7 +810,6 @@ section Equiv
 
 variable (R B) (A' : Type*) [CommRing A']
 variable [Algebra A' B] [IsIntegralClosure A' R B]
-
 variable [Algebra R A] [Algebra R A'] [IsScalarTower R A B] [IsScalarTower R A' B]
 
 /-- Integral closures are all isomorphic to each other. -/
@@ -842,11 +835,8 @@ section Algebra
 open Algebra
 
 variable {R A B S T : Type*}
-
 variable [CommRing R] [CommRing A] [Ring B] [CommRing S] [CommRing T]
-
 variable [Algebra A B] [Algebra R B] (f : R →+* S) (g : S →+* T)
-
 variable [Algebra R A] [IsScalarTower R A B]
 
 /-- If A is an R-algebra all of whose elements are integral over R,
Acl/reorg tensor product (#11282)

Move:

  • Mathlib/Algebra/Module/DirectLimitAndTensorProduct.lean to LinearAlgebra/TensorProduct/DirectLimit.lean
  • Mathlib/LinearAlgebra/TensorProduct to Mathlib/LinearAlgebra.TensorProduct.Basic.lean
  • Mathlib/RingTheory/TensorProduct to Mathlib/RingTheory/TensorProduct/Basic.lean.

This follows suggestions 1, 2, 3 of

https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Tensor.20Products.20of.20modules.20and.20rings/near/424605543

Co-authored-by: Antoine Chambert-Loir <antoine.chambert-loir@math.univ-paris-diderot.fr>

Diff
@@ -10,7 +10,7 @@ import Mathlib.RingTheory.Adjoin.FG
 import Mathlib.RingTheory.FiniteType
 import Mathlib.RingTheory.Polynomial.ScaleRoots
 import Mathlib.RingTheory.Polynomial.Tower
-import Mathlib.RingTheory.TensorProduct
+import Mathlib.RingTheory.TensorProduct.Basic
 
 #align_import ring_theory.integral_closure from "leanprover-community/mathlib"@"641b6a82006416ec431b2987b354af9311fed4f2"
 
chore: scope open Classical (#11199)

We remove all but one open Classicals, instead preferring to use open scoped Classical. The only real side-effect this led to is moving a couple declarations to use Exists.choose instead of Classical.choose.

The first few commits are explicitly labelled regex replaces for ease of review.

Diff
@@ -33,7 +33,8 @@ Let `R` be a `CommRing` and let `A` be an R-algebra.
 -/
 
 
-open Classical BigOperators Polynomial Submodule
+open scoped Classical
+open BigOperators Polynomial Submodule
 
 section Ring
 
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
@@ -264,13 +264,13 @@ theorem isIntegral_of_smul_mem_submodule {M : Type*} [AddCommGroup M] [Module R
   let f : A' →ₐ[R] Module.End R N :=
     AlgHom.ofLinearMap
       { toFun := fun x => (DistribMulAction.toLinearMap R M x).restrict x.prop
-        -- porting note: was
+        -- Porting note: was
                 -- `fun x y => LinearMap.ext fun n => Subtype.ext <| add_smul x y n`
         map_add' := by intros x y; ext; exact add_smul _ _ _
-        -- porting note: was
+        -- Porting note: was
                 --  `fun r s => LinearMap.ext fun n => Subtype.ext <| smul_assoc r s n`
         map_smul' := by intros r s; ext; apply smul_assoc }
-      -- porting note: the next two lines were
+      -- Porting note: the next two lines were
       --`(LinearMap.ext fun n => Subtype.ext <| one_smul _ _) fun x y =>`
       --`LinearMap.ext fun n => Subtype.ext <| mul_smul x y n`
       (by ext; apply one_smul)
@@ -614,7 +614,7 @@ theorem leadingCoeff_smul_normalizeScaleRoots (p : R[X]) :
   ext
   simp only [coeff_scaleRoots, normalizeScaleRoots, coeff_monomial, coeff_smul, Finset.smul_sum,
     Ne.def, Finset.sum_ite_eq', finset_sum_coeff, smul_ite, smul_zero, mem_support_iff]
-  -- porting note: added the following `simp only`
+  -- Porting note: added the following `simp only`
   simp only [ge_iff_le, tsub_le_iff_right, smul_eq_mul, mul_ite, mul_one, mul_zero,
     Finset.sum_ite_eq', mem_support_iff, ne_eq, ite_not]
   split_ifs with h₁ h₂
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
@@ -90,7 +90,8 @@ variable [CommRing R] [CommRing A] [Ring B] [CommRing S]
 variable [Algebra R A] [Algebra R B] (f : R →+* S)
 
 theorem IsIntegral.map {B C F : Type*} [Ring B] [Ring C] [Algebra R B] [Algebra A B] [Algebra R C]
-    [IsScalarTower R A B] [Algebra A C] [IsScalarTower R A C] {b : B} [AlgHomClass F A B C] (f : F)
+    [IsScalarTower R A B] [Algebra A C] [IsScalarTower R A C] {b : B}
+    [FunLike F B C] [AlgHomClass F A B C] (f : F)
     (hb : IsIntegral R b) : IsIntegral R (f b) := by
   obtain ⟨P, hP⟩ := hb
   refine' ⟨P, hP.1, _⟩
@@ -138,7 +139,8 @@ theorem IsIntegral.tower_top [Algebra A B] [IsScalarTower R A B] {x : B}
 #align is_integral_of_is_scalar_tower IsIntegral.tower_top
 #align is_integral_tower_top_of_is_integral IsIntegral.tower_top
 
-theorem map_isIntegral_int {B C F : Type*} [Ring B] [Ring C] {b : B} [RingHomClass F B C] (f : F)
+theorem map_isIntegral_int {B C F : Type*} [Ring B] [Ring C] {b : B}
+    [FunLike F B C] [RingHomClass F B C] (f : F)
     (hb : IsIntegral ℤ b) : IsIntegral ℤ (f b) :=
   hb.map (f : B →+* C).toIntAlgHom
 #align map_is_integral_int map_isIntegral_int
feat: Dual basis of power basis wrt trace form (#8835)

Co-authored-by: Andrew Yang <36414270+erdOne@users.noreply.github.com>

Diff
@@ -170,22 +170,29 @@ theorem isIntegral_iff_isIntegral_closure_finite {r : B} :
   exact hsr.of_subring _
 #align is_integral_iff_is_integral_closure_finite isIntegral_iff_isIntegral_closure_finite
 
-theorem IsIntegral.fg_adjoin_singleton {x : B} (hx : IsIntegral R x) :
-    (Algebra.adjoin R {x}).toSubmodule.FG := by
-  rcases hx with ⟨f, hfm, hfx⟩
-  use (Finset.range <| f.natDegree + 1).image (x ^ ·)
+theorem Submodule.span_range_natDegree_eq_adjoin {R A} [CommRing R] [Semiring A] [Algebra R A]
+    {x : A} {f : R[X]} (hf : f.Monic) (hfx : aeval x f = 0) :
+    span R (Finset.image (x ^ ·) (Finset.range (natDegree f))) =
+      Subalgebra.toSubmodule (Algebra.adjoin R {x}) := by
+  nontriviality A
+  have hf1 : f ≠ 1 := by rintro rfl; simp [one_ne_zero' A] at hfx
   refine (span_le.mpr fun s hs ↦ ?_).antisymm fun r hr ↦ ?_
   · rcases Finset.mem_image.1 hs with ⟨k, -, rfl⟩
     exact (Algebra.adjoin R {x}).pow_mem (Algebra.subset_adjoin rfl) k
   rw [Subalgebra.mem_toSubmodule, Algebra.adjoin_singleton_eq_range_aeval] at hr
   rcases (aeval x).mem_range.mp hr with ⟨p, rfl⟩
-  rw [← modByMonic_add_div p hfm, map_add, map_mul, aeval_def x f, hfx,
+  rw [← modByMonic_add_div p hf, map_add, map_mul, hfx,
       zero_mul, add_zero, ← sum_C_mul_X_pow_eq (p %ₘ f), aeval_def, eval₂_sum, sum_def]
   refine sum_mem fun k hkq ↦ ?_
   rw [C_mul_X_pow_eq_monomial, eval₂_monomial, ← Algebra.smul_def]
-  exact smul_mem _ _ (subset_span <| Finset.mem_image_of_mem _ <| Finset.mem_range_succ_iff.mpr <|
-    (le_natDegree_of_mem_supp _ hkq).trans <| natDegree_modByMonic_le p hfm)
-#align fg_adjoin_singleton_of_integral IsIntegral.fg_adjoin_singleton
+  exact smul_mem _ _ (subset_span <| Finset.mem_image_of_mem _ <| Finset.mem_range.mpr <|
+    (le_natDegree_of_mem_supp _ hkq).trans_lt <| natDegree_modByMonic_lt p hf hf1)
+
+theorem IsIntegral.fg_adjoin_singleton {x : B} (hx : IsIntegral R x) :
+    (Algebra.adjoin R {x}).toSubmodule.FG := by
+  rcases hx with ⟨f, hfm, hfx⟩
+  use (Finset.range <| f.natDegree).image (x ^ ·)
+  exact span_range_natDegree_eq_adjoin hfm (by rwa [aeval_def])
 
 theorem fg_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsIntegral R x) :
     (Algebra.adjoin R s).toSubmodule.FG :=
chore: cleanups following #8609 and #8714 (#8962)
  • generalize image_rootSet, adjoin_rootSet_eq_range and splits_comp_of_splits in Data/Polynomial/Splits and use the last one to golf splits_of_algHom, splits_of_isScalarTower (introduced in # 8609).

  • add three new lemmas mem_range_x_of_minpoly_splits to simplify the construction of IntermediateField.algHomEquivAlgHomOfIsAlgClosed and Algebra.IsAlgebraic.algHomEquivAlgHomOfIsAlgClosed, remove the IsAlgClosed condition and rename. They could be moved to an earlier file but I refrain from doing that. (#find_home says it's already in the right place)

  • golf primitive_element_iff_algHom_eq_of_eval from # 8609, using a new lemma IsIntegral.minpoly_splits_tower_top for the last step.

  • make integralClosure_algEquiv_restrict (from # 8714) computable and rename to AlgEquiv.mapIntegralClosure to follow camelCase naming convention and enable dot notation.

Co-authored-by: Xavier-François Roblot <46200072+xroblot@users.noreply.github.com> Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>

Diff
@@ -469,27 +469,25 @@ theorem integralClosure_map_algEquiv [Algebra R S] (f : A ≃ₐ[R] S) :
 
 /-- An `AlgHom` between two rings restrict to an `AlgHom` between the integral closures inside
 them. -/
-def integralClosure_algHom_restrict [Algebra R S] (f : A →ₐ[R] S) :
+def AlgHom.mapIntegralClosure [Algebra R S] (f : A →ₐ[R] S) :
     integralClosure R A →ₐ[R] integralClosure R S :=
   (f.restrictDomain (integralClosure R A)).codRestrict (integralClosure R S) (fun ⟨_, h⟩ => h.map f)
 
 @[simp]
-theorem integralClosure_coe_algHom_restrict [Algebra R S] (f : A →ₐ[R] S)
-    (x : integralClosure R A) : (integralClosure_algHom_restrict f x : S) = f (x : A) := rfl
+theorem AlgHom.coe_mapIntegralClosure [Algebra R S] (f : A →ₐ[R] S)
+    (x : integralClosure R A) : (f.mapIntegralClosure x : S) = f (x : A) := rfl
 
 /-- An `AlgEquiv` between two rings restrict to an `AlgEquiv` between the integral closures inside
 them. -/
-noncomputable def integralClosure_algEquiv_restrict [Algebra R S] (f : A ≃ₐ[R] S) :
-    integralClosure R A ≃ₐ[R] integralClosure R S := by
-  refine AlgEquiv.ofBijective (integralClosure_algHom_restrict f) ⟨?_, ?_⟩
-  · erw [AlgHom.injective_codRestrict]
-    exact (EquivLike.injective f).comp Subtype.val_injective
-  · rintro ⟨y, hy⟩
-    exact ⟨⟨f.symm y, hy.map f.symm⟩, by rw [Subtype.mk_eq_mk]; simp⟩
+def AlgEquiv.mapIntegralClosure [Algebra R S] (f : A ≃ₐ[R] S) :
+    integralClosure R A ≃ₐ[R] integralClosure R S :=
+  AlgEquiv.ofAlgHom (f : A →ₐ[R] S).mapIntegralClosure (f.symm : S →ₐ[R] A).mapIntegralClosure
+    (AlgHom.ext fun _ ↦ Subtype.ext (f.right_inv _))
+    (AlgHom.ext fun _ ↦ Subtype.ext (f.left_inv _))
 
 @[simp]
-theorem integralClosure_coe_algEquiv_restrict [Algebra R S] (f : A ≃ₐ[R] S)
-    (x : integralClosure R A) : (integralClosure_algEquiv_restrict f x : S) = f (x : A) := rfl
+theorem AlgEquiv.coe_mapIntegralClosure [Algebra R S] (f : A ≃ₐ[R] S)
+    (x : integralClosure R A) : (f.mapIntegralClosure x : S) = f (x : A) := rfl
 
 theorem integralClosure.isIntegral (x : integralClosure R A) : IsIntegral R x :=
   let ⟨p, hpm, hpx⟩ := x.2
chore: rename by_contra' to by_contra! (#8797)

To fit with the "please try harder" convention of ! tactics.

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

Diff
@@ -267,7 +267,7 @@ theorem isIntegral_of_smul_mem_submodule {M : Type*} [AddCommGroup M] [Module R
       (by ext; apply one_smul)
       (by intros x y; ext; apply mul_smul)
   obtain ⟨a, ha₁, ha₂⟩ : ∃ a ∈ N, a ≠ (0 : M) := by
-    by_contra' h'
+    by_contra! h'
     apply hN
     rwa [eq_bot_iff]
   have : Function.Injective f := by
chore: use by_contra' instead of by_contra + push_neg (#8798)

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

Diff
@@ -267,8 +267,7 @@ theorem isIntegral_of_smul_mem_submodule {M : Type*} [AddCommGroup M] [Module R
       (by ext; apply one_smul)
       (by intros x y; ext; apply mul_smul)
   obtain ⟨a, ha₁, ha₂⟩ : ∃ a ∈ N, a ≠ (0 : M) := by
-    by_contra h'
-    push_neg at h'
+    by_contra' h'
     apply hN
     rwa [eq_bot_iff]
   have : Function.Injective f := by
feat: two isomorphic number fields have the same discriminant (#8714)
Diff
@@ -468,6 +468,30 @@ theorem integralClosure_map_algEquiv [Algebra R S] (f : A ≃ₐ[R] S) :
     simp
 #align integral_closure_map_alg_equiv integralClosure_map_algEquiv
 
+/-- An `AlgHom` between two rings restrict to an `AlgHom` between the integral closures inside
+them. -/
+def integralClosure_algHom_restrict [Algebra R S] (f : A →ₐ[R] S) :
+    integralClosure R A →ₐ[R] integralClosure R S :=
+  (f.restrictDomain (integralClosure R A)).codRestrict (integralClosure R S) (fun ⟨_, h⟩ => h.map f)
+
+@[simp]
+theorem integralClosure_coe_algHom_restrict [Algebra R S] (f : A →ₐ[R] S)
+    (x : integralClosure R A) : (integralClosure_algHom_restrict f x : S) = f (x : A) := rfl
+
+/-- An `AlgEquiv` between two rings restrict to an `AlgEquiv` between the integral closures inside
+them. -/
+noncomputable def integralClosure_algEquiv_restrict [Algebra R S] (f : A ≃ₐ[R] S) :
+    integralClosure R A ≃ₐ[R] integralClosure R S := by
+  refine AlgEquiv.ofBijective (integralClosure_algHom_restrict f) ⟨?_, ?_⟩
+  · erw [AlgHom.injective_codRestrict]
+    exact (EquivLike.injective f).comp Subtype.val_injective
+  · rintro ⟨y, hy⟩
+    exact ⟨⟨f.symm y, hy.map f.symm⟩, by rw [Subtype.mk_eq_mk]; simp⟩
+
+@[simp]
+theorem integralClosure_coe_algEquiv_restrict [Algebra R S] (f : A ≃ₐ[R] S)
+    (x : integralClosure R A) : (integralClosure_algEquiv_restrict f x : S) = f (x : A) := rfl
+
 theorem integralClosure.isIntegral (x : integralClosure R A) : IsIntegral R x :=
   let ⟨p, hpm, hpx⟩ := x.2
   ⟨p, hpm,
chore(IntegralClosure): noncommutative generalizations and golfs (#8406)

Zulip

Initially I just wanted to add more dot notations for IsIntegral and IsAlgebraic (done in #8437); then I noticed near-duplicates Algebra.isIntegral_of_finite [Field R] [Ring A] and RingHom.IsIntegral.of_finite [CommRing R] [CommRing A] so I went on to generalize the latter to cover the former, and generalized everything in the IntegralClosure file to the noncommutative case whenever possible.

In the process I noticed more golfs, which result in this PR. Most notably, isIntegral_of_mem_of_FG is now proven using Cayley-Hamilton and doesn't depend on the Noetherian case isIntegral_of_noetherian; the latter is now proven using the former. In total the golfs makes mathlib 227 lines leaner (+487 -714).

The main changes are in the single file RingTheory/IntegralClosure:

  • Change the definition of Algebra.IsIntegral which makes it unfold to IsIntegral rather than RingHom.IsIntegralElem because the former has much more APIs.

  • Fix lemma names involving is_integral which are actually about IsIntegralElem: RingHom.is_integral_mapRingHom.isIntegralElem_map RingHom.is_integral_of_mem_closureRingHom.IsIntegralElem.of_mem_closure RingHom.is_integral_zero/oneRingHom.isIntegralElem_zero/one RingHom.is_integral_add/neg/sub/mul/of_mul_unitRingHom.IsIntegralElem.add/neg/sub/mul/of_mul_unit

  • Add a lemma Algebra.IsIntegral.of_injective.

  • Move isIntegral_of_(submodule_)noetherian down and golf them.

  • Remove (Algebra.)isIntegral_of_finite that work only over fields, in favor of the more general (Algebra.)isIntegral.of_finite.

  • Merge duplicate lemmas isIntegral_of_isScalarTower and isIntegral_tower_top_of_isIntegral into IsIntegral.tower_top.

  • Golf IsIntegral.of_mem_of_fg by first proving IsIntegral.of_finite using Cayley-Hamilton.

  • Add a docstring mentioning the Kurosh problem at Algebra.IsIntegral.finite. The negative solution to the problem means the theorem doesn't generalize to noncommutative algebras.

  • Golf IsIntegral.tmul and isField_of_isIntegral_of_isField(').

  • Combine isIntegral_trans_aux into isIntegral_trans and golf.

  • Add Algebra namespace to isIntegral_sup.

  • rename lemmas for dot notation: RingHom.isIntegral_transRingHom.IsIntegral.trans RingHom.isIntegral_quotient/tower_bot/top_of_isIntegralRingHom.IsIntegral.quotient/tower_bot/top isIntegral_of_mem_closure'IsIntegral.of_mem_closure' (and the '' version) isIntegral_of_surjectiveAlgebra.isIntegral_of_surjective

The next changed file is RingTheory/Algebraic:

  • Rename: of_larger_basetower_top (for consistency with IsIntegral) Algebra.isAlgebraic_of_finiteAlgebra.IsAlgebraic.of_finite Algebra.isAlgebraic_transAlgebra.IsAlgebraic.trans

  • Add new lemmasAlgebra.IsIntegral.isAlgebraic, isAlgebraic_algHom_iff, and Algebra.IsAlgebraic.of_injective to streamline some proofs.

The generalization from CommRing to Ring requires an additional lemma scaleRoots_eval₂_mul_of_commute in Polynomial/ScaleRoots.

A lemma Algebra.lmul_injective is added to Algebra/Bilinear (in order to golf the proof of IsIntegral.of_mem_of_fg).

In all other files, I merely fix the changed names, or use newly available dot notations.

Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>

Diff
@@ -66,78 +66,26 @@ variable (A)
 
 /-- An algebra is integral if every element of the extension is integral over the base ring -/
 protected def Algebra.IsIntegral : Prop :=
-  (algebraMap R A).IsIntegral
+  ∀ x : A, IsIntegral R x
 #align algebra.is_integral Algebra.IsIntegral
 
 variable {R A}
 
-theorem RingHom.is_integral_map {x : R} : f.IsIntegralElem (f x) :=
+theorem RingHom.isIntegralElem_map {x : R} : f.IsIntegralElem (f x) :=
   ⟨X - C x, monic_X_sub_C _, by simp⟩
-#align ring_hom.is_integral_map RingHom.is_integral_map
+#align ring_hom.is_integral_map RingHom.isIntegralElem_map
 
 theorem isIntegral_algebraMap {x : R} : IsIntegral R (algebraMap R A x) :=
-  (algebraMap R A).is_integral_map
+  (algebraMap R A).isIntegralElem_map
 #align is_integral_algebra_map isIntegral_algebraMap
 
-theorem isIntegral_of_noetherian (H : IsNoetherian R A) (x : A) : IsIntegral R x := by
-  let leval : R[X] →ₗ[R] A := (aeval x).toLinearMap
-  let D : ℕ → Submodule R A := fun n => (degreeLE R n).map leval
-  let M := WellFounded.min (isNoetherian_iff_wellFounded.1 H) (Set.range D) ⟨_, ⟨0, rfl⟩⟩
-  have HM : M ∈ Set.range D := WellFounded.min_mem _ _ _
-  cases' HM with N HN
-  have HM : ¬M < D (N + 1) :=
-    WellFounded.not_lt_min (isNoetherian_iff_wellFounded.1 H) (Set.range D) _ ⟨N + 1, rfl⟩
-  rw [← HN] at HM
-  have HN2 : D (N + 1) ≤ D N :=
-    _root_.by_contradiction fun H =>
-      HM (lt_of_le_not_le (map_mono (degreeLE_mono (WithBot.coe_le_coe.2 (Nat.le_succ N)))) H)
-  have HN3 : leval (X ^ (N + 1)) ∈ D N := HN2 (mem_map_of_mem (mem_degreeLE.2 (degree_X_pow_le _)))
-  rcases HN3 with ⟨p, hdp, hpe⟩
-  refine' ⟨X ^ (N + 1) - p, monic_X_pow_sub (mem_degreeLE.1 hdp), _⟩
-  show leval (X ^ (N + 1) - p) = 0
-  rw [LinearMap.map_sub, hpe, sub_self]
-#align is_integral_of_noetherian isIntegral_of_noetherian
-
-theorem isIntegral_of_submodule_noetherian (S : Subalgebra R A)
-    (H : IsNoetherian R (Subalgebra.toSubmodule S)) (x : A) (hx : x ∈ S) : IsIntegral R x := by
-  suffices IsIntegral R (show S from ⟨x, hx⟩) by
-    rcases this with ⟨p, hpm, hpx⟩
-    replace hpx := congr_arg S.val hpx
-    refine' ⟨p, hpm, Eq.trans _ hpx⟩
-    simp only [aeval_def, eval₂, sum_def]
-    rw [S.val.map_sum]
-    refine' Finset.sum_congr rfl fun n _hn => _
-    rw [S.val.map_mul, S.val.map_pow, S.val.commutes, S.val_apply, Subtype.coe_mk]
-  refine' isIntegral_of_noetherian H ⟨x, hx⟩
-#align is_integral_of_submodule_noetherian isIntegral_of_submodule_noetherian
-
 end Ring
 
 section
 
-variable {K A : Type*}
-
-variable [Field K] [Ring A] [Algebra K A] [FiniteDimensional K A]
-
-variable (K)
-
-theorem IsIntegral.of_finite (e : A) : IsIntegral K e :=
-  isIntegral_of_noetherian (IsNoetherian.iff_fg.2 inferInstance) _
-
-variable (A)
-
-/-- A field extension is integral if it is finite. -/
-theorem Algebra.isIntegral_of_finite : Algebra.IsIntegral K A := fun x =>
-  isIntegral_of_submodule_noetherian ⊤ (IsNoetherian.iff_fg.2 inferInstance) x Algebra.mem_top
-#align algebra.is_integral_of_finite Algebra.isIntegral_of_finite
-
-end
-
-section
-
 variable {R A B S : Type*}
 
-variable [CommRing R] [CommRing A] [CommRing B] [CommRing S]
+variable [CommRing R] [CommRing A] [Ring B] [CommRing S]
 
 variable [Algebra R A] [Algebra R B] (f : R →+* S)
 
@@ -146,54 +94,61 @@ theorem IsIntegral.map {B C F : Type*} [Ring B] [Ring C] [Algebra R B] [Algebra
     (hb : IsIntegral R b) : IsIntegral R (f b) := by
   obtain ⟨P, hP⟩ := hb
   refine' ⟨P, hP.1, _⟩
-  rw [← aeval_def, show (aeval (f b)) P = (aeval (f b)) (P.map (algebraMap R A)) by simp,
+  rw [← aeval_def, ← aeval_map_algebraMap A,
     aeval_algHom_apply, aeval_map_algebraMap, aeval_def, hP.2, _root_.map_zero]
 #align map_is_integral IsIntegral.map
 
-theorem IsIntegral.map_of_comp_eq {R S T U : Type*} [CommRing R] [CommRing S]
-    [CommRing T] [CommRing U] [Algebra R S] [Algebra T U] (φ : R →+* T) (ψ : S →+* U)
+theorem IsIntegral.map_of_comp_eq {R S T U : Type*} [CommRing R] [Ring S]
+    [CommRing T] [Ring U] [Algebra R S] [Algebra T U] (φ : R →+* T) (ψ : S →+* U)
     (h : (algebraMap T U).comp φ = ψ.comp (algebraMap R S)) {a : S} (ha : IsIntegral R a) :
-    IsIntegral T (ψ a) := by
-  rw [IsIntegral, RingHom.IsIntegralElem] at ha ⊢
-  obtain ⟨p, hp⟩ := ha
-  refine' ⟨p.map φ, hp.left.map _, _⟩
-  rw [← eval_map, map_map, h, ← map_map, eval_map, eval₂_at_apply, eval_map, hp.right,
-    RingHom.map_zero]
+    IsIntegral T (ψ a) :=
+  let ⟨p, hp⟩ := ha
+  ⟨p.map φ, hp.1.map _, by
+    rw [← eval_map, map_map, h, ← map_map, eval_map, eval₂_at_apply, eval_map, hp.2, ψ.map_zero]⟩
 #align is_integral_map_of_comp_eq_of_is_integral IsIntegral.map_of_comp_eq
 
-theorem isIntegral_algHom_iff {A B : Type*} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
-    (f : A →ₐ[R] B) (hf : Function.Injective f) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x := by
-  refine' ⟨_, IsIntegral.map f⟩
-  rintro ⟨p, hp, hx⟩
-  use p, hp
-  rwa [← f.comp_algebraMap, ← AlgHom.coe_toRingHom, ← Polynomial.hom_eval₂, AlgHom.coe_toRingHom,
+section
+
+variable {A B : Type*} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
+variable (f : A →ₐ[R] B) (hf : Function.Injective f)
+
+theorem isIntegral_algHom_iff {x : A} : IsIntegral R (f x) ↔ IsIntegral R x := by
+  refine ⟨fun ⟨p, hp, hx⟩ ↦ ⟨p, hp, ?_⟩, IsIntegral.map f⟩
+  rwa [← f.comp_algebraMap, ← AlgHom.coe_toRingHom, ← hom_eval₂, AlgHom.coe_toRingHom,
     map_eq_zero_iff f hf] at hx
 #align is_integral_alg_hom_iff isIntegral_algHom_iff
 
+theorem Algebra.IsIntegral.of_injective (h : Algebra.IsIntegral R B) : Algebra.IsIntegral R A :=
+  fun _ ↦ (isIntegral_algHom_iff f hf).mp (h _)
+
+end
+
 @[simp]
 theorem isIntegral_algEquiv {A B : Type*} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
     (f : A ≃ₐ[R] B) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x :=
-  ⟨fun h => by simpa using IsIntegral.map f.symm.toAlgHom h, IsIntegral.map f.toAlgHom⟩
+  ⟨fun h ↦ by simpa using h.map f.symm, IsIntegral.map f⟩
 #align is_integral_alg_equiv isIntegral_algEquiv
 
-theorem isIntegral_of_isScalarTower [Algebra A B] [IsScalarTower R A B] {x : B}
+/-- If `R → A → B` is an algebra tower,
+then if the entire tower is an integral extension so is `A → B`. -/
+theorem IsIntegral.tower_top [Algebra A B] [IsScalarTower R A B] {x : B}
     (hx : IsIntegral R x) : IsIntegral A x :=
   let ⟨p, hp, hpx⟩ := hx
   ⟨p.map <| algebraMap R A, hp.map _, by rw [← aeval_def, aeval_map_algebraMap, aeval_def, hpx]⟩
-#align is_integral_of_is_scalar_tower isIntegral_of_isScalarTower
+#align is_integral_of_is_scalar_tower IsIntegral.tower_top
+#align is_integral_tower_top_of_is_integral IsIntegral.tower_top
 
 theorem map_isIntegral_int {B C F : Type*} [Ring B] [Ring C] {b : B} [RingHomClass F B C] (f : F)
     (hb : IsIntegral ℤ b) : IsIntegral ℤ (f b) :=
-  IsIntegral.map (f : B →+* C).toIntAlgHom hb
+  hb.map (f : B →+* C).toIntAlgHom
 #align map_is_integral_int map_isIntegral_int
 
-theorem IsIntegral.of_subring {x : A} (T : Subring R) (hx : IsIntegral T x) : IsIntegral R x :=
-  isIntegral_of_isScalarTower hx
+theorem IsIntegral.of_subring {x : B} (T : Subring R) (hx : IsIntegral T x) : IsIntegral R x :=
+  hx.tower_top
 #align is_integral_of_subring IsIntegral.of_subring
 
 protected theorem IsIntegral.algebraMap [Algebra A B] [IsScalarTower R A B] {x : A}
-    (h : IsIntegral R x) :
-    IsIntegral R (algebraMap A B x) := by
+    (h : IsIntegral R x) : IsIntegral R (algebraMap A B x) := by
   rcases h with ⟨f, hf, hx⟩
   use f, hf
   rw [IsScalarTower.algebraMap_eq R A B, ← hom_eval₂, hx, RingHom.map_zero]
@@ -205,44 +160,31 @@ theorem isIntegral_algebraMap_iff [Algebra A B] [IsScalarTower R A B] {x : A}
   isIntegral_algHom_iff (IsScalarTower.toAlgHom R A B) hAB
 #align is_integral_algebra_map_iff isIntegral_algebraMap_iff
 
-theorem isIntegral_iff_isIntegral_closure_finite {r : A} :
+theorem isIntegral_iff_isIntegral_closure_finite {r : B} :
     IsIntegral R r ↔ ∃ s : Set R, s.Finite ∧ IsIntegral (Subring.closure s) r := by
   constructor <;> intro hr
   · rcases hr with ⟨p, hmp, hpr⟩
     refine' ⟨_, Finset.finite_toSet _, p.restriction, monic_restriction.2 hmp, _⟩
     rw [← aeval_def, ← aeval_map_algebraMap R r p.restriction, map_restriction, aeval_def, hpr]
   rcases hr with ⟨s, _, hsr⟩
-  exact IsIntegral.of_subring _ hsr
+  exact hsr.of_subring _
 #align is_integral_iff_is_integral_closure_finite isIntegral_iff_isIntegral_closure_finite
 
-theorem IsIntegral.fg_adjoin_singleton (x : A) (hx : IsIntegral R x) :
-    (Algebra.adjoin R ({x} : Set A)).toSubmodule.FG := by
+theorem IsIntegral.fg_adjoin_singleton {x : B} (hx : IsIntegral R x) :
+    (Algebra.adjoin R {x}).toSubmodule.FG := by
   rcases hx with ⟨f, hfm, hfx⟩
-  exists Finset.image ((· ^ ·) x) (Finset.range (natDegree f + 1))
-  apply le_antisymm
-  · rw [span_le]
-    intro s hs
-    rw [Finset.mem_coe] at hs
-    rcases Finset.mem_image.1 hs with ⟨k, hk, rfl⟩
-    clear hk
-    exact (Algebra.adjoin R {x}).pow_mem (Algebra.subset_adjoin (Set.mem_singleton _)) k
-  intro r hr; change r ∈ Algebra.adjoin R ({x} : Set A) at hr
-  rw [Algebra.adjoin_singleton_eq_range_aeval] at hr
+  use (Finset.range <| f.natDegree + 1).image (x ^ ·)
+  refine (span_le.mpr fun s hs ↦ ?_).antisymm fun r hr ↦ ?_
+  · rcases Finset.mem_image.1 hs with ⟨k, -, rfl⟩
+    exact (Algebra.adjoin R {x}).pow_mem (Algebra.subset_adjoin rfl) k
+  rw [Subalgebra.mem_toSubmodule, Algebra.adjoin_singleton_eq_range_aeval] at hr
   rcases (aeval x).mem_range.mp hr with ⟨p, rfl⟩
-  rw [← modByMonic_add_div p hfm]
-  rw [← aeval_def] at hfx
-  rw [AlgHom.map_add, AlgHom.map_mul, hfx, zero_mul, add_zero]
-  have : degree (p %ₘ f) ≤ degree f := degree_modByMonic_le p hfm
-  generalize p %ₘ f = q at this ⊢
-  rw [← sum_C_mul_X_pow_eq q, aeval_def, eval₂_sum, sum_def]
-  refine' sum_mem fun k hkq => _
-  rw [eval₂_mul, eval₂_C, eval₂_pow, eval₂_X, ← Algebra.smul_def]
-  refine' smul_mem _ _ (subset_span _)
-  rw [Finset.mem_coe]; refine' Finset.mem_image.2 ⟨_, _, rfl⟩
-  rw [Finset.mem_range, Nat.lt_succ_iff]; refine' le_of_not_lt fun hk => _
-  rw [degree_le_iff_coeff_zero] at this
-  rw [mem_support_iff] at hkq; apply hkq; apply this
-  exact lt_of_le_of_lt degree_le_natDegree (WithBot.coe_lt_coe.2 hk)
+  rw [← modByMonic_add_div p hfm, map_add, map_mul, aeval_def x f, hfx,
+      zero_mul, add_zero, ← sum_C_mul_X_pow_eq (p %ₘ f), aeval_def, eval₂_sum, sum_def]
+  refine sum_mem fun k hkq ↦ ?_
+  rw [C_mul_X_pow_eq_monomial, eval₂_monomial, ← Algebra.smul_def]
+  exact smul_mem _ _ (subset_span <| Finset.mem_image_of_mem _ <| Finset.mem_range_succ_iff.mpr <|
+    (le_natDegree_of_mem_supp _ hkq).trans <| natDegree_modByMonic_le p hfm)
 #align fg_adjoin_singleton_of_integral IsIntegral.fg_adjoin_singleton
 
 theorem fg_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsIntegral R x) :
@@ -256,123 +198,48 @@ theorem fg_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsI
       rw [← Set.union_singleton, Algebra.adjoin_union_coe_submodule]
       exact
         FG.mul (ih fun i hi => his i <| Set.mem_insert_of_mem a hi)
-          (IsIntegral.fg_adjoin_singleton _ <| his a <| Set.mem_insert a s))
+          (his a <| Set.mem_insert a s).fg_adjoin_singleton)
     his
 #align fg_adjoin_of_finite fg_adjoin_of_finite
 
 theorem isNoetherian_adjoin_finset [IsNoetherianRing R] (s : Finset A)
-    (hs : ∀ x ∈ s, IsIntegral R x) : IsNoetherian R (Algebra.adjoin R (↑s : Set A)) :=
+    (hs : ∀ x ∈ s, IsIntegral R x) : IsNoetherian R (Algebra.adjoin R (s : Set A)) :=
   isNoetherian_of_fg_of_noetherian _ (fg_adjoin_of_finite s.finite_toSet hs)
 #align is_noetherian_adjoin_finset isNoetherian_adjoin_finset
 
-/-- If `S` is a sub-`R`-algebra of `A` and `S` is finitely-generated as an `R`-module,
-  then all elements of `S` are integral over `R`. -/
-theorem IsIntegral.of_mem_of_fg (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x : A) (hx : x ∈ S) :
-    IsIntegral R x := by
-  -- say `x ∈ S`. We want to prove that `x` is integral over `R`.
-  -- Say `S` is generated as an `R`-module by the set `y`.
-  cases' HS with y hy
-  -- We can write `x` as `∑ rᵢ yᵢ` for `yᵢ ∈ Y`.
-  obtain ⟨lx, hlx1, hlx2⟩ :
-    ∃ (l : A →₀ R), l ∈ Finsupp.supported R R ↑y ∧ (Finsupp.total A A R id) l = x := by
-    rwa [← @Finsupp.mem_span_image_iff_total A A R _ _ _ id (↑y) x, Set.image_id (y : Set A), hy]
-  -- Note that `y ⊆ S`.
-  have hyS : ∀ {p}, p ∈ y → p ∈ S := fun {p} hp =>
-    show p ∈ Subalgebra.toSubmodule S by
-      rw [← hy]
-      exact subset_span hp
-  -- Now `S` is a subalgebra so the product of two elements of `y` is also in `S`.
-  have : ∀ jk : (y ×ˢ y : Finset (A × A)),
-      jk.1.1 * jk.1.2 ∈ (Subalgebra.toSubmodule S) := fun jk =>
-    S.mul_mem (hyS (Finset.mem_product.1 jk.2).1) (hyS (Finset.mem_product.1 jk.2).2)
-  rw [← hy, ← Set.image_id (y : Set A)] at this
-  simp only [Finsupp.mem_span_image_iff_total] at this
-  -- Say `yᵢyⱼ = ∑rᵢⱼₖ yₖ`
-  choose ly hly1 hly2 using this
-  -- Now let `S₀` be the subring of `R` generated by the `rᵢ` and the `rᵢⱼₖ`.
-  let S₀ : Subring R :=
-    Subring.closure ↑(lx.frange ∪ Finset.biUnion Finset.univ (Finsupp.frange ∘ ly))
-  -- It suffices to prove that `x` is integral over `S₀`.
-  refine' IsIntegral.of_subring S₀ _
-  letI : CommRing S₀ := SubringClass.toCommRing S₀
-  letI : Algebra S₀ A := Algebra.ofSubring S₀
-  -- Claim: the `S₀`-module span (in `A`) of the set `y ∪ {1}` is closed under
-  -- multiplication (indeed, this is the motivation for the definition of `S₀`).
-  have :
-    span S₀ (insert 1 ↑y : Set A) * span S₀ (insert 1 ↑y : Set A) ≤
-      span S₀ (insert 1 ↑y : Set A) := by
-    rw [span_mul_span]
-    refine' span_le.2 fun z hz => _
-    rcases Set.mem_mul.1 hz with ⟨p, q, rfl | hp, hq, rfl⟩
-    · rw [one_mul]
-      exact subset_span hq
-    rcases hq with (rfl | hq)
-    · rw [mul_one]
-      exact subset_span (Or.inr hp)
-    erw [← hly2 ⟨(p, q), Finset.mem_product.2 ⟨hp, hq⟩⟩]
-    rw [Finsupp.total_apply, Finsupp.sum]
-    refine' (span S₀ (insert 1 ↑y : Set A)).sum_mem fun t ht => _
-    have : ly ⟨(p, q), Finset.mem_product.2 ⟨hp, hq⟩⟩ t ∈ S₀ :=
-      Subring.subset_closure
-        (Finset.mem_union_right _ <|
-          Finset.mem_biUnion.2
-            ⟨⟨(p, q), Finset.mem_product.2 ⟨hp, hq⟩⟩, Finset.mem_univ _,
-              Finsupp.mem_frange.2 ⟨Finsupp.mem_support_iff.1 ht, _, rfl⟩⟩)
-    change (⟨_, this⟩ : S₀) • t ∈ _
-    exact smul_mem _ _ (subset_span <| Or.inr <| hly1 _ ht)
-  -- Hence this span is a subring. Call this subring `S₁`.
-  let S₁ : Subring A :=
-    { carrier := span S₀ (insert 1 ↑y : Set A)
-      one_mem' := subset_span <| Or.inl rfl
-      mul_mem' := fun {p q} hp hq => this <| mul_mem_mul hp hq
-      zero_mem' := (span S₀ (insert 1 ↑y : Set A)).zero_mem
-      add_mem' := fun {_ _} => (span S₀ (insert 1 ↑y : Set A)).add_mem
-      neg_mem' := fun {_} => (span S₀ (insert 1 ↑y : Set A)).neg_mem }
-  have : S₁ = Subalgebra.toSubring (Algebra.adjoin S₀ (↑y : Set A)) := by
-    ext z
-    suffices
-      z ∈ span (↥S₀) (insert 1 ↑y : Set A) ↔
-        z ∈ Subalgebra.toSubmodule (Algebra.adjoin (↥S₀) (y : Set A)) by
-      simpa
-    constructor <;> intro hz
-    · exact
-        (span_le.2
-          (Set.insert_subset_iff.2
-            ⟨(Algebra.adjoin S₀ (y : Set A)).one_mem, Algebra.subset_adjoin⟩)) hz
-    · rw [Subalgebra.mem_toSubmodule, Algebra.mem_adjoin_iff] at hz
-      suffices Subring.closure (Set.range (algebraMap (↥S₀) A) ∪ ↑y) ≤ S₁ by exact this hz
-      refine' Subring.closure_le.2 (Set.union_subset _ fun t ht => subset_span <| Or.inr ht)
-      rw [Set.range_subset_iff]
-      intro y'
-      rw [Algebra.algebraMap_eq_smul_one]
-      exact smul_mem (span S₀ (insert (1 : A) (y : Set A))) y' (subset_span (Or.inl rfl))
-  have foo : ∀ z, z ∈ S₁ ↔ z ∈ Algebra.adjoin (↥S₀) (y : Set A)
-  simp only [this, Finset.univ_eq_attach, Subalgebra.mem_toSubring, forall_const]
-  haveI : IsNoetherianRing S₀ := is_noetherian_subring_closure _ (Finset.finite_toSet _)
-  refine'
-    isIntegral_of_submodule_noetherian (Algebra.adjoin S₀ ↑y)
-      (isNoetherian_of_fg_of_noetherian _
-        ⟨insert 1 y, by
-          rw [Finset.coe_insert]
-          ext z
-          simp only [Finset.coe_sort_coe, Finset.univ_eq_attach, Finset.mem_coe,
-            Subalgebra.mem_toSubmodule]
-          convert foo z⟩)
-      _ _
-  rw [← hlx2, Finsupp.total_apply, Finsupp.sum]
-  refine' Subalgebra.sum_mem _ fun r hr => _
-  have : lx r ∈ S₀ :=
-    Subring.subset_closure (Finset.mem_union_left _ (Finset.mem_image_of_mem _ hr))
-  change (⟨_, this⟩ : S₀) • r ∈ _
-  rw [Finsupp.mem_supported] at hlx1
-  exact Subalgebra.smul_mem _ (Algebra.subset_adjoin <| hlx1 hr) _
-#align is_integral_of_mem_of_fg IsIntegral.of_mem_of_fg
-
 theorem Module.End.isIntegral {M : Type*} [AddCommGroup M] [Module R M] [Module.Finite R M] :
     Algebra.IsIntegral R (Module.End R M) :=
   LinearMap.exists_monic_and_aeval_eq_zero R
 #align module.End.is_integral Module.End.isIntegral
 
+variable (R)
+theorem IsIntegral.of_finite [Module.Finite R B] (x : B) : IsIntegral R x :=
+  (isIntegral_algHom_iff (Algebra.lmul R B) Algebra.lmul_injective).mp (Module.End.isIntegral _)
+
+variable (B)
+theorem Algebra.IsIntegral.of_finite [Module.Finite R B] : Algebra.IsIntegral R B :=
+  .of_finite R
+#align algebra.is_integral.of_finite Algebra.IsIntegral.of_finite
+
+variable {R B}
+
+/-- If `S` is a sub-`R`-algebra of `A` and `S` is finitely-generated as an `R`-module,
+  then all elements of `S` are integral over `R`. -/
+theorem IsIntegral.of_mem_of_fg {A} [Ring A] [Algebra R A] (S : Subalgebra R A)
+    (HS : S.toSubmodule.FG) (x : A) (hx : x ∈ S) : IsIntegral R x :=
+  have : Module.Finite R S := ⟨(fg_top _).mpr HS⟩
+  (isIntegral_algHom_iff S.val Subtype.val_injective).mpr (.of_finite R (⟨x, hx⟩ : S))
+#align is_integral_of_mem_of_fg IsIntegral.of_mem_of_fg
+
+theorem isIntegral_of_noetherian (_ : IsNoetherian R B) (x : B) : IsIntegral R x :=
+  .of_finite R x
+#align is_integral_of_noetherian isIntegral_of_noetherian
+
+theorem isIntegral_of_submodule_noetherian (S : Subalgebra R B)
+    (H : IsNoetherian R (Subalgebra.toSubmodule S)) (x : B) (hx : x ∈ S) : IsIntegral R x :=
+  .of_mem_of_fg _ ((fg_top _).mp <| H.noetherian _) _ hx
+#align is_integral_of_submodule_noetherian isIntegral_of_submodule_noetherian
+
 /-- Suppose `A` is an `R`-algebra, `M` is an `A`-module such that `a • m ≠ 0` for all non-zero `a`
 and `m`. If `x : A` fixes a nontrivial f.g. `R`-submodule `N` of `M`, then `x` is `R`-integral. -/
 theorem isIntegral_of_smul_mem_submodule {M : Type*} [AddCommGroup M] [Module R M] [Module A M]
@@ -420,19 +287,31 @@ variable {f}
 
 theorem RingHom.Finite.to_isIntegral (h : f.Finite) : f.IsIntegral :=
   letI := f.toAlgebra
-  fun _ => IsIntegral.of_mem_of_fg ⊤ h.1 _ trivial
+  fun _ ↦ IsIntegral.of_mem_of_fg ⊤ h.1 _ trivial
 #align ring_hom.finite.to_is_integral RingHom.Finite.to_isIntegral
 
 alias RingHom.IsIntegral.of_finite := RingHom.Finite.to_isIntegral
 #align ring_hom.is_integral.of_finite RingHom.IsIntegral.of_finite
 
-theorem RingHom.IsIntegral.to_finite (h : f.IsIntegral) (h' : f.FiniteType) : f.Finite := by
+/-- The [Kurosh problem](https://en.wikipedia.org/wiki/Kurosh_problem) asks to show that
+  this is still true when `A` is not necessarily commutative and `R` is a field, but it has
+  been solved in the negative. See https://arxiv.org/pdf/1706.02383.pdf for criteria for a
+  finitely generated algebraic (= integral) algebra over a field to be finite dimensional. -/
+theorem Algebra.IsIntegral.finite (h : Algebra.IsIntegral R A) [h' : Algebra.FiniteType R A] :
+    Module.Finite R A :=
+  have ⟨s, hs⟩ := h'
+  ⟨by apply hs ▸ fg_adjoin_of_finite s.finite_toSet fun x _ ↦ h x⟩
+#align algebra.is_integral.finite Algebra.IsIntegral.finite
+
+/-- finite = integral + finite type -/
+theorem Algebra.finite_iff_isIntegral_and_finiteType :
+    Module.Finite R A ↔ Algebra.IsIntegral R A ∧ Algebra.FiniteType R A :=
+  ⟨fun _ ↦ ⟨.of_finite R, inferInstance⟩, fun ⟨h, _⟩ ↦ h.finite⟩
+#align algebra.finite_iff_is_integral_and_finite_type Algebra.finite_iff_isIntegral_and_finiteType
+
+theorem RingHom.IsIntegral.to_finite (h : f.IsIntegral) (h' : f.FiniteType) : f.Finite :=
   letI := f.toAlgebra
-  obtain ⟨s, hs⟩ := h'
-  constructor
-  change (⊤ : Subalgebra R S).toSubmodule.FG
-  rw [← hs]
-  exact fg_adjoin_of_finite (Set.toFinite _) fun x _ => h x
+  Algebra.IsIntegral.finite h (h' := h')
 #align ring_hom.is_integral.to_finite RingHom.IsIntegral.to_finite
 
 alias RingHom.Finite.of_isIntegral_of_finiteType := RingHom.IsIntegral.to_finite
@@ -440,120 +319,98 @@ alias RingHom.Finite.of_isIntegral_of_finiteType := RingHom.IsIntegral.to_finite
 
 /-- finite = integral + finite type -/
 theorem RingHom.finite_iff_isIntegral_and_finiteType : f.Finite ↔ f.IsIntegral ∧ f.FiniteType :=
-  ⟨fun h => ⟨h.to_isIntegral, h.to_finiteType⟩, fun ⟨h, h'⟩ => h.to_finite h'⟩
+  ⟨fun h ↦ ⟨h.to_isIntegral, h.to_finiteType⟩, fun ⟨h, h'⟩ ↦ h.to_finite h'⟩
 #align ring_hom.finite_iff_is_integral_and_finite_type RingHom.finite_iff_isIntegral_and_finiteType
 
-theorem Algebra.IsIntegral.finite (h : Algebra.IsIntegral R A) [h' : Algebra.FiniteType R A] :
-    Module.Finite R A := by
-  have :=
-    h.to_finite
-      (by
-        rw [RingHom.FiniteType]
-        convert h'
-        -- Porting note: was `ext`
-        refine IsScalarTower.Algebra.ext (algebraMap R A).toAlgebra _ fun r x => ?_
-        exact (Algebra.smul_def _ _).symm)
-  rw [RingHom.Finite] at this
-  convert this
-  ext
-  exact Algebra.smul_def _ _
-#align algebra.is_integral.finite Algebra.IsIntegral.finite
-
-theorem Algebra.IsIntegral.of_finite [h : Module.Finite R A] : Algebra.IsIntegral R A :=
-  fun _ ↦ IsIntegral.of_mem_of_fg ⊤ h.1 _ trivial
-#align algebra.is_integral.of_finite Algebra.IsIntegral.of_finite
-
-/-- finite = integral + finite type -/
-theorem Algebra.finite_iff_isIntegral_and_finiteType :
-    Module.Finite R A ↔ Algebra.IsIntegral R A ∧ Algebra.FiniteType R A :=
-  ⟨fun _ => ⟨Algebra.IsIntegral.of_finite, inferInstance⟩, fun ⟨h, _⟩ => h.finite⟩
-#align algebra.finite_iff_is_integral_and_finite_type Algebra.finite_iff_isIntegral_and_finiteType
-
 variable (f)
 
-theorem RingHom.is_integral_of_mem_closure {x y z : S} (hx : f.IsIntegralElem x)
+theorem RingHom.IsIntegralElem.of_mem_closure {x y z : S} (hx : f.IsIntegralElem x)
     (hy : f.IsIntegralElem y) (hz : z ∈ Subring.closure ({x, y} : Set S)) : f.IsIntegralElem z := by
   letI : Algebra R S := f.toAlgebra
-  have := (IsIntegral.fg_adjoin_singleton x hx).mul (IsIntegral.fg_adjoin_singleton y hy)
+  have := (IsIntegral.fg_adjoin_singleton hx).mul (IsIntegral.fg_adjoin_singleton hy)
   rw [← Algebra.adjoin_union_coe_submodule, Set.singleton_union] at this
   exact
     IsIntegral.of_mem_of_fg (Algebra.adjoin R {x, y}) this z
       (Algebra.mem_adjoin_iff.2 <| Subring.closure_mono (Set.subset_union_right _ _) hz)
-#align ring_hom.is_integral_of_mem_closure RingHom.is_integral_of_mem_closure
+#align ring_hom.is_integral_of_mem_closure RingHom.IsIntegralElem.of_mem_closure
 
-theorem IsIntegral.of_mem_closure {x y z : A} (hx : IsIntegral R x) (hy : IsIntegral R y)
+nonrec theorem IsIntegral.of_mem_closure {x y z : A} (hx : IsIntegral R x) (hy : IsIntegral R y)
     (hz : z ∈ Subring.closure ({x, y} : Set A)) : IsIntegral R z :=
-  (algebraMap R A).is_integral_of_mem_closure hx hy hz
+  hx.of_mem_closure (algebraMap R A) hy hz
 #align is_integral_of_mem_closure IsIntegral.of_mem_closure
 
-theorem RingHom.is_integral_zero : f.IsIntegralElem 0 :=
-  f.map_zero ▸ f.is_integral_map
-#align ring_hom.is_integral_zero RingHom.is_integral_zero
+variable (f : R →+* B)
+
+theorem RingHom.isIntegralElem_zero : f.IsIntegralElem 0 :=
+  f.map_zero ▸ f.isIntegralElem_map
+#align ring_hom.is_integral_zero RingHom.isIntegralElem_zero
 
-theorem isIntegral_zero : IsIntegral R (0 : A) :=
-  (algebraMap R A).is_integral_zero
+theorem isIntegral_zero : IsIntegral R (0 : B) :=
+  (algebraMap R B).isIntegralElem_zero
 #align is_integral_zero isIntegral_zero
 
-theorem RingHom.is_integral_one : f.IsIntegralElem 1 :=
-  f.map_one ▸ f.is_integral_map
-#align ring_hom.is_integral_one RingHom.is_integral_one
+theorem RingHom.isIntegralElem_one : f.IsIntegralElem 1 :=
+  f.map_one ▸ f.isIntegralElem_map
+#align ring_hom.is_integral_one RingHom.isIntegralElem_one
 
-theorem isIntegral_one : IsIntegral R (1 : A) :=
-  (algebraMap R A).is_integral_one
+theorem isIntegral_one : IsIntegral R (1 : B) :=
+  (algebraMap R B).isIntegralElem_one
 #align is_integral_one isIntegral_one
 
-theorem RingHom.is_integral_add {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
+theorem RingHom.IsIntegralElem.add (f : R →+* S) {x y : S}
+    (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x + y) :=
-  f.is_integral_of_mem_closure hx hy <|
+  hx.of_mem_closure f hy <|
     Subring.add_mem _ (Subring.subset_closure (Or.inl rfl)) (Subring.subset_closure (Or.inr rfl))
-#align ring_hom.is_integral_add RingHom.is_integral_add
+#align ring_hom.is_integral_add RingHom.IsIntegralElem.add
 
-theorem IsIntegral.add {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
+nonrec theorem IsIntegral.add {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x + y) :=
-  (algebraMap R A).is_integral_add hx hy
+  hx.add (algebraMap R A) hy
 #align is_integral_add IsIntegral.add
 
-theorem RingHom.is_integral_neg {x : S} (hx : f.IsIntegralElem x) : f.IsIntegralElem (-x) :=
-  f.is_integral_of_mem_closure hx hx (Subring.neg_mem _ (Subring.subset_closure (Or.inl rfl)))
-#align ring_hom.is_integral_neg RingHom.is_integral_neg
+variable (f : R →+* S)
 
-theorem IsIntegral.neg {x : A} (hx : IsIntegral R x) : IsIntegral R (-x) :=
-  (algebraMap R A).is_integral_neg hx
+-- can be generalized to noncommutative S.
+theorem RingHom.IsIntegralElem.neg {x : S} (hx : f.IsIntegralElem x) : f.IsIntegralElem (-x) :=
+  hx.of_mem_closure f hx (Subring.neg_mem _ (Subring.subset_closure (Or.inl rfl)))
+#align ring_hom.is_integral_neg RingHom.IsIntegralElem.neg
+
+theorem IsIntegral.neg {x : B} (hx : IsIntegral R x) : IsIntegral R (-x) :=
+  .of_mem_of_fg _ hx.fg_adjoin_singleton _ (Subalgebra.neg_mem _ <| Algebra.subset_adjoin rfl)
 #align is_integral_neg IsIntegral.neg
 
-theorem RingHom.is_integral_sub {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
+theorem RingHom.IsIntegralElem.sub {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x - y) := by
-  simpa only [sub_eq_add_neg] using f.is_integral_add hx (f.is_integral_neg hy)
-#align ring_hom.is_integral_sub RingHom.is_integral_sub
+  simpa only [sub_eq_add_neg] using hx.add f (hy.neg f)
+#align ring_hom.is_integral_sub RingHom.IsIntegralElem.sub
 
-theorem IsIntegral.sub {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
+nonrec theorem IsIntegral.sub {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x - y) :=
-  (algebraMap R A).is_integral_sub hx hy
+  hx.sub (algebraMap R A) hy
 #align is_integral_sub IsIntegral.sub
 
-theorem RingHom.is_integral_mul {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
+theorem RingHom.IsIntegralElem.mul {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x * y) :=
-  f.is_integral_of_mem_closure hx hy
+  hx.of_mem_closure f hy
     (Subring.mul_mem _ (Subring.subset_closure (Or.inl rfl)) (Subring.subset_closure (Or.inr rfl)))
-#align ring_hom.is_integral_mul RingHom.is_integral_mul
+#align ring_hom.is_integral_mul RingHom.IsIntegralElem.mul
 
-theorem IsIntegral.mul {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
+nonrec theorem IsIntegral.mul {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x * y) :=
-  (algebraMap R A).is_integral_mul hx hy
+  hx.mul (algebraMap R A) hy
 #align is_integral_mul IsIntegral.mul
 
-theorem IsIntegral.smul [Algebra S A] [Algebra R S] [IsScalarTower R S A] {x : A} (r : R)
-    (hx : IsIntegral S x) : IsIntegral S (r • x) := by
-  rw [Algebra.smul_def, IsScalarTower.algebraMap_apply R S A]
-  exact IsIntegral.mul isIntegral_algebraMap hx
+theorem IsIntegral.smul {R} [CommSemiring R] [CommRing S] [Algebra R B] [Algebra S B] [Algebra R S]
+    [IsScalarTower R S B] {x : B} (r : R)(hx : IsIntegral S x) : IsIntegral S (r • x) :=
+  .of_mem_of_fg _ hx.fg_adjoin_singleton _ <| by
+    rw [← algebraMap_smul S]; apply Subalgebra.smul_mem; exact Algebra.subset_adjoin rfl
 #align is_integral_smul IsIntegral.smul
 
-theorem IsIntegral.of_pow {x : A} {n : ℕ} (hn : 0 < n) (hx : IsIntegral R <| x ^ n) :
+theorem IsIntegral.of_pow {x : B} {n : ℕ} (hn : 0 < n) (hx : IsIntegral R <| x ^ n) :
     IsIntegral R x := by
-  rcases hx with ⟨p, ⟨hmonic, heval⟩⟩
-  exact
-    ⟨expand R n p, Monic.expand hn hmonic, by
-      rwa [eval₂_eq_eval_map, map_expand, expand_eval, ← eval₂_eq_eval_map]⟩
+  rcases hx with ⟨p, hmonic, heval⟩
+  exact ⟨expand R n p, hmonic.expand hn, by rwa [← aeval_def, expand_aeval]⟩
 #align is_integral_of_pow IsIntegral.of_pow
 
 variable (R A)
@@ -571,11 +428,11 @@ def integralClosure : Subalgebra R A where
 theorem mem_integralClosure_iff_mem_fg {r : A} :
     r ∈ integralClosure R A ↔ ∃ M : Subalgebra R A, M.toSubmodule.FG ∧ r ∈ M :=
   ⟨fun hr =>
-    ⟨Algebra.adjoin R {r}, IsIntegral.fg_adjoin_singleton _ hr, Algebra.subset_adjoin rfl⟩,
-    fun ⟨M, Hf, hrM⟩ => IsIntegral.of_mem_of_fg M Hf _ hrM⟩
+    ⟨Algebra.adjoin R {r}, hr.fg_adjoin_singleton, Algebra.subset_adjoin rfl⟩,
+    fun ⟨M, Hf, hrM⟩ => .of_mem_of_fg M Hf _ hrM⟩
 #align mem_integral_closure_iff_mem_fg mem_integralClosure_iff_mem_fg
 
-variable {R} {A}
+variable {R A}
 
 theorem adjoin_le_integralClosure {x : A} (hx : IsIntegral R x) :
     Algebra.adjoin R {x} ≤ integralClosure R A := by
@@ -592,22 +449,22 @@ theorem le_integralClosure_iff_isIntegral {S : Subalgebra R A} :
         isIntegral_algebraMap_iff Subtype.coe_injective)
 #align le_integral_closure_iff_is_integral le_integralClosure_iff_isIntegral
 
-theorem isIntegral_sup {S T : Subalgebra R A} :
+theorem Algebra.isIntegral_sup {S T : Subalgebra R A} :
     Algebra.IsIntegral R (S ⊔ T : Subalgebra R A) ↔
       Algebra.IsIntegral R S ∧ Algebra.IsIntegral R T := by
   simp only [← le_integralClosure_iff_isIntegral, sup_le_iff]
-#align is_integral_sup isIntegral_sup
+#align is_integral_sup Algebra.isIntegral_sup
 
 /-- Mapping an integral closure along an `AlgEquiv` gives the integral closure. -/
-theorem integralClosure_map_algEquiv (f : A ≃ₐ[R] B) :
-    (integralClosure R A).map (f : A →ₐ[R] B) = integralClosure R B := by
+theorem integralClosure_map_algEquiv [Algebra R S] (f : A ≃ₐ[R] S) :
+    (integralClosure R A).map (f : A →ₐ[R] S) = integralClosure R S := by
   ext y
   rw [Subalgebra.mem_map]
   constructor
   · rintro ⟨x, hx, rfl⟩
-    exact IsIntegral.map f hx
+    exact hx.map f
   · intro hy
-    use f.symm y, IsIntegral.map (f.symm : B →ₐ[R] A) hy
+    use f.symm y, hy.map (f.symm : S →ₐ[R] A)
     simp
 #align integral_closure_map_alg_equiv integralClosure_map_algEquiv
 
@@ -618,41 +475,44 @@ theorem integralClosure.isIntegral (x : integralClosure R A) : IsIntegral R x :=
       rwa [← aeval_def, ← Subalgebra.val_apply, aeval_algHom_apply] at hpx⟩
 #align integral_closure.is_integral integralClosure.isIntegral
 
-theorem RingHom.isIntegral_of_isIntegral_mul_unit (x y : S) (r : R) (hr : f r * y = 1)
-    (hx : f.IsIntegralElem (x * y)) : f.IsIntegralElem x := by
-  obtain ⟨p, ⟨p_monic, hp⟩⟩ := hx
-  refine' ⟨scaleRoots p r, ⟨(monic_scaleRoots_iff r).2 p_monic, _⟩⟩
-  convert scaleRoots_eval₂_eq_zero f hp
-  rw [mul_comm x y, ← mul_assoc, hr, one_mul]
-#align ring_hom.is_integral_of_is_integral_mul_unit RingHom.isIntegral_of_isIntegral_mul_unit
-
-theorem IsIntegral.of_mul_unit {x y : A} {r : R} (hr : algebraMap R A r * y = 1)
-    (hx : IsIntegral R (x * y)) : IsIntegral R x :=
-  (algebraMap R A).isIntegral_of_isIntegral_mul_unit x y r hr hx
+theorem IsIntegral.of_mul_unit {x y : B} {r : R} (hr : algebraMap R B r * y = 1)
+    (hx : IsIntegral R (x * y)) : IsIntegral R x := by
+  obtain ⟨p, p_monic, hp⟩ := hx
+  refine ⟨scaleRoots p r, (monic_scaleRoots_iff r).2 p_monic, ?_⟩
+  convert scaleRoots_aeval_eq_zero hp
+  rw [Algebra.commutes] at hr ⊢
+  rw [mul_assoc, hr, mul_one]; rfl
 #align is_integral_of_is_integral_mul_unit IsIntegral.of_mul_unit
 
-/-- Generalization of `isIntegral_of_mem_closure` bootstrapped up from that lemma -/
-theorem isIntegral_of_mem_closure' (G : Set A) (hG : ∀ x ∈ G, IsIntegral R x) :
-    ∀ x ∈ Subring.closure G, IsIntegral R x := fun _ hx =>
-  Subring.closure_induction hx hG isIntegral_zero isIntegral_one (fun _ _ => IsIntegral.add)
-    (fun _ => IsIntegral.neg) fun _ _ => IsIntegral.mul
-#align is_integral_of_mem_closure' isIntegral_of_mem_closure'
+theorem RingHom.IsIntegralElem.of_mul_unit (x y : S) (r : R) (hr : f r * y = 1)
+    (hx : f.IsIntegralElem (x * y)) : f.IsIntegralElem x :=
+  letI : Algebra R S := f.toAlgebra
+  IsIntegral.of_mul_unit hr hx
+#align ring_hom.is_integral_of_is_integral_mul_unit RingHom.IsIntegralElem.of_mul_unit
+
+/-- Generalization of `IsIntegral.of_mem_closure` bootstrapped up from that lemma -/
+theorem IsIntegral.of_mem_closure' (G : Set A) (hG : ∀ x ∈ G, IsIntegral R x) :
+    ∀ x ∈ Subring.closure G, IsIntegral R x := fun _ hx ↦
+  Subring.closure_induction hx hG isIntegral_zero isIntegral_one (fun _ _ ↦ IsIntegral.add)
+    (fun _ ↦ IsIntegral.neg) fun _ _ ↦ IsIntegral.mul
+#align is_integral_of_mem_closure' IsIntegral.of_mem_closure'
 
-theorem isIntegral_of_mem_closure'' {S : Type*} [CommRing S] {f : R →+* S} (G : Set S)
+theorem IsIntegral.of_mem_closure'' {S : Type*} [CommRing S] {f : R →+* S} (G : Set S)
     (hG : ∀ x ∈ G, f.IsIntegralElem x) : ∀ x ∈ Subring.closure G, f.IsIntegralElem x := fun x hx =>
-  @isIntegral_of_mem_closure' R S _ _ f.toAlgebra G hG x hx
-#align is_integral_of_mem_closure'' isIntegral_of_mem_closure''
+  @IsIntegral.of_mem_closure' R S _ _ f.toAlgebra G hG x hx
+#align is_integral_of_mem_closure'' IsIntegral.of_mem_closure''
 
-theorem IsIntegral.pow {x : A} (h : IsIntegral R x) (n : ℕ) : IsIntegral R (x ^ n) :=
-  (integralClosure R A).pow_mem h n
+theorem IsIntegral.pow {x : B} (h : IsIntegral R x) (n : ℕ) : IsIntegral R (x ^ n) :=
+  .of_mem_of_fg _ h.fg_adjoin_singleton _ <|
+    Subalgebra.pow_mem _ (by exact Algebra.subset_adjoin rfl) _
 #align is_integral.pow IsIntegral.pow
 
-theorem IsIntegral.nsmul {x : A} (h : IsIntegral R x) (n : ℕ) : IsIntegral R (n • x) :=
-  (integralClosure R A).nsmul_mem h n
+theorem IsIntegral.nsmul {x : B} (h : IsIntegral R x) (n : ℕ) : IsIntegral R (n • x) :=
+  h.smul n
 #align is_integral.nsmul IsIntegral.nsmul
 
-theorem IsIntegral.zsmul {x : A} (h : IsIntegral R x) (n : ℤ) : IsIntegral R (n • x) :=
-  (integralClosure R A).zsmul_mem h n
+theorem IsIntegral.zsmul {x : B} (h : IsIntegral R x) (n : ℤ) : IsIntegral R (n • x) :=
+  h.smul n
 #align is_integral.zsmul IsIntegral.zsmul
 
 theorem IsIntegral.multiset_prod {s : Multiset A} (h : ∀ x ∈ s, IsIntegral R x) :
@@ -678,36 +538,21 @@ theorem IsIntegral.sum {α : Type*} {s : Finset α} (f : α → A) (h : ∀ x 
 theorem IsIntegral.det {n : Type*} [Fintype n] [DecidableEq n] {M : Matrix n n A}
     (h : ∀ i j, IsIntegral R (M i j)) : IsIntegral R M.det := by
   rw [Matrix.det_apply]
-  exact IsIntegral.sum _ fun σ _hσ => IsIntegral.zsmul (IsIntegral.prod _ fun i _hi => h _ _) _
+  exact IsIntegral.sum _ fun σ _hσ ↦ (IsIntegral.prod _ fun i _hi => h _ _).zsmul _
 #align is_integral.det IsIntegral.det
 
 @[simp]
 theorem IsIntegral.pow_iff {x : A} {n : ℕ} (hn : 0 < n) : IsIntegral R (x ^ n) ↔ IsIntegral R x :=
-  ⟨IsIntegral.of_pow hn, fun hx => IsIntegral.pow hx n⟩
+  ⟨IsIntegral.of_pow hn, fun hx ↦ hx.pow n⟩
 #align is_integral.pow_iff IsIntegral.pow_iff
 
 open TensorProduct
 
--- porting note: I fought a lot with this proof.  I tried to follow the original,
--- but was not really able to.
 theorem IsIntegral.tmul (x : A) {y : B} (h : IsIntegral R y) : IsIntegral A (x ⊗ₜ[R] y) := by
-  obtain ⟨p, hp, hp'⟩ := h
-  refine' ⟨(p.map (_root_.algebraMap R A)).scaleRoots x, _, _⟩
-  · rw [Polynomial.monic_scaleRoots_iff]
-    exact hp.map _
-  convert Polynomial.scaleRoots_eval₂_mul (R := A ⊗[R] B) (S := A)
-      Algebra.TensorProduct.includeLeftRingHom (?_) x
-  any_goals exact 1 ⊗ₜ y
-  · simp only [Algebra.TensorProduct.includeLeftRingHom_apply,
-      Algebra.TensorProduct.tmul_mul_tmul, mul_one, one_mul]
-  · simp only [Algebra.TensorProduct.includeLeftRingHom_apply, Algebra.TensorProduct.tmul_pow,
-      one_pow]
-    convert (mul_zero (M₀ := A ⊗[R] B) _).symm
-    erw [Polynomial.eval₂_map, Algebra.TensorProduct.includeLeftRingHom_comp_algebraMap,
-      ← Polynomial.eval₂_map]
-    convert Polynomial.eval₂_at_apply
-      (Algebra.TensorProduct.includeRight : B →ₐ[R] A ⊗[R] B).toRingHom y
-    rw [Polynomial.eval_map, hp', _root_.map_zero]
+  rw [← mul_one x, ← smul_eq_mul, ← smul_tmul']
+  exact smul _ (h.map_of_comp_eq (algebraMap R A)
+    (Algebra.TensorProduct.includeRight (R := R) (A := A) (B := B)).toRingHom
+    Algebra.TensorProduct.includeLeftRingHom_comp_algebraMap)
 #align is_integral.tmul IsIntegral.tmul
 
 section
@@ -801,7 +646,7 @@ theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
     · apply_fun fun q => coeff q p.natDegree at hp
       rw [coeff_map, coeff_zero, coeff_natDegree] at hp
       rw [hp, zero_mul]
-      exact f.is_integral_zero
+      exact f.isIntegralElem_zero
     · rw [Nat.one_le_iff_ne_zero, Classical.not_not] at h'
       rw [eq_C_of_natDegree_eq_zero h', eval₂_C] at h
       suffices p.map f = 0 by exact (hp this).elim
@@ -850,7 +695,7 @@ variable {R A B : Type*} [CommRing R] [CommRing A] [CommRing B]
 
 variable [Algebra R B] [Algebra A B] [IsIntegralClosure A R B]
 
-variable (R) (B) -- porting note: `{A}` was a `redundant binder annotation update`
+variable (R B)
 
 protected theorem isIntegral [Algebra R A] [IsScalarTower R A B] (x : A) : IsIntegral R x :=
   (isIntegral_algebraMap_iff (algebraMap_injective A R B)).mp <|
@@ -893,13 +738,13 @@ theorem mk'_zero (h : IsIntegral R (0 : B) := isIntegral_zero) : mk' A 0 h = 0 :
 
 -- Porting note: Left-hand side does not simplify @[simp]
 theorem mk'_add (x y : B) (hx : IsIntegral R x) (hy : IsIntegral R y) :
-    mk' A (x + y) (IsIntegral.add hx hy) = mk' A x hx + mk' A y hy :=
+    mk' A (x + y) (hx.add hy) = mk' A x hx + mk' A y hy :=
   algebraMap_injective A R B <| by simp only [algebraMap_mk', RingHom.map_add]
 #align is_integral_closure.mk'_add IsIntegralClosure.mk'_add
 
 -- Porting note: Left-hand side does not simplify @[simp]
 theorem mk'_mul (x y : B) (hx : IsIntegral R x) (hy : IsIntegral R y) :
-    mk' A (x * y) (IsIntegral.mul hx hy) = mk' A x hx * mk' A y hy :=
+    mk' A (x * y) (hx.mul hy) = mk' A x hx * mk' A y hy :=
   algebraMap_injective A R B <| by simp only [algebraMap_mk', RingHom.map_mul]
 #align is_integral_closure.mk'_mul IsIntegralClosure.mk'_mul
 
@@ -912,7 +757,6 @@ theorem mk'_algebraMap [Algebra R A] [IsScalarTower R A B] (x : R)
 
 section lift
 
--- porting note: `R` and `A` were redundant binder updates
 variable (B) {S : Type*} [CommRing S] [Algebra R S]
 -- split from above, since otherwise it does not synthesize `Semiring S`
 variable [Algebra S B] [IsScalarTower R S B]
@@ -947,14 +791,8 @@ variable [Algebra R A] [Algebra R A'] [IsScalarTower R A B] [IsScalarTower R A'
 /-- Integral closures are all isomorphic to each other. -/
 noncomputable def equiv : A ≃ₐ[R] A' :=
   AlgEquiv.ofAlgHom (lift _ B (isIntegral_algebra R B)) (lift _ B (isIntegral_algebra R B))
-    (by
-      ext x
-      apply algebraMap_injective A' R B
-      simp)
-    (by
-      ext x
-      apply algebraMap_injective A R B
-      simp)
+    (by ext x; apply algebraMap_injective A' R B; simp)
+    (by ext x; apply algebraMap_injective A R B; simp)
 #align is_integral_closure.equiv IsIntegralClosure.equiv
 
 @[simp]
@@ -974,36 +812,10 @@ open Algebra
 
 variable {R A B S T : Type*}
 
-variable [CommRing R] [CommRing A] [CommRing B] [CommRing S] [CommRing T]
+variable [CommRing R] [CommRing A] [Ring B] [CommRing S] [CommRing T]
 
 variable [Algebra A B] [Algebra R B] (f : R →+* S) (g : S →+* T)
 
-theorem isIntegral_trans_aux (x : B) {p : A[X]} (pmonic : Monic p) (hp : aeval x p = 0) :
-    IsIntegral (adjoin R (↑(p.map <| algebraMap A B).frange : Set B)) x := by
-  generalize hS : (↑(p.map <| algebraMap A B).frange : Set B) = S
-  have coeffs_mem : ∀ i, (p.map <| algebraMap A B).coeff i ∈ adjoin R S := by
-    intro i
-    by_cases hi : (p.map <| algebraMap A B).coeff i = 0
-    · rw [hi]
-      exact Subalgebra.zero_mem _
-    rw [← hS]
-    exact subset_adjoin (coeff_mem_frange _ _ hi)
-  obtain ⟨q, hq⟩ :
-    ∃ q : (adjoin R S)[X], q.map (algebraMap (adjoin R S) B) = (p.map <| algebraMap A B) := by
-    rw [← Set.mem_range]
-    exact (Polynomial.mem_map_range _).2 fun i => ⟨⟨_, coeffs_mem i⟩, rfl⟩
-  use q
-  constructor
-  · suffices h : (q.map (algebraMap (adjoin R S) B)).Monic
-    · refine' monic_of_injective _ h
-      exact Subtype.val_injective
-    · rw [hq]
-      exact pmonic.map _
-  · convert hp using 1
-    replace hq := congr_arg (eval x) hq
-    convert hq using 1 <;> symm <;> apply eval_map
-#align is_integral_trans_aux isIntegral_trans_aux
-
 variable [Algebra R A] [IsScalarTower R A B]
 
 /-- If A is an R-algebra all of whose elements are integral over R,
@@ -1011,97 +823,91 @@ and x is an element of an A-algebra that is integral over A, then x is integral
 theorem isIntegral_trans (A_int : Algebra.IsIntegral R A) (x : B) (hx : IsIntegral A x) :
     IsIntegral R x := by
   rcases hx with ⟨p, pmonic, hp⟩
-  let S : Set B := ↑(p.map <| algebraMap A B).frange
-  refine' IsIntegral.of_mem_of_fg (adjoin R (S ∪ {x})) _ _ (subset_adjoin <| Or.inr rfl)
-  refine' fg_trans (fg_adjoin_of_finite (Finset.finite_toSet _) fun x hx => _) _
-  · rw [Finset.mem_coe, frange, Finset.mem_image] at hx
-    rcases hx with ⟨i, _, rfl⟩
-    rw [coeff_map]
-    exact IsIntegral.map (IsScalarTower.toAlgHom R A B) (A_int _)
-  · apply IsIntegral.fg_adjoin_singleton
-    exact isIntegral_trans_aux _ pmonic hp
+  let S := adjoin R (p.frange : Set A)
+  have : Module.Finite R S := ⟨(Subalgebra.toSubmodule S).fg_top.mpr <|
+    fg_adjoin_of_finite p.frange.finite_toSet fun a _ ↦ A_int a⟩
+  let p' : S[X] := p.toSubring S.toSubring subset_adjoin
+  have hSx : IsIntegral S x := ⟨p', (p.monic_toSubring _ _).mpr pmonic, by
+    rw [IsScalarTower.algebraMap_eq S A B, ← eval₂_map]
+    convert hp; apply p.map_toSubring S.toSubring⟩
+  let Sx := Subalgebra.toSubmodule (adjoin S {x})
+  let MSx : Module S Sx := SMulMemClass.toModule _ -- the next line times out without this
+  have : Module.Finite S Sx := ⟨(Submodule.fg_top _).mpr hSx.fg_adjoin_singleton⟩
+  refine .of_mem_of_fg ((adjoin S {x}).restrictScalars R) ?_ _
+    ((Subalgebra.mem_restrictScalars R).mpr <| subset_adjoin rfl)
+  rw [← Submodule.fg_top, ← Module.finite_def]
+  letI : SMul S Sx := { MSx with } -- need this even though MSx is there
+  have : IsScalarTower R S Sx :=
+    Submodule.isScalarTower Sx -- Lean looks for `Module A Sx` without this
+  exact Module.Finite.trans S Sx
 #align is_integral_trans isIntegral_trans
+#noalign is_integral_trans_aux
 
 /-- If A is an R-algebra all of whose elements are integral over R,
 and B is an A-algebra all of whose elements are integral over A,
 then all elements of B are integral over R.-/
-nonrec theorem Algebra.isIntegral_trans
+protected theorem Algebra.IsIntegral.trans
     (hA : Algebra.IsIntegral R A) (hB : Algebra.IsIntegral A B) : Algebra.IsIntegral R B :=
-  fun x => isIntegral_trans hA x (hB x)
-#align algebra.is_integral_trans Algebra.isIntegral_trans
-
-theorem RingHom.isIntegral_trans (hf : f.IsIntegral) (hg : g.IsIntegral) : (g.comp f).IsIntegral :=
-  @Algebra.isIntegral_trans R S T _ _ _ g.toAlgebra (g.comp f).toAlgebra f.toAlgebra
-    (@IsScalarTower.of_algebraMap_eq R S T _ _ _ f.toAlgebra g.toAlgebra (g.comp f).toAlgebra
-      (RingHom.comp_apply g f))
-    hf hg
-#align ring_hom.is_integral_trans RingHom.isIntegral_trans
-
-theorem RingHom.isIntegral_of_surjective (hf : Function.Surjective f) : f.IsIntegral := fun x =>
-  (hf x).recOn fun _y hy => (hy ▸ f.is_integral_map : f.IsIntegralElem x)
+  fun x ↦ isIntegral_trans hA x (hB x)
+#align algebra.is_integral_trans Algebra.IsIntegral.trans
+
+protected theorem RingHom.IsIntegral.trans
+    (hf : f.IsIntegral) (hg : g.IsIntegral) : (g.comp f).IsIntegral :=
+  letI := f.toAlgebra; letI := g.toAlgebra; letI := (g.comp f).toAlgebra
+  haveI : IsScalarTower R S T := IsScalarTower.of_algebraMap_eq fun _ ↦ rfl
+  Algebra.IsIntegral.trans hf hg
+#align ring_hom.is_integral_trans RingHom.IsIntegral.trans
+
+theorem RingHom.isIntegral_of_surjective (hf : Function.Surjective f) : f.IsIntegral :=
+  fun x ↦ (hf x).recOn fun _y hy ↦ hy ▸ f.isIntegralElem_map
 #align ring_hom.is_integral_of_surjective RingHom.isIntegral_of_surjective
 
-theorem isIntegral_of_surjective (h : Function.Surjective (algebraMap R A)) :
+theorem Algebra.isIntegral_of_surjective (h : Function.Surjective (algebraMap R A)) :
     Algebra.IsIntegral R A :=
   (algebraMap R A).isIntegral_of_surjective h
-#align is_integral_of_surjective isIntegral_of_surjective
+#align is_integral_of_surjective Algebra.isIntegral_of_surjective
 
 /-- If `R → A → B` is an algebra tower with `A → B` injective,
 then if the entire tower is an integral extension so is `R → A` -/
 theorem IsIntegral.tower_bot (H : Function.Injective (algebraMap A B)) {x : A}
-    (h : IsIntegral R (algebraMap A B x)) : IsIntegral R x := by
-  rcases h with ⟨p, ⟨hp, hp'⟩⟩
-  refine' ⟨p, ⟨hp, _⟩⟩
-  rw [IsScalarTower.algebraMap_eq R A B, ← eval₂_map, eval₂_hom, ←
-    RingHom.map_zero (algebraMap A B)] at hp'
-  rw [eval₂_eq_eval_map]
-  exact H hp'
+    (h : IsIntegral R (algebraMap A B x)) : IsIntegral R x :=
+  (isIntegral_algHom_iff (IsScalarTower.toAlgHom R A B) H).mp h
 #align is_integral_tower_bot_of_is_integral IsIntegral.tower_bot
 
-nonrec theorem RingHom.isIntegral_tower_bot_of_isIntegral (hg : Function.Injective g)
-    (hfg : (g.comp f).IsIntegral) : f.IsIntegral := fun x =>
-  @IsIntegral.tower_bot R S T _ _ _ g.toAlgebra (g.comp f).toAlgebra f.toAlgebra
-    (@IsScalarTower.of_algebraMap_eq R S T _ _ _ f.toAlgebra g.toAlgebra (g.comp f).toAlgebra
-      (RingHom.comp_apply g f))
-    hg x (hfg (g x))
-#align ring_hom.is_integral_tower_bot_of_is_integral RingHom.isIntegral_tower_bot_of_isIntegral
+nonrec theorem RingHom.IsIntegral.tower_bot (hg : Function.Injective g)
+    (hfg : (g.comp f).IsIntegral) : f.IsIntegral :=
+  letI := f.toAlgebra; letI := g.toAlgebra; letI := (g.comp f).toAlgebra
+  haveI : IsScalarTower R S T := IsScalarTower.of_algebraMap_eq fun _ ↦ rfl
+  fun x ↦ IsIntegral.tower_bot hg (hfg (g x))
+#align ring_hom.is_integral_tower_bot_of_is_integral RingHom.IsIntegral.tower_bot
 
 theorem IsIntegral.tower_bot_of_field {R A B : Type*} [CommRing R] [Field A]
     [CommRing B] [Nontrivial B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B]
     {x : A} (h : IsIntegral R (algebraMap A B x)) : IsIntegral R x :=
-  IsIntegral.tower_bot (algebraMap A B).injective h
+  h.tower_bot (algebraMap A B).injective
 #align is_integral_tower_bot_of_is_integral_field IsIntegral.tower_bot_of_field
 
-theorem RingHom.isIntegralElem_of_isIntegralElem_comp {x : T} (h : (g.comp f).IsIntegralElem x) :
+theorem RingHom.isIntegralElem.of_comp {x : T} (h : (g.comp f).IsIntegralElem x) :
     g.IsIntegralElem x :=
-  let ⟨p, ⟨hp, hp'⟩⟩ := h
+  let ⟨p, hp, hp'⟩ := h
   ⟨p.map f, hp.map f, by rwa [← eval₂_map] at hp'⟩
-#align ring_hom.is_integral_elem_of_is_integral_elem_comp RingHom.isIntegralElem_of_isIntegralElem_comp
+#align ring_hom.is_integral_elem_of_is_integral_elem_comp RingHom.isIntegralElem.of_comp
 
-theorem RingHom.isIntegral_tower_top_of_isIntegral (h : (g.comp f).IsIntegral) : g.IsIntegral :=
-  fun x => RingHom.isIntegralElem_of_isIntegralElem_comp f g (h x)
-#align ring_hom.is_integral_tower_top_of_is_integral RingHom.isIntegral_tower_top_of_isIntegral
+theorem RingHom.IsIntegral.tower_top (h : (g.comp f).IsIntegral) : g.IsIntegral :=
+  fun x ↦ RingHom.isIntegralElem.of_comp f g (h x)
+#align ring_hom.is_integral_tower_top_of_is_integral RingHom.IsIntegral.tower_top
 
-/-- If `R → A → B` is an algebra tower,
-then if the entire tower is an integral extension so is `A → B`. -/
-theorem isIntegral_tower_top_of_isIntegral {x : B} (h : IsIntegral R x) : IsIntegral A x := by
-  rcases h with ⟨p, ⟨hp, hp'⟩⟩
-  refine' ⟨p.map (algebraMap R A), ⟨hp.map (algebraMap R A), _⟩⟩
-  rw [IsScalarTower.algebraMap_eq R A B, ← eval₂_map] at hp'
-  exact hp'
-#align is_integral_tower_top_of_is_integral isIntegral_tower_top_of_isIntegral
-
-theorem RingHom.isIntegral_quotient_of_isIntegral {I : Ideal S} (hf : f.IsIntegral) :
+theorem RingHom.IsIntegral.quotient {I : Ideal S} (hf : f.IsIntegral) :
     (Ideal.quotientMap I f le_rfl).IsIntegral := by
   rintro ⟨x⟩
-  obtain ⟨p, ⟨p_monic, hpx⟩⟩ := hf x
-  refine' ⟨p.map (Ideal.Quotient.mk _), ⟨p_monic.map _, _⟩⟩
+  obtain ⟨p, p_monic, hpx⟩ := hf x
+  refine ⟨p.map (Ideal.Quotient.mk _), p_monic.map _, ?_⟩
   simpa only [hom_eval₂, eval₂_map] using congr_arg (Ideal.Quotient.mk I) hpx
-#align ring_hom.is_integral_quotient_of_is_integral RingHom.isIntegral_quotient_of_isIntegral
+#align ring_hom.is_integral_quotient_of_is_integral RingHom.IsIntegral.quotient
 
 theorem Algebra.IsIntegral.quotient {I : Ideal A} (hRA : Algebra.IsIntegral R A) :
     Algebra.IsIntegral (R ⧸ I.comap (algebraMap R A)) (A ⧸ I) :=
-  (algebraMap R A).isIntegral_quotient_of_isIntegral hRA
+  RingHom.IsIntegral.quotient (algebraMap R A) hRA
 #align is_integral_quotient_of_is_integral Algebra.IsIntegral.quotient
 
 theorem isIntegral_quotientMap_iff {I : Ideal S} :
@@ -1111,68 +917,43 @@ theorem isIntegral_quotientMap_iff {I : Ideal S} :
   -- Porting note: added type ascription
   have : (Ideal.quotientMap I f le_rfl).comp g = (Ideal.Quotient.mk I).comp f :=
     Ideal.quotientMap_comp_mk le_rfl
-  refine' ⟨fun h => _, fun h => RingHom.isIntegral_tower_top_of_isIntegral g _ (this ▸ h)⟩
-  refine' this ▸ RingHom.isIntegral_trans g (Ideal.quotientMap I f le_rfl) _ h
-  exact RingHom.isIntegral_of_surjective g Ideal.Quotient.mk_surjective
+  refine' ⟨fun h => _, fun h => RingHom.IsIntegral.tower_top g _ (this ▸ h)⟩
+  refine' this ▸ RingHom.IsIntegral.trans g (Ideal.quotientMap I f le_rfl) _ h
+  exact g.isIntegral_of_surjective Ideal.Quotient.mk_surjective
 #align is_integral_quotient_map_iff isIntegral_quotientMap_iff
 
 /-- If the integral extension `R → S` is injective, and `S` is a field, then `R` is also a field. -/
-theorem isField_of_isIntegral_of_isField {R S : Type*} [CommRing R] [Nontrivial R] [CommRing S]
-    [IsDomain S] [Algebra R S] (H : Algebra.IsIntegral R S)
+theorem isField_of_isIntegral_of_isField {R S : Type*} [CommRing R] [CommRing S]
+    [Algebra R S] (H : Algebra.IsIntegral R S)
     (hRS : Function.Injective (algebraMap R S)) (hS : IsField S) : IsField R := by
-  refine' ⟨⟨0, 1, zero_ne_one⟩, mul_comm, fun {a} ha => _⟩
+  have := hS.nontrivial; have := Module.nontrivial R S
+  refine ⟨⟨0, 1, zero_ne_one⟩, mul_comm, fun {a} ha ↦ ?_⟩
   -- Let `a_inv` be the inverse of `algebraMap R S a`,
   -- then we need to show that `a_inv` is of the form `algebraMap R S b`.
-  obtain ⟨a_inv, ha_inv⟩ := hS.mul_inv_cancel
-    fun h => ha (hRS (_root_.trans h (RingHom.map_zero _).symm))
+  obtain ⟨a_inv, ha_inv⟩ := hS.mul_inv_cancel fun h ↦ ha (hRS (h.trans (RingHom.map_zero _).symm))
+  letI : Invertible a_inv := (Units.mkOfMulEqOne a_inv _ <| mul_comm _ a_inv ▸ ha_inv).invertible
   -- Let `p : R[X]` be monic with root `a_inv`,
-  -- and `q` be `p` with coefficients reversed (so `q(a) = q'(a) * a + 1`).
-  -- We claim that `q(a) = 0`, so `-q'(a)` is the inverse of `a`.
   obtain ⟨p, p_monic, hp⟩ := H a_inv
-  use -∑ i : ℕ in Finset.range p.natDegree, p.coeff i * a ^ (p.natDegree - i - 1)
-  -- `q(a) = 0`, because multiplying everything with `a_inv^n` gives `p(a_inv) = 0`.
-  -- TODO: this could be a lemma for `Polynomial.reverse`.
-  have hq : (∑ i : ℕ in Finset.range (p.natDegree + 1), p.coeff i * a ^ (p.natDegree - i)) = 0 := by
-    apply (injective_iff_map_eq_zero (algebraMap R S)).mp hRS
-    have a_inv_ne_zero : a_inv ≠ 0 := right_ne_zero_of_mul (mt ha_inv.symm.trans one_ne_zero)
-    refine' (mul_eq_zero.mp _).resolve_right (pow_ne_zero p.natDegree a_inv_ne_zero)
-    rw [eval₂_eq_sum_range] at hp
-    rw [map_sum, Finset.sum_mul]
-    refine' (Finset.sum_congr rfl fun i hi => _).trans hp
-    rw [RingHom.map_mul, mul_assoc]
-    congr
-    have : a_inv ^ p.natDegree = a_inv ^ (p.natDegree - i) * a_inv ^ i := by
-      rw [← pow_add a_inv, tsub_add_cancel_of_le (Nat.le_of_lt_succ (Finset.mem_range.mp hi))]
-    rw [RingHom.map_pow, this, ← mul_assoc, ← mul_pow, ha_inv, one_pow, one_mul]
-  -- Since `q(a) = 0` and `q(a) = q'(a) * a + 1`, we have `a * -q'(a) = 1`.
-  -- TODO: we could use a lemma for `Polynomial.divX` here.
-  rw [Finset.sum_range_succ_comm, p_monic.coeff_natDegree, one_mul, tsub_self, pow_zero,
-    add_eq_zero_iff_eq_neg, eq_comm] at hq
-  rw [mul_comm, neg_mul, Finset.sum_mul]
-  convert hq using 2
-  refine' Finset.sum_congr rfl fun i hi => _
-  have : 1 ≤ p.natDegree - i := le_tsub_of_add_le_left (Finset.mem_range.mp hi)
-  rw [mul_assoc, ← pow_succ', tsub_add_cancel_of_le this]
+  -- and `q` be `p` with coefficients reversed (so `q(a) = q'(a) * a + 1`).
+  -- We have `q(a) = 0`, so `-q'(a)` is the inverse of `a`.
+  use -p.reverse.divX.eval a -- -q'(a)
+  nth_rewrite 1 [mul_neg, ← eval_X (x := a), ← eval_mul, ← p_monic, ← coeff_zero_reverse,
+    ← add_eq_zero_iff_neg_eq, ← eval_C (a := p.reverse.coeff 0), ← eval_add, X_mul_divX_add,
+    ← (injective_iff_map_eq_zero' _).mp hRS, ← aeval_algebraMap_apply_eq_algebraMap_eval]
+  rwa [← eval₂_reverse_eq_zero_iff] at hp
 #align is_field_of_is_integral_of_is_field isField_of_isIntegral_of_isField
 
 theorem isField_of_isIntegral_of_isField' {R S : Type*} [CommRing R] [CommRing S] [IsDomain S]
     [Algebra R S] (H : Algebra.IsIntegral R S) (hR : IsField R) : IsField S := by
+  refine ⟨⟨0, 1, zero_ne_one⟩, mul_comm, fun {x} hx ↦ ?_⟩
+  have : Module.Finite R (adjoin R {x}) := ⟨(Submodule.fg_top _).mpr (H x).fg_adjoin_singleton⟩
   letI := hR.toField
-  refine' ⟨⟨0, 1, zero_ne_one⟩, mul_comm, fun {x} hx => _⟩
-  let A := Algebra.adjoin R ({x} : Set S)
-  haveI : IsNoetherian R A :=
-    isNoetherian_of_fg_of_noetherian (Subalgebra.toSubmodule A)
-      (IsIntegral.fg_adjoin_singleton x (H x))
-  haveI : Module.Finite R A := Module.IsNoetherian.finite R A
-  obtain ⟨y, hy⟩ :=
-    LinearMap.surjective_of_injective
-      (@LinearMap.mulLeft_injective R A _ _ _ _ ⟨x, subset_adjoin (Set.mem_singleton x)⟩ fun h =>
-        hx (Subtype.ext_iff.mp h))
-      1
+  obtain ⟨y, hy⟩ := FiniteDimensional.exists_mul_eq_one R
+    (K := adjoin R {x}) (x := ⟨x, subset_adjoin rfl⟩) (mt Subtype.ext_iff.mp hx)
   exact ⟨y, Subtype.ext_iff.mp hy⟩
 #align is_field_of_is_integral_of_is_field' isField_of_isIntegral_of_isField'
 
-theorem Algebra.IsIntegral.isField_iff_isField {R S : Type*} [CommRing R] [Nontrivial R]
+theorem Algebra.IsIntegral.isField_iff_isField {R S : Type*} [CommRing R]
     [CommRing S] [IsDomain S] [Algebra R S] (H : Algebra.IsIntegral R S)
     (hRS : Function.Injective (algebraMap R S)) : IsField R ↔ IsField S :=
   ⟨isField_of_isIntegral_of_isField' H, isField_of_isIntegral_of_isField H hRS⟩
@@ -1180,14 +961,11 @@ theorem Algebra.IsIntegral.isField_iff_isField {R S : Type*} [CommRing R] [Nontr
 
 end Algebra
 
-theorem integralClosure_idem {R : Type*} {A : Type*} [CommRing R] [CommRing A] [Algebra R A] :
+theorem integralClosure_idem {R A : Type*} [CommRing R] [CommRing A] [Algebra R A] :
     integralClosure (integralClosure R A : Set A) A = ⊥ :=
-  eq_bot_iff.2 fun x hx =>
-    Algebra.mem_bot.2
-      ⟨⟨x,
-          @isIntegral_trans _ _ _ _ _ _ _ _ (integralClosure R A).algebra _
-            integralClosure.isIntegral x hx⟩,
-        rfl⟩
+  letI := (integralClosure R A).algebra
+  eq_bot_iff.2 fun x hx ↦ Algebra.mem_bot.2
+    ⟨⟨x, isIntegral_trans (A := integralClosure R A) integralClosure.isIntegral x hx⟩, rfl⟩
 #align integral_closure_idem integralClosure_idem
 
 section IsDomain
chore(RingTheory/{Algebraic, Localization/Integral}): rename decls to use dot notation (#8437)

This PR tests a string-based tool for renaming declarations.

Inspired by this Zulip thread, I am trying to reduce the diff of #8406.

This PR makes the following renames:

| From | To |

Diff
@@ -121,7 +121,7 @@ variable [Field K] [Ring A] [Algebra K A] [FiniteDimensional K A]
 
 variable (K)
 
-theorem isIntegral_of_finite (e : A) : IsIntegral K e :=
+theorem IsIntegral.of_finite (e : A) : IsIntegral K e :=
   isIntegral_of_noetherian (IsNoetherian.iff_fg.2 inferInstance) _
 
 variable (A)
@@ -141,16 +141,16 @@ variable [CommRing R] [CommRing A] [CommRing B] [CommRing S]
 
 variable [Algebra R A] [Algebra R B] (f : R →+* S)
 
-theorem map_isIntegral {B C F : Type*} [Ring B] [Ring C] [Algebra R B] [Algebra A B] [Algebra R C]
+theorem IsIntegral.map {B C F : Type*} [Ring B] [Ring C] [Algebra R B] [Algebra A B] [Algebra R C]
     [IsScalarTower R A B] [Algebra A C] [IsScalarTower R A C] {b : B} [AlgHomClass F A B C] (f : F)
     (hb : IsIntegral R b) : IsIntegral R (f b) := by
   obtain ⟨P, hP⟩ := hb
   refine' ⟨P, hP.1, _⟩
   rw [← aeval_def, show (aeval (f b)) P = (aeval (f b)) (P.map (algebraMap R A)) by simp,
     aeval_algHom_apply, aeval_map_algebraMap, aeval_def, hP.2, _root_.map_zero]
-#align map_is_integral map_isIntegral
+#align map_is_integral IsIntegral.map
 
-theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type*} [CommRing R] [CommRing S]
+theorem IsIntegral.map_of_comp_eq {R S T U : Type*} [CommRing R] [CommRing S]
     [CommRing T] [CommRing U] [Algebra R S] [Algebra T U] (φ : R →+* T) (ψ : S →+* U)
     (h : (algebraMap T U).comp φ = ψ.comp (algebraMap R S)) {a : S} (ha : IsIntegral R a) :
     IsIntegral T (ψ a) := by
@@ -159,11 +159,11 @@ theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type*} [CommRing R] [
   refine' ⟨p.map φ, hp.left.map _, _⟩
   rw [← eval_map, map_map, h, ← map_map, eval_map, eval₂_at_apply, eval_map, hp.right,
     RingHom.map_zero]
-#align is_integral_map_of_comp_eq_of_is_integral isIntegral_map_of_comp_eq_of_isIntegral
+#align is_integral_map_of_comp_eq_of_is_integral IsIntegral.map_of_comp_eq
 
 theorem isIntegral_algHom_iff {A B : Type*} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
     (f : A →ₐ[R] B) (hf : Function.Injective f) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x := by
-  refine' ⟨_, map_isIntegral f⟩
+  refine' ⟨_, IsIntegral.map f⟩
   rintro ⟨p, hp, hx⟩
   use p, hp
   rwa [← f.comp_algebraMap, ← AlgHom.coe_toRingHom, ← Polynomial.hom_eval₂, AlgHom.coe_toRingHom,
@@ -173,7 +173,7 @@ theorem isIntegral_algHom_iff {A B : Type*} [Ring A] [Ring B] [Algebra R A] [Alg
 @[simp]
 theorem isIntegral_algEquiv {A B : Type*} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
     (f : A ≃ₐ[R] B) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x :=
-  ⟨fun h => by simpa using map_isIntegral f.symm.toAlgHom h, map_isIntegral f.toAlgHom⟩
+  ⟨fun h => by simpa using IsIntegral.map f.symm.toAlgHom h, IsIntegral.map f.toAlgHom⟩
 #align is_integral_alg_equiv isIntegral_algEquiv
 
 theorem isIntegral_of_isScalarTower [Algebra A B] [IsScalarTower R A B] {x : B}
@@ -184,14 +184,15 @@ theorem isIntegral_of_isScalarTower [Algebra A B] [IsScalarTower R A B] {x : B}
 
 theorem map_isIntegral_int {B C F : Type*} [Ring B] [Ring C] {b : B} [RingHomClass F B C] (f : F)
     (hb : IsIntegral ℤ b) : IsIntegral ℤ (f b) :=
-  map_isIntegral (f : B →+* C).toIntAlgHom hb
+  IsIntegral.map (f : B →+* C).toIntAlgHom hb
 #align map_is_integral_int map_isIntegral_int
 
-theorem isIntegral_ofSubring {x : A} (T : Subring R) (hx : IsIntegral T x) : IsIntegral R x :=
+theorem IsIntegral.of_subring {x : A} (T : Subring R) (hx : IsIntegral T x) : IsIntegral R x :=
   isIntegral_of_isScalarTower hx
-#align is_integral_of_subring isIntegral_ofSubring
+#align is_integral_of_subring IsIntegral.of_subring
 
-theorem IsIntegral.algebraMap [Algebra A B] [IsScalarTower R A B] {x : A} (h : IsIntegral R x) :
+protected theorem IsIntegral.algebraMap [Algebra A B] [IsScalarTower R A B] {x : A}
+    (h : IsIntegral R x) :
     IsIntegral R (algebraMap A B x) := by
   rcases h with ⟨f, hf, hx⟩
   use f, hf
@@ -211,10 +212,10 @@ theorem isIntegral_iff_isIntegral_closure_finite {r : A} :
     refine' ⟨_, Finset.finite_toSet _, p.restriction, monic_restriction.2 hmp, _⟩
     rw [← aeval_def, ← aeval_map_algebraMap R r p.restriction, map_restriction, aeval_def, hpr]
   rcases hr with ⟨s, _, hsr⟩
-  exact isIntegral_ofSubring _ hsr
+  exact IsIntegral.of_subring _ hsr
 #align is_integral_iff_is_integral_closure_finite isIntegral_iff_isIntegral_closure_finite
 
-theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
+theorem IsIntegral.fg_adjoin_singleton (x : A) (hx : IsIntegral R x) :
     (Algebra.adjoin R ({x} : Set A)).toSubmodule.FG := by
   rcases hx with ⟨f, hfm, hfx⟩
   exists Finset.image ((· ^ ·) x) (Finset.range (natDegree f + 1))
@@ -242,9 +243,9 @@ theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
   rw [degree_le_iff_coeff_zero] at this
   rw [mem_support_iff] at hkq; apply hkq; apply this
   exact lt_of_le_of_lt degree_le_natDegree (WithBot.coe_lt_coe.2 hk)
-#align fg_adjoin_singleton_of_integral FG_adjoin_singleton_of_integral
+#align fg_adjoin_singleton_of_integral IsIntegral.fg_adjoin_singleton
 
-theorem FG_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsIntegral R x) :
+theorem fg_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsIntegral R x) :
     (Algebra.adjoin R s).toSubmodule.FG :=
   Set.Finite.induction_on hfs
     (fun _ =>
@@ -255,18 +256,18 @@ theorem FG_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsI
       rw [← Set.union_singleton, Algebra.adjoin_union_coe_submodule]
       exact
         FG.mul (ih fun i hi => his i <| Set.mem_insert_of_mem a hi)
-          (FG_adjoin_singleton_of_integral _ <| his a <| Set.mem_insert a s))
+          (IsIntegral.fg_adjoin_singleton _ <| his a <| Set.mem_insert a s))
     his
-#align fg_adjoin_of_finite FG_adjoin_of_finite
+#align fg_adjoin_of_finite fg_adjoin_of_finite
 
 theorem isNoetherian_adjoin_finset [IsNoetherianRing R] (s : Finset A)
     (hs : ∀ x ∈ s, IsIntegral R x) : IsNoetherian R (Algebra.adjoin R (↑s : Set A)) :=
-  isNoetherian_of_fg_of_noetherian _ (FG_adjoin_of_finite s.finite_toSet hs)
+  isNoetherian_of_fg_of_noetherian _ (fg_adjoin_of_finite s.finite_toSet hs)
 #align is_noetherian_adjoin_finset isNoetherian_adjoin_finset
 
 /-- If `S` is a sub-`R`-algebra of `A` and `S` is finitely-generated as an `R`-module,
   then all elements of `S` are integral over `R`. -/
-theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x : A) (hx : x ∈ S) :
+theorem IsIntegral.of_mem_of_fg (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x : A) (hx : x ∈ S) :
     IsIntegral R x := by
   -- say `x ∈ S`. We want to prove that `x` is integral over `R`.
   -- Say `S` is generated as an `R`-module by the set `y`.
@@ -292,7 +293,7 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   let S₀ : Subring R :=
     Subring.closure ↑(lx.frange ∪ Finset.biUnion Finset.univ (Finsupp.frange ∘ ly))
   -- It suffices to prove that `x` is integral over `S₀`.
-  refine' isIntegral_ofSubring S₀ _
+  refine' IsIntegral.of_subring S₀ _
   letI : CommRing S₀ := SubringClass.toCommRing S₀
   letI : Algebra S₀ A := Algebra.ofSubring S₀
   -- Claim: the `S₀`-module span (in `A`) of the set `y ∪ {1}` is closed under
@@ -365,7 +366,7 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   change (⟨_, this⟩ : S₀) • r ∈ _
   rw [Finsupp.mem_supported] at hlx1
   exact Subalgebra.smul_mem _ (Algebra.subset_adjoin <| hlx1 hr) _
-#align is_integral_of_mem_of_fg isIntegral_of_mem_of_FG
+#align is_integral_of_mem_of_fg IsIntegral.of_mem_of_fg
 
 theorem Module.End.isIntegral {M : Type*} [AddCommGroup M] [Module R M] [Module.Finite R M] :
     Algebra.IsIntegral R (Module.End R M) :=
@@ -419,7 +420,7 @@ variable {f}
 
 theorem RingHom.Finite.to_isIntegral (h : f.Finite) : f.IsIntegral :=
   letI := f.toAlgebra
-  fun _ => isIntegral_of_mem_of_FG ⊤ h.1 _ trivial
+  fun _ => IsIntegral.of_mem_of_fg ⊤ h.1 _ trivial
 #align ring_hom.finite.to_is_integral RingHom.Finite.to_isIntegral
 
 alias RingHom.IsIntegral.of_finite := RingHom.Finite.to_isIntegral
@@ -431,7 +432,7 @@ theorem RingHom.IsIntegral.to_finite (h : f.IsIntegral) (h' : f.FiniteType) : f.
   constructor
   change (⊤ : Subalgebra R S).toSubmodule.FG
   rw [← hs]
-  exact FG_adjoin_of_finite (Set.toFinite _) fun x _ => h x
+  exact fg_adjoin_of_finite (Set.toFinite _) fun x _ => h x
 #align ring_hom.is_integral.to_finite RingHom.IsIntegral.to_finite
 
 alias RingHom.Finite.of_isIntegral_of_finiteType := RingHom.IsIntegral.to_finite
@@ -459,7 +460,7 @@ theorem Algebra.IsIntegral.finite (h : Algebra.IsIntegral R A) [h' : Algebra.Fin
 #align algebra.is_integral.finite Algebra.IsIntegral.finite
 
 theorem Algebra.IsIntegral.of_finite [h : Module.Finite R A] : Algebra.IsIntegral R A :=
-  fun _ ↦ isIntegral_of_mem_of_FG ⊤ h.1 _ trivial
+  fun _ ↦ IsIntegral.of_mem_of_fg ⊤ h.1 _ trivial
 #align algebra.is_integral.of_finite Algebra.IsIntegral.of_finite
 
 /-- finite = integral + finite type -/
@@ -473,17 +474,17 @@ variable (f)
 theorem RingHom.is_integral_of_mem_closure {x y z : S} (hx : f.IsIntegralElem x)
     (hy : f.IsIntegralElem y) (hz : z ∈ Subring.closure ({x, y} : Set S)) : f.IsIntegralElem z := by
   letI : Algebra R S := f.toAlgebra
-  have := (FG_adjoin_singleton_of_integral x hx).mul (FG_adjoin_singleton_of_integral y hy)
+  have := (IsIntegral.fg_adjoin_singleton x hx).mul (IsIntegral.fg_adjoin_singleton y hy)
   rw [← Algebra.adjoin_union_coe_submodule, Set.singleton_union] at this
   exact
-    isIntegral_of_mem_of_FG (Algebra.adjoin R {x, y}) this z
+    IsIntegral.of_mem_of_fg (Algebra.adjoin R {x, y}) this z
       (Algebra.mem_adjoin_iff.2 <| Subring.closure_mono (Set.subset_union_right _ _) hz)
 #align ring_hom.is_integral_of_mem_closure RingHom.is_integral_of_mem_closure
 
-theorem isIntegral_of_mem_closure {x y z : A} (hx : IsIntegral R x) (hy : IsIntegral R y)
+theorem IsIntegral.of_mem_closure {x y z : A} (hx : IsIntegral R x) (hy : IsIntegral R y)
     (hz : z ∈ Subring.closure ({x, y} : Set A)) : IsIntegral R z :=
   (algebraMap R A).is_integral_of_mem_closure hx hy hz
-#align is_integral_of_mem_closure isIntegral_of_mem_closure
+#align is_integral_of_mem_closure IsIntegral.of_mem_closure
 
 theorem RingHom.is_integral_zero : f.IsIntegralElem 0 :=
   f.map_zero ▸ f.is_integral_map
@@ -507,28 +508,28 @@ theorem RingHom.is_integral_add {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIn
     Subring.add_mem _ (Subring.subset_closure (Or.inl rfl)) (Subring.subset_closure (Or.inr rfl))
 #align ring_hom.is_integral_add RingHom.is_integral_add
 
-theorem isIntegral_add {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
+theorem IsIntegral.add {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x + y) :=
   (algebraMap R A).is_integral_add hx hy
-#align is_integral_add isIntegral_add
+#align is_integral_add IsIntegral.add
 
 theorem RingHom.is_integral_neg {x : S} (hx : f.IsIntegralElem x) : f.IsIntegralElem (-x) :=
   f.is_integral_of_mem_closure hx hx (Subring.neg_mem _ (Subring.subset_closure (Or.inl rfl)))
 #align ring_hom.is_integral_neg RingHom.is_integral_neg
 
-theorem isIntegral_neg {x : A} (hx : IsIntegral R x) : IsIntegral R (-x) :=
+theorem IsIntegral.neg {x : A} (hx : IsIntegral R x) : IsIntegral R (-x) :=
   (algebraMap R A).is_integral_neg hx
-#align is_integral_neg isIntegral_neg
+#align is_integral_neg IsIntegral.neg
 
 theorem RingHom.is_integral_sub {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x - y) := by
   simpa only [sub_eq_add_neg] using f.is_integral_add hx (f.is_integral_neg hy)
 #align ring_hom.is_integral_sub RingHom.is_integral_sub
 
-theorem isIntegral_sub {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
+theorem IsIntegral.sub {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x - y) :=
   (algebraMap R A).is_integral_sub hx hy
-#align is_integral_sub isIntegral_sub
+#align is_integral_sub IsIntegral.sub
 
 theorem RingHom.is_integral_mul {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIntegralElem y) :
     f.IsIntegralElem (x * y) :=
@@ -536,24 +537,24 @@ theorem RingHom.is_integral_mul {x y : S} (hx : f.IsIntegralElem x) (hy : f.IsIn
     (Subring.mul_mem _ (Subring.subset_closure (Or.inl rfl)) (Subring.subset_closure (Or.inr rfl)))
 #align ring_hom.is_integral_mul RingHom.is_integral_mul
 
-theorem isIntegral_mul {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
+theorem IsIntegral.mul {x y : A} (hx : IsIntegral R x) (hy : IsIntegral R y) :
     IsIntegral R (x * y) :=
   (algebraMap R A).is_integral_mul hx hy
-#align is_integral_mul isIntegral_mul
+#align is_integral_mul IsIntegral.mul
 
-theorem isIntegral_smul [Algebra S A] [Algebra R S] [IsScalarTower R S A] {x : A} (r : R)
+theorem IsIntegral.smul [Algebra S A] [Algebra R S] [IsScalarTower R S A] {x : A} (r : R)
     (hx : IsIntegral S x) : IsIntegral S (r • x) := by
   rw [Algebra.smul_def, IsScalarTower.algebraMap_apply R S A]
-  exact isIntegral_mul isIntegral_algebraMap hx
-#align is_integral_smul isIntegral_smul
+  exact IsIntegral.mul isIntegral_algebraMap hx
+#align is_integral_smul IsIntegral.smul
 
-theorem isIntegral_of_pow {x : A} {n : ℕ} (hn : 0 < n) (hx : IsIntegral R <| x ^ n) :
+theorem IsIntegral.of_pow {x : A} {n : ℕ} (hn : 0 < n) (hx : IsIntegral R <| x ^ n) :
     IsIntegral R x := by
   rcases hx with ⟨p, ⟨hmonic, heval⟩⟩
   exact
     ⟨expand R n p, Monic.expand hn hmonic, by
       rwa [eval₂_eq_eval_map, map_expand, expand_eval, ← eval₂_eq_eval_map]⟩
-#align is_integral_of_pow isIntegral_of_pow
+#align is_integral_of_pow IsIntegral.of_pow
 
 variable (R A)
 
@@ -562,17 +563,17 @@ def integralClosure : Subalgebra R A where
   carrier := { r | IsIntegral R r }
   zero_mem' := isIntegral_zero
   one_mem' := isIntegral_one
-  add_mem' := isIntegral_add
-  mul_mem' := isIntegral_mul
+  add_mem' := IsIntegral.add
+  mul_mem' := IsIntegral.mul
   algebraMap_mem' _ := isIntegral_algebraMap
 #align integral_closure integralClosure
 
-theorem mem_integralClosure_iff_mem_FG {r : A} :
+theorem mem_integralClosure_iff_mem_fg {r : A} :
     r ∈ integralClosure R A ↔ ∃ M : Subalgebra R A, M.toSubmodule.FG ∧ r ∈ M :=
   ⟨fun hr =>
-    ⟨Algebra.adjoin R {r}, FG_adjoin_singleton_of_integral _ hr, Algebra.subset_adjoin rfl⟩,
-    fun ⟨M, Hf, hrM⟩ => isIntegral_of_mem_of_FG M Hf _ hrM⟩
-#align mem_integral_closure_iff_mem_fg mem_integralClosure_iff_mem_FG
+    ⟨Algebra.adjoin R {r}, IsIntegral.fg_adjoin_singleton _ hr, Algebra.subset_adjoin rfl⟩,
+    fun ⟨M, Hf, hrM⟩ => IsIntegral.of_mem_of_fg M Hf _ hrM⟩
+#align mem_integral_closure_iff_mem_fg mem_integralClosure_iff_mem_fg
 
 variable {R} {A}
 
@@ -604,9 +605,9 @@ theorem integralClosure_map_algEquiv (f : A ≃ₐ[R] B) :
   rw [Subalgebra.mem_map]
   constructor
   · rintro ⟨x, hx, rfl⟩
-    exact map_isIntegral f hx
+    exact IsIntegral.map f hx
   · intro hy
-    use f.symm y, map_isIntegral (f.symm : B →ₐ[R] A) hy
+    use f.symm y, IsIntegral.map (f.symm : B →ₐ[R] A) hy
     simp
 #align integral_closure_map_alg_equiv integralClosure_map_algEquiv
 
@@ -625,16 +626,16 @@ theorem RingHom.isIntegral_of_isIntegral_mul_unit (x y : S) (r : R) (hr : f r *
   rw [mul_comm x y, ← mul_assoc, hr, one_mul]
 #align ring_hom.is_integral_of_is_integral_mul_unit RingHom.isIntegral_of_isIntegral_mul_unit
 
-theorem isIntegral_of_isIntegral_mul_unit {x y : A} {r : R} (hr : algebraMap R A r * y = 1)
+theorem IsIntegral.of_mul_unit {x y : A} {r : R} (hr : algebraMap R A r * y = 1)
     (hx : IsIntegral R (x * y)) : IsIntegral R x :=
   (algebraMap R A).isIntegral_of_isIntegral_mul_unit x y r hr hx
-#align is_integral_of_is_integral_mul_unit isIntegral_of_isIntegral_mul_unit
+#align is_integral_of_is_integral_mul_unit IsIntegral.of_mul_unit
 
 /-- Generalization of `isIntegral_of_mem_closure` bootstrapped up from that lemma -/
 theorem isIntegral_of_mem_closure' (G : Set A) (hG : ∀ x ∈ G, IsIntegral R x) :
     ∀ x ∈ Subring.closure G, IsIntegral R x := fun _ hx =>
-  Subring.closure_induction hx hG isIntegral_zero isIntegral_one (fun _ _ => isIntegral_add)
-    (fun _ => isIntegral_neg) fun _ _ => isIntegral_mul
+  Subring.closure_induction hx hG isIntegral_zero isIntegral_one (fun _ _ => IsIntegral.add)
+    (fun _ => IsIntegral.neg) fun _ _ => IsIntegral.mul
 #align is_integral_of_mem_closure' isIntegral_of_mem_closure'
 
 theorem isIntegral_of_mem_closure'' {S : Type*} [CommRing S] {f : R →+* S} (G : Set S)
@@ -682,7 +683,7 @@ theorem IsIntegral.det {n : Type*} [Fintype n] [DecidableEq n] {M : Matrix n n A
 
 @[simp]
 theorem IsIntegral.pow_iff {x : A} {n : ℕ} (hn : 0 < n) : IsIntegral R (x ^ n) ↔ IsIntegral R x :=
-  ⟨isIntegral_of_pow hn, fun hx => IsIntegral.pow hx n⟩
+  ⟨IsIntegral.of_pow hn, fun hx => IsIntegral.pow hx n⟩
 #align is_integral.pow_iff IsIntegral.pow_iff
 
 open TensorProduct
@@ -892,13 +893,13 @@ theorem mk'_zero (h : IsIntegral R (0 : B) := isIntegral_zero) : mk' A 0 h = 0 :
 
 -- Porting note: Left-hand side does not simplify @[simp]
 theorem mk'_add (x y : B) (hx : IsIntegral R x) (hy : IsIntegral R y) :
-    mk' A (x + y) (isIntegral_add hx hy) = mk' A x hx + mk' A y hy :=
+    mk' A (x + y) (IsIntegral.add hx hy) = mk' A x hx + mk' A y hy :=
   algebraMap_injective A R B <| by simp only [algebraMap_mk', RingHom.map_add]
 #align is_integral_closure.mk'_add IsIntegralClosure.mk'_add
 
 -- Porting note: Left-hand side does not simplify @[simp]
 theorem mk'_mul (x y : B) (hx : IsIntegral R x) (hy : IsIntegral R y) :
-    mk' A (x * y) (isIntegral_mul hx hy) = mk' A x hx * mk' A y hy :=
+    mk' A (x * y) (IsIntegral.mul hx hy) = mk' A x hx * mk' A y hy :=
   algebraMap_injective A R B <| by simp only [algebraMap_mk', RingHom.map_mul]
 #align is_integral_closure.mk'_mul IsIntegralClosure.mk'_mul
 
@@ -1011,13 +1012,13 @@ theorem isIntegral_trans (A_int : Algebra.IsIntegral R A) (x : B) (hx : IsIntegr
     IsIntegral R x := by
   rcases hx with ⟨p, pmonic, hp⟩
   let S : Set B := ↑(p.map <| algebraMap A B).frange
-  refine' isIntegral_of_mem_of_FG (adjoin R (S ∪ {x})) _ _ (subset_adjoin <| Or.inr rfl)
-  refine' fg_trans (FG_adjoin_of_finite (Finset.finite_toSet _) fun x hx => _) _
+  refine' IsIntegral.of_mem_of_fg (adjoin R (S ∪ {x})) _ _ (subset_adjoin <| Or.inr rfl)
+  refine' fg_trans (fg_adjoin_of_finite (Finset.finite_toSet _) fun x hx => _) _
   · rw [Finset.mem_coe, frange, Finset.mem_image] at hx
     rcases hx with ⟨i, _, rfl⟩
     rw [coeff_map]
-    exact map_isIntegral (IsScalarTower.toAlgHom R A B) (A_int _)
-  · apply FG_adjoin_singleton_of_integral
+    exact IsIntegral.map (IsScalarTower.toAlgHom R A B) (A_int _)
+  · apply IsIntegral.fg_adjoin_singleton
     exact isIntegral_trans_aux _ pmonic hp
 #align is_integral_trans isIntegral_trans
 
@@ -1047,7 +1048,7 @@ theorem isIntegral_of_surjective (h : Function.Surjective (algebraMap R A)) :
 
 /-- If `R → A → B` is an algebra tower with `A → B` injective,
 then if the entire tower is an integral extension so is `R → A` -/
-theorem isIntegral_tower_bot_of_isIntegral (H : Function.Injective (algebraMap A B)) {x : A}
+theorem IsIntegral.tower_bot (H : Function.Injective (algebraMap A B)) {x : A}
     (h : IsIntegral R (algebraMap A B x)) : IsIntegral R x := by
   rcases h with ⟨p, ⟨hp, hp'⟩⟩
   refine' ⟨p, ⟨hp, _⟩⟩
@@ -1055,21 +1056,21 @@ theorem isIntegral_tower_bot_of_isIntegral (H : Function.Injective (algebraMap A
     RingHom.map_zero (algebraMap A B)] at hp'
   rw [eval₂_eq_eval_map]
   exact H hp'
-#align is_integral_tower_bot_of_is_integral isIntegral_tower_bot_of_isIntegral
+#align is_integral_tower_bot_of_is_integral IsIntegral.tower_bot
 
 nonrec theorem RingHom.isIntegral_tower_bot_of_isIntegral (hg : Function.Injective g)
     (hfg : (g.comp f).IsIntegral) : f.IsIntegral := fun x =>
-  @isIntegral_tower_bot_of_isIntegral R S T _ _ _ g.toAlgebra (g.comp f).toAlgebra f.toAlgebra
+  @IsIntegral.tower_bot R S T _ _ _ g.toAlgebra (g.comp f).toAlgebra f.toAlgebra
     (@IsScalarTower.of_algebraMap_eq R S T _ _ _ f.toAlgebra g.toAlgebra (g.comp f).toAlgebra
       (RingHom.comp_apply g f))
     hg x (hfg (g x))
 #align ring_hom.is_integral_tower_bot_of_is_integral RingHom.isIntegral_tower_bot_of_isIntegral
 
-theorem isIntegral_tower_bot_of_isIntegral_field {R A B : Type*} [CommRing R] [Field A]
+theorem IsIntegral.tower_bot_of_field {R A B : Type*} [CommRing R] [Field A]
     [CommRing B] [Nontrivial B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B]
     {x : A} (h : IsIntegral R (algebraMap A B x)) : IsIntegral R x :=
-  isIntegral_tower_bot_of_isIntegral (algebraMap A B).injective h
-#align is_integral_tower_bot_of_is_integral_field isIntegral_tower_bot_of_isIntegral_field
+  IsIntegral.tower_bot (algebraMap A B).injective h
+#align is_integral_tower_bot_of_is_integral_field IsIntegral.tower_bot_of_field
 
 theorem RingHom.isIntegralElem_of_isIntegralElem_comp {x : T} (h : (g.comp f).IsIntegralElem x) :
     g.IsIntegralElem x :=
@@ -1098,10 +1099,10 @@ theorem RingHom.isIntegral_quotient_of_isIntegral {I : Ideal S} (hf : f.IsIntegr
   simpa only [hom_eval₂, eval₂_map] using congr_arg (Ideal.Quotient.mk I) hpx
 #align ring_hom.is_integral_quotient_of_is_integral RingHom.isIntegral_quotient_of_isIntegral
 
-theorem isIntegral_quotient_of_isIntegral {I : Ideal A} (hRA : Algebra.IsIntegral R A) :
+theorem Algebra.IsIntegral.quotient {I : Ideal A} (hRA : Algebra.IsIntegral R A) :
     Algebra.IsIntegral (R ⧸ I.comap (algebraMap R A)) (A ⧸ I) :=
   (algebraMap R A).isIntegral_quotient_of_isIntegral hRA
-#align is_integral_quotient_of_is_integral isIntegral_quotient_of_isIntegral
+#align is_integral_quotient_of_is_integral Algebra.IsIntegral.quotient
 
 theorem isIntegral_quotientMap_iff {I : Ideal S} :
     (Ideal.quotientMap I f le_rfl).IsIntegral ↔
@@ -1161,7 +1162,7 @@ theorem isField_of_isIntegral_of_isField' {R S : Type*} [CommRing R] [CommRing S
   let A := Algebra.adjoin R ({x} : Set S)
   haveI : IsNoetherian R A :=
     isNoetherian_of_fg_of_noetherian (Subalgebra.toSubmodule A)
-      (FG_adjoin_singleton_of_integral x (H x))
+      (IsIntegral.fg_adjoin_singleton x (H x))
   haveI : Module.Finite R A := Module.IsNoetherian.finite R A
   obtain ⟨y, hy⟩ :=
     LinearMap.surjective_of_injective
chore: make sure all #align's are on a single line (#8215)

We'll need to do this step anyway when it is time to remove them all.

(See #8214 where I'm benchmarking the removal.)

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

Diff
@@ -1075,8 +1075,7 @@ theorem RingHom.isIntegralElem_of_isIntegralElem_comp {x : T} (h : (g.comp f).Is
     g.IsIntegralElem x :=
   let ⟨p, ⟨hp, hp'⟩⟩ := h
   ⟨p.map f, hp.map f, by rwa [← eval₂_map] at hp'⟩
-#align ring_hom.is_integral_elem_of_is_integral_elem_comp
-  RingHom.isIntegralElem_of_isIntegralElem_comp
+#align ring_hom.is_integral_elem_of_is_integral_elem_comp RingHom.isIntegralElem_of_isIntegralElem_comp
 
 theorem RingHom.isIntegral_tower_top_of_isIntegral (h : (g.comp f).IsIntegral) : g.IsIntegral :=
   fun x => RingHom.isIntegralElem_of_isIntegralElem_comp f g (h x)
fix: patch for std4#195 (more succ/pred lemmas for Nat) (#6203)
Diff
@@ -728,7 +728,7 @@ theorem normalizeScaleRoots_coeff_mul_leadingCoeff_pow (i : ℕ) (hp : 1 ≤ nat
   · simp [h₁]
   · rw [h₂, leadingCoeff, ← pow_succ, tsub_add_cancel_of_le hp]
   · rw [mul_assoc, ← pow_add, tsub_add_cancel_of_le]
-    apply Nat.le_pred_of_lt
+    apply Nat.le_sub_one_of_lt
     rw [lt_iff_le_and_ne]
     exact ⟨le_natDegree_of_ne_zero h₁, h₂⟩
 #align normalize_scale_roots_coeff_mul_leading_coeff_pow normalizeScaleRoots_coeff_mul_leadingCoeff_pow
chore: golf IsSplittingField.algEquiv (#8142)

Also golfs Normal.of_algEquiv and Algebra.IsIntegral.of_finite and refactors Algebra.IsAlgebraic.bijective_of_isScalarTower.

Diff
@@ -458,12 +458,8 @@ theorem Algebra.IsIntegral.finite (h : Algebra.IsIntegral R A) [h' : Algebra.Fin
   exact Algebra.smul_def _ _
 #align algebra.is_integral.finite Algebra.IsIntegral.finite
 
-theorem Algebra.IsIntegral.of_finite [h : Module.Finite R A] : Algebra.IsIntegral R A := by
-  apply RingHom.Finite.to_isIntegral
-  rw [RingHom.Finite]
-  convert h
-  ext
-  exact (Algebra.smul_def _ _).symm
+theorem Algebra.IsIntegral.of_finite [h : Module.Finite R A] : Algebra.IsIntegral R A :=
+  fun _ ↦ isIntegral_of_mem_of_FG ⊤ h.1 _ trivial
 #align algebra.is_integral.of_finite Algebra.IsIntegral.of_finite
 
 /-- finite = integral + finite type -/
refactor(Algebra/Algebra/Subalgebra/Basic): use a better defeq for ⊥ : Subalgebra R A (#8038)

And the same thing for StarSubalgebra R A. IntermediateField was already handled in #7957.

As a result, nine (obvious) lemmas are now true by definition.

This slightly adjusts the statement of Algebra.toSubmodule_bot to make it simpler and true by definition; the original statement can be recovered by rewriting by Submodule.one_eq_span, which I've had to add in some downstream proofs.

Diff
@@ -250,9 +250,7 @@ theorem FG_adjoin_of_finite {s : Set A} (hfs : s.Finite) (his : ∀ x ∈ s, IsI
     (fun _ =>
       ⟨{1},
         Submodule.ext fun x => by
-          erw [Algebra.adjoin_empty, Finset.coe_singleton, ← one_eq_span, one_eq_range,
-            LinearMap.mem_range, Algebra.mem_bot]
-          rfl⟩)
+          rw [Algebra.adjoin_empty, Finset.coe_singleton, ← one_eq_span, Algebra.toSubmodule_bot]⟩)
     (fun {a s} _ _ ih his => by
       rw [← Set.union_singleton, Algebra.adjoin_union_coe_submodule]
       exact
chore: remove nonterminal simp (#7580)

Removes nonterminal simps on lines looking like simp [...]

Diff
@@ -348,7 +348,7 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
       rw [Algebra.algebraMap_eq_smul_one]
       exact smul_mem (span S₀ (insert (1 : A) (y : Set A))) y' (subset_span (Or.inl rfl))
   have foo : ∀ z, z ∈ S₁ ↔ z ∈ Algebra.adjoin (↥S₀) (y : Set A)
-  simp [this]
+  simp only [this, Finset.univ_eq_attach, Subalgebra.mem_toSubring, forall_const]
   haveI : IsNoetherianRing S₀ := is_noetherian_subring_closure _ (Finset.finite_toSet _)
   refine'
     isIntegral_of_submodule_noetherian (Algebra.adjoin S₀ ↑y)
chore: missing spaces after rcases, convert and congrm (#7725)

Replace rcases( with rcases (. Same thing for convert( and congrm(. No other change.

Diff
@@ -227,7 +227,7 @@ theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
     exact (Algebra.adjoin R {x}).pow_mem (Algebra.subset_adjoin (Set.mem_singleton _)) k
   intro r hr; change r ∈ Algebra.adjoin R ({x} : Set A) at hr
   rw [Algebra.adjoin_singleton_eq_range_aeval] at hr
-  rcases(aeval x).mem_range.mp hr with ⟨p, rfl⟩
+  rcases (aeval x).mem_range.mp hr with ⟨p, rfl⟩
   rw [← modByMonic_add_div p hfm]
   rw [← aeval_def] at hfx
   rw [AlgHom.map_add, AlgHom.map_mul, hfx, zero_mul, add_zero]
chore: exactly 4 spaces in theorems (#7328)

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

Diff
@@ -848,7 +848,7 @@ namespace IsIntegralClosure
 
 -- Porting note: added to work around missing infer kind support
 theorem algebraMap_injective (A R B : Type*) [CommRing R] [CommSemiring A] [CommRing B]
-  [Algebra R B] [Algebra A B] [IsIntegralClosure A R B] : Function.Injective (algebraMap A B) :=
+    [Algebra R B] [Algebra A B] [IsIntegralClosure A R B] : Function.Injective (algebraMap A B) :=
   algebraMap_injective' R
 
 variable {R A B : Type*} [CommRing R] [CommRing A] [CommRing B]
feat: roots in an algebra (#6740)

Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>

Diff
@@ -1204,7 +1204,7 @@ instance : IsDomain (integralClosure R S) :=
   inferInstance
 
 theorem roots_mem_integralClosure {f : R[X]} (hf : f.Monic) {a : S}
-    (ha : a ∈ (f.map <| algebraMap R S).roots) : a ∈ integralClosure R S :=
+    (ha : a ∈ f.aroots S) : a ∈ integralClosure R S :=
   ⟨f, hf, (eval₂_eq_eval_map _).trans <| (mem_roots <| (hf.map _).ne_zero).1 ha⟩
 #align roots_mem_integral_closure roots_mem_integralClosure
 
feat: patch for new alias command (#6172)
Diff
@@ -424,7 +424,7 @@ theorem RingHom.Finite.to_isIntegral (h : f.Finite) : f.IsIntegral :=
   fun _ => isIntegral_of_mem_of_FG ⊤ h.1 _ trivial
 #align ring_hom.finite.to_is_integral RingHom.Finite.to_isIntegral
 
-alias RingHom.Finite.to_isIntegral ← RingHom.IsIntegral.of_finite
+alias RingHom.IsIntegral.of_finite := RingHom.Finite.to_isIntegral
 #align ring_hom.is_integral.of_finite RingHom.IsIntegral.of_finite
 
 theorem RingHom.IsIntegral.to_finite (h : f.IsIntegral) (h' : f.FiniteType) : f.Finite := by
@@ -436,7 +436,7 @@ theorem RingHom.IsIntegral.to_finite (h : f.IsIntegral) (h' : f.FiniteType) : f.
   exact FG_adjoin_of_finite (Set.toFinite _) fun x _ => h x
 #align ring_hom.is_integral.to_finite RingHom.IsIntegral.to_finite
 
-alias RingHom.IsIntegral.to_finite ← RingHom.Finite.of_isIntegral_of_finiteType
+alias RingHom.Finite.of_isIntegral_of_finiteType := RingHom.IsIntegral.to_finite
 #align ring_hom.finite.of_is_integral_of_finite_type RingHom.Finite.of_isIntegral_of_finiteType
 
 /-- finite = integral + finite type -/
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
@@ -230,7 +230,7 @@ theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
   rcases(aeval x).mem_range.mp hr with ⟨p, rfl⟩
   rw [← modByMonic_add_div p hfm]
   rw [← aeval_def] at hfx
-  rw [AlgHom.map_add, AlgHom.map_mul, hfx, MulZeroClass.zero_mul, add_zero]
+  rw [AlgHom.map_add, AlgHom.map_mul, hfx, zero_mul, add_zero]
   have : degree (p %ₘ f) ≤ degree f := degree_modByMonic_le p hfm
   generalize p %ₘ f = q at this ⊢
   rw [← sum_C_mul_X_pow_eq q, aeval_def, eval₂_sum, sum_def]
@@ -707,7 +707,7 @@ theorem IsIntegral.tmul (x : A) {y : B} (h : IsIntegral R y) : IsIntegral A (x 
       Algebra.TensorProduct.tmul_mul_tmul, mul_one, one_mul]
   · simp only [Algebra.TensorProduct.includeLeftRingHom_apply, Algebra.TensorProduct.tmul_pow,
       one_pow]
-    convert (MulZeroClass.mul_zero (M₀ := A ⊗[R] B) _).symm
+    convert (mul_zero (M₀ := A ⊗[R] B) _).symm
     erw [Polynomial.eval₂_map, Algebra.TensorProduct.includeLeftRingHom_comp_algebraMap,
       ← Polynomial.eval₂_map]
     convert Polynomial.eval₂_at_apply
@@ -729,7 +729,7 @@ theorem normalizeScaleRoots_coeff_mul_leadingCoeff_pow (i : ℕ) (hp : 1 ≤ nat
     (normalizeScaleRoots p).coeff i * p.leadingCoeff ^ i =
       p.coeff i * p.leadingCoeff ^ (p.natDegree - 1) := by
   simp only [normalizeScaleRoots, finset_sum_coeff, coeff_monomial, Finset.sum_ite_eq', one_mul,
-    MulZeroClass.zero_mul, mem_support_iff, ite_mul, Ne.def, ite_not]
+    zero_mul, mem_support_iff, ite_mul, Ne.def, ite_not]
   split_ifs with h₁ h₂
   · simp [h₁]
   · rw [h₂, leadingCoeff, ← pow_succ, tsub_add_cancel_of_le hp]
@@ -801,11 +801,11 @@ theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
       rw [h'', natDegree_zero] at h'
       exact Nat.not_succ_le_zero 0 h'
     use normalizeScaleRoots_monic p this
-    rw [normalizeScaleRoots_eval₂_leadingCoeff_mul p h' f x, h, MulZeroClass.mul_zero]
+    rw [normalizeScaleRoots_eval₂_leadingCoeff_mul p h' f x, h, mul_zero]
   · by_cases hp : p.map f = 0
     · apply_fun fun q => coeff q p.natDegree at hp
       rw [coeff_map, coeff_zero, coeff_natDegree] at hp
-      rw [hp, MulZeroClass.zero_mul]
+      rw [hp, zero_mul]
       exact f.is_integral_zero
     · rw [Nat.one_le_iff_ne_zero, Classical.not_not] at h'
       rw [eq_C_of_natDegree_eq_zero h', eval₂_C] at h
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
@@ -37,7 +37,7 @@ open Classical BigOperators Polynomial Submodule
 
 section Ring
 
-variable {R S A : Type _}
+variable {R S A : Type*}
 
 variable [CommRing R] [Ring A] [Ring S] (f : R →+* S)
 
@@ -115,7 +115,7 @@ end Ring
 
 section
 
-variable {K A : Type _}
+variable {K A : Type*}
 
 variable [Field K] [Ring A] [Algebra K A] [FiniteDimensional K A]
 
@@ -135,13 +135,13 @@ end
 
 section
 
-variable {R A B S : Type _}
+variable {R A B S : Type*}
 
 variable [CommRing R] [CommRing A] [CommRing B] [CommRing S]
 
 variable [Algebra R A] [Algebra R B] (f : R →+* S)
 
-theorem map_isIntegral {B C F : Type _} [Ring B] [Ring C] [Algebra R B] [Algebra A B] [Algebra R C]
+theorem map_isIntegral {B C F : Type*} [Ring B] [Ring C] [Algebra R B] [Algebra A B] [Algebra R C]
     [IsScalarTower R A B] [Algebra A C] [IsScalarTower R A C] {b : B} [AlgHomClass F A B C] (f : F)
     (hb : IsIntegral R b) : IsIntegral R (f b) := by
   obtain ⟨P, hP⟩ := hb
@@ -150,7 +150,7 @@ theorem map_isIntegral {B C F : Type _} [Ring B] [Ring C] [Algebra R B] [Algebra
     aeval_algHom_apply, aeval_map_algebraMap, aeval_def, hP.2, _root_.map_zero]
 #align map_is_integral map_isIntegral
 
-theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type _} [CommRing R] [CommRing S]
+theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type*} [CommRing R] [CommRing S]
     [CommRing T] [CommRing U] [Algebra R S] [Algebra T U] (φ : R →+* T) (ψ : S →+* U)
     (h : (algebraMap T U).comp φ = ψ.comp (algebraMap R S)) {a : S} (ha : IsIntegral R a) :
     IsIntegral T (ψ a) := by
@@ -161,7 +161,7 @@ theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type _} [CommRing R]
     RingHom.map_zero]
 #align is_integral_map_of_comp_eq_of_is_integral isIntegral_map_of_comp_eq_of_isIntegral
 
-theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
+theorem isIntegral_algHom_iff {A B : Type*} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
     (f : A →ₐ[R] B) (hf : Function.Injective f) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x := by
   refine' ⟨_, map_isIntegral f⟩
   rintro ⟨p, hp, hx⟩
@@ -171,7 +171,7 @@ theorem isIntegral_algHom_iff {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Al
 #align is_integral_alg_hom_iff isIntegral_algHom_iff
 
 @[simp]
-theorem isIntegral_algEquiv {A B : Type _} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
+theorem isIntegral_algEquiv {A B : Type*} [Ring A] [Ring B] [Algebra R A] [Algebra R B]
     (f : A ≃ₐ[R] B) {x : A} : IsIntegral R (f x) ↔ IsIntegral R x :=
   ⟨fun h => by simpa using map_isIntegral f.symm.toAlgHom h, map_isIntegral f.toAlgHom⟩
 #align is_integral_alg_equiv isIntegral_algEquiv
@@ -182,7 +182,7 @@ theorem isIntegral_of_isScalarTower [Algebra A B] [IsScalarTower R A B] {x : B}
   ⟨p.map <| algebraMap R A, hp.map _, by rw [← aeval_def, aeval_map_algebraMap, aeval_def, hpx]⟩
 #align is_integral_of_is_scalar_tower isIntegral_of_isScalarTower
 
-theorem map_isIntegral_int {B C F : Type _} [Ring B] [Ring C] {b : B} [RingHomClass F B C] (f : F)
+theorem map_isIntegral_int {B C F : Type*} [Ring B] [Ring C] {b : B} [RingHomClass F B C] (f : F)
     (hb : IsIntegral ℤ b) : IsIntegral ℤ (f b) :=
   map_isIntegral (f : B →+* C).toIntAlgHom hb
 #align map_is_integral_int map_isIntegral_int
@@ -369,14 +369,14 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
   exact Subalgebra.smul_mem _ (Algebra.subset_adjoin <| hlx1 hr) _
 #align is_integral_of_mem_of_fg isIntegral_of_mem_of_FG
 
-theorem Module.End.isIntegral {M : Type _} [AddCommGroup M] [Module R M] [Module.Finite R M] :
+theorem Module.End.isIntegral {M : Type*} [AddCommGroup M] [Module R M] [Module.Finite R M] :
     Algebra.IsIntegral R (Module.End R M) :=
   LinearMap.exists_monic_and_aeval_eq_zero R
 #align module.End.is_integral Module.End.isIntegral
 
 /-- Suppose `A` is an `R`-algebra, `M` is an `A`-module such that `a • m ≠ 0` for all non-zero `a`
 and `m`. If `x : A` fixes a nontrivial f.g. `R`-submodule `N` of `M`, then `x` is `R`-integral. -/
-theorem isIntegral_of_smul_mem_submodule {M : Type _} [AddCommGroup M] [Module R M] [Module A M]
+theorem isIntegral_of_smul_mem_submodule {M : Type*} [AddCommGroup M] [Module R M] [Module A M]
     [IsScalarTower R A M] [NoZeroSMulDivisors A M] (N : Submodule R M) (hN : N ≠ ⊥) (hN' : N.FG)
     (x : A) (hx : ∀ n ∈ N, x • n ∈ N) : IsIntegral R x := by
   let A' : Subalgebra R A :=
@@ -643,7 +643,7 @@ theorem isIntegral_of_mem_closure' (G : Set A) (hG : ∀ x ∈ G, IsIntegral R x
     (fun _ => isIntegral_neg) fun _ _ => isIntegral_mul
 #align is_integral_of_mem_closure' isIntegral_of_mem_closure'
 
-theorem isIntegral_of_mem_closure'' {S : Type _} [CommRing S] {f : R →+* S} (G : Set S)
+theorem isIntegral_of_mem_closure'' {S : Type*} [CommRing S] {f : R →+* S} (G : Set S)
     (hG : ∀ x ∈ G, f.IsIntegralElem x) : ∀ x ∈ Subring.closure G, f.IsIntegralElem x := fun x hx =>
   @isIntegral_of_mem_closure' R S _ _ f.toAlgebra G hG x hx
 #align is_integral_of_mem_closure'' isIntegral_of_mem_closure''
@@ -670,17 +670,17 @@ theorem IsIntegral.multiset_sum {s : Multiset A} (h : ∀ x ∈ s, IsIntegral R
   (integralClosure R A).multiset_sum_mem h
 #align is_integral.multiset_sum IsIntegral.multiset_sum
 
-theorem IsIntegral.prod {α : Type _} {s : Finset α} (f : α → A) (h : ∀ x ∈ s, IsIntegral R (f x)) :
+theorem IsIntegral.prod {α : Type*} {s : Finset α} (f : α → A) (h : ∀ x ∈ s, IsIntegral R (f x)) :
     IsIntegral R (∏ x in s, f x) :=
   (integralClosure R A).prod_mem h
 #align is_integral.prod IsIntegral.prod
 
-theorem IsIntegral.sum {α : Type _} {s : Finset α} (f : α → A) (h : ∀ x ∈ s, IsIntegral R (f x)) :
+theorem IsIntegral.sum {α : Type*} {s : Finset α} (f : α → A) (h : ∀ x ∈ s, IsIntegral R (f x)) :
     IsIntegral R (∑ x in s, f x) :=
   (integralClosure R A).sum_mem h
 #align is_integral.sum IsIntegral.sum
 
-theorem IsIntegral.det {n : Type _} [Fintype n] [DecidableEq n] {M : Matrix n n A}
+theorem IsIntegral.det {n : Type*} [Fintype n] [DecidableEq n] {M : Matrix n n A}
     (h : ∀ i j, IsIntegral R (M i j)) : IsIntegral R M.det := by
   rw [Matrix.det_apply]
   exact IsIntegral.sum _ fun σ _hσ => IsIntegral.zsmul (IsIntegral.prod _ fun i _hi => h _ _) _
@@ -832,13 +832,13 @@ section IsIntegralClosure
 the integral closure of `R` in `B`,
 i.e. that an element of `B` is integral over `R` iff it is an element of (the image of) `A`.
 -/
-class IsIntegralClosure (A R B : Type _) [CommRing R] [CommSemiring A] [CommRing B] [Algebra R B]
+class IsIntegralClosure (A R B : Type*) [CommRing R] [CommSemiring A] [CommRing B] [Algebra R B]
   [Algebra A B] : Prop where
   algebraMap_injective' : Function.Injective (algebraMap A B)
   isIntegral_iff : ∀ {x : B}, IsIntegral R x ↔ ∃ y, algebraMap A B y = x
 #align is_integral_closure IsIntegralClosure
 
-instance integralClosure.isIntegralClosure (R A : Type _) [CommRing R] [CommRing A] [Algebra R A] :
+instance integralClosure.isIntegralClosure (R A : Type*) [CommRing R] [CommRing A] [Algebra R A] :
     IsIntegralClosure (integralClosure R A) R A where
   algebraMap_injective' := Subtype.coe_injective
   isIntegral_iff {x} := ⟨fun h => ⟨⟨x, h⟩, rfl⟩, by rintro ⟨⟨_, h⟩, rfl⟩; exact h⟩
@@ -847,11 +847,11 @@ instance integralClosure.isIntegralClosure (R A : Type _) [CommRing R] [CommRing
 namespace IsIntegralClosure
 
 -- Porting note: added to work around missing infer kind support
-theorem algebraMap_injective (A R B : Type _) [CommRing R] [CommSemiring A] [CommRing B]
+theorem algebraMap_injective (A R B : Type*) [CommRing R] [CommSemiring A] [CommRing B]
   [Algebra R B] [Algebra A B] [IsIntegralClosure A R B] : Function.Injective (algebraMap A B) :=
   algebraMap_injective' R
 
-variable {R A B : Type _} [CommRing R] [CommRing A] [CommRing B]
+variable {R A B : Type*} [CommRing R] [CommRing A] [CommRing B]
 
 variable [Algebra R B] [Algebra A B] [IsIntegralClosure A R B]
 
@@ -918,7 +918,7 @@ theorem mk'_algebraMap [Algebra R A] [IsScalarTower R A B] (x : R)
 section lift
 
 -- porting note: `R` and `A` were redundant binder updates
-variable (B) {S : Type _} [CommRing S] [Algebra R S]
+variable (B) {S : Type*} [CommRing S] [Algebra R S]
 -- split from above, since otherwise it does not synthesize `Semiring S`
 variable [Algebra S B] [IsScalarTower R S B]
 
@@ -944,7 +944,7 @@ end lift
 
 section Equiv
 
-variable (R B) (A' : Type _) [CommRing A']
+variable (R B) (A' : Type*) [CommRing A']
 variable [Algebra A' B] [IsIntegralClosure A' R B]
 
 variable [Algebra R A] [Algebra R A'] [IsScalarTower R A B] [IsScalarTower R A' B]
@@ -977,7 +977,7 @@ section Algebra
 
 open Algebra
 
-variable {R A B S T : Type _}
+variable {R A B S T : Type*}
 
 variable [CommRing R] [CommRing A] [CommRing B] [CommRing S] [CommRing T]
 
@@ -1071,7 +1071,7 @@ nonrec theorem RingHom.isIntegral_tower_bot_of_isIntegral (hg : Function.Injecti
     hg x (hfg (g x))
 #align ring_hom.is_integral_tower_bot_of_is_integral RingHom.isIntegral_tower_bot_of_isIntegral
 
-theorem isIntegral_tower_bot_of_isIntegral_field {R A B : Type _} [CommRing R] [Field A]
+theorem isIntegral_tower_bot_of_isIntegral_field {R A B : Type*} [CommRing R] [Field A]
     [CommRing B] [Nontrivial B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B]
     {x : A} (h : IsIntegral R (algebraMap A B x)) : IsIntegral R x :=
   isIntegral_tower_bot_of_isIntegral (algebraMap A B).injective h
@@ -1123,7 +1123,7 @@ theorem isIntegral_quotientMap_iff {I : Ideal S} :
 #align is_integral_quotient_map_iff isIntegral_quotientMap_iff
 
 /-- If the integral extension `R → S` is injective, and `S` is a field, then `R` is also a field. -/
-theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial R] [CommRing S]
+theorem isField_of_isIntegral_of_isField {R S : Type*} [CommRing R] [Nontrivial R] [CommRing S]
     [IsDomain S] [Algebra R S] (H : Algebra.IsIntegral R S)
     (hRS : Function.Injective (algebraMap R S)) (hS : IsField S) : IsField R := by
   refine' ⟨⟨0, 1, zero_ne_one⟩, mul_comm, fun {a} ha => _⟩
@@ -1161,7 +1161,7 @@ theorem isField_of_isIntegral_of_isField {R S : Type _} [CommRing R] [Nontrivial
   rw [mul_assoc, ← pow_succ', tsub_add_cancel_of_le this]
 #align is_field_of_is_integral_of_is_field isField_of_isIntegral_of_isField
 
-theorem isField_of_isIntegral_of_isField' {R S : Type _} [CommRing R] [CommRing S] [IsDomain S]
+theorem isField_of_isIntegral_of_isField' {R S : Type*} [CommRing R] [CommRing S] [IsDomain S]
     [Algebra R S] (H : Algebra.IsIntegral R S) (hR : IsField R) : IsField S := by
   letI := hR.toField
   refine' ⟨⟨0, 1, zero_ne_one⟩, mul_comm, fun {x} hx => _⟩
@@ -1178,7 +1178,7 @@ theorem isField_of_isIntegral_of_isField' {R S : Type _} [CommRing R] [CommRing
   exact ⟨y, Subtype.ext_iff.mp hy⟩
 #align is_field_of_is_integral_of_is_field' isField_of_isIntegral_of_isField'
 
-theorem Algebra.IsIntegral.isField_iff_isField {R S : Type _} [CommRing R] [Nontrivial R]
+theorem Algebra.IsIntegral.isField_iff_isField {R S : Type*} [CommRing R] [Nontrivial R]
     [CommRing S] [IsDomain S] [Algebra R S] (H : Algebra.IsIntegral R S)
     (hRS : Function.Injective (algebraMap R S)) : IsField R ↔ IsField S :=
   ⟨isField_of_isIntegral_of_isField' H, isField_of_isIntegral_of_isField H hRS⟩
@@ -1186,7 +1186,7 @@ theorem Algebra.IsIntegral.isField_iff_isField {R S : Type _} [CommRing R] [Nont
 
 end Algebra
 
-theorem integralClosure_idem {R : Type _} {A : Type _} [CommRing R] [CommRing A] [Algebra R A] :
+theorem integralClosure_idem {R : Type*} {A : Type*} [CommRing R] [CommRing A] [Algebra R A] :
     integralClosure (integralClosure R A : Set A) A = ⊥ :=
   eq_bot_iff.2 fun x hx =>
     Algebra.mem_bot.2
@@ -1198,7 +1198,7 @@ theorem integralClosure_idem {R : Type _} {A : Type _} [CommRing R] [CommRing A]
 
 section IsDomain
 
-variable {R S : Type _} [CommRing R] [CommRing S] [IsDomain S] [Algebra R S]
+variable {R S : Type*} [CommRing R] [CommRing S] [IsDomain S] [Algebra R S]
 
 instance : IsDomain (integralClosure R S) :=
   inferInstance
feat(RingTheory/TensorProduct): heterogenize (#6417)

This:

  • Improves the module docstring, which was both out of date and not very informative
  • Addresses a TODO to generalize includeLeft to commuting actions. As a result a few downstream results are changed to be about includeLeftRingHom or a ⊗ₜ 1, as carrying around the extra useless ring just makes the lemmas harder to use. Nothing seems to suffer from this change.
  • Introduces TensorProduct.AlgebraTensorModule.rid
  • Generalizes the following to work for towers of rings:
    • Algebra.TensorProduct.algHomOfLinearMapTensorProduct
    • Algebra.TensorProduct.map
    • Algebra.TensorProduct.congr
    • Algebra.TensorProduct.endTensorEndAlgHom
    • Algebra.TensorProduct.ext (and renames it to Algebra.TensorProduct.ext')
    • Algebra.TensorProduct.rid
  • Introduces a new Algebra.TensorProduct.ext which follows "partially-applied ext lemmas", and uses it to golf a proof in RingTheory/Etale.lean

I need many of these results for building AlgEquivs relating to the base change of clifford algebras.

Diff
@@ -708,7 +708,7 @@ theorem IsIntegral.tmul (x : A) {y : B} (h : IsIntegral R y) : IsIntegral A (x 
   · simp only [Algebra.TensorProduct.includeLeftRingHom_apply, Algebra.TensorProduct.tmul_pow,
       one_pow]
     convert (MulZeroClass.mul_zero (M₀ := A ⊗[R] B) _).symm
-    erw [Polynomial.eval₂_map, Algebra.TensorProduct.includeLeft_comp_algebraMap,
+    erw [Polynomial.eval₂_map, Algebra.TensorProduct.includeLeftRingHom_comp_algebraMap,
       ← Polynomial.eval₂_map]
     convert Polynomial.eval₂_at_apply
       (Algebra.TensorProduct.includeRight : B →ₐ[R] A ⊗[R] B).toRingHom y
chore(FieldTheory/Adjoin): remove unnecessary assumptions in minpolynatDegree_le and minpoly.degree_le (#6152)

Also

  • fix the names of minpoly.natDegree_le and minpoly.degree_le
  • rename minpoly.ne_zero_of_finite_field_extension to minpoly.ne_zero_of_finite
  • reduce typeclass assumptions of some lemmas in RingTheory/Algebraic
  • add two lemmas isIntegral_of_finite and isAlgebraic_of_finite
  • move Algebra.isIntegral_of_finite to RingTheory/IntegralClosure
Diff
@@ -115,6 +115,26 @@ end Ring
 
 section
 
+variable {K A : Type _}
+
+variable [Field K] [Ring A] [Algebra K A] [FiniteDimensional K A]
+
+variable (K)
+
+theorem isIntegral_of_finite (e : A) : IsIntegral K e :=
+  isIntegral_of_noetherian (IsNoetherian.iff_fg.2 inferInstance) _
+
+variable (A)
+
+/-- A field extension is integral if it is finite. -/
+theorem Algebra.isIntegral_of_finite : Algebra.IsIntegral K A := fun x =>
+  isIntegral_of_submodule_noetherian ⊤ (IsNoetherian.iff_fg.2 inferInstance) x Algebra.mem_top
+#align algebra.is_integral_of_finite Algebra.isIntegral_of_finite
+
+end
+
+section
+
 variable {R A B S : Type _}
 
 variable [CommRing R] [CommRing A] [CommRing B] [CommRing S]
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,11 +2,6 @@
 Copyright (c) 2019 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau
-
-! This file was ported from Lean 3 source module ring_theory.integral_closure
-! leanprover-community/mathlib commit 641b6a82006416ec431b2987b354af9311fed4f2
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Polynomial.Expand
 import Mathlib.LinearAlgebra.FiniteDimensional
@@ -17,6 +12,8 @@ import Mathlib.RingTheory.Polynomial.ScaleRoots
 import Mathlib.RingTheory.Polynomial.Tower
 import Mathlib.RingTheory.TensorProduct
 
+#align_import ring_theory.integral_closure from "leanprover-community/mathlib"@"641b6a82006416ec431b2987b354af9311fed4f2"
+
 /-!
 # Integral closure of a subring.
 
feat: port RingTheory.Jacobson (#4338)

Co-authored-by: Jason Yuen <jason_yuen2007@hotmail.com> Co-authored-by: int-y1 <jason_yuen2007@hotmail.com> Co-authored-by: Antoine Chambert-Loir <antoine.chambert-loir@math.univ-paris-diderot.fr> Co-authored-by: Johan Commelin <johan@commelin.net> Co-authored-by: Jujian Zhang <jujian.zhang1998@outlook.com> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>

Diff
@@ -606,17 +606,17 @@ theorem integralClosure.isIntegral (x : integralClosure R A) : IsIntegral R x :=
       rwa [← aeval_def, ← Subalgebra.val_apply, aeval_algHom_apply] at hpx⟩
 #align integral_closure.is_integral integralClosure.isIntegral
 
-theorem RingHom.is_integral_of_is_integral_mul_unit (x y : S) (r : R) (hr : f r * y = 1)
+theorem RingHom.isIntegral_of_isIntegral_mul_unit (x y : S) (r : R) (hr : f r * y = 1)
     (hx : f.IsIntegralElem (x * y)) : f.IsIntegralElem x := by
   obtain ⟨p, ⟨p_monic, hp⟩⟩ := hx
   refine' ⟨scaleRoots p r, ⟨(monic_scaleRoots_iff r).2 p_monic, _⟩⟩
   convert scaleRoots_eval₂_eq_zero f hp
   rw [mul_comm x y, ← mul_assoc, hr, one_mul]
-#align ring_hom.is_integral_of_is_integral_mul_unit RingHom.is_integral_of_is_integral_mul_unit
+#align ring_hom.is_integral_of_is_integral_mul_unit RingHom.isIntegral_of_isIntegral_mul_unit
 
 theorem isIntegral_of_isIntegral_mul_unit {x y : A} {r : R} (hr : algebraMap R A r * y = 1)
     (hx : IsIntegral R (x * y)) : IsIntegral R x :=
-  (algebraMap R A).is_integral_of_is_integral_mul_unit x y r hr hx
+  (algebraMap R A).isIntegral_of_isIntegral_mul_unit x y r hr hx
 #align is_integral_of_is_integral_mul_unit isIntegral_of_isIntegral_mul_unit
 
 /-- Generalization of `isIntegral_of_mem_closure` bootstrapped up from that lemma -/
@@ -626,10 +626,10 @@ theorem isIntegral_of_mem_closure' (G : Set A) (hG : ∀ x ∈ G, IsIntegral R x
     (fun _ => isIntegral_neg) fun _ _ => isIntegral_mul
 #align is_integral_of_mem_closure' isIntegral_of_mem_closure'
 
-theorem is_integral_of_mem_closure'' {S : Type _} [CommRing S] {f : R →+* S} (G : Set S)
+theorem isIntegral_of_mem_closure'' {S : Type _} [CommRing S] {f : R →+* S} (G : Set S)
     (hG : ∀ x ∈ G, f.IsIntegralElem x) : ∀ x ∈ Subring.closure G, f.IsIntegralElem x := fun x hx =>
   @isIntegral_of_mem_closure' R S _ _ f.toAlgebra G hG x hx
-#align is_integral_of_mem_closure'' is_integral_of_mem_closure''
+#align is_integral_of_mem_closure'' isIntegral_of_mem_closure''
 
 theorem IsIntegral.pow {x : A} (h : IsIntegral R x) (n : ℕ) : IsIntegral R (x ^ n) :=
   (integralClosure R A).pow_mem h n
chore: fix align linebreaks (#5683)

The result of running

find . -type f -name "*.lean" -exec sed -i -E 'N;s/^#align ([^[:space:]]+)\n *([^[:space:]]+)$/#align \1 \2/' {} \;

Hopefully for the last time...

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

Diff
@@ -720,8 +720,7 @@ theorem normalizeScaleRoots_coeff_mul_leadingCoeff_pow (i : ℕ) (hp : 1 ≤ nat
     apply Nat.le_pred_of_lt
     rw [lt_iff_le_and_ne]
     exact ⟨le_natDegree_of_ne_zero h₁, h₂⟩
-#align normalize_scale_roots_coeff_mul_leading_coeff_pow
-  normalizeScaleRoots_coeff_mul_leadingCoeff_pow
+#align normalize_scale_roots_coeff_mul_leading_coeff_pow normalizeScaleRoots_coeff_mul_leadingCoeff_pow
 
 theorem leadingCoeff_smul_normalizeScaleRoots (p : R[X]) :
     p.leadingCoeff • normalizeScaleRoots p = scaleRoots p p.leadingCoeff := by
feat(Data.Set.Basic/Data.Finset.Basic): rename insert_subset (#5450)

Currently, (for both Set and Finset) insert_subset is an iff lemma stating that insert a s ⊆ t if and only if a ∈ t and s ⊆ t. For both types, this PR renames this lemma to insert_subset_iff, and adds an insert_subset lemma that gives the implication just in the reverse direction : namely theorem insert_subset (ha : a ∈ t) (hs : s ⊆ t) : insert a s ⊆ t .

This both aligns the naming with union_subset and union_subset_iff, and removes the need for the awkward insert_subset.mpr ⟨_,_⟩ idiom. It touches a lot of files (too many to list), but in a trivial way.

Diff
@@ -321,7 +321,8 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
     constructor <;> intro hz
     · exact
         (span_le.2
-          (Set.insert_subset.2 ⟨(Algebra.adjoin S₀ (y : Set A)).one_mem, Algebra.subset_adjoin⟩)) hz
+          (Set.insert_subset_iff.2
+            ⟨(Algebra.adjoin S₀ (y : Set A)).one_mem, Algebra.subset_adjoin⟩)) hz
     · rw [Subalgebra.mem_toSubmodule, Algebra.mem_adjoin_iff] at hz
       suffices Subring.closure (Set.range (algebraMap (↥S₀) A) ∪ ↑y) ≤ S₁ by exact this hz
       refine' Subring.closure_le.2 (Set.union_subset _ fun t ht => subset_span <| Or.inr ht)
@@ -719,7 +720,8 @@ theorem normalizeScaleRoots_coeff_mul_leadingCoeff_pow (i : ℕ) (hp : 1 ≤ nat
     apply Nat.le_pred_of_lt
     rw [lt_iff_le_and_ne]
     exact ⟨le_natDegree_of_ne_zero h₁, h₂⟩
-#align normalize_scale_roots_coeff_mul_leading_coeff_pow normalizeScaleRoots_coeff_mul_leadingCoeff_pow
+#align normalize_scale_roots_coeff_mul_leading_coeff_pow
+  normalizeScaleRoots_coeff_mul_leadingCoeff_pow
 
 theorem leadingCoeff_smul_normalizeScaleRoots (p : R[X]) :
     p.leadingCoeff • normalizeScaleRoots p = scaleRoots p p.leadingCoeff := by
@@ -1063,7 +1065,8 @@ theorem RingHom.isIntegralElem_of_isIntegralElem_comp {x : T} (h : (g.comp f).Is
     g.IsIntegralElem x :=
   let ⟨p, ⟨hp, hp'⟩⟩ := h
   ⟨p.map f, hp.map f, by rwa [← eval₂_map] at hp'⟩
-#align ring_hom.is_integral_elem_of_is_integral_elem_comp RingHom.isIntegralElem_of_isIntegralElem_comp
+#align ring_hom.is_integral_elem_of_is_integral_elem_comp
+  RingHom.isIntegralElem_of_isIntegralElem_comp
 
 theorem RingHom.isIntegral_tower_top_of_isIntegral (h : (g.comp f).IsIntegral) : g.IsIntegral :=
   fun x => RingHom.isIntegralElem_of_isIntegralElem_comp f g (h x)
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -137,7 +137,7 @@ theorem isIntegral_map_of_comp_eq_of_isIntegral {R S T U : Type _} [CommRing R]
     [CommRing T] [CommRing U] [Algebra R S] [Algebra T U] (φ : R →+* T) (ψ : S →+* U)
     (h : (algebraMap T U).comp φ = ψ.comp (algebraMap R S)) {a : S} (ha : IsIntegral R a) :
     IsIntegral T (ψ a) := by
-  rw [IsIntegral, RingHom.IsIntegralElem] at ha⊢
+  rw [IsIntegral, RingHom.IsIntegralElem] at ha ⊢
   obtain ⟨p, hp⟩ := ha
   refine' ⟨p.map φ, hp.left.map _, _⟩
   rw [← eval_map, map_map, h, ← map_map, eval_map, eval₂_at_apply, eval_map, hp.right,
@@ -215,7 +215,7 @@ theorem FG_adjoin_singleton_of_integral (x : A) (hx : IsIntegral R x) :
   rw [← aeval_def] at hfx
   rw [AlgHom.map_add, AlgHom.map_mul, hfx, MulZeroClass.zero_mul, add_zero]
   have : degree (p %ₘ f) ≤ degree f := degree_modByMonic_le p hfm
-  generalize p %ₘ f = q at this⊢
+  generalize p %ₘ f = q at this ⊢
   rw [← sum_C_mul_X_pow_eq q, aeval_def, eval₂_sum, sum_def]
   refine' sum_mem fun k hkq => _
   rw [eval₂_mul, eval₂_C, eval₂_pow, eval₂_X, ← Algebra.smul_def]
@@ -384,7 +384,7 @@ theorem isIntegral_of_smul_mem_submodule {M : Type _} [AddCommGroup M] [Module R
       (by intros x y; ext; apply mul_smul)
   obtain ⟨a, ha₁, ha₂⟩ : ∃ a ∈ N, a ≠ (0 : M) := by
     by_contra h'
-    push_neg  at h'
+    push_neg at h'
     apply hN
     rwa [eq_bot_iff]
   have : Function.Injective f := by
@@ -785,7 +785,7 @@ theorem RingHom.isIntegralElem_leadingCoeff_mul (h : p.eval₂ f x = 0) :
     use normalizeScaleRoots_monic p this
     rw [normalizeScaleRoots_eval₂_leadingCoeff_mul p h' f x, h, MulZeroClass.mul_zero]
   · by_cases hp : p.map f = 0
-    · apply_fun fun q => coeff q p.natDegree  at hp
+    · apply_fun fun q => coeff q p.natDegree at hp
       rw [coeff_map, coeff_zero, coeff_natDegree] at hp
       rw [hp, MulZeroClass.zero_mul]
       exact f.is_integral_zero
chore: bump to nightly-2023-05-31 (#4530)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com> Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Alex J Best <alex.j.best@gmail.com>

Diff
@@ -436,16 +436,18 @@ theorem Algebra.IsIntegral.finite (h : Algebra.IsIntegral R A) [h' : Algebra.Fin
         -- Porting note: was `ext`
         refine IsScalarTower.Algebra.ext (algebraMap R A).toAlgebra _ fun r x => ?_
         exact (Algebra.smul_def _ _).symm)
-  -- porting note: the rest of the proof was
-  -- `delta RingHom.Finite at this; convert this; ext; exact Algebra.smul_def _ _`
-  rw [RingHom.Finite] at this; convert this; ext; rfl
+  rw [RingHom.Finite] at this
+  convert this
+  ext
+  exact Algebra.smul_def _ _
 #align algebra.is_integral.finite Algebra.IsIntegral.finite
 
 theorem Algebra.IsIntegral.of_finite [h : Module.Finite R A] : Algebra.IsIntegral R A := by
   apply RingHom.Finite.to_isIntegral
-  -- porting note: the rest of the proof was
-  -- `delta RingHom.Finite; convert h; ext; exact (Algebra.smul_def _ _).symm`
-  rw [RingHom.Finite]; convert h; ext; rfl
+  rw [RingHom.Finite]
+  convert h
+  ext
+  exact (Algebra.smul_def _ _).symm
 #align algebra.is_integral.of_finite Algebra.IsIntegral.of_finite
 
 /-- finite = integral + finite type -/
refactor: use the typeclass SProd to implement overloaded notation · ×ˢ · (#4200)

Currently, the following notations are changed from · ×ˢ · because Lean 4 can't deal with ambiguous notations. | Definition | Notation | | :

Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Chris Hughes <chrishughes24@gmail.com>

Diff
@@ -266,7 +266,8 @@ theorem isIntegral_of_mem_of_FG (S : Subalgebra R A) (HS : S.toSubmodule.FG) (x
       rw [← hy]
       exact subset_span hp
   -- Now `S` is a subalgebra so the product of two elements of `y` is also in `S`.
-  have : ∀ jk : (y ×ᶠ y : Set (A × A)), jk.1.1 * jk.1.2 ∈ (Subalgebra.toSubmodule S) := fun jk =>
+  have : ∀ jk : (y ×ˢ y : Finset (A × A)),
+      jk.1.1 * jk.1.2 ∈ (Subalgebra.toSubmodule S) := fun jk =>
     S.mul_mem (hyS (Finset.mem_product.1 jk.2).1) (hyS (Finset.mem_product.1 jk.2).2)
   rw [← hy, ← Set.image_id (y : Set A)] at this
   simp only [Finsupp.mem_span_image_iff_total] at this
feat: port RingTheory.IntegralClosure (#4196)

I tried to fix what I could, but this contains a lot of sorries!

Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>

Dependencies 10 + 625

626 files ported (98.4%)
263643 lines ported (98.7%)
Show graph

The unported dependencies are