ring_theory.non_unital_subsemiring.basicMathlib.RingTheory.NonUnitalSubsemiring.Basic

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)

(last sync)

feat(ring_theory/subring): centralizer as a subring (#18861)

Co-authored-by: Eric Rodriguez <37984851+ericrbg@users.noreply.github.com>

Diff
@@ -417,10 +417,17 @@ lemma mem_centralizer_iff {R} [non_unital_semiring R] {s : set R} {z : R} :
   z ∈ centralizer s ↔ ∀ g ∈ s, g * z = z * g :=
 iff.rfl
 
+lemma center_le_centralizer {R} [non_unital_semiring R] (s) : center R ≤ centralizer s :=
+  s.center_subset_centralizer
+
 lemma centralizer_le {R} [non_unital_semiring R] (s t : set R) (h : s ⊆ t) :
   centralizer t ≤ centralizer s :=
 set.centralizer_subset h
 
+@[simp] lemma centralizer_eq_top_iff_subset {R} [non_unital_semiring R] {s : set R} :
+  centralizer s = ⊤ ↔ s ⊆ center R :=
+set_like.ext'_iff.trans set.centralizer_eq_top_iff_subset
+
 @[simp]
 lemma centralizer_univ {R} [non_unital_semiring R] : centralizer set.univ = center R :=
 set_like.ext' (set.centralizer_univ R)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -8,7 +8,7 @@ import Algebra.Ring.Prod
 import Data.Set.Finite
 import GroupTheory.Submonoid.Membership
 import GroupTheory.Subsemigroup.Membership
-import GroupTheory.Subsemigroup.Centralizer
+import Algebra.Group.Centralizer
 
 #align_import ring_theory.non_unital_subsemiring.basic from "leanprover-community/mathlib"@"b915e9392ecb2a861e1e766f0e1df6ac481188ca"
 
Diff
@@ -1183,7 +1183,7 @@ theorem eqOn_sclosure {f g : F} {s : Set R} (h : Set.EqOn (f : R → S) (g : R 
 #print NonUnitalRingHom.eq_of_eqOn_stop /-
 theorem eq_of_eqOn_stop {f g : F}
     (h : Set.EqOn (f : R → S) (g : R → S) (⊤ : NonUnitalSubsemiring R)) : f = g :=
-  FunLike.ext _ _ fun x => h trivial
+  DFunLike.ext _ _ fun x => h trivial
 #align non_unital_ring_hom.eq_of_eq_on_stop NonUnitalRingHom.eq_of_eqOn_stop
 -/
 
Diff
@@ -3,12 +3,12 @@ Copyright (c) 2022 Jireh Loreaux All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jireh Loreaux
 -/
-import Mathbin.Algebra.Ring.Equiv
-import Mathbin.Algebra.Ring.Prod
-import Mathbin.Data.Set.Finite
-import Mathbin.GroupTheory.Submonoid.Membership
-import Mathbin.GroupTheory.Subsemigroup.Membership
-import Mathbin.GroupTheory.Subsemigroup.Centralizer
+import Algebra.Ring.Equiv
+import Algebra.Ring.Prod
+import Data.Set.Finite
+import GroupTheory.Submonoid.Membership
+import GroupTheory.Subsemigroup.Membership
+import GroupTheory.Subsemigroup.Centralizer
 
 #align_import ring_theory.non_unital_subsemiring.basic from "leanprover-community/mathlib"@"b915e9392ecb2a861e1e766f0e1df6ac481188ca"
 
Diff
@@ -35,7 +35,7 @@ variable {R : Type u} {S : Type v} {T : Type w} [NonUnitalNonAssocSemiring R] (M
 are both an additive submonoid and also a multiplicative subsemigroup. -/
 class NonUnitalSubsemiringClass (S : Type _) (R : Type u) [NonUnitalNonAssocSemiring R]
     [SetLike S R] extends AddSubmonoidClass S R where
-  mul_mem : ∀ {s : S} {a b : R}, a ∈ s → b ∈ s → a * b ∈ s
+  hMul_mem : ∀ {s : S} {a b : R}, a ∈ s → b ∈ s → a * b ∈ s
 #align non_unital_subsemiring_class NonUnitalSubsemiringClass
 -/
 
@@ -133,7 +133,7 @@ instance : NonUnitalSubsemiringClass (NonUnitalSubsemiring R) R
     where
   zero_mem := zero_mem'
   add_mem := add_mem'
-  mul_mem := mul_mem'
+  hMul_mem := hMul_mem'
 
 #print NonUnitalSubsemiring.mem_carrier /-
 @[simp]
@@ -224,7 +224,7 @@ protected def mk' (s : Set R) (sg : Subsemigroup R) (hg : ↑sg = s) (sa : AddSu
   carrier := s
   zero_mem' := ha ▸ sa.zero_mem
   add_mem' x y := by simpa only [← ha] using sa.add_mem
-  mul_mem' x y := by simpa only [← hg] using sg.mul_mem
+  hMul_mem' x y := by simpa only [← hg] using sg.mul_mem
 #align non_unital_subsemiring.mk' NonUnitalSubsemiring.mk'
 -/
 
@@ -502,7 +502,7 @@ instance : Bot (NonUnitalSubsemiring R) :=
   ⟨{  carrier := {0}
       add_mem' := fun _ _ _ _ => by simp_all
       zero_mem' := Set.mem_singleton 0
-      mul_mem' := fun _ _ _ _ => by simp_all }⟩
+      hMul_mem' := fun _ _ _ _ => by simp_all }⟩
 
 instance : Inhabited (NonUnitalSubsemiring R) :=
   ⟨⊥⟩
@@ -790,7 +790,7 @@ namespace Subsemigroup
 #print Subsemigroup.nonUnitalSubsemiringClosure /-
 /-- The additive closure of a non-unital subsemigroup is a non-unital subsemiring. -/
 def nonUnitalSubsemiringClosure (M : Subsemigroup R) : NonUnitalSubsemiring R :=
-  { AddSubmonoid.closure (M : Set R) with mul_mem' := fun x y => MulMemClass.mul_mem_add_closure }
+  { AddSubmonoid.closure (M : Set R) with hMul_mem' := fun x y => MulMemClass.mul_mem_add_closure }
 #align subsemigroup.non_unital_subsemiring_closure Subsemigroup.nonUnitalSubsemiringClosure
 -/
 
Diff
@@ -74,7 +74,7 @@ instance noZeroDivisors [NoZeroDivisors R] : NoZeroDivisors s :=
 /-- The natural non-unital ring hom from a non-unital subsemiring of a non-unital semiring `R` to
 `R`. -/
 def subtype : s →ₙ+* R :=
-  { AddSubmonoidClass.Subtype s, MulMemClass.subtype s with toFun := coe }
+  { AddSubmonoidClass.subtype s, MulMemClass.subtype s with toFun := coe }
 #align non_unital_subsemiring_class.subtype NonUnitalSubsemiringClass.subtype
 -/
 
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2022 Jireh Loreaux All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jireh Loreaux
-
-! This file was ported from Lean 3 source module ring_theory.non_unital_subsemiring.basic
-! leanprover-community/mathlib commit b915e9392ecb2a861e1e766f0e1df6ac481188ca
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Ring.Equiv
 import Mathbin.Algebra.Ring.Prod
@@ -15,6 +10,8 @@ import Mathbin.GroupTheory.Submonoid.Membership
 import Mathbin.GroupTheory.Subsemigroup.Membership
 import Mathbin.GroupTheory.Subsemigroup.Centralizer
 
+#align_import ring_theory.non_unital_subsemiring.basic from "leanprover-community/mathlib"@"b915e9392ecb2a861e1e766f0e1df6ac481188ca"
+
 /-!
 # Bundled non-unital subsemirings
 
Diff
@@ -1120,13 +1120,11 @@ variable {F : Type _} [NonUnitalNonAssocSemiring T] [NonUnitalRingHomClass F R S
 
 open NonUnitalSubsemiringClass NonUnitalSubsemiring
 
-#print NonUnitalRingHom.codRestrict /-
 /-- Restriction of a non-unital ring homomorphism to a non-unital subsemiring of the codomain. -/
 def codRestrict (f : F) (s : NonUnitalSubsemiring S) (h : ∀ x, f x ∈ s) : R →ₙ+* s :=
   { (f : R →ₙ* S).codRestrict s.toSubsemigroup h, (f : R →+ S).codRestrict s.toAddSubmonoid h with
     toFun := fun n => ⟨f n, h n⟩ }
-#align non_unital_ring_hom.cod_restrict NonUnitalRingHom.codRestrict
--/
+#align non_unital_ring_hom.cod_restrict NonUnitalRingHom.codRestrictₓ
 
 #print NonUnitalRingHom.srangeRestrict /-
 /-- Restriction of a non-unital ring homomorphism to its range interpreted as a
Diff
@@ -42,19 +42,19 @@ class NonUnitalSubsemiringClass (S : Type _) (R : Type u) [NonUnitalNonAssocSemi
 #align non_unital_subsemiring_class NonUnitalSubsemiringClass
 -/
 
+#print NonUnitalSubsemiringClass.mulMemClass /-
 -- See note [lower instance priority]
 instance (priority := 100) NonUnitalSubsemiringClass.mulMemClass (S : Type _) (R : Type u)
     [NonUnitalNonAssocSemiring R] [SetLike S R] [h : NonUnitalSubsemiringClass S R] :
     MulMemClass S R :=
   { h with }
 #align non_unital_subsemiring_class.mul_mem_class NonUnitalSubsemiringClass.mulMemClass
+-/
 
 namespace NonUnitalSubsemiringClass
 
 variable [SetLike S R] [NonUnitalSubsemiringClass S R] (s : S)
 
-include R S
-
 open AddSubmonoidClass
 
 #print NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring /-
@@ -67,9 +67,11 @@ instance (priority := 75) toNonUnitalNonAssocSemiring : NonUnitalNonAssocSemirin
 #align non_unital_subsemiring_class.to_non_unital_non_assoc_semiring NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring
 -/
 
+#print NonUnitalSubsemiringClass.noZeroDivisors /-
 instance noZeroDivisors [NoZeroDivisors R] : NoZeroDivisors s :=
   Subtype.coe_injective.NoZeroDivisors coe rfl fun x y => rfl
 #align non_unital_subsemiring_class.no_zero_divisors NonUnitalSubsemiringClass.noZeroDivisors
+-/
 
 #print NonUnitalSubsemiringClass.subtype /-
 /-- The natural non-unital ring hom from a non-unital subsemiring of a non-unital semiring `R` to
@@ -79,12 +81,12 @@ def subtype : s →ₙ+* R :=
 #align non_unital_subsemiring_class.subtype NonUnitalSubsemiringClass.subtype
 -/
 
+#print NonUnitalSubsemiringClass.coeSubtype /-
 @[simp]
 theorem coeSubtype : (subtype s : s → R) = coe :=
   rfl
 #align non_unital_subsemiring_class.coe_subtype NonUnitalSubsemiringClass.coeSubtype
-
-omit R S
+-/
 
 #print NonUnitalSubsemiringClass.toNonUnitalSemiring /-
 /-- A non-unital subsemiring of a `non_unital_semiring` is a `non_unital_semiring`. -/
@@ -136,48 +138,64 @@ instance : NonUnitalSubsemiringClass (NonUnitalSubsemiring R) R
   add_mem := add_mem'
   mul_mem := mul_mem'
 
+#print NonUnitalSubsemiring.mem_carrier /-
 @[simp]
 theorem mem_carrier {s : NonUnitalSubsemiring R} {x : R} : x ∈ s.carrier ↔ x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_carrier NonUnitalSubsemiring.mem_carrier
+-/
 
+#print NonUnitalSubsemiring.ext /-
 /-- Two non-unital subsemirings are equal if they have the same elements. -/
 @[ext]
 theorem ext {S T : NonUnitalSubsemiring R} (h : ∀ x, x ∈ S ↔ x ∈ T) : S = T :=
   SetLike.ext h
 #align non_unital_subsemiring.ext NonUnitalSubsemiring.ext
+-/
 
+#print NonUnitalSubsemiring.copy /-
 /-- Copy of a non-unital subsemiring with a new `carrier` equal to the old one. Useful to fix
 definitional equalities.-/
 protected def copy (S : NonUnitalSubsemiring R) (s : Set R) (hs : s = ↑S) :
     NonUnitalSubsemiring R :=
   { S.toAddSubmonoid.copy s hs, S.toSubsemigroup.copy s hs with carrier := s }
 #align non_unital_subsemiring.copy NonUnitalSubsemiring.copy
+-/
 
+#print NonUnitalSubsemiring.coe_copy /-
 @[simp]
 theorem coe_copy (S : NonUnitalSubsemiring R) (s : Set R) (hs : s = ↑S) :
     (S.copy s hs : Set R) = s :=
   rfl
 #align non_unital_subsemiring.coe_copy NonUnitalSubsemiring.coe_copy
+-/
 
+#print NonUnitalSubsemiring.copy_eq /-
 theorem copy_eq (S : NonUnitalSubsemiring R) (s : Set R) (hs : s = ↑S) : S.copy s hs = S :=
   SetLike.coe_injective hs
 #align non_unital_subsemiring.copy_eq NonUnitalSubsemiring.copy_eq
+-/
 
+#print NonUnitalSubsemiring.toSubsemigroup_injective /-
 theorem toSubsemigroup_injective :
     Function.Injective (toSubsemigroup : NonUnitalSubsemiring R → Subsemigroup R)
   | r, s, h => ext (SetLike.ext_iff.mp h : _)
 #align non_unital_subsemiring.to_subsemigroup_injective NonUnitalSubsemiring.toSubsemigroup_injective
+-/
 
+#print NonUnitalSubsemiring.toSubsemigroup_strictMono /-
 @[mono]
 theorem toSubsemigroup_strictMono :
     StrictMono (toSubsemigroup : NonUnitalSubsemiring R → Subsemigroup R) := fun _ _ => id
 #align non_unital_subsemiring.to_subsemigroup_strict_mono NonUnitalSubsemiring.toSubsemigroup_strictMono
+-/
 
+#print NonUnitalSubsemiring.toSubsemigroup_mono /-
 @[mono]
 theorem toSubsemigroup_mono : Monotone (toSubsemigroup : NonUnitalSubsemiring R → Subsemigroup R) :=
   toSubsemigroup_strictMono.Monotone
 #align non_unital_subsemiring.to_subsemigroup_mono NonUnitalSubsemiring.toSubsemigroup_mono
+-/
 
 #print NonUnitalSubsemiring.toAddSubmonoid_injective /-
 theorem toAddSubmonoid_injective :
@@ -186,16 +204,21 @@ theorem toAddSubmonoid_injective :
 #align non_unital_subsemiring.to_add_submonoid_injective NonUnitalSubsemiring.toAddSubmonoid_injective
 -/
 
+#print NonUnitalSubsemiring.toAddSubmonoid_strictMono /-
 @[mono]
 theorem toAddSubmonoid_strictMono :
     StrictMono (toAddSubmonoid : NonUnitalSubsemiring R → AddSubmonoid R) := fun _ _ => id
 #align non_unital_subsemiring.to_add_submonoid_strict_mono NonUnitalSubsemiring.toAddSubmonoid_strictMono
+-/
 
+#print NonUnitalSubsemiring.toAddSubmonoid_mono /-
 @[mono]
 theorem toAddSubmonoid_mono : Monotone (toAddSubmonoid : NonUnitalSubsemiring R → AddSubmonoid R) :=
   toAddSubmonoid_strictMono.Monotone
 #align non_unital_subsemiring.to_add_submonoid_mono NonUnitalSubsemiring.toAddSubmonoid_mono
+-/
 
+#print NonUnitalSubsemiring.mk' /-
 /-- Construct a `non_unital_subsemiring R` from a set `s`, a subsemigroup `sg`, and an additive
 submonoid `sa` such that `x ∈ s ↔ x ∈ sg ↔ x ∈ sa`. -/
 protected def mk' (s : Set R) (sg : Subsemigroup R) (hg : ↑sg = s) (sa : AddSubmonoid R)
@@ -206,30 +229,39 @@ protected def mk' (s : Set R) (sg : Subsemigroup R) (hg : ↑sg = s) (sa : AddSu
   add_mem' x y := by simpa only [← ha] using sa.add_mem
   mul_mem' x y := by simpa only [← hg] using sg.mul_mem
 #align non_unital_subsemiring.mk' NonUnitalSubsemiring.mk'
+-/
 
+#print NonUnitalSubsemiring.coe_mk' /-
 @[simp]
 theorem coe_mk' {s : Set R} {sg : Subsemigroup R} (hg : ↑sg = s) {sa : AddSubmonoid R}
     (ha : ↑sa = s) : (NonUnitalSubsemiring.mk' s sg hg sa ha : Set R) = s :=
   rfl
 #align non_unital_subsemiring.coe_mk' NonUnitalSubsemiring.coe_mk'
+-/
 
+#print NonUnitalSubsemiring.mem_mk' /-
 @[simp]
 theorem mem_mk' {s : Set R} {sg : Subsemigroup R} (hg : ↑sg = s) {sa : AddSubmonoid R}
     (ha : ↑sa = s) {x : R} : x ∈ NonUnitalSubsemiring.mk' s sg hg sa ha ↔ x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_mk' NonUnitalSubsemiring.mem_mk'
+-/
 
+#print NonUnitalSubsemiring.mk'_toSubsemigroup /-
 @[simp]
 theorem mk'_toSubsemigroup {s : Set R} {sg : Subsemigroup R} (hg : ↑sg = s) {sa : AddSubmonoid R}
     (ha : ↑sa = s) : (NonUnitalSubsemiring.mk' s sg hg sa ha).toSubsemigroup = sg :=
   SetLike.coe_injective hg.symm
 #align non_unital_subsemiring.mk'_to_subsemigroup NonUnitalSubsemiring.mk'_toSubsemigroup
+-/
 
+#print NonUnitalSubsemiring.mk'_toAddSubmonoid /-
 @[simp]
 theorem mk'_toAddSubmonoid {s : Set R} {sg : Subsemigroup R} (hg : ↑sg = s) {sa : AddSubmonoid R}
     (ha : ↑sa = s) : (NonUnitalSubsemiring.mk' s sg hg sa ha).toAddSubmonoid = sa :=
   SetLike.coe_injective ha.symm
 #align non_unital_subsemiring.mk'_to_add_submonoid NonUnitalSubsemiring.mk'_toAddSubmonoid
+-/
 
 end NonUnitalSubsemiring
 
@@ -238,57 +270,75 @@ namespace NonUnitalSubsemiring
 variable {F G : Type _} [NonUnitalRingHomClass F R S] [NonUnitalRingHomClass G S T]
   (s : NonUnitalSubsemiring R)
 
+#print NonUnitalSubsemiring.coe_zero /-
 @[simp, norm_cast]
 theorem coe_zero : ((0 : s) : R) = (0 : R) :=
   rfl
 #align non_unital_subsemiring.coe_zero NonUnitalSubsemiring.coe_zero
+-/
 
+#print NonUnitalSubsemiring.coe_add /-
 @[simp, norm_cast]
 theorem coe_add (x y : s) : ((x + y : s) : R) = (x + y : R) :=
   rfl
 #align non_unital_subsemiring.coe_add NonUnitalSubsemiring.coe_add
+-/
 
+#print NonUnitalSubsemiring.coe_mul /-
 @[simp, norm_cast]
 theorem coe_mul (x y : s) : ((x * y : s) : R) = (x * y : R) :=
   rfl
 #align non_unital_subsemiring.coe_mul NonUnitalSubsemiring.coe_mul
+-/
 
 /-! Note: currently, there are no ordered versions of non-unital rings. -/
 
 
+#print NonUnitalSubsemiring.mem_toSubsemigroup /-
 @[simp]
 theorem mem_toSubsemigroup {s : NonUnitalSubsemiring R} {x : R} : x ∈ s.toSubsemigroup ↔ x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_to_subsemigroup NonUnitalSubsemiring.mem_toSubsemigroup
+-/
 
+#print NonUnitalSubsemiring.coe_toSubsemigroup /-
 @[simp]
 theorem coe_toSubsemigroup (s : NonUnitalSubsemiring R) : (s.toSubsemigroup : Set R) = s :=
   rfl
 #align non_unital_subsemiring.coe_to_subsemigroup NonUnitalSubsemiring.coe_toSubsemigroup
+-/
 
+#print NonUnitalSubsemiring.mem_toAddSubmonoid /-
 @[simp]
 theorem mem_toAddSubmonoid {s : NonUnitalSubsemiring R} {x : R} : x ∈ s.toAddSubmonoid ↔ x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_to_add_submonoid NonUnitalSubsemiring.mem_toAddSubmonoid
+-/
 
+#print NonUnitalSubsemiring.coe_toAddSubmonoid /-
 @[simp]
 theorem coe_toAddSubmonoid (s : NonUnitalSubsemiring R) : (s.toAddSubmonoid : Set R) = s :=
   rfl
 #align non_unital_subsemiring.coe_to_add_submonoid NonUnitalSubsemiring.coe_toAddSubmonoid
+-/
 
 /-- The non-unital subsemiring `R` of the non-unital semiring `R`. -/
 instance : Top (NonUnitalSubsemiring R) :=
   ⟨{ (⊤ : Subsemigroup R), (⊤ : AddSubmonoid R) with }⟩
 
+#print NonUnitalSubsemiring.mem_top /-
 @[simp]
 theorem mem_top (x : R) : x ∈ (⊤ : NonUnitalSubsemiring R) :=
   Set.mem_univ x
 #align non_unital_subsemiring.mem_top NonUnitalSubsemiring.mem_top
+-/
 
+#print NonUnitalSubsemiring.coe_top /-
 @[simp]
 theorem coe_top : ((⊤ : NonUnitalSubsemiring R) : Set R) = Set.univ :=
   rfl
 #align non_unital_subsemiring.coe_top NonUnitalSubsemiring.coe_top
+-/
 
 #print NonUnitalSubsemiring.comap /-
 /-- The preimage of a non-unital subsemiring along a non-unital ring homomorphism is a
@@ -299,22 +349,28 @@ def comap (f : F) (s : NonUnitalSubsemiring S) : NonUnitalSubsemiring R :=
 #align non_unital_subsemiring.comap NonUnitalSubsemiring.comap
 -/
 
+#print NonUnitalSubsemiring.coe_comap /-
 @[simp]
 theorem coe_comap (s : NonUnitalSubsemiring S) (f : F) : (s.comap f : Set R) = f ⁻¹' s :=
   rfl
 #align non_unital_subsemiring.coe_comap NonUnitalSubsemiring.coe_comap
+-/
 
+#print NonUnitalSubsemiring.mem_comap /-
 @[simp]
 theorem mem_comap {s : NonUnitalSubsemiring S} {f : F} {x : R} : x ∈ s.comap f ↔ f x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_comap NonUnitalSubsemiring.mem_comap
+-/
 
+#print NonUnitalSubsemiring.comap_comap /-
 -- this has some nasty coercions, how to deal with it?
 theorem comap_comap (s : NonUnitalSubsemiring T) (g : G) (f : F) :
     ((s.comap g : NonUnitalSubsemiring S).comap f : NonUnitalSubsemiring R) =
       s.comap ((g : S →ₙ+* T).comp (f : R →ₙ+* S)) :=
   rfl
 #align non_unital_subsemiring.comap_comap NonUnitalSubsemiring.comap_comap
+-/
 
 #print NonUnitalSubsemiring.map /-
 /-- The image of a non-unital subsemiring along a ring homomorphism is a non-unital subsemiring. -/
@@ -323,37 +379,50 @@ def map (f : F) (s : NonUnitalSubsemiring R) : NonUnitalSubsemiring S :=
 #align non_unital_subsemiring.map NonUnitalSubsemiring.map
 -/
 
+#print NonUnitalSubsemiring.coe_map /-
 @[simp]
 theorem coe_map (f : F) (s : NonUnitalSubsemiring R) : (s.map f : Set S) = f '' s :=
   rfl
 #align non_unital_subsemiring.coe_map NonUnitalSubsemiring.coe_map
+-/
 
+#print NonUnitalSubsemiring.mem_map /-
 @[simp]
 theorem mem_map {f : F} {s : NonUnitalSubsemiring R} {y : S} : y ∈ s.map f ↔ ∃ x ∈ s, f x = y :=
   Set.mem_image_iff_bex
 #align non_unital_subsemiring.mem_map NonUnitalSubsemiring.mem_map
+-/
 
+#print NonUnitalSubsemiring.map_id /-
 @[simp]
 theorem map_id : s.map (NonUnitalRingHom.id R) = s :=
   SetLike.coe_injective <| Set.image_id _
 #align non_unital_subsemiring.map_id NonUnitalSubsemiring.map_id
+-/
 
+#print NonUnitalSubsemiring.map_map /-
 -- unavoidable coercions?
 theorem map_map (g : G) (f : F) :
     (s.map (f : R →ₙ+* S)).map (g : S →ₙ+* T) = s.map ((g : S →ₙ+* T).comp (f : R →ₙ+* S)) :=
   SetLike.coe_injective <| Set.image_image _ _ _
 #align non_unital_subsemiring.map_map NonUnitalSubsemiring.map_map
+-/
 
+#print NonUnitalSubsemiring.map_le_iff_le_comap /-
 theorem map_le_iff_le_comap {f : F} {s : NonUnitalSubsemiring R} {t : NonUnitalSubsemiring S} :
     s.map f ≤ t ↔ s ≤ t.comap f :=
   Set.image_subset_iff
 #align non_unital_subsemiring.map_le_iff_le_comap NonUnitalSubsemiring.map_le_iff_le_comap
+-/
 
+#print NonUnitalSubsemiring.gc_map_comap /-
 theorem gc_map_comap (f : F) :
     @GaloisConnection (NonUnitalSubsemiring R) (NonUnitalSubsemiring S) _ _ (map f) (comap f) :=
   fun S T => map_le_iff_le_comap
 #align non_unital_subsemiring.gc_map_comap NonUnitalSubsemiring.gc_map_comap
+-/
 
+#print NonUnitalSubsemiring.equivMapOfInjective /-
 /-- A non-unital subsemiring is isomorphic to its image under an injective function -/
 noncomputable def equivMapOfInjective (f : F) (hf : Function.Injective (f : R → S)) :
     s ≃+* s.map f :=
@@ -363,12 +432,15 @@ noncomputable def equivMapOfInjective (f : F) (hf : Function.Injective (f : R 
     map_mul' := fun _ _ => Subtype.ext (map_mul f _ _)
     map_add' := fun _ _ => Subtype.ext (map_add f _ _) }
 #align non_unital_subsemiring.equiv_map_of_injective NonUnitalSubsemiring.equivMapOfInjective
+-/
 
+#print NonUnitalSubsemiring.coe_equivMapOfInjective_apply /-
 @[simp]
 theorem coe_equivMapOfInjective_apply (f : F) (hf : Function.Injective f) (x : s) :
     (equivMapOfInjective s f hf x : S) = f x :=
   rfl
 #align non_unital_subsemiring.coe_equiv_map_of_injective_apply NonUnitalSubsemiring.coe_equivMapOfInjective_apply
+-/
 
 end NonUnitalSubsemiring
 
@@ -386,31 +458,43 @@ def srange : NonUnitalSubsemiring S :=
 #align non_unital_ring_hom.srange NonUnitalRingHom.srange
 -/
 
+#print NonUnitalRingHom.coe_srange /-
 @[simp]
 theorem coe_srange : (@srange R S _ _ _ _ f : Set S) = Set.range f :=
   rfl
 #align non_unital_ring_hom.coe_srange NonUnitalRingHom.coe_srange
+-/
 
+#print NonUnitalRingHom.mem_srange /-
 @[simp]
 theorem mem_srange {f : F} {y : S} : y ∈ @srange R S _ _ _ _ f ↔ ∃ x, f x = y :=
   Iff.rfl
 #align non_unital_ring_hom.mem_srange NonUnitalRingHom.mem_srange
+-/
 
+#print NonUnitalRingHom.srange_eq_map /-
 theorem srange_eq_map : @srange R S _ _ _ _ f = (⊤ : NonUnitalSubsemiring R).map f := by ext; simp
 #align non_unital_ring_hom.srange_eq_map NonUnitalRingHom.srange_eq_map
+-/
 
+#print NonUnitalRingHom.mem_srange_self /-
 theorem mem_srange_self (f : F) (x : R) : f x ∈ @srange R S _ _ _ _ f :=
   mem_srange.mpr ⟨x, rfl⟩
 #align non_unital_ring_hom.mem_srange_self NonUnitalRingHom.mem_srange_self
+-/
 
+#print NonUnitalRingHom.map_srange /-
 theorem map_srange (g : S →ₙ+* T) (f : R →ₙ+* S) : map g (srange f) = srange (g.comp f) := by
   simpa only [srange_eq_map] using (⊤ : NonUnitalSubsemiring R).map_map g f
 #align non_unital_ring_hom.map_srange NonUnitalRingHom.map_srange
+-/
 
+#print NonUnitalRingHom.finite_srange /-
 /-- The range of a morphism of non-unital semirings is finite if the domain is a finite. -/
 instance finite_srange [Finite R] (f : F) : Finite (srange f : NonUnitalSubsemiring S) :=
   (Set.finite_range f).to_subtype
 #align non_unital_ring_hom.finite_srange NonUnitalRingHom.finite_srange
+-/
 
 end NonUnitalRingHom
 
@@ -426,13 +510,17 @@ instance : Bot (NonUnitalSubsemiring R) :=
 instance : Inhabited (NonUnitalSubsemiring R) :=
   ⟨⊥⟩
 
+#print NonUnitalSubsemiring.coe_bot /-
 theorem coe_bot : ((⊥ : NonUnitalSubsemiring R) : Set R) = {0} :=
   rfl
 #align non_unital_subsemiring.coe_bot NonUnitalSubsemiring.coe_bot
+-/
 
+#print NonUnitalSubsemiring.mem_bot /-
 theorem mem_bot {x : R} : x ∈ (⊥ : NonUnitalSubsemiring R) ↔ x = 0 :=
   Set.mem_singleton_iff
 #align non_unital_subsemiring.mem_bot NonUnitalSubsemiring.mem_bot
+-/
 
 /-- The inf of two non-unital subsemirings is their intersection. -/
 instance : Inf (NonUnitalSubsemiring R) :=
@@ -440,37 +528,47 @@ instance : Inf (NonUnitalSubsemiring R) :=
     { s.toSubsemigroup ⊓ t.toSubsemigroup, s.toAddSubmonoid ⊓ t.toAddSubmonoid with
       carrier := s ∩ t }⟩
 
+#print NonUnitalSubsemiring.coe_inf /-
 @[simp]
 theorem coe_inf (p p' : NonUnitalSubsemiring R) :
     ((p ⊓ p' : NonUnitalSubsemiring R) : Set R) = p ∩ p' :=
   rfl
 #align non_unital_subsemiring.coe_inf NonUnitalSubsemiring.coe_inf
+-/
 
+#print NonUnitalSubsemiring.mem_inf /-
 @[simp]
 theorem mem_inf {p p' : NonUnitalSubsemiring R} {x : R} : x ∈ p ⊓ p' ↔ x ∈ p ∧ x ∈ p' :=
   Iff.rfl
 #align non_unital_subsemiring.mem_inf NonUnitalSubsemiring.mem_inf
+-/
 
 instance : InfSet (NonUnitalSubsemiring R) :=
   ⟨fun s =>
     NonUnitalSubsemiring.mk' (⋂ t ∈ s, ↑t) (⨅ t ∈ s, NonUnitalSubsemiring.toSubsemigroup t)
       (by simp) (⨅ t ∈ s, NonUnitalSubsemiring.toAddSubmonoid t) (by simp)⟩
 
+#print NonUnitalSubsemiring.coe_sInf /-
 @[simp, norm_cast]
 theorem coe_sInf (S : Set (NonUnitalSubsemiring R)) :
     ((sInf S : NonUnitalSubsemiring R) : Set R) = ⋂ s ∈ S, ↑s :=
   rfl
 #align non_unital_subsemiring.coe_Inf NonUnitalSubsemiring.coe_sInf
+-/
 
+#print NonUnitalSubsemiring.mem_sInf /-
 theorem mem_sInf {S : Set (NonUnitalSubsemiring R)} {x : R} : x ∈ sInf S ↔ ∀ p ∈ S, x ∈ p :=
   Set.mem_iInter₂
 #align non_unital_subsemiring.mem_Inf NonUnitalSubsemiring.mem_sInf
+-/
 
+#print NonUnitalSubsemiring.sInf_toSubsemigroup /-
 @[simp]
 theorem sInf_toSubsemigroup (s : Set (NonUnitalSubsemiring R)) :
     (sInf s).toSubsemigroup = ⨅ t ∈ s, NonUnitalSubsemiring.toSubsemigroup t :=
   mk'_toSubsemigroup _ _
 #align non_unital_subsemiring.Inf_to_subsemigroup NonUnitalSubsemiring.sInf_toSubsemigroup
+-/
 
 #print NonUnitalSubsemiring.sInf_toAddSubmonoid /-
 @[simp]
@@ -495,9 +593,11 @@ instance : CompleteLattice (NonUnitalSubsemiring R) :=
     inf_le_right := fun s t x => And.right
     le_inf := fun s t₁ t₂ h₁ h₂ x hx => ⟨h₁ hx, h₂ hx⟩ }
 
+#print NonUnitalSubsemiring.eq_top_iff' /-
 theorem eq_top_iff' (A : NonUnitalSubsemiring R) : A = ⊤ ↔ ∀ x : R, x ∈ A :=
   eq_top_iff.trans ⟨fun h m => h <| mem_top m, fun h m _ => h m⟩
 #align non_unital_subsemiring.eq_top_iff' NonUnitalSubsemiring.eq_top_iff'
+-/
 
 section Center
 
@@ -511,28 +611,38 @@ def center (R) [NonUnitalSemiring R] : NonUnitalSubsemiring R :=
 #align non_unital_subsemiring.center NonUnitalSubsemiring.center
 -/
 
+#print NonUnitalSubsemiring.coe_center /-
 theorem coe_center (R) [NonUnitalSemiring R] : ↑(center R) = Set.center R :=
   rfl
 #align non_unital_subsemiring.coe_center NonUnitalSubsemiring.coe_center
+-/
 
+#print NonUnitalSubsemiring.center_toSubsemigroup /-
 @[simp]
 theorem center_toSubsemigroup (R) [NonUnitalSemiring R] :
     (center R).toSubsemigroup = Subsemigroup.center R :=
   rfl
 #align non_unital_subsemiring.center_to_subsemigroup NonUnitalSubsemiring.center_toSubsemigroup
+-/
 
+#print NonUnitalSubsemiring.mem_center_iff /-
 theorem mem_center_iff {R} [NonUnitalSemiring R] {z : R} : z ∈ center R ↔ ∀ g, g * z = z * g :=
   Iff.rfl
 #align non_unital_subsemiring.mem_center_iff NonUnitalSubsemiring.mem_center_iff
+-/
 
+#print NonUnitalSubsemiring.decidableMemCenter /-
 instance decidableMemCenter {R} [NonUnitalSemiring R] [DecidableEq R] [Fintype R] :
     DecidablePred (· ∈ center R) := fun _ => decidable_of_iff' _ mem_center_iff
 #align non_unital_subsemiring.decidable_mem_center NonUnitalSubsemiring.decidableMemCenter
+-/
 
+#print NonUnitalSubsemiring.center_eq_top /-
 @[simp]
 theorem center_eq_top (R) [NonUnitalCommSemiring R] : center R = ⊤ :=
   SetLike.coe_injective (Set.center_eq_univ R)
 #align non_unital_subsemiring.center_eq_top NonUnitalSubsemiring.center_eq_top
+-/
 
 /-- The center is commutative. -/
 instance {R} [NonUnitalSemiring R] : NonUnitalCommSemiring (center R) :=
@@ -553,36 +663,48 @@ def centralizer {R} [NonUnitalSemiring R] (s : Set R) : NonUnitalSubsemiring R :
 #align non_unital_subsemiring.centralizer NonUnitalSubsemiring.centralizer
 -/
 
+#print NonUnitalSubsemiring.coe_centralizer /-
 @[simp, norm_cast]
 theorem coe_centralizer {R} [NonUnitalSemiring R] (s : Set R) :
     (centralizer s : Set R) = s.centralizer :=
   rfl
 #align non_unital_subsemiring.coe_centralizer NonUnitalSubsemiring.coe_centralizer
+-/
 
+#print NonUnitalSubsemiring.centralizer_toSubsemigroup /-
 theorem centralizer_toSubsemigroup {R} [NonUnitalSemiring R] (s : Set R) :
     (centralizer s).toSubsemigroup = Subsemigroup.centralizer s :=
   rfl
 #align non_unital_subsemiring.centralizer_to_subsemigroup NonUnitalSubsemiring.centralizer_toSubsemigroup
+-/
 
+#print NonUnitalSubsemiring.mem_centralizer_iff /-
 theorem mem_centralizer_iff {R} [NonUnitalSemiring R] {s : Set R} {z : R} :
     z ∈ centralizer s ↔ ∀ g ∈ s, g * z = z * g :=
   Iff.rfl
 #align non_unital_subsemiring.mem_centralizer_iff NonUnitalSubsemiring.mem_centralizer_iff
+-/
 
+#print NonUnitalSubsemiring.center_le_centralizer /-
 theorem center_le_centralizer {R} [NonUnitalSemiring R] (s) : center R ≤ centralizer s :=
   s.center_subset_centralizer
 #align non_unital_subsemiring.center_le_centralizer NonUnitalSubsemiring.center_le_centralizer
+-/
 
+#print NonUnitalSubsemiring.centralizer_le /-
 theorem centralizer_le {R} [NonUnitalSemiring R] (s t : Set R) (h : s ⊆ t) :
     centralizer t ≤ centralizer s :=
   Set.centralizer_subset h
 #align non_unital_subsemiring.centralizer_le NonUnitalSubsemiring.centralizer_le
+-/
 
+#print NonUnitalSubsemiring.centralizer_eq_top_iff_subset /-
 @[simp]
 theorem centralizer_eq_top_iff_subset {R} [NonUnitalSemiring R] {s : Set R} :
     centralizer s = ⊤ ↔ s ⊆ center R :=
   SetLike.ext'_iff.trans Set.centralizer_eq_top_iff_subset
 #align non_unital_subsemiring.centralizer_eq_top_iff_subset NonUnitalSubsemiring.centralizer_eq_top_iff_subset
+-/
 
 #print NonUnitalSubsemiring.centralizer_univ /-
 @[simp]
@@ -600,71 +722,96 @@ def closure (s : Set R) : NonUnitalSubsemiring R :=
 #align non_unital_subsemiring.closure NonUnitalSubsemiring.closure
 -/
 
+#print NonUnitalSubsemiring.mem_closure /-
 theorem mem_closure {x : R} {s : Set R} :
     x ∈ closure s ↔ ∀ S : NonUnitalSubsemiring R, s ⊆ S → x ∈ S :=
   mem_sInf
 #align non_unital_subsemiring.mem_closure NonUnitalSubsemiring.mem_closure
+-/
 
+#print NonUnitalSubsemiring.subset_closure /-
 /-- The non-unital subsemiring generated by a set includes the set. -/
 @[simp]
 theorem subset_closure {s : Set R} : s ⊆ closure s := fun x hx => mem_closure.2 fun S hS => hS hx
 #align non_unital_subsemiring.subset_closure NonUnitalSubsemiring.subset_closure
+-/
 
+#print NonUnitalSubsemiring.not_mem_of_not_mem_closure /-
 theorem not_mem_of_not_mem_closure {s : Set R} {P : R} (hP : P ∉ closure s) : P ∉ s := fun h =>
   hP (subset_closure h)
 #align non_unital_subsemiring.not_mem_of_not_mem_closure NonUnitalSubsemiring.not_mem_of_not_mem_closure
+-/
 
+#print NonUnitalSubsemiring.closure_le /-
 /-- A non-unital subsemiring `S` includes `closure s` if and only if it includes `s`. -/
 @[simp]
 theorem closure_le {s : Set R} {t : NonUnitalSubsemiring R} : closure s ≤ t ↔ s ⊆ t :=
   ⟨Set.Subset.trans subset_closure, fun h => sInf_le h⟩
 #align non_unital_subsemiring.closure_le NonUnitalSubsemiring.closure_le
+-/
 
+#print NonUnitalSubsemiring.closure_mono /-
 /-- Subsemiring closure of a set is monotone in its argument: if `s ⊆ t`,
 then `closure s ≤ closure t`. -/
 theorem closure_mono ⦃s t : Set R⦄ (h : s ⊆ t) : closure s ≤ closure t :=
   closure_le.2 <| Set.Subset.trans h subset_closure
 #align non_unital_subsemiring.closure_mono NonUnitalSubsemiring.closure_mono
+-/
 
+#print NonUnitalSubsemiring.closure_eq_of_le /-
 theorem closure_eq_of_le {s : Set R} {t : NonUnitalSubsemiring R} (h₁ : s ⊆ t)
     (h₂ : t ≤ closure s) : closure s = t :=
   le_antisymm (closure_le.2 h₁) h₂
 #align non_unital_subsemiring.closure_eq_of_le NonUnitalSubsemiring.closure_eq_of_le
+-/
 
+#print NonUnitalSubsemiring.mem_map_equiv /-
 theorem mem_map_equiv {f : R ≃+* S} {K : NonUnitalSubsemiring R} {x : S} :
     x ∈ K.map (f : R →ₙ+* S) ↔ f.symm x ∈ K :=
   @Set.mem_image_equiv _ _ (↑K) f.toEquiv x
 #align non_unital_subsemiring.mem_map_equiv NonUnitalSubsemiring.mem_map_equiv
+-/
 
+#print NonUnitalSubsemiring.map_equiv_eq_comap_symm /-
 theorem map_equiv_eq_comap_symm (f : R ≃+* S) (K : NonUnitalSubsemiring R) :
     K.map (f : R →ₙ+* S) = K.comap f.symm :=
   SetLike.coe_injective (f.toEquiv.image_eq_preimage K)
 #align non_unital_subsemiring.map_equiv_eq_comap_symm NonUnitalSubsemiring.map_equiv_eq_comap_symm
+-/
 
+#print NonUnitalSubsemiring.comap_equiv_eq_map_symm /-
 theorem comap_equiv_eq_map_symm (f : R ≃+* S) (K : NonUnitalSubsemiring S) :
     K.comap (f : R →ₙ+* S) = K.map f.symm :=
   (map_equiv_eq_comap_symm f.symm K).symm
 #align non_unital_subsemiring.comap_equiv_eq_map_symm NonUnitalSubsemiring.comap_equiv_eq_map_symm
+-/
 
 end NonUnitalSubsemiring
 
 namespace Subsemigroup
 
+#print Subsemigroup.nonUnitalSubsemiringClosure /-
 /-- The additive closure of a non-unital subsemigroup is a non-unital subsemiring. -/
 def nonUnitalSubsemiringClosure (M : Subsemigroup R) : NonUnitalSubsemiring R :=
   { AddSubmonoid.closure (M : Set R) with mul_mem' := fun x y => MulMemClass.mul_mem_add_closure }
 #align subsemigroup.non_unital_subsemiring_closure Subsemigroup.nonUnitalSubsemiringClosure
+-/
 
+#print Subsemigroup.nonUnitalSubsemiringClosure_coe /-
 theorem nonUnitalSubsemiringClosure_coe :
     (M.nonUnitalSubsemiringClosure : Set R) = AddSubmonoid.closure (M : Set R) :=
   rfl
 #align subsemigroup.non_unital_subsemiring_closure_coe Subsemigroup.nonUnitalSubsemiringClosure_coe
+-/
 
+#print Subsemigroup.nonUnitalSubsemiringClosure_toAddSubmonoid /-
 theorem nonUnitalSubsemiringClosure_toAddSubmonoid :
     M.nonUnitalSubsemiringClosure.toAddSubmonoid = AddSubmonoid.closure (M : Set R) :=
   rfl
 #align subsemigroup.non_unital_subsemiring_closure_to_add_submonoid Subsemigroup.nonUnitalSubsemiringClosure_toAddSubmonoid
+-/
 
+#print Subsemigroup.nonUnitalSubsemiringClosure_eq_closure /-
 /-- The `non_unital_subsemiring` generated by a multiplicative subsemigroup coincides with the
 `non_unital_subsemiring.closure` of the subsemigroup itself . -/
 theorem nonUnitalSubsemiringClosure_eq_closure :
@@ -680,6 +827,7 @@ theorem nonUnitalSubsemiringClosure_eq_closure :
   · exact add_submonoid.mem_closure.mp hx H1.to_add_submonoid H2
   · exact H2 sM
 #align subsemigroup.non_unital_subsemiring_closure_eq_closure Subsemigroup.nonUnitalSubsemiringClosure_eq_closure
+-/
 
 end Subsemigroup
 
@@ -695,6 +843,7 @@ theorem closure_subsemigroup_closure (s : Set R) : closure ↑(Subsemigroup.clos
 #align non_unital_subsemiring.closure_subsemigroup_closure NonUnitalSubsemiring.closure_subsemigroup_closure
 -/
 
+#print NonUnitalSubsemiring.coe_closure_eq /-
 /-- The elements of the non-unital subsemiring closure of `M` are exactly the elements of the
 additive closure of a multiplicative subsemigroup `M`. -/
 theorem coe_closure_eq (s : Set R) :
@@ -702,11 +851,14 @@ theorem coe_closure_eq (s : Set R) :
   simp [← Subsemigroup.nonUnitalSubsemiringClosure_toAddSubmonoid,
     Subsemigroup.nonUnitalSubsemiringClosure_eq_closure]
 #align non_unital_subsemiring.coe_closure_eq NonUnitalSubsemiring.coe_closure_eq
+-/
 
+#print NonUnitalSubsemiring.mem_closure_iff /-
 theorem mem_closure_iff {s : Set R} {x} :
     x ∈ closure s ↔ x ∈ AddSubmonoid.closure (Subsemigroup.closure s : Set R) :=
   Set.ext_iff.mp (coe_closure_eq s) x
 #align non_unital_subsemiring.mem_closure_iff NonUnitalSubsemiring.mem_closure_iff
+-/
 
 #print NonUnitalSubsemiring.closure_addSubmonoid_closure /-
 @[simp]
@@ -722,6 +874,7 @@ theorem closure_addSubmonoid_closure {s : Set R} : closure ↑(AddSubmonoid.clos
 #align non_unital_subsemiring.closure_add_submonoid_closure NonUnitalSubsemiring.closure_addSubmonoid_closure
 -/
 
+#print NonUnitalSubsemiring.closure_induction /-
 /-- An induction principle for closure membership. If `p` holds for `0`, `1`, and all elements
 of `s`, and is preserved under addition and multiplication, then `p` holds for all elements
 of the closure of `s`. -/
@@ -730,7 +883,9 @@ theorem closure_induction {s : Set R} {p : R → Prop} {x} (h : x ∈ closure s)
     (H0 : p 0) (Hadd : ∀ x y, p x → p y → p (x + y)) (Hmul : ∀ x y, p x → p y → p (x * y)) : p x :=
   (@closure_le _ _ _ ⟨p, Hadd, H0, Hmul⟩).2 Hs h
 #align non_unital_subsemiring.closure_induction NonUnitalSubsemiring.closure_induction
+-/
 
+#print NonUnitalSubsemiring.closure_induction₂ /-
 /-- An induction principle for closure membership for predicates with two arguments. -/
 @[elab_as_elim]
 theorem closure_induction₂ {s : Set R} {p : R → R → Prop} {x} {y : R} (hx : x ∈ closure s)
@@ -743,9 +898,11 @@ theorem closure_induction₂ {s : Set R} {p : R → R → Prop} {x} {y : R} (hx
     (fun x₁ x₁s => closure_induction hy (Hs x₁ x₁s) (H0_right x₁) (Hadd_right x₁) (Hmul_right x₁))
     (H0_left y) (fun z z' => Hadd_left z z' y) fun z z' => Hmul_left z z' y
 #align non_unital_subsemiring.closure_induction₂ NonUnitalSubsemiring.closure_induction₂
+-/
 
 variable (R)
 
+#print NonUnitalSubsemiring.gi /-
 /-- `closure` forms a Galois insertion with the coercion to set. -/
 protected def gi : GaloisInsertion (@closure R _) coe
     where
@@ -754,6 +911,7 @@ protected def gi : GaloisInsertion (@closure R _) coe
   le_l_u s := subset_closure
   choice_eq s h := rfl
 #align non_unital_subsemiring.gi NonUnitalSubsemiring.gi
+-/
 
 variable {R} {F : Type _} [NonUnitalRingHomClass F R S]
 
@@ -764,15 +922,19 @@ theorem closure_eq (s : NonUnitalSubsemiring R) : closure (s : Set R) = s :=
 #align non_unital_subsemiring.closure_eq NonUnitalSubsemiring.closure_eq
 -/
 
+#print NonUnitalSubsemiring.closure_empty /-
 @[simp]
 theorem closure_empty : closure (∅ : Set R) = ⊥ :=
   (NonUnitalSubsemiring.gi R).gc.l_bot
 #align non_unital_subsemiring.closure_empty NonUnitalSubsemiring.closure_empty
+-/
 
+#print NonUnitalSubsemiring.closure_univ /-
 @[simp]
 theorem closure_univ : closure (Set.univ : Set R) = ⊤ :=
   @coe_top R _ ▸ closure_eq ⊤
 #align non_unital_subsemiring.closure_univ NonUnitalSubsemiring.closure_univ
+-/
 
 #print NonUnitalSubsemiring.closure_union /-
 theorem closure_union (s t : Set R) : closure (s ∪ t) = closure s ⊔ closure t :=
@@ -780,101 +942,138 @@ theorem closure_union (s t : Set R) : closure (s ∪ t) = closure s ⊔ closure
 #align non_unital_subsemiring.closure_union NonUnitalSubsemiring.closure_union
 -/
 
+#print NonUnitalSubsemiring.closure_iUnion /-
 theorem closure_iUnion {ι} (s : ι → Set R) : closure (⋃ i, s i) = ⨆ i, closure (s i) :=
   (NonUnitalSubsemiring.gi R).gc.l_iSup
 #align non_unital_subsemiring.closure_Union NonUnitalSubsemiring.closure_iUnion
+-/
 
+#print NonUnitalSubsemiring.closure_sUnion /-
 theorem closure_sUnion (s : Set (Set R)) : closure (⋃₀ s) = ⨆ t ∈ s, closure t :=
   (NonUnitalSubsemiring.gi R).gc.l_sSup
 #align non_unital_subsemiring.closure_sUnion NonUnitalSubsemiring.closure_sUnion
+-/
 
+#print NonUnitalSubsemiring.map_sup /-
 theorem map_sup (s t : NonUnitalSubsemiring R) (f : F) :
     (map f (s ⊔ t) : NonUnitalSubsemiring S) = map f s ⊔ map f t :=
   @GaloisConnection.l_sup _ _ s t _ _ _ _ (gc_map_comap f)
 #align non_unital_subsemiring.map_sup NonUnitalSubsemiring.map_sup
+-/
 
+#print NonUnitalSubsemiring.map_iSup /-
 theorem map_iSup {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring R) :
     (map f (iSup s) : NonUnitalSubsemiring S) = ⨆ i, map f (s i) :=
   @GaloisConnection.l_iSup _ _ _ _ _ _ _ (gc_map_comap f) s
 #align non_unital_subsemiring.map_supr NonUnitalSubsemiring.map_iSup
+-/
 
+#print NonUnitalSubsemiring.comap_inf /-
 theorem comap_inf (s t : NonUnitalSubsemiring S) (f : F) :
     (comap f (s ⊓ t) : NonUnitalSubsemiring R) = comap f s ⊓ comap f t :=
   @GaloisConnection.u_inf _ _ s t _ _ _ _ (gc_map_comap f)
 #align non_unital_subsemiring.comap_inf NonUnitalSubsemiring.comap_inf
+-/
 
+#print NonUnitalSubsemiring.comap_iInf /-
 theorem comap_iInf {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring S) :
     (comap f (iInf s) : NonUnitalSubsemiring R) = ⨅ i, comap f (s i) :=
   @GaloisConnection.u_iInf _ _ _ _ _ _ _ (gc_map_comap f) s
 #align non_unital_subsemiring.comap_infi NonUnitalSubsemiring.comap_iInf
+-/
 
+#print NonUnitalSubsemiring.map_bot /-
 @[simp]
 theorem map_bot (f : F) : map f (⊥ : NonUnitalSubsemiring R) = (⊥ : NonUnitalSubsemiring S) :=
   (gc_map_comap f).l_bot
 #align non_unital_subsemiring.map_bot NonUnitalSubsemiring.map_bot
+-/
 
+#print NonUnitalSubsemiring.comap_top /-
 @[simp]
 theorem comap_top (f : F) : comap f (⊤ : NonUnitalSubsemiring S) = (⊤ : NonUnitalSubsemiring R) :=
   (gc_map_comap f).u_top
 #align non_unital_subsemiring.comap_top NonUnitalSubsemiring.comap_top
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print NonUnitalSubsemiring.prod /-
 /-- Given `non_unital_subsemiring`s `s`, `t` of semirings `R`, `S` respectively, `s.prod t` is
 `s × t` as a non-unital subsemiring of `R × S`. -/
 def prod (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) : NonUnitalSubsemiring (R × S) :=
   { s.toSubsemigroup.Prod t.toSubsemigroup, s.toAddSubmonoid.Prod t.toAddSubmonoid with
     carrier := (s : Set R) ×ˢ (t : Set S) }
 #align non_unital_subsemiring.prod NonUnitalSubsemiring.prod
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print NonUnitalSubsemiring.coe_prod /-
 @[norm_cast]
 theorem coe_prod (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) :
     (s.Prod t : Set (R × S)) = (s : Set R) ×ˢ (t : Set S) :=
   rfl
 #align non_unital_subsemiring.coe_prod NonUnitalSubsemiring.coe_prod
+-/
 
+#print NonUnitalSubsemiring.mem_prod /-
 theorem mem_prod {s : NonUnitalSubsemiring R} {t : NonUnitalSubsemiring S} {p : R × S} :
     p ∈ s.Prod t ↔ p.1 ∈ s ∧ p.2 ∈ t :=
   Iff.rfl
 #align non_unital_subsemiring.mem_prod NonUnitalSubsemiring.mem_prod
+-/
 
+#print NonUnitalSubsemiring.prod_mono /-
 @[mono]
 theorem prod_mono ⦃s₁ s₂ : NonUnitalSubsemiring R⦄ (hs : s₁ ≤ s₂) ⦃t₁ t₂ : NonUnitalSubsemiring S⦄
     (ht : t₁ ≤ t₂) : s₁.Prod t₁ ≤ s₂.Prod t₂ :=
   Set.prod_mono hs ht
 #align non_unital_subsemiring.prod_mono NonUnitalSubsemiring.prod_mono
+-/
 
+#print NonUnitalSubsemiring.prod_mono_right /-
 theorem prod_mono_right (s : NonUnitalSubsemiring R) :
     Monotone fun t : NonUnitalSubsemiring S => s.Prod t :=
   prod_mono (le_refl s)
 #align non_unital_subsemiring.prod_mono_right NonUnitalSubsemiring.prod_mono_right
+-/
 
+#print NonUnitalSubsemiring.prod_mono_left /-
 theorem prod_mono_left (t : NonUnitalSubsemiring S) :
     Monotone fun s : NonUnitalSubsemiring R => s.Prod t := fun s₁ s₂ hs => prod_mono hs (le_refl t)
 #align non_unital_subsemiring.prod_mono_left NonUnitalSubsemiring.prod_mono_left
+-/
 
+#print NonUnitalSubsemiring.prod_top /-
 theorem prod_top (s : NonUnitalSubsemiring R) :
     s.Prod (⊤ : NonUnitalSubsemiring S) = s.comap (NonUnitalRingHom.fst R S) :=
   ext fun x => by simp [mem_prod, MonoidHom.coe_fst]
 #align non_unital_subsemiring.prod_top NonUnitalSubsemiring.prod_top
+-/
 
+#print NonUnitalSubsemiring.top_prod /-
 theorem top_prod (s : NonUnitalSubsemiring S) :
     (⊤ : NonUnitalSubsemiring R).Prod s = s.comap (NonUnitalRingHom.snd R S) :=
   ext fun x => by simp [mem_prod, MonoidHom.coe_snd]
 #align non_unital_subsemiring.top_prod NonUnitalSubsemiring.top_prod
+-/
 
+#print NonUnitalSubsemiring.top_prod_top /-
 @[simp]
 theorem top_prod_top : (⊤ : NonUnitalSubsemiring R).Prod (⊤ : NonUnitalSubsemiring S) = ⊤ :=
   (top_prod _).trans <| comap_top _
 #align non_unital_subsemiring.top_prod_top NonUnitalSubsemiring.top_prod_top
+-/
 
+#print NonUnitalSubsemiring.prodEquiv /-
 /-- Product of non-unital subsemirings is isomorphic to their product as semigroups. -/
 def prodEquiv (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) : s.Prod t ≃+* s × t :=
   { Equiv.Set.prod ↑s ↑t with
     map_mul' := fun x y => rfl
     map_add' := fun x y => rfl }
 #align non_unital_subsemiring.prod_equiv NonUnitalSubsemiring.prodEquiv
+-/
 
+#print NonUnitalSubsemiring.mem_iSup_of_directed /-
 theorem mem_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
     (hS : Directed (· ≤ ·) S) {x : R} : (x ∈ ⨆ i, S i) ↔ ∃ i, x ∈ S i :=
   by
@@ -887,23 +1086,30 @@ theorem mem_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubse
   suffices (⨆ i, S i) ≤ U by simpa using @this x
   exact iSup_le fun i x hx => Set.mem_iUnion.2 ⟨i, hx⟩
 #align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_iSup_of_directed
+-/
 
+#print NonUnitalSubsemiring.coe_iSup_of_directed /-
 theorem coe_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
     (hS : Directed (· ≤ ·) S) : ((⨆ i, S i : NonUnitalSubsemiring R) : Set R) = ⋃ i, ↑(S i) :=
   Set.ext fun x => by simp [mem_supr_of_directed hS]
 #align non_unital_subsemiring.coe_supr_of_directed NonUnitalSubsemiring.coe_iSup_of_directed
+-/
 
+#print NonUnitalSubsemiring.mem_sSup_of_directedOn /-
 theorem mem_sSup_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
     (hS : DirectedOn (· ≤ ·) S) {x : R} : x ∈ sSup S ↔ ∃ s ∈ S, x ∈ s :=
   by
   haveI : Nonempty S := Sne.to_subtype
   simp only [sSup_eq_iSup', mem_supr_of_directed hS.directed_coe, SetCoe.exists, Subtype.coe_mk]
 #align non_unital_subsemiring.mem_Sup_of_directed_on NonUnitalSubsemiring.mem_sSup_of_directedOn
+-/
 
+#print NonUnitalSubsemiring.coe_sSup_of_directedOn /-
 theorem coe_sSup_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
     (hS : DirectedOn (· ≤ ·) S) : (↑(sSup S) : Set R) = ⋃ s ∈ S, ↑s :=
   Set.ext fun x => by simp [mem_Sup_of_directed_on Sne hS]
 #align non_unital_subsemiring.coe_Sup_of_directed_on NonUnitalSubsemiring.coe_sSup_of_directedOn
+-/
 
 end NonUnitalSubsemiring
 
@@ -914,12 +1120,15 @@ variable {F : Type _} [NonUnitalNonAssocSemiring T] [NonUnitalRingHomClass F R S
 
 open NonUnitalSubsemiringClass NonUnitalSubsemiring
 
+#print NonUnitalRingHom.codRestrict /-
 /-- Restriction of a non-unital ring homomorphism to a non-unital subsemiring of the codomain. -/
 def codRestrict (f : F) (s : NonUnitalSubsemiring S) (h : ∀ x, f x ∈ s) : R →ₙ+* s :=
   { (f : R →ₙ* S).codRestrict s.toSubsemigroup h, (f : R →+ S).codRestrict s.toAddSubmonoid h with
     toFun := fun n => ⟨f n, h n⟩ }
 #align non_unital_ring_hom.cod_restrict NonUnitalRingHom.codRestrict
+-/
 
+#print NonUnitalRingHom.srangeRestrict /-
 /-- Restriction of a non-unital ring homomorphism to its range interpreted as a
 non-unital subsemiring.
 
@@ -927,29 +1136,38 @@ This is the bundled version of `set.range_factorization`. -/
 def srangeRestrict (f : F) : R →ₙ+* (srange f : NonUnitalSubsemiring S) :=
   codRestrict f (srange f) (mem_srange_self f)
 #align non_unital_ring_hom.srange_restrict NonUnitalRingHom.srangeRestrict
+-/
 
+#print NonUnitalRingHom.coe_srangeRestrict /-
 @[simp]
 theorem coe_srangeRestrict (f : F) (x : R) : (srangeRestrict f x : S) = f x :=
   rfl
 #align non_unital_ring_hom.coe_srange_restrict NonUnitalRingHom.coe_srangeRestrict
+-/
 
+#print NonUnitalRingHom.srangeRestrict_surjective /-
 theorem srangeRestrict_surjective (f : F) :
     Function.Surjective (srangeRestrict f : R → (srange f : NonUnitalSubsemiring S)) :=
   fun ⟨y, hy⟩ =>
   let ⟨x, hx⟩ := mem_srange.mp hy
   ⟨x, Subtype.ext hx⟩
 #align non_unital_ring_hom.srange_restrict_surjective NonUnitalRingHom.srangeRestrict_surjective
+-/
 
+#print NonUnitalRingHom.srange_top_iff_surjective /-
 theorem srange_top_iff_surjective {f : F} :
     srange f = (⊤ : NonUnitalSubsemiring S) ↔ Function.Surjective (f : R → S) :=
   SetLike.ext'_iff.trans <| Iff.trans (by rw [coe_srange, coe_top]) Set.range_iff_surjective
 #align non_unital_ring_hom.srange_top_iff_surjective NonUnitalRingHom.srange_top_iff_surjective
+-/
 
+#print NonUnitalRingHom.srange_top_of_surjective /-
 /-- The range of a surjective non-unital ring homomorphism is the whole of the codomain. -/
 theorem srange_top_of_surjective (f : F) (hf : Function.Surjective (f : R → S)) :
     srange f = (⊤ : NonUnitalSubsemiring S) :=
   srange_top_iff_surjective.2 hf
 #align non_unital_ring_hom.srange_top_of_surjective NonUnitalRingHom.srange_top_of_surjective
+-/
 
 #print NonUnitalRingHom.eqSlocus /-
 /-- The non-unital subsemiring of elements `x : R` such that `f x = g x` -/
@@ -958,28 +1176,37 @@ def eqSlocus (f g : F) : NonUnitalSubsemiring R :=
 #align non_unital_ring_hom.eq_slocus NonUnitalRingHom.eqSlocus
 -/
 
+#print NonUnitalRingHom.eqOn_sclosure /-
 /-- If two non-unital ring homomorphisms are equal on a set, then they are equal on its
 non-unital subsemiring closure. -/
 theorem eqOn_sclosure {f g : F} {s : Set R} (h : Set.EqOn (f : R → S) (g : R → S) s) :
     Set.EqOn f g (closure s) :=
   show closure s ≤ eqSlocus f g from closure_le.2 h
 #align non_unital_ring_hom.eq_on_sclosure NonUnitalRingHom.eqOn_sclosure
+-/
 
+#print NonUnitalRingHom.eq_of_eqOn_stop /-
 theorem eq_of_eqOn_stop {f g : F}
     (h : Set.EqOn (f : R → S) (g : R → S) (⊤ : NonUnitalSubsemiring R)) : f = g :=
   FunLike.ext _ _ fun x => h trivial
 #align non_unital_ring_hom.eq_of_eq_on_stop NonUnitalRingHom.eq_of_eqOn_stop
+-/
 
+#print NonUnitalRingHom.eq_of_eqOn_sdense /-
 theorem eq_of_eqOn_sdense {s : Set R} (hs : closure s = ⊤) {f g : F}
     (h : s.EqOn (f : R → S) (g : R → S)) : f = g :=
   eq_of_eqOn_stop <| hs ▸ eqOn_sclosure h
 #align non_unital_ring_hom.eq_of_eq_on_sdense NonUnitalRingHom.eq_of_eqOn_sdense
+-/
 
+#print NonUnitalRingHom.sclosure_preimage_le /-
 theorem sclosure_preimage_le (f : F) (s : Set S) :
     closure ((f : R → S) ⁻¹' s) ≤ (closure s).comap f :=
   closure_le.2 fun x hx => SetLike.mem_coe.2 <| mem_comap.2 <| subset_closure hx
 #align non_unital_ring_hom.sclosure_preimage_le NonUnitalRingHom.sclosure_preimage_le
+-/
 
+#print NonUnitalRingHom.map_sclosure /-
 /-- The image under a ring homomorphism of the subsemiring generated by a set equals
 the subsemiring generated by the image of the set. -/
 theorem map_sclosure (f : F) (s : Set R) : (closure s).map f = closure ((f : R → S) '' s) :=
@@ -988,6 +1215,7 @@ theorem map_sclosure (f : F) (s : Set R) : (closure s).map f = closure ((f : R 
       le_trans (closure_mono <| Set.subset_preimage_image _ _) (sclosure_preimage_le _ _))
     (closure_le.2 <| Set.image_subset _ subset_closure)
 #align non_unital_ring_hom.map_sclosure NonUnitalRingHom.map_sclosure
+-/
 
 end NonUnitalRingHom
 
@@ -995,26 +1223,34 @@ namespace NonUnitalSubsemiring
 
 open NonUnitalRingHom NonUnitalSubsemiringClass
 
+#print NonUnitalSubsemiring.inclusion /-
 /-- The non-unital ring homomorphism associated to an inclusion of
 non-unital subsemirings. -/
 def inclusion {S T : NonUnitalSubsemiring R} (h : S ≤ T) : S →ₙ+* T :=
   codRestrict (Subtype S) _ fun x => h x.2
 #align non_unital_subsemiring.inclusion NonUnitalSubsemiring.inclusion
+-/
 
+#print NonUnitalSubsemiring.srange_subtype /-
 @[simp]
 theorem srange_subtype (s : NonUnitalSubsemiring R) : (Subtype s).srange = s :=
   SetLike.coe_injective <| (coe_srange _).trans Subtype.range_coe
 #align non_unital_subsemiring.srange_subtype NonUnitalSubsemiring.srange_subtype
+-/
 
+#print NonUnitalSubsemiring.range_fst /-
 @[simp]
 theorem range_fst : (fst R S).srange = ⊤ :=
   NonUnitalRingHom.srange_top_of_surjective (fst R S) Prod.fst_surjective
 #align non_unital_subsemiring.range_fst NonUnitalSubsemiring.range_fst
+-/
 
+#print NonUnitalSubsemiring.range_snd /-
 @[simp]
 theorem range_snd : (snd R S).srange = ⊤ :=
   NonUnitalRingHom.srange_top_of_surjective (snd R S) <| Prod.snd_surjective
 #align non_unital_subsemiring.range_snd NonUnitalSubsemiring.range_snd
+-/
 
 end NonUnitalSubsemiring
 
@@ -1026,6 +1262,7 @@ variable {s t : NonUnitalSubsemiring R}
 
 variable {F : Type _} [NonUnitalRingHomClass F R S]
 
+#print RingEquiv.nonUnitalSubsemiringCongr /-
 /-- Makes the identity isomorphism from a proof two non-unital subsemirings of a multiplicative
 monoid are equal. -/
 def nonUnitalSubsemiringCongr (h : s = t) : s ≃+* t :=
@@ -1034,7 +1271,9 @@ def nonUnitalSubsemiringCongr (h : s = t) : s ≃+* t :=
     map_mul' := fun _ _ => rfl
     map_add' := fun _ _ => rfl }
 #align ring_equiv.non_unital_subsemiring_congr RingEquiv.nonUnitalSubsemiringCongr
+-/
 
+#print RingEquiv.sofLeftInverse' /-
 /-- Restrict a non-unital ring homomorphism with a left inverse to a ring isomorphism to its
 `non_unital_ring_hom.srange`. -/
 def sofLeftInverse' {g : S → R} {f : F} (h : Function.LeftInverse g f) : R ≃+* srange f :=
@@ -1047,19 +1286,25 @@ def sofLeftInverse' {g : S → R} {f : F} (h : Function.LeftInverse g f) : R ≃
         let ⟨x', hx'⟩ := NonUnitalRingHom.mem_srange.mp x.Prop
         show f (g x) = x by rw [← hx', h x'] }
 #align ring_equiv.sof_left_inverse' RingEquiv.sofLeftInverse'
+-/
 
+#print RingEquiv.sofLeftInverse'_apply /-
 @[simp]
 theorem sofLeftInverse'_apply {g : S → R} {f : F} (h : Function.LeftInverse g f) (x : R) :
     ↑(sofLeftInverse' h x) = f x :=
   rfl
 #align ring_equiv.sof_left_inverse'_apply RingEquiv.sofLeftInverse'_apply
+-/
 
+#print RingEquiv.sofLeftInverse'_symm_apply /-
 @[simp]
 theorem sofLeftInverse'_symm_apply {g : S → R} {f : F} (h : Function.LeftInverse g f)
     (x : srange f) : (sofLeftInverse' h).symm x = g x :=
   rfl
 #align ring_equiv.sof_left_inverse'_symm_apply RingEquiv.sofLeftInverse'_symm_apply
+-/
 
+#print RingEquiv.nonUnitalSubsemiringMap /-
 /-- Given an equivalence `e : R ≃+* S` of non-unital semirings and a non-unital subsemiring
 `s` of `R`, `non_unital_subsemiring_map e s` is the induced equivalence between `s` and
 `s.map e` -/
@@ -1069,6 +1314,7 @@ def nonUnitalSubsemiringMap (e : R ≃+* S) (s : NonUnitalSubsemiring R) :
   { e.toAddEquiv.addSubmonoidMap s.toAddSubmonoid,
     e.toMulEquiv.subsemigroupMap s.toSubsemigroup with }
 #align ring_equiv.non_unital_subsemiring_map RingEquiv.nonUnitalSubsemiringMap
+-/
 
 end RingEquiv
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jireh Loreaux
 
 ! This file was ported from Lean 3 source module ring_theory.non_unital_subsemiring.basic
-! leanprover-community/mathlib commit ce38d86c0b2d427ce208c3cee3159cb421d2b3c4
+! leanprover-community/mathlib commit b915e9392ecb2a861e1e766f0e1df6ac481188ca
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -569,11 +569,21 @@ theorem mem_centralizer_iff {R} [NonUnitalSemiring R] {s : Set R} {z : R} :
   Iff.rfl
 #align non_unital_subsemiring.mem_centralizer_iff NonUnitalSubsemiring.mem_centralizer_iff
 
+theorem center_le_centralizer {R} [NonUnitalSemiring R] (s) : center R ≤ centralizer s :=
+  s.center_subset_centralizer
+#align non_unital_subsemiring.center_le_centralizer NonUnitalSubsemiring.center_le_centralizer
+
 theorem centralizer_le {R} [NonUnitalSemiring R] (s t : Set R) (h : s ⊆ t) :
     centralizer t ≤ centralizer s :=
   Set.centralizer_subset h
 #align non_unital_subsemiring.centralizer_le NonUnitalSubsemiring.centralizer_le
 
+@[simp]
+theorem centralizer_eq_top_iff_subset {R} [NonUnitalSemiring R] {s : Set R} :
+    centralizer s = ⊤ ↔ s ⊆ center R :=
+  SetLike.ext'_iff.trans Set.centralizer_eq_top_iff_subset
+#align non_unital_subsemiring.centralizer_eq_top_iff_subset NonUnitalSubsemiring.centralizer_eq_top_iff_subset
+
 #print NonUnitalSubsemiring.centralizer_univ /-
 @[simp]
 theorem centralizer_univ {R} [NonUnitalSemiring R] : centralizer Set.univ = center R :=
Diff
@@ -586,7 +586,7 @@ end Centralizer
 #print NonUnitalSubsemiring.closure /-
 /-- The `non_unital_subsemiring` generated by a set. -/
 def closure (s : Set R) : NonUnitalSubsemiring R :=
-  sInf { S | s ⊆ S }
+  sInf {S | s ⊆ S}
 #align non_unital_subsemiring.closure NonUnitalSubsemiring.closure
 -/
 
@@ -944,7 +944,7 @@ theorem srange_top_of_surjective (f : F) (hf : Function.Surjective (f : R → S)
 #print NonUnitalRingHom.eqSlocus /-
 /-- The non-unital subsemiring of elements `x : R` such that `f x = g x` -/
 def eqSlocus (f g : F) : NonUnitalSubsemiring R :=
-  { (f : R →ₙ* S).eqLocus (g : R →ₙ* S), (f : R →+ S).eqLocus g with carrier := { x | f x = g x } }
+  { (f : R →ₙ* S).eqLocus (g : R →ₙ* S), (f : R →+ S).eqLocus g with carrier := {x | f x = g x} }
 #align non_unital_ring_hom.eq_slocus NonUnitalRingHom.eqSlocus
 -/
 
Diff
@@ -37,7 +37,7 @@ variable {R : Type u} {S : Type v} {T : Type w} [NonUnitalNonAssocSemiring R] (M
 /-- `non_unital_subsemiring_class S R` states that `S` is a type of subsets `s ⊆ R` that
 are both an additive submonoid and also a multiplicative subsemigroup. -/
 class NonUnitalSubsemiringClass (S : Type _) (R : Type u) [NonUnitalNonAssocSemiring R]
-  [SetLike S R] extends AddSubmonoidClass S R where
+    [SetLike S R] extends AddSubmonoidClass S R where
   mul_mem : ∀ {s : S} {a b : R}, a ∈ s → b ∈ s → a * b ∈ s
 #align non_unital_subsemiring_class NonUnitalSubsemiringClass
 -/
@@ -113,7 +113,7 @@ variable [NonUnitalNonAssocSemiring S] [NonUnitalNonAssocSemiring T]
 /-- A non-unital subsemiring of a non-unital semiring `R` is a subset `s` that is both an additive
 submonoid and a semigroup. -/
 structure NonUnitalSubsemiring (R : Type u) [NonUnitalNonAssocSemiring R] extends AddSubmonoid R,
-  Subsemigroup R
+    Subsemigroup R
 #align non_unital_subsemiring NonUnitalSubsemiring
 -/
 
Diff
@@ -27,7 +27,7 @@ We define bundled non-unital subsemirings and some standard constructions:
 -/
 
 
-open BigOperators
+open scoped BigOperators
 
 universe u v w
 
Diff
@@ -42,12 +42,6 @@ class NonUnitalSubsemiringClass (S : Type _) (R : Type u) [NonUnitalNonAssocSemi
 #align non_unital_subsemiring_class NonUnitalSubsemiringClass
 -/
 
-/- warning: non_unital_subsemiring_class.mul_mem_class -> NonUnitalSubsemiringClass.mulMemClass is a dubious translation:
-lean 3 declaration is
-  forall (S : Type.{u2}) (R : Type.{u1}) [_inst_2 : NonUnitalNonAssocSemiring.{u1} R] [_inst_3 : SetLike.{u2, u1} S R] [h : NonUnitalSubsemiringClass.{u1, u2} S R _inst_2 _inst_3], MulMemClass.{u2, u1} S R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_2)) _inst_3
-but is expected to have type
-  forall (S : Type.{u2}) (R : Type.{u1}) [_inst_2 : NonUnitalNonAssocSemiring.{u1} R] [_inst_3 : SetLike.{u2, u1} S R] [h : NonUnitalSubsemiringClass.{u1, u2} S R _inst_2 _inst_3], MulMemClass.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_2) _inst_3
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring_class.mul_mem_class NonUnitalSubsemiringClass.mulMemClassₓ'. -/
 -- See note [lower instance priority]
 instance (priority := 100) NonUnitalSubsemiringClass.mulMemClass (S : Type _) (R : Type u)
     [NonUnitalNonAssocSemiring R] [SetLike S R] [h : NonUnitalSubsemiringClass S R] :
@@ -73,12 +67,6 @@ instance (priority := 75) toNonUnitalNonAssocSemiring : NonUnitalNonAssocSemirin
 #align non_unital_subsemiring_class.to_non_unital_non_assoc_semiring NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring
 -/
 
-/- warning: non_unital_subsemiring_class.no_zero_divisors -> NonUnitalSubsemiringClass.noZeroDivisors is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : SetLike.{u2, u1} S R] [_inst_3 : NonUnitalSubsemiringClass.{u1, u2} S R _inst_1 _inst_2] (s : S) [_inst_4 : NoZeroDivisors.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))], NoZeroDivisors.{u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) (MulMemClass.mul.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) _inst_2 (NonUnitalSubsemiringClass.mulMemClass.{u1, u2} S R _inst_1 _inst_2 _inst_3) s) (ZeroMemClass.zero.{u2, u1} S R _inst_2 (AddZeroClass.toHasZero.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (AddSubmonoidClass.to_zeroMemClass.{u2, u1} S R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) _inst_2 (NonUnitalSubsemiringClass.to_addSubmonoidClass.{u1, u2} S R _inst_1 _inst_2 _inst_3)) s)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : SetLike.{u2, u1} S R] [_inst_3 : NonUnitalSubsemiringClass.{u1, u2} S R _inst_1 _inst_2] (s : S) [_inst_4 : NoZeroDivisors.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))], NoZeroDivisors.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) (ZeroMemClass.zero.{u2, u1} S R _inst_2 (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1)) (AddSubmonoidClass.toZeroMemClass.{u2, u1} S R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) _inst_2 (NonUnitalSubsemiringClass.toAddSubmonoidClass.{u1, u2} S R _inst_1 _inst_2 _inst_3)) s)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring_class.no_zero_divisors NonUnitalSubsemiringClass.noZeroDivisorsₓ'. -/
 instance noZeroDivisors [NoZeroDivisors R] : NoZeroDivisors s :=
   Subtype.coe_injective.NoZeroDivisors coe rfl fun x y => rfl
 #align non_unital_subsemiring_class.no_zero_divisors NonUnitalSubsemiringClass.noZeroDivisors
@@ -91,12 +79,6 @@ def subtype : s →ₙ+* R :=
 #align non_unital_subsemiring_class.subtype NonUnitalSubsemiringClass.subtype
 -/
 
-/- warning: non_unital_subsemiring_class.coe_subtype -> NonUnitalSubsemiringClass.coeSubtype is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : SetLike.{u2, u1} S R] [_inst_3 : NonUnitalSubsemiringClass.{u1, u2} S R _inst_1 _inst_2] (s : S), Eq.{succ u1} ((fun (_x : NonUnitalRingHom.{u1, u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) => (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) -> R) (NonUnitalSubsemiringClass.subtype.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) (coeFn.{succ u1, succ u1} (NonUnitalRingHom.{u1, u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (fun (_x : NonUnitalRingHom.{u1, u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) => (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) -> R) (NonUnitalRingHom.hasCoeToFun.{u1, u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (NonUnitalSubsemiringClass.subtype.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u2} R S (SetLike.hasMem.{u2, u1} S R _inst_2) x s))))))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : SetLike.{u2, u1} S R] [_inst_3 : NonUnitalSubsemiringClass.{u1, u2} S R _inst_1 _inst_2] (s : S), Eq.{succ u1} (forall (a : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) => R) a) (FunLike.coe.{succ u1, succ u1, succ u1} (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) (fun (_x : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) => R) _x) (MulHomClass.toFunLike.{u1, u1, u1} (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1 (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1))) (NonUnitalSubsemiringClass.subtype.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u2, u1} S R _inst_2 s)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring_class.coe_subtype NonUnitalSubsemiringClass.coeSubtypeₓ'. -/
 @[simp]
 theorem coeSubtype : (subtype s : s → R) = coe :=
   rfl
@@ -154,35 +136,17 @@ instance : NonUnitalSubsemiringClass (NonUnitalSubsemiring R) R
   add_mem := add_mem'
   mul_mem := mul_mem'
 
-/- warning: non_unital_subsemiring.mem_carrier -> NonUnitalSubsemiring.mem_carrier is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.Mem.{u1, u1} R (Set.{u1} R) (Set.hasMem.{u1} R) x (NonUnitalSubsemiring.carrier.{u1} R _inst_1 s)) (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (AddSubsemigroup.carrier.{u1} R (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (AddSubmonoid.toAddSubsemigroup.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)))) (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_carrier NonUnitalSubsemiring.mem_carrierₓ'. -/
 @[simp]
 theorem mem_carrier {s : NonUnitalSubsemiring R} {x : R} : x ∈ s.carrier ↔ x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_carrier NonUnitalSubsemiring.mem_carrier
 
-/- warning: non_unital_subsemiring.ext -> NonUnitalSubsemiring.ext is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : NonUnitalSubsemiring.{u1} R _inst_1} {T : NonUnitalSubsemiring.{u1} R _inst_1}, (forall (x : R), Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x S) (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x T)) -> (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) S T)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : NonUnitalSubsemiring.{u1} R _inst_1} {T : NonUnitalSubsemiring.{u1} R _inst_1}, (forall (x : R), Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x S) (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x T)) -> (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) S T)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.ext NonUnitalSubsemiring.extₓ'. -/
 /-- Two non-unital subsemirings are equal if they have the same elements. -/
 @[ext]
 theorem ext {S T : NonUnitalSubsemiring R} (h : ∀ x, x ∈ S ↔ x ∈ T) : S = T :=
   SetLike.ext h
 #align non_unital_subsemiring.ext NonUnitalSubsemiring.ext
 
-/- warning: non_unital_subsemiring.copy -> NonUnitalSubsemiring.copy is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : NonUnitalSubsemiring.{u1} R _inst_1) (s : Set.{u1} R), (Eq.{succ u1} (Set.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) S)) -> (NonUnitalSubsemiring.{u1} R _inst_1)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : NonUnitalSubsemiring.{u1} R _inst_1) (s : Set.{u1} R), (Eq.{succ u1} (Set.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) S)) -> (NonUnitalSubsemiring.{u1} R _inst_1)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.copy NonUnitalSubsemiring.copyₓ'. -/
 /-- Copy of a non-unital subsemiring with a new `carrier` equal to the old one. Useful to fix
 definitional equalities.-/
 protected def copy (S : NonUnitalSubsemiring R) (s : Set R) (hs : s = ↑S) :
@@ -190,56 +154,26 @@ protected def copy (S : NonUnitalSubsemiring R) (s : Set R) (hs : s = ↑S) :
   { S.toAddSubmonoid.copy s hs, S.toSubsemigroup.copy s hs with carrier := s }
 #align non_unital_subsemiring.copy NonUnitalSubsemiring.copy
 
-/- warning: non_unital_subsemiring.coe_copy -> NonUnitalSubsemiring.coe_copy is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : NonUnitalSubsemiring.{u1} R _inst_1) (s : Set.{u1} R) (hs : Eq.{succ u1} (Set.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) S)), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.copy.{u1} R _inst_1 S s hs)) s
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : NonUnitalSubsemiring.{u1} R _inst_1) (s : Set.{u1} R) (hs : Eq.{succ u1} (Set.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) S)), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.copy.{u1} R _inst_1 S s hs)) s
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_copy NonUnitalSubsemiring.coe_copyₓ'. -/
 @[simp]
 theorem coe_copy (S : NonUnitalSubsemiring R) (s : Set R) (hs : s = ↑S) :
     (S.copy s hs : Set R) = s :=
   rfl
 #align non_unital_subsemiring.coe_copy NonUnitalSubsemiring.coe_copy
 
-/- warning: non_unital_subsemiring.copy_eq -> NonUnitalSubsemiring.copy_eq is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : NonUnitalSubsemiring.{u1} R _inst_1) (s : Set.{u1} R) (hs : Eq.{succ u1} (Set.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) S)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.copy.{u1} R _inst_1 S s hs) S
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : NonUnitalSubsemiring.{u1} R _inst_1) (s : Set.{u1} R) (hs : Eq.{succ u1} (Set.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) S)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.copy.{u1} R _inst_1 S s hs) S
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.copy_eq NonUnitalSubsemiring.copy_eqₓ'. -/
 theorem copy_eq (S : NonUnitalSubsemiring R) (s : Set R) (hs : s = ↑S) : S.copy s hs = S :=
   SetLike.coe_injective hs
 #align non_unital_subsemiring.copy_eq NonUnitalSubsemiring.copy_eq
 
-/- warning: non_unital_subsemiring.to_subsemigroup_injective -> NonUnitalSubsemiring.toSubsemigroup_injective is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Function.Injective.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Function.Injective.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.to_subsemigroup_injective NonUnitalSubsemiring.toSubsemigroup_injectiveₓ'. -/
 theorem toSubsemigroup_injective :
     Function.Injective (toSubsemigroup : NonUnitalSubsemiring R → Subsemigroup R)
   | r, s, h => ext (SetLike.ext_iff.mp h : _)
 #align non_unital_subsemiring.to_subsemigroup_injective NonUnitalSubsemiring.toSubsemigroup_injective
 
-/- warning: non_unital_subsemiring.to_subsemigroup_strict_mono -> NonUnitalSubsemiring.toSubsemigroup_strictMono is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], StrictMono.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], StrictMono.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instPartialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.instCompleteLatticeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1))))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.to_subsemigroup_strict_mono NonUnitalSubsemiring.toSubsemigroup_strictMonoₓ'. -/
 @[mono]
 theorem toSubsemigroup_strictMono :
     StrictMono (toSubsemigroup : NonUnitalSubsemiring R → Subsemigroup R) := fun _ _ => id
 #align non_unital_subsemiring.to_subsemigroup_strict_mono NonUnitalSubsemiring.toSubsemigroup_strictMono
 
-/- warning: non_unital_subsemiring.to_subsemigroup_mono -> NonUnitalSubsemiring.toSubsemigroup_mono is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Monotone.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Monotone.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instPartialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.instCompleteLatticeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1))))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.to_subsemigroup_mono NonUnitalSubsemiring.toSubsemigroup_monoₓ'. -/
 @[mono]
 theorem toSubsemigroup_mono : Monotone (toSubsemigroup : NonUnitalSubsemiring R → Subsemigroup R) :=
   toSubsemigroup_strictMono.Monotone
@@ -252,34 +186,16 @@ theorem toAddSubmonoid_injective :
 #align non_unital_subsemiring.to_add_submonoid_injective NonUnitalSubsemiring.toAddSubmonoid_injective
 -/
 
-/- warning: non_unital_subsemiring.to_add_submonoid_strict_mono -> NonUnitalSubsemiring.toAddSubmonoid_strictMono is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], StrictMono.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (SetLike.partialOrder.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], StrictMono.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instPartialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (CompleteSemilatticeInf.toPartialOrder.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.to_add_submonoid_strict_mono NonUnitalSubsemiring.toAddSubmonoid_strictMonoₓ'. -/
 @[mono]
 theorem toAddSubmonoid_strictMono :
     StrictMono (toAddSubmonoid : NonUnitalSubsemiring R → AddSubmonoid R) := fun _ _ => id
 #align non_unital_subsemiring.to_add_submonoid_strict_mono NonUnitalSubsemiring.toAddSubmonoid_strictMono
 
-/- warning: non_unital_subsemiring.to_add_submonoid_mono -> NonUnitalSubsemiring.toAddSubmonoid_mono is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Monotone.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (SetLike.partialOrder.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Monotone.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instPartialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (CompleteSemilatticeInf.toPartialOrder.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.to_add_submonoid_mono NonUnitalSubsemiring.toAddSubmonoid_monoₓ'. -/
 @[mono]
 theorem toAddSubmonoid_mono : Monotone (toAddSubmonoid : NonUnitalSubsemiring R → AddSubmonoid R) :=
   toAddSubmonoid_strictMono.Monotone
 #align non_unital_subsemiring.to_add_submonoid_mono NonUnitalSubsemiring.toAddSubmonoid_mono
 
-/- warning: non_unital_subsemiring.mk' -> NonUnitalSubsemiring.mk' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} R) (sg : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))), (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) sg) s) -> (forall (sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))), (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) sa) s) -> (NonUnitalSubsemiring.{u1} R _inst_1))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} R) (sg : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)), (Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) sg) s) -> (forall (sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))), (Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) sa) s) -> (NonUnitalSubsemiring.{u1} R _inst_1))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mk' NonUnitalSubsemiring.mk'ₓ'. -/
 /-- Construct a `non_unital_subsemiring R` from a set `s`, a subsemigroup `sg`, and an additive
 submonoid `sa` such that `x ∈ s ↔ x ∈ sg ↔ x ∈ sa`. -/
 protected def mk' (s : Set R) (sg : Subsemigroup R) (hg : ↑sg = s) (sa : AddSubmonoid R)
@@ -291,48 +207,24 @@ protected def mk' (s : Set R) (sg : Subsemigroup R) (hg : ↑sg = s) (sa : AddSu
   mul_mem' x y := by simpa only [← hg] using sg.mul_mem
 #align non_unital_subsemiring.mk' NonUnitalSubsemiring.mk'
 
-/- warning: non_unital_subsemiring.coe_mk' -> NonUnitalSubsemiring.coe_mk' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))} (hg : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) sa) s), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) s
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)} (hg : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) sa) s), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) s
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_mk' NonUnitalSubsemiring.coe_mk'ₓ'. -/
 @[simp]
 theorem coe_mk' {s : Set R} {sg : Subsemigroup R} (hg : ↑sg = s) {sa : AddSubmonoid R}
     (ha : ↑sa = s) : (NonUnitalSubsemiring.mk' s sg hg sa ha : Set R) = s :=
   rfl
 #align non_unital_subsemiring.coe_mk' NonUnitalSubsemiring.coe_mk'
 
-/- warning: non_unital_subsemiring.mem_mk' -> NonUnitalSubsemiring.mem_mk' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))} (hg : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) sa) s) {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) (Membership.Mem.{u1, u1} R (Set.{u1} R) (Set.hasMem.{u1} R) x s)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)} (hg : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) sa) s) {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) (Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x s)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_mk' NonUnitalSubsemiring.mem_mk'ₓ'. -/
 @[simp]
 theorem mem_mk' {s : Set R} {sg : Subsemigroup R} (hg : ↑sg = s) {sa : AddSubmonoid R}
     (ha : ↑sa = s) {x : R} : x ∈ NonUnitalSubsemiring.mk' s sg hg sa ha ↔ x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_mk' NonUnitalSubsemiring.mem_mk'
 
-/- warning: non_unital_subsemiring.mk'_to_subsemigroup -> NonUnitalSubsemiring.mk'_toSubsemigroup is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))} (hg : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) sa) s), Eq.{succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) sg
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)} (hg : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) sa) s), Eq.{succ u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) sg
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mk'_to_subsemigroup NonUnitalSubsemiring.mk'_toSubsemigroupₓ'. -/
 @[simp]
 theorem mk'_toSubsemigroup {s : Set R} {sg : Subsemigroup R} (hg : ↑sg = s) {sa : AddSubmonoid R}
     (ha : ↑sa = s) : (NonUnitalSubsemiring.mk' s sg hg sa ha).toSubsemigroup = sg :=
   SetLike.coe_injective hg.symm
 #align non_unital_subsemiring.mk'_to_subsemigroup NonUnitalSubsemiring.mk'_toSubsemigroup
 
-/- warning: non_unital_subsemiring.mk'_to_add_submonoid -> NonUnitalSubsemiring.mk'_toAddSubmonoid is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))} (hg : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) sa) s), Eq.{succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) sa
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)} (hg : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) sa) s), Eq.{succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) sa
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mk'_to_add_submonoid NonUnitalSubsemiring.mk'_toAddSubmonoidₓ'. -/
 @[simp]
 theorem mk'_toAddSubmonoid {s : Set R} {sg : Subsemigroup R} (hg : ↑sg = s) {sa : AddSubmonoid R}
     (ha : ↑sa = s) : (NonUnitalSubsemiring.mk' s sg hg sa ha).toAddSubmonoid = sa :=
@@ -346,34 +238,16 @@ namespace NonUnitalSubsemiring
 variable {F G : Type _} [NonUnitalRingHomClass F R S] [NonUnitalRingHomClass G S T]
   (s : NonUnitalSubsemiring R)
 
-/- warning: non_unital_subsemiring.coe_zero -> NonUnitalSubsemiring.coe_zero is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} R ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) (OfNat.ofNat.{u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) 0 (OfNat.mk.{u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) 0 (Zero.zero.{u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (ZeroMemClass.zero.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (AddZeroClass.toHasZero.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (AddSubmonoidClass.to_zeroMemClass.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiringClass.to_addSubmonoidClass.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1))) s))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1)))))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} R (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (OfNat.ofNat.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) 0 (Zero.toOfNat0.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (AddSubmonoid.zero.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_zero NonUnitalSubsemiring.coe_zeroₓ'. -/
 @[simp, norm_cast]
 theorem coe_zero : ((0 : s) : R) = (0 : R) :=
   rfl
 #align non_unital_subsemiring.coe_zero NonUnitalSubsemiring.coe_zero
 
-/- warning: non_unital_subsemiring.coe_add -> NonUnitalSubsemiring.coe_add is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1) (x : coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (y : coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s), Eq.{succ u1} R ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) (HAdd.hAdd.{u1, u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (instHAdd.{u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (AddSubmonoidClass.to_addMemClass.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiringClass.to_addSubmonoidClass.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1))) s)) x y)) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) x) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) y))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1) (x : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (y : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)), Eq.{succ u1} R (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (HAdd.hAdd.{u1, u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (instHAdd.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (AddSubmonoid.add.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s))) x y)) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) x) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) y))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_add NonUnitalSubsemiring.coe_addₓ'. -/
 @[simp, norm_cast]
 theorem coe_add (x y : s) : ((x + y : s) : R) = (x + y : R) :=
   rfl
 #align non_unital_subsemiring.coe_add NonUnitalSubsemiring.coe_add
 
-/- warning: non_unital_subsemiring.coe_mul -> NonUnitalSubsemiring.coe_mul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1) (x : coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (y : coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s), Eq.{succ u1} R ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) (HMul.hMul.{u1, u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (instHMul.{u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiringClass.mulMemClass.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1)) s)) x y)) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) x) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) y))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1) (x : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (y : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)), Eq.{succ u1} R (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (HMul.hMul.{u1, u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (instHMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s))) x y)) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) x) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) y))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_mul NonUnitalSubsemiring.coe_mulₓ'. -/
 @[simp, norm_cast]
 theorem coe_mul (x y : s) : ((x * y : s) : R) = (x * y : R) :=
   rfl
@@ -382,45 +256,21 @@ theorem coe_mul (x y : s) : ((x * y : s) : R) = (x * y : R) :=
 /-! Note: currently, there are no ordered versions of non-unital rings. -/
 
 
-/- warning: non_unital_subsemiring.mem_to_subsemigroup -> NonUnitalSubsemiring.mem_toSubsemigroup is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.Mem.{u1, u1} R (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (SetLike.hasMem.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))) x (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 s)) (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.mem.{u1, u1} R (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (SetLike.instMembership.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1))) x (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 s)) (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_to_subsemigroup NonUnitalSubsemiring.mem_toSubsemigroupₓ'. -/
 @[simp]
 theorem mem_toSubsemigroup {s : NonUnitalSubsemiring R} {x : R} : x ∈ s.toSubsemigroup ↔ x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_to_subsemigroup NonUnitalSubsemiring.mem_toSubsemigroup
 
-/- warning: non_unital_subsemiring.coe_to_subsemigroup -> NonUnitalSubsemiring.coe_toSubsemigroup is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 s)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 s)) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_to_subsemigroup NonUnitalSubsemiring.coe_toSubsemigroupₓ'. -/
 @[simp]
 theorem coe_toSubsemigroup (s : NonUnitalSubsemiring R) : (s.toSubsemigroup : Set R) = s :=
   rfl
 #align non_unital_subsemiring.coe_to_subsemigroup NonUnitalSubsemiring.coe_toSubsemigroup
 
-/- warning: non_unital_subsemiring.mem_to_add_submonoid -> NonUnitalSubsemiring.mem_toAddSubmonoid is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.Mem.{u1, u1} R (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (SetLike.hasMem.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))) x (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.mem.{u1, u1} R (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (SetLike.instMembership.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))) x (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_to_add_submonoid NonUnitalSubsemiring.mem_toAddSubmonoidₓ'. -/
 @[simp]
 theorem mem_toAddSubmonoid {s : NonUnitalSubsemiring R} {x : R} : x ∈ s.toAddSubmonoid ↔ x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_to_add_submonoid NonUnitalSubsemiring.mem_toAddSubmonoid
 
-/- warning: non_unital_subsemiring.coe_to_add_submonoid -> NonUnitalSubsemiring.coe_toAddSubmonoid is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_to_add_submonoid NonUnitalSubsemiring.coe_toAddSubmonoidₓ'. -/
 @[simp]
 theorem coe_toAddSubmonoid (s : NonUnitalSubsemiring R) : (s.toAddSubmonoid : Set R) = s :=
   rfl
@@ -430,23 +280,11 @@ theorem coe_toAddSubmonoid (s : NonUnitalSubsemiring R) : (s.toAddSubmonoid : Se
 instance : Top (NonUnitalSubsemiring R) :=
   ⟨{ (⊤ : Subsemigroup R), (⊤ : AddSubmonoid R) with }⟩
 
-/- warning: non_unital_subsemiring.mem_top -> NonUnitalSubsemiring.mem_top is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (x : R), Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (x : R), Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R _inst_1))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_top NonUnitalSubsemiring.mem_topₓ'. -/
 @[simp]
 theorem mem_top (x : R) : x ∈ (⊤ : NonUnitalSubsemiring R) :=
   Set.mem_univ x
 #align non_unital_subsemiring.mem_top NonUnitalSubsemiring.mem_top
 
-/- warning: non_unital_subsemiring.coe_top -> NonUnitalSubsemiring.coe_top is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1))) (Set.univ.{u1} R)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R _inst_1))) (Set.univ.{u1} R)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_top NonUnitalSubsemiring.coe_topₓ'. -/
 @[simp]
 theorem coe_top : ((⊤ : NonUnitalSubsemiring R) : Set R) = Set.univ :=
   rfl
@@ -461,34 +299,16 @@ def comap (f : F) (s : NonUnitalSubsemiring S) : NonUnitalSubsemiring R :=
 #align non_unital_subsemiring.comap NonUnitalSubsemiring.comap
 -/
 
-/- warning: non_unital_subsemiring.coe_comap -> NonUnitalSubsemiring.coe_comap is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u2} S _inst_2) (f : F), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (Set.preimage.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (HasLiftT.mk.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (CoeTCₓ.coe.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (SetLike.Set.hasCoeT.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) s))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u3} S _inst_2) (f : F), Eq.{succ u2} (Set.{u2} R) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Set.preimage.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f) (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) s))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_comap NonUnitalSubsemiring.coe_comapₓ'. -/
 @[simp]
 theorem coe_comap (s : NonUnitalSubsemiring S) (f : F) : (s.comap f : Set R) = f ⁻¹' s :=
   rfl
 #align non_unital_subsemiring.coe_comap NonUnitalSubsemiring.coe_comap
 
-/- warning: non_unital_subsemiring.mem_comap -> NonUnitalSubsemiring.mem_comap is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {s : NonUnitalSubsemiring.{u2} S _inst_2} {f : F} {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f x) s)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {s : NonUnitalSubsemiring.{u3} S _inst_2} {f : F} {x : R}, Iff (Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Membership.mem.{u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) s)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_comap NonUnitalSubsemiring.mem_comapₓ'. -/
 @[simp]
 theorem mem_comap {s : NonUnitalSubsemiring S} {f : F} {x : R} : x ∈ s.comap f ↔ f x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_comap NonUnitalSubsemiring.mem_comap
 
-/- warning: non_unital_subsemiring.comap_comap -> NonUnitalSubsemiring.comap_comap is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] [_inst_3 : NonUnitalNonAssocSemiring.{u3} T] {F : Type.{u4}} {G : Type.{u5}} [_inst_4 : NonUnitalRingHomClass.{u4, u1, u2} F R S _inst_1 _inst_2] [_inst_5 : NonUnitalRingHomClass.{u5, u2, u3} G S T _inst_2 _inst_3] (s : NonUnitalSubsemiring.{u3} T _inst_3) (g : G) (f : F), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, u4} R S _inst_1 _inst_2 F _inst_4 f (NonUnitalSubsemiring.comap.{u2, u3, u5} S T _inst_2 _inst_3 G _inst_5 g s)) (NonUnitalSubsemiring.comap.{u1, u3, max u1 u3} R T _inst_1 _inst_3 (NonUnitalRingHom.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.comp.{u1, u2, u3} R S T _inst_1 _inst_2 _inst_3 ((fun (a : Type.{u5}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{succ u5, max (succ u2) (succ u3)} a b] => self.0) G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (HasLiftT.mk.{succ u5, max (succ u2) (succ u3)} G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (CoeTCₓ.coe.{succ u5, max (succ u2) (succ u3)} G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (NonUnitalRingHom.hasCoeT.{u5, u2, u3} G S T _inst_2 _inst_3 _inst_5))) g) ((fun (a : Type.{u4}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u4, max (succ u1) (succ u2)} a b] => self.0) F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (HasLiftT.mk.{succ u4, max (succ u1) (succ u2)} F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (CoeTCₓ.coe.{succ u4, max (succ u1) (succ u2)} F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.hasCoeT.{u4, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) s)
-but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u4}} {T : Type.{u5}} [_inst_1 : NonUnitalNonAssocSemiring.{u3} R] [_inst_2 : NonUnitalNonAssocSemiring.{u4} S] [_inst_3 : NonUnitalNonAssocSemiring.{u5} T] {F : Type.{u2}} {G : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u2, u3, u4} F R S _inst_1 _inst_2] [_inst_5 : NonUnitalRingHomClass.{u1, u4, u5} G S T _inst_2 _inst_3] (s : NonUnitalSubsemiring.{u5} T _inst_3) (g : G) (f : F), Eq.{succ u3} (NonUnitalSubsemiring.{u3} R _inst_1) (NonUnitalSubsemiring.comap.{u3, u4, u2} R S _inst_1 _inst_2 F _inst_4 f (NonUnitalSubsemiring.comap.{u4, u5, u1} S T _inst_2 _inst_3 G _inst_5 g s)) (NonUnitalSubsemiring.comap.{u3, u5, max u5 u3} R T _inst_1 _inst_3 (NonUnitalRingHom.{u3, u5} R T _inst_1 _inst_3) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u3, u5} R T _inst_1 _inst_3) (NonUnitalRingHom.comp.{u3, u4, u5} R S T _inst_1 _inst_2 _inst_3 (NonUnitalRingHomClass.toNonUnitalRingHom.{u1, u4, u5} G S T _inst_2 _inst_3 _inst_5 g) (NonUnitalRingHomClass.toNonUnitalRingHom.{u2, u3, u4} F R S _inst_1 _inst_2 _inst_4 f)) s)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.comap_comap NonUnitalSubsemiring.comap_comapₓ'. -/
 -- this has some nasty coercions, how to deal with it?
 theorem comap_comap (s : NonUnitalSubsemiring T) (g : G) (f : F) :
     ((s.comap g : NonUnitalSubsemiring S).comap f : NonUnitalSubsemiring R) =
@@ -503,79 +323,37 @@ def map (f : F) (s : NonUnitalSubsemiring R) : NonUnitalSubsemiring S :=
 #align non_unital_subsemiring.map NonUnitalSubsemiring.map
 -/
 
-/- warning: non_unital_subsemiring.coe_map -> NonUnitalSubsemiring.coe_map is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u2} (Set.{u2} S) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (HasLiftT.mk.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (CoeTCₓ.coe.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (SetLike.Set.hasCoeT.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (Set.image.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (s : NonUnitalSubsemiring.{u2} R _inst_1), Eq.{succ u3} (Set.{u3} S) (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Set.image.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_map NonUnitalSubsemiring.coe_mapₓ'. -/
 @[simp]
 theorem coe_map (f : F) (s : NonUnitalSubsemiring R) : (s.map f : Set S) = f '' s :=
   rfl
 #align non_unital_subsemiring.coe_map NonUnitalSubsemiring.coe_map
 
-/- warning: non_unital_subsemiring.mem_map -> NonUnitalSubsemiring.mem_map is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {s : NonUnitalSubsemiring.{u1} R _inst_1} {y : S}, Iff (Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) y (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (Exists.{succ u1} R (fun (x : R) => Exists.{0} (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s) (fun (H : Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s) => Eq.{succ u2} S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f x) y)))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {s : NonUnitalSubsemiring.{u2} R _inst_1} {y : S}, Iff (Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) y (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Exists.{succ u2} R (fun (x : R) => And (Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s) (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) y)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_map NonUnitalSubsemiring.mem_mapₓ'. -/
 @[simp]
 theorem mem_map {f : F} {s : NonUnitalSubsemiring R} {y : S} : y ∈ s.map f ↔ ∃ x ∈ s, f x = y :=
   Set.mem_image_iff_bex
 #align non_unital_subsemiring.mem_map NonUnitalSubsemiring.mem_map
 
-/- warning: non_unital_subsemiring.map_id -> NonUnitalSubsemiring.map_id is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.map.{u1, u1, u1} R R _inst_1 _inst_1 (NonUnitalRingHom.{u1, u1} R R _inst_1 _inst_1) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u1} R R _inst_1 _inst_1) (NonUnitalRingHom.id.{u1} R _inst_1) s) s
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.map.{u1, u1, u1} R R _inst_1 _inst_1 (NonUnitalRingHom.{u1, u1} R R _inst_1 _inst_1) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u1} R R _inst_1 _inst_1) (NonUnitalRingHom.id.{u1} R _inst_1) s) s
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_id NonUnitalSubsemiring.map_idₓ'. -/
 @[simp]
 theorem map_id : s.map (NonUnitalRingHom.id R) = s :=
   SetLike.coe_injective <| Set.image_id _
 #align non_unital_subsemiring.map_id NonUnitalSubsemiring.map_id
 
-/- warning: non_unital_subsemiring.map_map -> NonUnitalSubsemiring.map_map is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] [_inst_3 : NonUnitalNonAssocSemiring.{u3} T] {F : Type.{u4}} {G : Type.{u5}} [_inst_4 : NonUnitalRingHomClass.{u4, u1, u2} F R S _inst_1 _inst_2] [_inst_5 : NonUnitalRingHomClass.{u5, u2, u3} G S T _inst_2 _inst_3] (s : NonUnitalSubsemiring.{u1} R _inst_1) (g : G) (f : F), Eq.{succ u3} (NonUnitalSubsemiring.{u3} T _inst_3) (NonUnitalSubsemiring.map.{u2, u3, max u2 u3} S T _inst_2 _inst_3 (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (NonUnitalRingHom.nonUnitalRingHomClass.{u2, u3} S T _inst_2 _inst_3) ((fun (a : Type.{u5}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{succ u5, max (succ u2) (succ u3)} a b] => self.0) G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (HasLiftT.mk.{succ u5, max (succ u2) (succ u3)} G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (CoeTCₓ.coe.{succ u5, max (succ u2) (succ u3)} G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (NonUnitalRingHom.hasCoeT.{u5, u2, u3} G S T _inst_2 _inst_3 _inst_5))) g) (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) ((fun (a : Type.{u4}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u4, max (succ u1) (succ u2)} a b] => self.0) F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (HasLiftT.mk.{succ u4, max (succ u1) (succ u2)} F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (CoeTCₓ.coe.{succ u4, max (succ u1) (succ u2)} F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.hasCoeT.{u4, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f) s)) (NonUnitalSubsemiring.map.{u1, u3, max u1 u3} R T _inst_1 _inst_3 (NonUnitalRingHom.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.comp.{u1, u2, u3} R S T _inst_1 _inst_2 _inst_3 ((fun (a : Type.{u5}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{succ u5, max (succ u2) (succ u3)} a b] => self.0) G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (HasLiftT.mk.{succ u5, max (succ u2) (succ u3)} G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (CoeTCₓ.coe.{succ u5, max (succ u2) (succ u3)} G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (NonUnitalRingHom.hasCoeT.{u5, u2, u3} G S T _inst_2 _inst_3 _inst_5))) g) ((fun (a : Type.{u4}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u4, max (succ u1) (succ u2)} a b] => self.0) F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (HasLiftT.mk.{succ u4, max (succ u1) (succ u2)} F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (CoeTCₓ.coe.{succ u4, max (succ u1) (succ u2)} F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.hasCoeT.{u4, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) s)
-but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u4}} {T : Type.{u5}} [_inst_1 : NonUnitalNonAssocSemiring.{u3} R] [_inst_2 : NonUnitalNonAssocSemiring.{u4} S] [_inst_3 : NonUnitalNonAssocSemiring.{u5} T] {F : Type.{u1}} {G : Type.{u2}} [_inst_4 : NonUnitalRingHomClass.{u1, u3, u4} F R S _inst_1 _inst_2] [_inst_5 : NonUnitalRingHomClass.{u2, u4, u5} G S T _inst_2 _inst_3] (s : NonUnitalSubsemiring.{u3} R _inst_1) (g : G) (f : F), Eq.{succ u5} (NonUnitalSubsemiring.{u5} T _inst_3) (NonUnitalSubsemiring.map.{u4, u5, max u4 u5} S T _inst_2 _inst_3 (NonUnitalRingHom.{u4, u5} S T _inst_2 _inst_3) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u4, u5} S T _inst_2 _inst_3) (NonUnitalRingHomClass.toNonUnitalRingHom.{u2, u4, u5} G S T _inst_2 _inst_3 _inst_5 g) (NonUnitalSubsemiring.map.{u3, u4, max u3 u4} R S _inst_1 _inst_2 (NonUnitalRingHom.{u3, u4} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u3, u4} R S _inst_1 _inst_2) (NonUnitalRingHomClass.toNonUnitalRingHom.{u1, u3, u4} F R S _inst_1 _inst_2 _inst_4 f) s)) (NonUnitalSubsemiring.map.{u3, u5, max u5 u3} R T _inst_1 _inst_3 (NonUnitalRingHom.{u3, u5} R T _inst_1 _inst_3) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u3, u5} R T _inst_1 _inst_3) (NonUnitalRingHom.comp.{u3, u4, u5} R S T _inst_1 _inst_2 _inst_3 (NonUnitalRingHomClass.toNonUnitalRingHom.{u2, u4, u5} G S T _inst_2 _inst_3 _inst_5 g) (NonUnitalRingHomClass.toNonUnitalRingHom.{u1, u3, u4} F R S _inst_1 _inst_2 _inst_4 f)) s)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_map NonUnitalSubsemiring.map_mapₓ'. -/
 -- unavoidable coercions?
 theorem map_map (g : G) (f : F) :
     (s.map (f : R →ₙ+* S)).map (g : S →ₙ+* T) = s.map ((g : S →ₙ+* T).comp (f : R →ₙ+* S)) :=
   SetLike.coe_injective <| Set.image_image _ _ _
 #align non_unital_subsemiring.map_map NonUnitalSubsemiring.map_map
 
-/- warning: non_unital_subsemiring.map_le_iff_le_comap -> NonUnitalSubsemiring.map_le_iff_le_comap is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {s : NonUnitalSubsemiring.{u1} R _inst_1} {t : NonUnitalSubsemiring.{u2} S _inst_2}, Iff (LE.le.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Preorder.toHasLe.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.partialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s) t) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f t))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {s : NonUnitalSubsemiring.{u2} R _inst_1} {t : NonUnitalSubsemiring.{u3} S _inst_2}, Iff (LE.le.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (Preorder.toLE.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (PartialOrder.toPreorder.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instPartialOrder.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)))) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s) t) (LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instPartialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)))) s (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f t))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_le_iff_le_comap NonUnitalSubsemiring.map_le_iff_le_comapₓ'. -/
 theorem map_le_iff_le_comap {f : F} {s : NonUnitalSubsemiring R} {t : NonUnitalSubsemiring S} :
     s.map f ≤ t ↔ s ≤ t.comap f :=
   Set.image_subset_iff
 #align non_unital_subsemiring.map_le_iff_le_comap NonUnitalSubsemiring.map_le_iff_le_comap
 
-/- warning: non_unital_subsemiring.gc_map_comap -> NonUnitalSubsemiring.gc_map_comap is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), GaloisConnection.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.{u2} S _inst_2) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.partialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2))) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), GaloisConnection.{u2, u3} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.{u3} S _inst_2) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instPartialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instPartialOrder.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2))) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.gc_map_comap NonUnitalSubsemiring.gc_map_comapₓ'. -/
 theorem gc_map_comap (f : F) :
     @GaloisConnection (NonUnitalSubsemiring R) (NonUnitalSubsemiring S) _ _ (map f) (comap f) :=
   fun S T => map_le_iff_le_comap
 #align non_unital_subsemiring.gc_map_comap NonUnitalSubsemiring.gc_map_comap
 
-/- warning: non_unital_subsemiring.equiv_map_of_injective -> NonUnitalSubsemiring.equivMapOfInjective is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u1} R _inst_1) (f : F), (Function.Injective.{succ u1, succ u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) -> (RingEquiv.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_3.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_4.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u1} R _inst_1) (f : F), (Function.Injective.{succ u1, succ u2} R S (FunLike.coe.{succ u3, succ u1, succ u2} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u3, u1, u2} F R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4)) f)) -> (RingEquiv.{u1, u2} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (AddSubmonoid.add.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} S _inst_2 (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.equiv_map_of_injective NonUnitalSubsemiring.equivMapOfInjectiveₓ'. -/
 /-- A non-unital subsemiring is isomorphic to its image under an injective function -/
 noncomputable def equivMapOfInjective (f : F) (hf : Function.Injective (f : R → S)) :
     s ≃+* s.map f :=
@@ -586,9 +364,6 @@ noncomputable def equivMapOfInjective (f : F) (hf : Function.Injective (f : R 
     map_add' := fun _ _ => Subtype.ext (map_add f _ _) }
 #align non_unital_subsemiring.equiv_map_of_injective NonUnitalSubsemiring.equivMapOfInjective
 
-/- warning: non_unital_subsemiring.coe_equiv_map_of_injective_apply -> NonUnitalSubsemiring.coe_equivMapOfInjective_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_equiv_map_of_injective_apply NonUnitalSubsemiring.coe_equivMapOfInjective_applyₓ'. -/
 @[simp]
 theorem coe_equivMapOfInjective_apply (f : F) (hf : Function.Injective f) (x : s) :
     (equivMapOfInjective s f hf x : S) = f x :=
@@ -611,63 +386,27 @@ def srange : NonUnitalSubsemiring S :=
 #align non_unital_ring_hom.srange NonUnitalRingHom.srange
 -/
 
-/- warning: non_unital_ring_hom.coe_srange -> NonUnitalRingHom.coe_srange is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), Eq.{succ u2} (Set.{u2} S) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (HasLiftT.mk.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (CoeTCₓ.coe.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (SetLike.Set.hasCoeT.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Set.range.{u2, succ u1} S R (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), Eq.{succ u3} (Set.{u3} S) (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)) (Set.range.{u3, succ u2} S R (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f))
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.coe_srange NonUnitalRingHom.coe_srangeₓ'. -/
 @[simp]
 theorem coe_srange : (@srange R S _ _ _ _ f : Set S) = Set.range f :=
   rfl
 #align non_unital_ring_hom.coe_srange NonUnitalRingHom.coe_srange
 
-/- warning: non_unital_ring_hom.mem_srange -> NonUnitalRingHom.mem_srange is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {y : S}, Iff (Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) y (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Exists.{succ u1} R (fun (x : R) => Eq.{succ u2} S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f x) y))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {y : S}, Iff (Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) y (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)) (Exists.{succ u2} R (fun (x : R) => Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) y))
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.mem_srange NonUnitalRingHom.mem_srangeₓ'. -/
 @[simp]
 theorem mem_srange {f : F} {y : S} : y ∈ @srange R S _ _ _ _ f ↔ ∃ x, f x = y :=
   Iff.rfl
 #align non_unital_ring_hom.mem_srange NonUnitalRingHom.mem_srange
 
-/- warning: non_unital_ring_hom.srange_eq_map -> NonUnitalRingHom.srange_eq_map is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1)))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f (Top.top.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} R _inst_1)))
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.srange_eq_map NonUnitalRingHom.srange_eq_mapₓ'. -/
 theorem srange_eq_map : @srange R S _ _ _ _ f = (⊤ : NonUnitalSubsemiring R).map f := by ext; simp
 #align non_unital_ring_hom.srange_eq_map NonUnitalRingHom.srange_eq_map
 
-/- warning: non_unital_ring_hom.mem_srange_self -> NonUnitalRingHom.mem_srange_self is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (x : R), Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f x) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (x : R), Membership.mem.{u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.mem_srange_self NonUnitalRingHom.mem_srange_selfₓ'. -/
 theorem mem_srange_self (f : F) (x : R) : f x ∈ @srange R S _ _ _ _ f :=
   mem_srange.mpr ⟨x, rfl⟩
 #align non_unital_ring_hom.mem_srange_self NonUnitalRingHom.mem_srange_self
 
-/- warning: non_unital_ring_hom.map_srange -> NonUnitalRingHom.map_srange is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] [_inst_3 : NonUnitalNonAssocSemiring.{u3} T] (g : NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (f : NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2), Eq.{succ u3} (NonUnitalSubsemiring.{u3} T _inst_3) (NonUnitalSubsemiring.map.{u2, u3, max u2 u3} S T _inst_2 _inst_3 (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (NonUnitalRingHom.nonUnitalRingHomClass.{u2, u3} S T _inst_2 _inst_3) g (NonUnitalRingHom.srange.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) f)) (NonUnitalRingHom.srange.{u1, u3, max u1 u3} R T _inst_1 _inst_3 (NonUnitalRingHom.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.comp.{u1, u2, u3} R S T _inst_1 _inst_2 _inst_3 g f))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] [_inst_3 : NonUnitalNonAssocSemiring.{u3} T] (g : NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (f : NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2), Eq.{succ u3} (NonUnitalSubsemiring.{u3} T _inst_3) (NonUnitalSubsemiring.map.{u2, u3, max u2 u3} S T _inst_2 _inst_3 (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) g (NonUnitalRingHom.srange.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) f)) (NonUnitalRingHom.srange.{u1, u3, max u3 u1} R T _inst_1 _inst_3 (NonUnitalRingHom.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.comp.{u1, u2, u3} R S T _inst_1 _inst_2 _inst_3 g f))
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.map_srange NonUnitalRingHom.map_srangeₓ'. -/
 theorem map_srange (g : S →ₙ+* T) (f : R →ₙ+* S) : map g (srange f) = srange (g.comp f) := by
   simpa only [srange_eq_map] using (⊤ : NonUnitalSubsemiring R).map_map g f
 #align non_unital_ring_hom.map_srange NonUnitalRingHom.map_srange
 
-/- warning: non_unital_ring_hom.finite_srange -> NonUnitalRingHom.finite_srange is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] [_inst_6 : Finite.{succ u1} R] (f : F), Finite.{succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] [_inst_6 : Finite.{succ u1} R] (f : F), Finite.{succ u2} (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)))
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.finite_srange NonUnitalRingHom.finite_srangeₓ'. -/
 /-- The range of a morphism of non-unital semirings is finite if the domain is a finite. -/
 instance finite_srange [Finite R] (f : F) : Finite (srange f : NonUnitalSubsemiring S) :=
   (Set.finite_range f).to_subtype
@@ -687,22 +426,10 @@ instance : Bot (NonUnitalSubsemiring R) :=
 instance : Inhabited (NonUnitalSubsemiring R) :=
   ⟨⊥⟩
 
-/- warning: non_unital_subsemiring.coe_bot -> NonUnitalSubsemiring.coe_bot is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (Bot.bot.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasBot.{u1} R _inst_1))) (Singleton.singleton.{u1, u1} R (Set.{u1} R) (Set.hasSingleton.{u1} R) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))))))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (Bot.bot.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instBotNonUnitalSubsemiring.{u1} R _inst_1))) (Singleton.singleton.{u1, u1} R (Set.{u1} R) (Set.instSingletonSet.{u1} R) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_bot NonUnitalSubsemiring.coe_botₓ'. -/
 theorem coe_bot : ((⊥ : NonUnitalSubsemiring R) : Set R) = {0} :=
   rfl
 #align non_unital_subsemiring.coe_bot NonUnitalSubsemiring.coe_bot
 
-/- warning: non_unital_subsemiring.mem_bot -> NonUnitalSubsemiring.mem_bot is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (Bot.bot.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasBot.{u1} R _inst_1))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))))))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (Bot.bot.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instBotNonUnitalSubsemiring.{u1} R _inst_1))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_bot NonUnitalSubsemiring.mem_botₓ'. -/
 theorem mem_bot {x : R} : x ∈ (⊥ : NonUnitalSubsemiring R) ↔ x = 0 :=
   Set.mem_singleton_iff
 #align non_unital_subsemiring.mem_bot NonUnitalSubsemiring.mem_bot
@@ -713,24 +440,12 @@ instance : Inf (NonUnitalSubsemiring R) :=
     { s.toSubsemigroup ⊓ t.toSubsemigroup, s.toAddSubmonoid ⊓ t.toAddSubmonoid with
       carrier := s ∩ t }⟩
 
-/- warning: non_unital_subsemiring.coe_inf -> NonUnitalSubsemiring.coe_inf is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (p : NonUnitalSubsemiring.{u1} R _inst_1) (p' : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (Inf.inf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) p p')) (Inter.inter.{u1} (Set.{u1} R) (Set.hasInter.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) p) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) p'))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (p : NonUnitalSubsemiring.{u1} R _inst_1) (p' : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (Inf.inf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfNonUnitalSubsemiring.{u1} R _inst_1) p p')) (Inter.inter.{u1} (Set.{u1} R) (Set.instInterSet.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) p) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) p'))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_inf NonUnitalSubsemiring.coe_infₓ'. -/
 @[simp]
 theorem coe_inf (p p' : NonUnitalSubsemiring R) :
     ((p ⊓ p' : NonUnitalSubsemiring R) : Set R) = p ∩ p' :=
   rfl
 #align non_unital_subsemiring.coe_inf NonUnitalSubsemiring.coe_inf
 
-/- warning: non_unital_subsemiring.mem_inf -> NonUnitalSubsemiring.mem_inf is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {p : NonUnitalSubsemiring.{u1} R _inst_1} {p' : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (Inf.inf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) p p')) (And (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x p) (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x p'))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {p : NonUnitalSubsemiring.{u1} R _inst_1} {p' : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (Inf.inf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfNonUnitalSubsemiring.{u1} R _inst_1) p p')) (And (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x p) (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x p'))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_inf NonUnitalSubsemiring.mem_infₓ'. -/
 @[simp]
 theorem mem_inf {p p' : NonUnitalSubsemiring R} {x : R} : x ∈ p ⊓ p' ↔ x ∈ p ∧ x ∈ p' :=
   Iff.rfl
@@ -741,34 +456,16 @@ instance : InfSet (NonUnitalSubsemiring R) :=
     NonUnitalSubsemiring.mk' (⋂ t ∈ s, ↑t) (⨅ t ∈ s, NonUnitalSubsemiring.toSubsemigroup t)
       (by simp) (⨅ t ∈ s, NonUnitalSubsemiring.toAddSubmonoid t) (by simp)⟩
 
-/- warning: non_unital_subsemiring.coe_Inf -> NonUnitalSubsemiring.coe_sInf is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (InfSet.sInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) S)) (Set.iInter.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.iInter.{u1, 0} R (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s)))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (InfSet.sInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u1} R _inst_1) S)) (Set.iInter.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.iInter.{u1, 0} R (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_Inf NonUnitalSubsemiring.coe_sInfₓ'. -/
 @[simp, norm_cast]
 theorem coe_sInf (S : Set (NonUnitalSubsemiring R)) :
     ((sInf S : NonUnitalSubsemiring R) : Set R) = ⋂ s ∈ S, ↑s :=
   rfl
 #align non_unital_subsemiring.coe_Inf NonUnitalSubsemiring.coe_sInf
 
-/- warning: non_unital_subsemiring.mem_Inf -> NonUnitalSubsemiring.mem_sInf is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)} {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (InfSet.sInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) S)) (forall (p : NonUnitalSubsemiring.{u1} R _inst_1), (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) p S) -> (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x p))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)} {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (InfSet.sInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u1} R _inst_1) S)) (forall (p : NonUnitalSubsemiring.{u1} R _inst_1), (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) p S) -> (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x p))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_Inf NonUnitalSubsemiring.mem_sInfₓ'. -/
 theorem mem_sInf {S : Set (NonUnitalSubsemiring R)} {x : R} : x ∈ sInf S ↔ ∀ p ∈ S, x ∈ p :=
   Set.mem_iInter₂
 #align non_unital_subsemiring.mem_Inf NonUnitalSubsemiring.mem_sInf
 
-/- warning: non_unital_subsemiring.Inf_to_subsemigroup -> NonUnitalSubsemiring.sInf_toSubsemigroup is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 (InfSet.sInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) s)) (iInf.{u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Subsemigroup.hasInf.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (NonUnitalSubsemiring.{u1} R _inst_1) (fun (t : NonUnitalSubsemiring.{u1} R _inst_1) => iInf.{u1, 0} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Subsemigroup.hasInf.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) => NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 t)))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 (InfSet.sInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u1} R _inst_1) s)) (iInf.{u1, succ u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.instInfSetSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (NonUnitalSubsemiring.{u1} R _inst_1) (fun (t : NonUnitalSubsemiring.{u1} R _inst_1) => iInf.{u1, 0} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.instInfSetSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) (fun (H : Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) => NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 t)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.Inf_to_subsemigroup NonUnitalSubsemiring.sInf_toSubsemigroupₓ'. -/
 @[simp]
 theorem sInf_toSubsemigroup (s : Set (NonUnitalSubsemiring R)) :
     (sInf s).toSubsemigroup = ⨅ t ∈ s, NonUnitalSubsemiring.toSubsemigroup t :=
@@ -798,12 +495,6 @@ instance : CompleteLattice (NonUnitalSubsemiring R) :=
     inf_le_right := fun s t x => And.right
     le_inf := fun s t₁ t₂ h₁ h₂ x hx => ⟨h₁ hx, h₂ hx⟩ }
 
-/- warning: non_unital_subsemiring.eq_top_iff' -> NonUnitalSubsemiring.eq_top_iff' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (A : NonUnitalSubsemiring.{u1} R _inst_1), Iff (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) A (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1))) (forall (x : R), Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x A)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (A : NonUnitalSubsemiring.{u1} R _inst_1), Iff (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) A (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R _inst_1))) (forall (x : R), Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x A)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.eq_top_iff' NonUnitalSubsemiring.eq_top_iff'ₓ'. -/
 theorem eq_top_iff' (A : NonUnitalSubsemiring R) : A = ⊤ ↔ ∀ x : R, x ∈ A :=
   eq_top_iff.trans ⟨fun h m => h <| mem_top m, fun h m _ => h m⟩
 #align non_unital_subsemiring.eq_top_iff' NonUnitalSubsemiring.eq_top_iff'
@@ -820,54 +511,24 @@ def center (R) [NonUnitalSemiring R] : NonUnitalSubsemiring R :=
 #align non_unital_subsemiring.center NonUnitalSubsemiring.center
 -/
 
-/- warning: non_unital_subsemiring.coe_center -> NonUnitalSubsemiring.coe_center is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_4 : NonUnitalSemiring.{u1} R], Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.setLike.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))))) (NonUnitalSubsemiring.center.{u1} R _inst_4)) (Set.center.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_4 : NonUnitalSemiring.{u1} R], Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (NonUnitalSubsemiring.center.{u1} R _inst_4)) (Set.center.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_center NonUnitalSubsemiring.coe_centerₓ'. -/
 theorem coe_center (R) [NonUnitalSemiring R] : ↑(center R) = Set.center R :=
   rfl
 #align non_unital_subsemiring.coe_center NonUnitalSubsemiring.coe_center
 
-/- warning: non_unital_subsemiring.center_to_subsemigroup -> NonUnitalSubsemiring.center_toSubsemigroup is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_4 : NonUnitalSemiring.{u1} R], Eq.{succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4) (NonUnitalSubsemiring.center.{u1} R _inst_4)) (Subsemigroup.center.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R _inst_4)))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_4 : NonUnitalSemiring.{u1} R], Eq.{succ u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4) (NonUnitalSubsemiring.center.{u1} R _inst_4)) (Subsemigroup.center.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R _inst_4)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.center_to_subsemigroup NonUnitalSubsemiring.center_toSubsemigroupₓ'. -/
 @[simp]
 theorem center_toSubsemigroup (R) [NonUnitalSemiring R] :
     (center R).toSubsemigroup = Subsemigroup.center R :=
   rfl
 #align non_unital_subsemiring.center_to_subsemigroup NonUnitalSubsemiring.center_toSubsemigroup
 
-/- warning: non_unital_subsemiring.mem_center_iff -> NonUnitalSubsemiring.mem_center_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] {z : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.setLike.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) z (NonUnitalSubsemiring.center.{u1} R _inst_4)) (forall (g : R), Eq.{succ u1} R (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))) g z) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))) z g))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] {z : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) z (NonUnitalSubsemiring.center.{u1} R _inst_4)) (forall (g : R), Eq.{succ u1} R (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) g z) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) z g))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_center_iff NonUnitalSubsemiring.mem_center_iffₓ'. -/
 theorem mem_center_iff {R} [NonUnitalSemiring R] {z : R} : z ∈ center R ↔ ∀ g, g * z = z * g :=
   Iff.rfl
 #align non_unital_subsemiring.mem_center_iff NonUnitalSubsemiring.mem_center_iff
 
-/- warning: non_unital_subsemiring.decidable_mem_center -> NonUnitalSubsemiring.decidableMemCenter is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] [_inst_5 : DecidableEq.{succ u1} R] [_inst_6 : Fintype.{u1} R], DecidablePred.{succ u1} R (fun (_x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.setLike.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) _x (NonUnitalSubsemiring.center.{u1} R _inst_4))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] [_inst_5 : DecidableEq.{succ u1} R] [_inst_6 : Fintype.{u1} R], DecidablePred.{succ u1} R (fun (_x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) _x (NonUnitalSubsemiring.center.{u1} R _inst_4))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.decidable_mem_center NonUnitalSubsemiring.decidableMemCenterₓ'. -/
 instance decidableMemCenter {R} [NonUnitalSemiring R] [DecidableEq R] [Fintype R] :
     DecidablePred (· ∈ center R) := fun _ => decidable_of_iff' _ mem_center_iff
 #align non_unital_subsemiring.decidable_mem_center NonUnitalSubsemiring.decidableMemCenter
 
-/- warning: non_unital_subsemiring.center_eq_top -> NonUnitalSubsemiring.center_eq_top is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_4 : NonUnitalCommSemiring.{u1} R], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4))) (NonUnitalSubsemiring.center.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4)) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4))) (NonUnitalSubsemiring.hasTop.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4))))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_4 : NonUnitalCommSemiring.{u1} R], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4))) (NonUnitalSubsemiring.center.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4)) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4))) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4))))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.center_eq_top NonUnitalSubsemiring.center_eq_topₓ'. -/
 @[simp]
 theorem center_eq_top (R) [NonUnitalCommSemiring R] : center R = ⊤ :=
   SetLike.coe_injective (Set.center_eq_univ R)
@@ -892,46 +553,22 @@ def centralizer {R} [NonUnitalSemiring R] (s : Set R) : NonUnitalSubsemiring R :
 #align non_unital_subsemiring.centralizer NonUnitalSubsemiring.centralizer
 -/
 
-/- warning: non_unital_subsemiring.coe_centralizer -> NonUnitalSubsemiring.coe_centralizer is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] (s : Set.{u1} R), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.setLike.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))))) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s)) (Set.centralizer.{u1} R s (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] (s : Set.{u1} R), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s)) (Set.centralizer.{u1} R s (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_centralizer NonUnitalSubsemiring.coe_centralizerₓ'. -/
 @[simp, norm_cast]
 theorem coe_centralizer {R} [NonUnitalSemiring R] (s : Set R) :
     (centralizer s : Set R) = s.centralizer :=
   rfl
 #align non_unital_subsemiring.coe_centralizer NonUnitalSubsemiring.coe_centralizer
 
-/- warning: non_unital_subsemiring.centralizer_to_subsemigroup -> NonUnitalSubsemiring.centralizer_toSubsemigroup is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] (s : Set.{u1} R), Eq.{succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s)) (Subsemigroup.centralizer.{u1} R s (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R _inst_4)))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] (s : Set.{u1} R), Eq.{succ u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s)) (Subsemigroup.centralizer.{u1} R s (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R _inst_4)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.centralizer_to_subsemigroup NonUnitalSubsemiring.centralizer_toSubsemigroupₓ'. -/
 theorem centralizer_toSubsemigroup {R} [NonUnitalSemiring R] (s : Set R) :
     (centralizer s).toSubsemigroup = Subsemigroup.centralizer s :=
   rfl
 #align non_unital_subsemiring.centralizer_to_subsemigroup NonUnitalSubsemiring.centralizer_toSubsemigroup
 
-/- warning: non_unital_subsemiring.mem_centralizer_iff -> NonUnitalSubsemiring.mem_centralizer_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] {s : Set.{u1} R} {z : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.setLike.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) z (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s)) (forall (g : R), (Membership.Mem.{u1, u1} R (Set.{u1} R) (Set.hasMem.{u1} R) g s) -> (Eq.{succ u1} R (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))) g z) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))) z g)))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] {s : Set.{u1} R} {z : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) z (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s)) (forall (g : R), (Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) g s) -> (Eq.{succ u1} R (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) g z) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) z g)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_centralizer_iff NonUnitalSubsemiring.mem_centralizer_iffₓ'. -/
 theorem mem_centralizer_iff {R} [NonUnitalSemiring R] {s : Set R} {z : R} :
     z ∈ centralizer s ↔ ∀ g ∈ s, g * z = z * g :=
   Iff.rfl
 #align non_unital_subsemiring.mem_centralizer_iff NonUnitalSubsemiring.mem_centralizer_iff
 
-/- warning: non_unital_subsemiring.centralizer_le -> NonUnitalSubsemiring.centralizer_le is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] (s : Set.{u1} R) (t : Set.{u1} R), (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s t) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.setLike.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))))) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 t) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] (s : Set.{u1} R) (t : Set.{u1} R), (HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s t) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))))) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 t) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.centralizer_le NonUnitalSubsemiring.centralizer_leₓ'. -/
 theorem centralizer_le {R} [NonUnitalSemiring R] (s t : Set R) (h : s ⊆ t) :
     centralizer t ≤ centralizer s :=
   Set.centralizer_subset h
@@ -953,98 +590,47 @@ def closure (s : Set R) : NonUnitalSubsemiring R :=
 #align non_unital_subsemiring.closure NonUnitalSubsemiring.closure
 -/
 
-/- warning: non_unital_subsemiring.mem_closure -> NonUnitalSubsemiring.mem_closure is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {x : R} {s : Set.{u1} R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) (forall (S : NonUnitalSubsemiring.{u1} R _inst_1), (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) S)) -> (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x S))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {x : R} {s : Set.{u1} R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) (forall (S : NonUnitalSubsemiring.{u1} R _inst_1), (HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) S)) -> (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x S))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_closure NonUnitalSubsemiring.mem_closureₓ'. -/
 theorem mem_closure {x : R} {s : Set R} :
     x ∈ closure s ↔ ∀ S : NonUnitalSubsemiring R, s ⊆ S → x ∈ S :=
   mem_sInf
 #align non_unital_subsemiring.mem_closure NonUnitalSubsemiring.mem_closure
 
-/- warning: non_unital_subsemiring.subset_closure -> NonUnitalSubsemiring.subset_closure is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R}, HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R}, HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.subset_closure NonUnitalSubsemiring.subset_closureₓ'. -/
 /-- The non-unital subsemiring generated by a set includes the set. -/
 @[simp]
 theorem subset_closure {s : Set R} : s ⊆ closure s := fun x hx => mem_closure.2 fun S hS => hS hx
 #align non_unital_subsemiring.subset_closure NonUnitalSubsemiring.subset_closure
 
-/- warning: non_unital_subsemiring.not_mem_of_not_mem_closure -> NonUnitalSubsemiring.not_mem_of_not_mem_closure is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {P : R}, (Not (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) P (NonUnitalSubsemiring.closure.{u1} R _inst_1 s))) -> (Not (Membership.Mem.{u1, u1} R (Set.{u1} R) (Set.hasMem.{u1} R) P s))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {P : R}, (Not (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) P (NonUnitalSubsemiring.closure.{u1} R _inst_1 s))) -> (Not (Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) P s))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.not_mem_of_not_mem_closure NonUnitalSubsemiring.not_mem_of_not_mem_closureₓ'. -/
 theorem not_mem_of_not_mem_closure {s : Set R} {P : R} (hP : P ∉ closure s) : P ∉ s := fun h =>
   hP (subset_closure h)
 #align non_unital_subsemiring.not_mem_of_not_mem_closure NonUnitalSubsemiring.not_mem_of_not_mem_closure
 
-/- warning: non_unital_subsemiring.closure_le -> NonUnitalSubsemiring.closure_le is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {t : NonUnitalSubsemiring.{u1} R _inst_1}, Iff (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) t) (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) t))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {t : NonUnitalSubsemiring.{u1} R _inst_1}, Iff (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) t) (HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) t))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_le NonUnitalSubsemiring.closure_leₓ'. -/
 /-- A non-unital subsemiring `S` includes `closure s` if and only if it includes `s`. -/
 @[simp]
 theorem closure_le {s : Set R} {t : NonUnitalSubsemiring R} : closure s ≤ t ↔ s ⊆ t :=
   ⟨Set.Subset.trans subset_closure, fun h => sInf_le h⟩
 #align non_unital_subsemiring.closure_le NonUnitalSubsemiring.closure_le
 
-/- warning: non_unital_subsemiring.closure_mono -> NonUnitalSubsemiring.closure_mono is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {{s : Set.{u1} R}} {{t : Set.{u1} R}}, (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s t) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) (NonUnitalSubsemiring.closure.{u1} R _inst_1 t))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {{s : Set.{u1} R}} {{t : Set.{u1} R}}, (HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s t) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) (NonUnitalSubsemiring.closure.{u1} R _inst_1 t))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_mono NonUnitalSubsemiring.closure_monoₓ'. -/
 /-- Subsemiring closure of a set is monotone in its argument: if `s ⊆ t`,
 then `closure s ≤ closure t`. -/
 theorem closure_mono ⦃s t : Set R⦄ (h : s ⊆ t) : closure s ≤ closure t :=
   closure_le.2 <| Set.Subset.trans h subset_closure
 #align non_unital_subsemiring.closure_mono NonUnitalSubsemiring.closure_mono
 
-/- warning: non_unital_subsemiring.closure_eq_of_le -> NonUnitalSubsemiring.closure_eq_of_le is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {t : NonUnitalSubsemiring.{u1} R _inst_1}, (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) t)) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) t (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) t)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {t : NonUnitalSubsemiring.{u1} R _inst_1}, (HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) t)) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) t (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) t)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_eq_of_le NonUnitalSubsemiring.closure_eq_of_leₓ'. -/
 theorem closure_eq_of_le {s : Set R} {t : NonUnitalSubsemiring R} (h₁ : s ⊆ t)
     (h₂ : t ≤ closure s) : closure s = t :=
   le_antisymm (closure_le.2 h₁) h₂
 #align non_unital_subsemiring.closure_eq_of_le NonUnitalSubsemiring.closure_eq_of_le
 
-/- warning: non_unital_subsemiring.mem_map_equiv -> NonUnitalSubsemiring.mem_map_equiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_map_equiv NonUnitalSubsemiring.mem_map_equivₓ'. -/
 theorem mem_map_equiv {f : R ≃+* S} {K : NonUnitalSubsemiring R} {x : S} :
     x ∈ K.map (f : R →ₙ+* S) ↔ f.symm x ∈ K :=
   @Set.mem_image_equiv _ _ (↑K) f.toEquiv x
 #align non_unital_subsemiring.mem_map_equiv NonUnitalSubsemiring.mem_map_equiv
 
-/- warning: non_unital_subsemiring.map_equiv_eq_comap_symm -> NonUnitalSubsemiring.map_equiv_eq_comap_symm is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (f : RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (K : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u1) (succ u2)} a b] => self.0) (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.hasCoeT.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquiv.ringEquivClass.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))))))) f) K) (NonUnitalSubsemiring.comap.{u2, u1, max u2 u1} S R _inst_2 _inst_1 (RingEquiv.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (RingEquivClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingEquiv.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R _inst_2 _inst_1 (RingEquiv.ringEquivClass.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))) (RingEquiv.symm.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) f) K)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (f : RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (K : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHomClass.toNonUnitalRingHom.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquiv.instRingEquivClassRingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)))) f) K) (NonUnitalSubsemiring.comap.{u2, u1, max u1 u2} S R _inst_2 _inst_1 (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R _inst_2 _inst_1 (RingEquiv.instRingEquivClassRingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))) (RingEquiv.symm.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) f) K)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_equiv_eq_comap_symm NonUnitalSubsemiring.map_equiv_eq_comap_symmₓ'. -/
 theorem map_equiv_eq_comap_symm (f : R ≃+* S) (K : NonUnitalSubsemiring R) :
     K.map (f : R →ₙ+* S) = K.comap f.symm :=
   SetLike.coe_injective (f.toEquiv.image_eq_preimage K)
 #align non_unital_subsemiring.map_equiv_eq_comap_symm NonUnitalSubsemiring.map_equiv_eq_comap_symm
 
-/- warning: non_unital_subsemiring.comap_equiv_eq_map_symm -> NonUnitalSubsemiring.comap_equiv_eq_map_symm is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (f : RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (K : NonUnitalSubsemiring.{u2} S _inst_2), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u1) (succ u2)} a b] => self.0) (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.hasCoeT.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquiv.ringEquivClass.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))))))) f) K) (NonUnitalSubsemiring.map.{u2, u1, max u2 u1} S R _inst_2 _inst_1 (RingEquiv.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (RingEquivClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingEquiv.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R _inst_2 _inst_1 (RingEquiv.ringEquivClass.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))) (RingEquiv.symm.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) f) K)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (f : RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (K : NonUnitalSubsemiring.{u2} S _inst_2), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHomClass.toNonUnitalRingHom.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquiv.instRingEquivClassRingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)))) f) K) (NonUnitalSubsemiring.map.{u2, u1, max u1 u2} S R _inst_2 _inst_1 (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R _inst_2 _inst_1 (RingEquiv.instRingEquivClassRingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))) (RingEquiv.symm.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) f) K)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.comap_equiv_eq_map_symm NonUnitalSubsemiring.comap_equiv_eq_map_symmₓ'. -/
 theorem comap_equiv_eq_map_symm (f : R ≃+* S) (K : NonUnitalSubsemiring S) :
     K.comap (f : R →ₙ+* S) = K.map f.symm :=
   (map_equiv_eq_comap_symm f.symm K).symm
@@ -1054,45 +640,21 @@ end NonUnitalSubsemiring
 
 namespace Subsemigroup
 
-/- warning: subsemigroup.non_unital_subsemiring_closure -> Subsemigroup.nonUnitalSubsemiringClosure is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) -> (NonUnitalSubsemiring.{u1} R _inst_1)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) -> (NonUnitalSubsemiring.{u1} R _inst_1)
-Case conversion may be inaccurate. Consider using '#align subsemigroup.non_unital_subsemiring_closure Subsemigroup.nonUnitalSubsemiringClosureₓ'. -/
 /-- The additive closure of a non-unital subsemigroup is a non-unital subsemiring. -/
 def nonUnitalSubsemiringClosure (M : Subsemigroup R) : NonUnitalSubsemiring R :=
   { AddSubmonoid.closure (M : Set R) with mul_mem' := fun x y => MulMemClass.mul_mem_add_closure }
 #align subsemigroup.non_unital_subsemiring_closure Subsemigroup.nonUnitalSubsemiringClosure
 
-/- warning: subsemigroup.non_unital_subsemiring_closure_coe -> Subsemigroup.nonUnitalSubsemiringClosure_coe is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (M : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (Subsemigroup.nonUnitalSubsemiringClosure.{u1} R _inst_1 M)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) M)))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (M : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.nonUnitalSubsemiringClosure.{u1} R _inst_1 M)) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) M)))
-Case conversion may be inaccurate. Consider using '#align subsemigroup.non_unital_subsemiring_closure_coe Subsemigroup.nonUnitalSubsemiringClosure_coeₓ'. -/
 theorem nonUnitalSubsemiringClosure_coe :
     (M.nonUnitalSubsemiringClosure : Set R) = AddSubmonoid.closure (M : Set R) :=
   rfl
 #align subsemigroup.non_unital_subsemiring_closure_coe Subsemigroup.nonUnitalSubsemiringClosure_coe
 
-/- warning: subsemigroup.non_unital_subsemiring_closure_to_add_submonoid -> Subsemigroup.nonUnitalSubsemiringClosure_toAddSubmonoid is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (M : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))), Eq.{succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 (Subsemigroup.nonUnitalSubsemiringClosure.{u1} R _inst_1 M)) (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) M))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (M : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)), Eq.{succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 (Subsemigroup.nonUnitalSubsemiringClosure.{u1} R _inst_1 M)) (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) M))
-Case conversion may be inaccurate. Consider using '#align subsemigroup.non_unital_subsemiring_closure_to_add_submonoid Subsemigroup.nonUnitalSubsemiringClosure_toAddSubmonoidₓ'. -/
 theorem nonUnitalSubsemiringClosure_toAddSubmonoid :
     M.nonUnitalSubsemiringClosure.toAddSubmonoid = AddSubmonoid.closure (M : Set R) :=
   rfl
 #align subsemigroup.non_unital_subsemiring_closure_to_add_submonoid Subsemigroup.nonUnitalSubsemiringClosure_toAddSubmonoid
 
-/- warning: subsemigroup.non_unital_subsemiring_closure_eq_closure -> Subsemigroup.nonUnitalSubsemiringClosure_eq_closure is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (M : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.nonUnitalSubsemiringClosure.{u1} R _inst_1 M) (NonUnitalSubsemiring.closure.{u1} R _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) M))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (M : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.nonUnitalSubsemiringClosure.{u1} R _inst_1 M) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) M))
-Case conversion may be inaccurate. Consider using '#align subsemigroup.non_unital_subsemiring_closure_eq_closure Subsemigroup.nonUnitalSubsemiringClosure_eq_closureₓ'. -/
 /-- The `non_unital_subsemiring` generated by a multiplicative subsemigroup coincides with the
 `non_unital_subsemiring.closure` of the subsemigroup itself . -/
 theorem nonUnitalSubsemiringClosure_eq_closure :
@@ -1123,12 +685,6 @@ theorem closure_subsemigroup_closure (s : Set R) : closure ↑(Subsemigroup.clos
 #align non_unital_subsemiring.closure_subsemigroup_closure NonUnitalSubsemiring.closure_subsemigroup_closure
 -/
 
-/- warning: non_unital_subsemiring.coe_closure_eq -> NonUnitalSubsemiring.coe_closure_eq is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} R), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) (Subsemigroup.closure.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) s))))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} R), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.closure.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) s))))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_closure_eq NonUnitalSubsemiring.coe_closure_eqₓ'. -/
 /-- The elements of the non-unital subsemiring closure of `M` are exactly the elements of the
 additive closure of a multiplicative subsemigroup `M`. -/
 theorem coe_closure_eq (s : Set R) :
@@ -1137,12 +693,6 @@ theorem coe_closure_eq (s : Set R) :
     Subsemigroup.nonUnitalSubsemiringClosure_eq_closure]
 #align non_unital_subsemiring.coe_closure_eq NonUnitalSubsemiring.coe_closure_eq
 
-/- warning: non_unital_subsemiring.mem_closure_iff -> NonUnitalSubsemiring.mem_closure_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) (Membership.Mem.{u1, u1} R (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (SetLike.hasMem.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))) x (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) (Subsemigroup.closure.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) s))))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) (Membership.mem.{u1, u1} R (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (SetLike.instMembership.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))) x (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.closure.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) s))))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_closure_iff NonUnitalSubsemiring.mem_closure_iffₓ'. -/
 theorem mem_closure_iff {s : Set R} {x} :
     x ∈ closure s ↔ x ∈ AddSubmonoid.closure (Subsemigroup.closure s : Set R) :=
   Set.ext_iff.mp (coe_closure_eq s) x
@@ -1162,12 +712,6 @@ theorem closure_addSubmonoid_closure {s : Set R} : closure ↑(AddSubmonoid.clos
 #align non_unital_subsemiring.closure_add_submonoid_closure NonUnitalSubsemiring.closure_addSubmonoid_closure
 -/
 
-/- warning: non_unital_subsemiring.closure_induction -> NonUnitalSubsemiring.closure_induction is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {p : R -> Prop} {x : R}, (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (forall (x : R), (Membership.Mem.{u1, u1} R (Set.{u1} R) (Set.hasMem.{u1} R) x s) -> (p x)) -> (p (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1)))))) -> (forall (x : R) (y : R), (p x) -> (p y) -> (p (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) x y))) -> (forall (x : R) (y : R), (p x) -> (p y) -> (p (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) x y))) -> (p x)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {p : R -> Prop} {x : R}, (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (forall (x : R), (Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x s) -> (p x)) -> (p (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))))) -> (forall (x : R) (y : R), (p x) -> (p y) -> (p (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) x y))) -> (forall (x : R) (y : R), (p x) -> (p y) -> (p (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) x y))) -> (p x)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_induction NonUnitalSubsemiring.closure_inductionₓ'. -/
 /-- An induction principle for closure membership. If `p` holds for `0`, `1`, and all elements
 of `s`, and is preserved under addition and multiplication, then `p` holds for all elements
 of the closure of `s`. -/
@@ -1177,12 +721,6 @@ theorem closure_induction {s : Set R} {p : R → Prop} {x} (h : x ∈ closure s)
   (@closure_le _ _ _ ⟨p, Hadd, H0, Hmul⟩).2 Hs h
 #align non_unital_subsemiring.closure_induction NonUnitalSubsemiring.closure_induction
 
-/- warning: non_unital_subsemiring.closure_induction₂ -> NonUnitalSubsemiring.closure_induction₂ is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {p : R -> R -> Prop} {x : R} {y : R}, (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) y (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (forall (x : R), (Membership.Mem.{u1, u1} R (Set.{u1} R) (Set.hasMem.{u1} R) x s) -> (forall (y : R), (Membership.Mem.{u1, u1} R (Set.{u1} R) (Set.hasMem.{u1} R) y s) -> (p x y))) -> (forall (x : R), p (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))))) x) -> (forall (x : R), p x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1)))))) -> (forall (x₁ : R) (x₂ : R) (y : R), (p x₁ y) -> (p x₂ y) -> (p (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) x₁ x₂) y)) -> (forall (x : R) (y₁ : R) (y₂ : R), (p x y₁) -> (p x y₂) -> (p x (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) y₁ y₂))) -> (forall (x₁ : R) (x₂ : R) (y : R), (p x₁ y) -> (p x₂ y) -> (p (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) x₁ x₂) y)) -> (forall (x : R) (y₁ : R) (y₂ : R), (p x y₁) -> (p x y₂) -> (p x (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) y₁ y₂))) -> (p x y)
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {p : R -> R -> Prop} {x : R} {y : R}, (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) y (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (forall (x : R), (Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x s) -> (forall (y : R), (Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) y s) -> (p x y))) -> (forall (x : R), p (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1)))) x) -> (forall (x : R), p x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))))) -> (forall (x₁ : R) (x₂ : R) (y : R), (p x₁ y) -> (p x₂ y) -> (p (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) x₁ x₂) y)) -> (forall (x : R) (y₁ : R) (y₂ : R), (p x y₁) -> (p x y₂) -> (p x (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) y₁ y₂))) -> (forall (x₁ : R) (x₂ : R) (y : R), (p x₁ y) -> (p x₂ y) -> (p (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) x₁ x₂) y)) -> (forall (x : R) (y₁ : R) (y₂ : R), (p x y₁) -> (p x y₂) -> (p x (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) y₁ y₂))) -> (p x y)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_induction₂ NonUnitalSubsemiring.closure_induction₂ₓ'. -/
 /-- An induction principle for closure membership for predicates with two arguments. -/
 @[elab_as_elim]
 theorem closure_induction₂ {s : Set R} {p : R → R → Prop} {x} {y : R} (hx : x ∈ closure s)
@@ -1198,12 +736,6 @@ theorem closure_induction₂ {s : Set R} {p : R → R → Prop} {x} {y : R} (hx
 
 variable (R)
 
-/- warning: non_unital_subsemiring.gi -> NonUnitalSubsemiring.gi is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], GaloisInsertion.{u1, u1} (Set.{u1} R) (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (Set.{u1} R) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} R) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} R) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} R) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} R) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} R) (Set.completeBooleanAlgebra.{u1} R))))))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))) (NonUnitalSubsemiring.closure.{u1} R _inst_1) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], GaloisInsertion.{u1, u1} (Set.{u1} R) (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (Set.{u1} R) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} R) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} R) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} R) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} R) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} R) (Set.instCompleteBooleanAlgebraSet.{u1} R))))))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.gi NonUnitalSubsemiring.giₓ'. -/
 /-- `closure` forms a Galois insertion with the coercion to set. -/
 protected def gi : GaloisInsertion (@closure R _) coe
     where
@@ -1222,23 +754,11 @@ theorem closure_eq (s : NonUnitalSubsemiring R) : closure (s : Set R) = s :=
 #align non_unital_subsemiring.closure_eq NonUnitalSubsemiring.closure_eq
 -/
 
-/- warning: non_unital_subsemiring.closure_empty -> NonUnitalSubsemiring.closure_empty is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (EmptyCollection.emptyCollection.{u1} (Set.{u1} R) (Set.hasEmptyc.{u1} R))) (Bot.bot.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasBot.{u1} R _inst_1))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (EmptyCollection.emptyCollection.{u1} (Set.{u1} R) (Set.instEmptyCollectionSet.{u1} R))) (Bot.bot.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instBotNonUnitalSubsemiring.{u1} R _inst_1))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_empty NonUnitalSubsemiring.closure_emptyₓ'. -/
 @[simp]
 theorem closure_empty : closure (∅ : Set R) = ⊥ :=
   (NonUnitalSubsemiring.gi R).gc.l_bot
 #align non_unital_subsemiring.closure_empty NonUnitalSubsemiring.closure_empty
 
-/- warning: non_unital_subsemiring.closure_univ -> NonUnitalSubsemiring.closure_univ is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.univ.{u1} R)) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.univ.{u1} R)) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R _inst_1))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_univ NonUnitalSubsemiring.closure_univₓ'. -/
 @[simp]
 theorem closure_univ : closure (Set.univ : Set R) = ⊤ :=
   @coe_top R _ ▸ closure_eq ⊤
@@ -1250,98 +770,44 @@ theorem closure_union (s t : Set R) : closure (s ∪ t) = closure s ⊔ closure
 #align non_unital_subsemiring.closure_union NonUnitalSubsemiring.closure_union
 -/
 
-/- warning: non_unital_subsemiring.closure_Union -> NonUnitalSubsemiring.closure_iUnion is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} (s : ι -> (Set.{u1} R)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.iUnion.{u1, u2} R ι (fun (i : ι) => s i))) (iSup.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => NonUnitalSubsemiring.closure.{u1} R _inst_1 (s i)))
-but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] {ι : Sort.{u1}} (s : ι -> (Set.{u2} R)), Eq.{succ u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.closure.{u2} R _inst_1 (Set.iUnion.{u2, u1} R ι (fun (i : ι) => s i))) (iSup.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toSupSet.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)) ι (fun (i : ι) => NonUnitalSubsemiring.closure.{u2} R _inst_1 (s i)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_Union NonUnitalSubsemiring.closure_iUnionₓ'. -/
 theorem closure_iUnion {ι} (s : ι → Set R) : closure (⋃ i, s i) = ⨆ i, closure (s i) :=
   (NonUnitalSubsemiring.gi R).gc.l_iSup
 #align non_unital_subsemiring.closure_Union NonUnitalSubsemiring.closure_iUnion
 
-/- warning: non_unital_subsemiring.closure_sUnion -> NonUnitalSubsemiring.closure_sUnion is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (Set.{u1} R)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.sUnion.{u1} R s)) (iSup.{u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) (Set.{u1} R) (fun (t : Set.{u1} R) => iSup.{u1, 0} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) (Membership.Mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.hasMem.{u1} (Set.{u1} R)) t s) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.hasMem.{u1} (Set.{u1} R)) t s) => NonUnitalSubsemiring.closure.{u1} R _inst_1 t)))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (Set.{u1} R)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.sUnion.{u1} R s)) (iSup.{u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) (Set.{u1} R) (fun (t : Set.{u1} R) => iSup.{u1, 0} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) (Membership.mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.instMembershipSet.{u1} (Set.{u1} R)) t s) (fun (H : Membership.mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.instMembershipSet.{u1} (Set.{u1} R)) t s) => NonUnitalSubsemiring.closure.{u1} R _inst_1 t)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_sUnion NonUnitalSubsemiring.closure_sUnionₓ'. -/
 theorem closure_sUnion (s : Set (Set R)) : closure (⋃₀ s) = ⨆ t ∈ s, closure t :=
   (NonUnitalSubsemiring.gi R).gc.l_sSup
 #align non_unital_subsemiring.closure_sUnion NonUnitalSubsemiring.closure_sUnion
 
-/- warning: non_unital_subsemiring.map_sup -> NonUnitalSubsemiring.map_sup is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u1} R _inst_1) (t : NonUnitalSubsemiring.{u1} R _inst_1) (f : F), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (Sup.sup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Lattice.toSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toLattice.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1)))) s t)) (Sup.sup.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (SemilatticeSup.toHasSup.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Lattice.toSemilatticeSup.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteLattice.toLattice.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.completeLattice.{u2} S _inst_2)))) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f t))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u2} R _inst_1) (t : NonUnitalSubsemiring.{u2} R _inst_1) (f : F), Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f (Sup.sup.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (SemilatticeSup.toSup.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Lattice.toSemilatticeSup.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toLattice.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)))) s t)) (Sup.sup.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (SemilatticeSup.toSup.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (Lattice.toSemilatticeSup.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (CompleteLattice.toLattice.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u3} S _inst_2)))) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f t))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_sup NonUnitalSubsemiring.map_supₓ'. -/
 theorem map_sup (s t : NonUnitalSubsemiring R) (f : F) :
     (map f (s ⊔ t) : NonUnitalSubsemiring S) = map f s ⊔ map f t :=
   @GaloisConnection.l_sup _ _ s t _ _ _ _ (gc_map_comap f)
 #align non_unital_subsemiring.map_sup NonUnitalSubsemiring.map_sup
 
-/- warning: non_unital_subsemiring.map_supr -> NonUnitalSubsemiring.map_iSup is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {ι : Sort.{u4}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (iSup.{u1, u4} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι s)) (iSup.{u2, u4} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteSemilatticeSup.toHasSup.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteLattice.toCompleteSemilatticeSup.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.completeLattice.{u2} S _inst_2))) ι (fun (i : ι) => NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (s i)))
-but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u4}} [_inst_1 : NonUnitalNonAssocSemiring.{u3} R] [_inst_2 : NonUnitalNonAssocSemiring.{u4} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u3, u4} F R S _inst_1 _inst_2] {ι : Sort.{u2}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u3} R _inst_1)), Eq.{succ u4} (NonUnitalSubsemiring.{u4} S _inst_2) (NonUnitalSubsemiring.map.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (iSup.{u3, u2} (NonUnitalSubsemiring.{u3} R _inst_1) (CompleteLattice.toSupSet.{u3} (NonUnitalSubsemiring.{u3} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u3} R _inst_1)) ι s)) (iSup.{u4, u2} (NonUnitalSubsemiring.{u4} S _inst_2) (CompleteLattice.toSupSet.{u4} (NonUnitalSubsemiring.{u4} S _inst_2) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u4} S _inst_2)) ι (fun (i : ι) => NonUnitalSubsemiring.map.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (s i)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_supr NonUnitalSubsemiring.map_iSupₓ'. -/
 theorem map_iSup {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring R) :
     (map f (iSup s) : NonUnitalSubsemiring S) = ⨆ i, map f (s i) :=
   @GaloisConnection.l_iSup _ _ _ _ _ _ _ (gc_map_comap f) s
 #align non_unital_subsemiring.map_supr NonUnitalSubsemiring.map_iSup
 
-/- warning: non_unital_subsemiring.comap_inf -> NonUnitalSubsemiring.comap_inf is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u2} S _inst_2) (t : NonUnitalSubsemiring.{u2} S _inst_2) (f : F), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (Inf.inf.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasInf.{u2} S _inst_2) s t)) (Inf.inf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f t))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u3} S _inst_2) (t : NonUnitalSubsemiring.{u3} S _inst_2) (f : F), Eq.{succ u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f (Inf.inf.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instInfNonUnitalSubsemiring.{u3} S _inst_2) s t)) (Inf.inf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instInfNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f t))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.comap_inf NonUnitalSubsemiring.comap_infₓ'. -/
 theorem comap_inf (s t : NonUnitalSubsemiring S) (f : F) :
     (comap f (s ⊓ t) : NonUnitalSubsemiring R) = comap f s ⊓ comap f t :=
   @GaloisConnection.u_inf _ _ s t _ _ _ _ (gc_map_comap f)
 #align non_unital_subsemiring.comap_inf NonUnitalSubsemiring.comap_inf
 
-/- warning: non_unital_subsemiring.comap_infi -> NonUnitalSubsemiring.comap_iInf is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {ι : Sort.{u4}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u2} S _inst_2)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (iInf.{u2, u4} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasInf.{u2} S _inst_2) ι s)) (iInf.{u1, u4} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) ι (fun (i : ι) => NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (s i)))
-but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u4}} [_inst_1 : NonUnitalNonAssocSemiring.{u3} R] [_inst_2 : NonUnitalNonAssocSemiring.{u4} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u3, u4} F R S _inst_1 _inst_2] {ι : Sort.{u2}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u4} S _inst_2)), Eq.{succ u3} (NonUnitalSubsemiring.{u3} R _inst_1) (NonUnitalSubsemiring.comap.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (iInf.{u4, u2} (NonUnitalSubsemiring.{u4} S _inst_2) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u4} S _inst_2) ι s)) (iInf.{u3, u2} (NonUnitalSubsemiring.{u3} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u3} R _inst_1) ι (fun (i : ι) => NonUnitalSubsemiring.comap.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (s i)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.comap_infi NonUnitalSubsemiring.comap_iInfₓ'. -/
 theorem comap_iInf {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring S) :
     (comap f (iInf s) : NonUnitalSubsemiring R) = ⨅ i, comap f (s i) :=
   @GaloisConnection.u_iInf _ _ _ _ _ _ _ (gc_map_comap f) s
 #align non_unital_subsemiring.comap_infi NonUnitalSubsemiring.comap_iInf
 
-/- warning: non_unital_subsemiring.map_bot -> NonUnitalSubsemiring.map_bot is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (Bot.bot.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasBot.{u1} R _inst_1))) (Bot.bot.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasBot.{u2} S _inst_2))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f (Bot.bot.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instBotNonUnitalSubsemiring.{u2} R _inst_1))) (Bot.bot.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instBotNonUnitalSubsemiring.{u3} S _inst_2))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_bot NonUnitalSubsemiring.map_botₓ'. -/
 @[simp]
 theorem map_bot (f : F) : map f (⊥ : NonUnitalSubsemiring R) = (⊥ : NonUnitalSubsemiring S) :=
   (gc_map_comap f).l_bot
 #align non_unital_subsemiring.map_bot NonUnitalSubsemiring.map_bot
 
-/- warning: non_unital_subsemiring.comap_top -> NonUnitalSubsemiring.comap_top is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasTop.{u2} S _inst_2))) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), Eq.{succ u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f (Top.top.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u3} S _inst_2))) (Top.top.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} R _inst_1))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.comap_top NonUnitalSubsemiring.comap_topₓ'. -/
 @[simp]
 theorem comap_top (f : F) : comap f (⊤ : NonUnitalSubsemiring S) = (⊤ : NonUnitalSubsemiring R) :=
   (gc_map_comap f).u_top
 #align non_unital_subsemiring.comap_top NonUnitalSubsemiring.comap_top
 
-/- warning: non_unital_subsemiring.prod -> NonUnitalSubsemiring.prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], (NonUnitalSubsemiring.{u1} R _inst_1) -> (NonUnitalSubsemiring.{u2} S _inst_2) -> (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], (NonUnitalSubsemiring.{u1} R _inst_1) -> (NonUnitalSubsemiring.{u2} S _inst_2) -> (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.prod NonUnitalSubsemiring.prodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /-- Given `non_unital_subsemiring`s `s`, `t` of semirings `R`, `S` respectively, `s.prod t` is
 `s × t` as a non-unital subsemiring of `R × S`. -/
@@ -1350,12 +816,6 @@ def prod (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) : NonUnitalSu
     carrier := (s : Set R) ×ˢ (t : Set S) }
 #align non_unital_subsemiring.prod NonUnitalSubsemiring.prod
 
-/- warning: non_unital_subsemiring.coe_prod -> NonUnitalSubsemiring.coe_prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1) (t : NonUnitalSubsemiring.{u2} S _inst_2), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (Prod.{u1, u2} R S)) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Set.{max u1 u2} (Prod.{u1, u2} R S)) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Set.{max u1 u2} (Prod.{u1, u2} R S)) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Set.{max u1 u2} (Prod.{u1, u2} R S)) (SetLike.Set.hasCoeT.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))))) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)) (Set.prod.{u1, u2} R S ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (HasLiftT.mk.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (CoeTCₓ.coe.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (SetLike.Set.hasCoeT.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) t))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1) (t : NonUnitalSubsemiring.{u2} S _inst_2), Eq.{max (succ u1) (succ u2)} (Set.{max u1 u2} (Prod.{u1, u2} R S)) (SetLike.coe.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)) (Set.prod.{u1, u2} R S (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) t))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_prod NonUnitalSubsemiring.coe_prodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 @[norm_cast]
 theorem coe_prod (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) :
@@ -1363,86 +823,41 @@ theorem coe_prod (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) :
   rfl
 #align non_unital_subsemiring.coe_prod NonUnitalSubsemiring.coe_prod
 
-/- warning: non_unital_subsemiring.mem_prod -> NonUnitalSubsemiring.mem_prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {s : NonUnitalSubsemiring.{u1} R _inst_1} {t : NonUnitalSubsemiring.{u2} S _inst_2} {p : Prod.{u1, u2} R S}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} R S) (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (SetLike.hasMem.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))) p (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)) (And (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) (Prod.fst.{u1, u2} R S p) s) (Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (Prod.snd.{u1, u2} R S p) t))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {s : NonUnitalSubsemiring.{u1} R _inst_1} {t : NonUnitalSubsemiring.{u2} S _inst_2} {p : Prod.{u1, u2} R S}, Iff (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} R S) (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (SetLike.instMembership.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2))) p (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)) (And (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) (Prod.fst.{u1, u2} R S p) s) (Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) (Prod.snd.{u1, u2} R S p) t))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_prod NonUnitalSubsemiring.mem_prodₓ'. -/
 theorem mem_prod {s : NonUnitalSubsemiring R} {t : NonUnitalSubsemiring S} {p : R × S} :
     p ∈ s.Prod t ↔ p.1 ∈ s ∧ p.2 ∈ t :=
   Iff.rfl
 #align non_unital_subsemiring.mem_prod NonUnitalSubsemiring.mem_prod
 
-/- warning: non_unital_subsemiring.prod_mono -> NonUnitalSubsemiring.prod_mono is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {{s₁ : NonUnitalSubsemiring.{u1} R _inst_1}} {{s₂ : NonUnitalSubsemiring.{u1} R _inst_1}}, (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s₁ s₂) -> (forall {{t₁ : NonUnitalSubsemiring.{u2} S _inst_2}} {{t₂ : NonUnitalSubsemiring.{u2} S _inst_2}}, (LE.le.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Preorder.toHasLe.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.partialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) t₁ t₂) -> (LE.le.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Preorder.toHasLe.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (PartialOrder.toPreorder.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (SetLike.partialOrder.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))))) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s₁ t₁) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s₂ t₂)))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {{s₁ : NonUnitalSubsemiring.{u1} R _inst_1}} {{s₂ : NonUnitalSubsemiring.{u1} R _inst_1}}, (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) s₁ s₂) -> (forall {{t₁ : NonUnitalSubsemiring.{u2} S _inst_2}} {{t₂ : NonUnitalSubsemiring.{u2} S _inst_2}}, (LE.le.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} S _inst_2))))) t₁ t₂) -> (LE.le.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (Preorder.toLE.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (PartialOrder.toPreorder.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (CompleteSemilatticeInf.toPartialOrder.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (CompleteLattice.toCompleteSemilatticeInf.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)))))) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s₁ t₁) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s₂ t₂)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.prod_mono NonUnitalSubsemiring.prod_monoₓ'. -/
 @[mono]
 theorem prod_mono ⦃s₁ s₂ : NonUnitalSubsemiring R⦄ (hs : s₁ ≤ s₂) ⦃t₁ t₂ : NonUnitalSubsemiring S⦄
     (ht : t₁ ≤ t₂) : s₁.Prod t₁ ≤ s₂.Prod t₂ :=
   Set.prod_mono hs ht
 #align non_unital_subsemiring.prod_mono NonUnitalSubsemiring.prod_mono
 
-/- warning: non_unital_subsemiring.prod_mono_right -> NonUnitalSubsemiring.prod_mono_right is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1), Monotone.{u2, max u1 u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.partialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2))) (PartialOrder.toPreorder.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (SetLike.partialOrder.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)))) (fun (t : NonUnitalSubsemiring.{u2} S _inst_2) => NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1), Monotone.{u2, max u1 u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} S _inst_2)))) (PartialOrder.toPreorder.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (CompleteSemilatticeInf.toPartialOrder.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (CompleteLattice.toCompleteSemilatticeInf.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2))))) (fun (t : NonUnitalSubsemiring.{u2} S _inst_2) => NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.prod_mono_right NonUnitalSubsemiring.prod_mono_rightₓ'. -/
 theorem prod_mono_right (s : NonUnitalSubsemiring R) :
     Monotone fun t : NonUnitalSubsemiring S => s.Prod t :=
   prod_mono (le_refl s)
 #align non_unital_subsemiring.prod_mono_right NonUnitalSubsemiring.prod_mono_right
 
-/- warning: non_unital_subsemiring.prod_mono_left -> NonUnitalSubsemiring.prod_mono_left is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (t : NonUnitalSubsemiring.{u2} S _inst_2), Monotone.{u1, max u1 u2} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))) (PartialOrder.toPreorder.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (SetLike.partialOrder.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)))) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (t : NonUnitalSubsemiring.{u2} S _inst_2), Monotone.{u1, max u1 u2} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)))) (PartialOrder.toPreorder.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (CompleteSemilatticeInf.toPartialOrder.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (CompleteLattice.toCompleteSemilatticeInf.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2))))) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.prod_mono_left NonUnitalSubsemiring.prod_mono_leftₓ'. -/
 theorem prod_mono_left (t : NonUnitalSubsemiring S) :
     Monotone fun s : NonUnitalSubsemiring R => s.Prod t := fun s₁ s₂ hs => prod_mono hs (le_refl t)
 #align non_unital_subsemiring.prod_mono_left NonUnitalSubsemiring.prod_mono_left
 
-/- warning: non_unital_subsemiring.prod_top -> NonUnitalSubsemiring.prod_top is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ (max u1 u2)} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasTop.{u2} S _inst_2))) (NonUnitalSubsemiring.comap.{max u1 u2, u1, max u1 u2} (Prod.{u1, u2} R S) R (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_1 (NonUnitalRingHom.{max u1 u2, u1} (Prod.{u1, u2} R S) R (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.nonUnitalRingHomClass.{max u1 u2, u1} (Prod.{u1, u2} R S) R (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.fst.{u1, u2} R S _inst_1 _inst_2) s)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{max (succ u1) (succ u2)} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} S _inst_2))) (NonUnitalSubsemiring.comap.{max u1 u2, u1, max u1 u2} (Prod.{u1, u2} R S) R (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_1 (NonUnitalRingHom.{max u2 u1, u1} (Prod.{u1, u2} R S) R (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{max u1 u2, u1} (Prod.{u1, u2} R S) R (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.fst.{u1, u2} R S _inst_1 _inst_2) s)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.prod_top NonUnitalSubsemiring.prod_topₓ'. -/
 theorem prod_top (s : NonUnitalSubsemiring R) :
     s.Prod (⊤ : NonUnitalSubsemiring S) = s.comap (NonUnitalRingHom.fst R S) :=
   ext fun x => by simp [mem_prod, MonoidHom.coe_fst]
 #align non_unital_subsemiring.prod_top NonUnitalSubsemiring.prod_top
 
-/- warning: non_unital_subsemiring.top_prod -> NonUnitalSubsemiring.top_prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u2} S _inst_2), Eq.{succ (max u1 u2)} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1)) s) (NonUnitalSubsemiring.comap.{max u1 u2, u2, max u1 u2} (Prod.{u1, u2} R S) S (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_2 (NonUnitalRingHom.{max u1 u2, u2} (Prod.{u1, u2} R S) S (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{max u1 u2, u2} (Prod.{u1, u2} R S) S (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.snd.{u1, u2} R S _inst_1 _inst_2) s)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u2} S _inst_2), Eq.{max (succ u1) (succ u2)} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R _inst_1)) s) (NonUnitalSubsemiring.comap.{max u1 u2, u2, max u1 u2} (Prod.{u1, u2} R S) S (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_2 (NonUnitalRingHom.{max u2 u1, u2} (Prod.{u1, u2} R S) S (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{max u1 u2, u2} (Prod.{u1, u2} R S) S (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.snd.{u1, u2} R S _inst_1 _inst_2) s)
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.top_prod NonUnitalSubsemiring.top_prodₓ'. -/
 theorem top_prod (s : NonUnitalSubsemiring S) :
     (⊤ : NonUnitalSubsemiring R).Prod s = s.comap (NonUnitalRingHom.snd R S) :=
   ext fun x => by simp [mem_prod, MonoidHom.coe_snd]
 #align non_unital_subsemiring.top_prod NonUnitalSubsemiring.top_prod
 
-/- warning: non_unital_subsemiring.top_prod_top -> NonUnitalSubsemiring.top_prod_top is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], Eq.{succ (max u1 u2)} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1)) (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasTop.{u2} S _inst_2))) (Top.top.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.hasTop.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], Eq.{max (succ u1) (succ u2)} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R _inst_1)) (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} S _inst_2))) (Top.top.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.top_prod_top NonUnitalSubsemiring.top_prod_topₓ'. -/
 @[simp]
 theorem top_prod_top : (⊤ : NonUnitalSubsemiring R).Prod (⊤ : NonUnitalSubsemiring S) = ⊤ :=
   (top_prod _).trans <| comap_top _
 #align non_unital_subsemiring.top_prod_top NonUnitalSubsemiring.top_prod_top
 
-/- warning: non_unital_subsemiring.prod_equiv -> NonUnitalSubsemiring.prodEquiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.prod_equiv NonUnitalSubsemiring.prodEquivₓ'. -/
 /-- Product of non-unital subsemirings is isomorphic to their product as semigroups. -/
 def prodEquiv (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) : s.Prod t ≃+* s × t :=
   { Equiv.Set.prod ↑s ↑t with
@@ -1450,12 +865,6 @@ def prodEquiv (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) : s.Prod
     map_add' := fun x y => rfl }
 #align non_unital_subsemiring.prod_equiv NonUnitalSubsemiring.prodEquiv
 
-/- warning: non_unital_subsemiring.mem_supr_of_directed -> NonUnitalSubsemiring.mem_iSup_of_directed is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} [hι : Nonempty.{u2} ι] {S : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)}, (Directed.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) ι (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (forall {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (iSup.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => S i))) (Exists.{u2} ι (fun (i : ι) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (S i))))
-but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] {ι : Sort.{u1}} [hι : Nonempty.{u1} ι] {S : ι -> (NonUnitalSubsemiring.{u2} R _inst_1)}, (Directed.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) ι (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7496 : NonUnitalSubsemiring.{u2} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7498 : NonUnitalSubsemiring.{u2} R _inst_1) => LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7496 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7498) S) -> (forall {x : R}, Iff (Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x (iSup.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toSupSet.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)) ι (fun (i : ι) => S i))) (Exists.{u1} ι (fun (i : ι) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x (S i))))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_iSup_of_directedₓ'. -/
 theorem mem_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
     (hS : Directed (· ≤ ·) S) {x : R} : (x ∈ ⨆ i, S i) ↔ ∃ i, x ∈ S i :=
   by
@@ -1469,23 +878,11 @@ theorem mem_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubse
   exact iSup_le fun i x hx => Set.mem_iUnion.2 ⟨i, hx⟩
 #align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_iSup_of_directed
 
-/- warning: non_unital_subsemiring.coe_supr_of_directed -> NonUnitalSubsemiring.coe_iSup_of_directed is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} [hι : Nonempty.{u2} ι] {S : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)}, (Directed.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) ι (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (iSup.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => S i))) (Set.iUnion.{u1, u2} R ι (fun (i : ι) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (S i))))
-but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] {ι : Sort.{u1}} [hι : Nonempty.{u1} ι] {S : ι -> (NonUnitalSubsemiring.{u2} R _inst_1)}, (Directed.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) ι (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7771 : NonUnitalSubsemiring.{u2} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7773 : NonUnitalSubsemiring.{u2} R _inst_1) => LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7771 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7773) S) -> (Eq.{succ u2} (Set.{u2} R) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (iSup.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toSupSet.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)) ι (fun (i : ι) => S i))) (Set.iUnion.{u2, u1} R ι (fun (i : ι) => SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (S i))))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_supr_of_directed NonUnitalSubsemiring.coe_iSup_of_directedₓ'. -/
 theorem coe_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
     (hS : Directed (· ≤ ·) S) : ((⨆ i, S i : NonUnitalSubsemiring R) : Set R) = ⋃ i, ↑(S i) :=
   Set.ext fun x => by simp [mem_supr_of_directed hS]
 #align non_unital_subsemiring.coe_supr_of_directed NonUnitalSubsemiring.coe_iSup_of_directed
 
-/- warning: non_unital_subsemiring.mem_Sup_of_directed_on -> NonUnitalSubsemiring.mem_sSup_of_directedOn is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (forall {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (SupSet.sSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) S)) (Exists.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Exists.{0} (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7874 : NonUnitalSubsemiring.{u1} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7876 : NonUnitalSubsemiring.{u1} R _inst_1) => LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7874 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7876) S) -> (forall {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (SupSet.sSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) S)) (Exists.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => And (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s))))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_Sup_of_directed_on NonUnitalSubsemiring.mem_sSup_of_directedOnₓ'. -/
 theorem mem_sSup_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
     (hS : DirectedOn (· ≤ ·) S) {x : R} : x ∈ sSup S ↔ ∃ s ∈ S, x ∈ s :=
   by
@@ -1493,12 +890,6 @@ theorem mem_sSup_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonem
   simp only [sSup_eq_iSup', mem_supr_of_directed hS.directed_coe, SetCoe.exists, Subtype.coe_mk]
 #align non_unital_subsemiring.mem_Sup_of_directed_on NonUnitalSubsemiring.mem_sSup_of_directedOn
 
-/- warning: non_unital_subsemiring.coe_Sup_of_directed_on -> NonUnitalSubsemiring.coe_sSup_of_directedOn is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (SupSet.sSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) S)) (Set.iUnion.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.iUnion.{u1, 0} R (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s))))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7977 : NonUnitalSubsemiring.{u1} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7979 : NonUnitalSubsemiring.{u1} R _inst_1) => LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7977 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7979) S) -> (Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (SupSet.sSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) S)) (Set.iUnion.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.iUnion.{u1, 0} R (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s))))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_Sup_of_directed_on NonUnitalSubsemiring.coe_sSup_of_directedOnₓ'. -/
 theorem coe_sSup_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
     (hS : DirectedOn (· ≤ ·) S) : (↑(sSup S) : Set R) = ⋃ s ∈ S, ↑s :=
   Set.ext fun x => by simp [mem_Sup_of_directed_on Sne hS]
@@ -1513,24 +904,12 @@ variable {F : Type _} [NonUnitalNonAssocSemiring T] [NonUnitalRingHomClass F R S
 
 open NonUnitalSubsemiringClass NonUnitalSubsemiring
 
-/- warning: non_unital_ring_hom.cod_restrict -> NonUnitalRingHom.codRestrict is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : NonUnitalSubsemiring.{u2} S _inst_2), (forall (x : R), Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f x) s) -> (NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) s) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) s))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : NonUnitalSubsemiring.{u2} S _inst_2), (forall (x : R), Membership.mem.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) (FunLike.coe.{succ u3, succ u1, succ u2} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u3, u1, u2} F R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5)) f x) s) -> (NonUnitalRingHom.{u1, u2} R (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x s)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) s))
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.cod_restrict NonUnitalRingHom.codRestrictₓ'. -/
 /-- Restriction of a non-unital ring homomorphism to a non-unital subsemiring of the codomain. -/
 def codRestrict (f : F) (s : NonUnitalSubsemiring S) (h : ∀ x, f x ∈ s) : R →ₙ+* s :=
   { (f : R →ₙ* S).codRestrict s.toSubsemigroup h, (f : R →+ S).codRestrict s.toAddSubmonoid h with
     toFun := fun n => ⟨f n, h n⟩ }
 #align non_unital_ring_hom.cod_restrict NonUnitalRingHom.codRestrict
 
-/- warning: non_unital_ring_hom.srange_restrict -> NonUnitalRingHom.srangeRestrict is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), NonUnitalRingHom.{u1, u2} R (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.srange_restrict NonUnitalRingHom.srangeRestrictₓ'. -/
 /-- Restriction of a non-unital ring homomorphism to its range interpreted as a
 non-unital subsemiring.
 
@@ -1539,20 +918,11 @@ def srangeRestrict (f : F) : R →ₙ+* (srange f : NonUnitalSubsemiring S) :=
   codRestrict f (srange f) (mem_srange_self f)
 #align non_unital_ring_hom.srange_restrict NonUnitalRingHom.srangeRestrict
 
-/- warning: non_unital_ring_hom.coe_srange_restrict -> NonUnitalRingHom.coe_srangeRestrict is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.coe_srange_restrict NonUnitalRingHom.coe_srangeRestrictₓ'. -/
 @[simp]
 theorem coe_srangeRestrict (f : F) (x : R) : (srangeRestrict f x : S) = f x :=
   rfl
 #align non_unital_ring_hom.coe_srange_restrict NonUnitalRingHom.coe_srangeRestrict
 
-/- warning: non_unital_ring_hom.srange_restrict_surjective -> NonUnitalRingHom.srangeRestrict_surjective is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), Function.Surjective.{succ u1, succ u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (fun (_x : NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) => R -> (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHom.hasCoeToFun.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHom.srangeRestrict.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), Function.Surjective.{succ u2, succ u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f)) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))))) (NonUnitalRingHom.srangeRestrict.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.srange_restrict_surjective NonUnitalRingHom.srangeRestrict_surjectiveₓ'. -/
 theorem srangeRestrict_surjective (f : F) :
     Function.Surjective (srangeRestrict f : R → (srange f : NonUnitalSubsemiring S)) :=
   fun ⟨y, hy⟩ =>
@@ -1560,23 +930,11 @@ theorem srangeRestrict_surjective (f : F) :
   ⟨x, Subtype.ext hx⟩
 #align non_unital_ring_hom.srange_restrict_surjective NonUnitalRingHom.srangeRestrict_surjective
 
-/- warning: non_unital_ring_hom.srange_top_iff_surjective -> NonUnitalRingHom.srange_top_iff_surjective is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F}, Iff (Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f) (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasTop.{u2} S _inst_2))) (Function.Surjective.{succ u1, succ u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F}, Iff (Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f) (Top.top.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u3} S _inst_2))) (Function.Surjective.{succ u2, succ u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f))
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.srange_top_iff_surjective NonUnitalRingHom.srange_top_iff_surjectiveₓ'. -/
 theorem srange_top_iff_surjective {f : F} :
     srange f = (⊤ : NonUnitalSubsemiring S) ↔ Function.Surjective (f : R → S) :=
   SetLike.ext'_iff.trans <| Iff.trans (by rw [coe_srange, coe_top]) Set.range_iff_surjective
 #align non_unital_ring_hom.srange_top_iff_surjective NonUnitalRingHom.srange_top_iff_surjective
 
-/- warning: non_unital_ring_hom.srange_top_of_surjective -> NonUnitalRingHom.srange_top_of_surjective is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), (Function.Surjective.{succ u1, succ u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f)) -> (Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f) (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasTop.{u2} S _inst_2)))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), (Function.Surjective.{succ u2, succ u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f)) -> (Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f) (Top.top.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u3} S _inst_2)))
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.srange_top_of_surjective NonUnitalRingHom.srange_top_of_surjectiveₓ'. -/
 /-- The range of a surjective non-unital ring homomorphism is the whole of the codomain. -/
 theorem srange_top_of_surjective (f : F) (hf : Function.Surjective (f : R → S)) :
     srange f = (⊤ : NonUnitalSubsemiring S) :=
@@ -1590,12 +948,6 @@ def eqSlocus (f g : F) : NonUnitalSubsemiring R :=
 #align non_unital_ring_hom.eq_slocus NonUnitalRingHom.eqSlocus
 -/
 
-/- warning: non_unital_ring_hom.eq_on_sclosure -> NonUnitalRingHom.eqOn_sclosure is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {g : F} {s : Set.{u1} R}, (Set.EqOn.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) g) s) -> (Set.EqOn.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) g) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {g : F} {s : Set.{u2} R}, (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) s) -> (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.closure.{u2} R _inst_1 s)))
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.eq_on_sclosure NonUnitalRingHom.eqOn_sclosureₓ'. -/
 /-- If two non-unital ring homomorphisms are equal on a set, then they are equal on its
 non-unital subsemiring closure. -/
 theorem eqOn_sclosure {f g : F} {s : Set R} (h : Set.EqOn (f : R → S) (g : R → S) s) :
@@ -1603,45 +955,21 @@ theorem eqOn_sclosure {f g : F} {s : Set R} (h : Set.EqOn (f : R → S) (g : R 
   show closure s ≤ eqSlocus f g from closure_le.2 h
 #align non_unital_ring_hom.eq_on_sclosure NonUnitalRingHom.eqOn_sclosure
 
-/- warning: non_unital_ring_hom.eq_of_eq_on_stop -> NonUnitalRingHom.eq_of_eqOn_stop is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {g : F}, (Set.EqOn.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) g) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1)))) -> (Eq.{succ u3} F f g)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {g : F}, (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (Top.top.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} R _inst_1)))) -> (Eq.{succ u1} F f g)
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.eq_of_eq_on_stop NonUnitalRingHom.eq_of_eqOn_stopₓ'. -/
 theorem eq_of_eqOn_stop {f g : F}
     (h : Set.EqOn (f : R → S) (g : R → S) (⊤ : NonUnitalSubsemiring R)) : f = g :=
   FunLike.ext _ _ fun x => h trivial
 #align non_unital_ring_hom.eq_of_eq_on_stop NonUnitalRingHom.eq_of_eqOn_stop
 
-/- warning: non_unital_ring_hom.eq_of_eq_on_sdense -> NonUnitalRingHom.eq_of_eqOn_sdense is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {s : Set.{u1} R}, (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1))) -> (forall {f : F} {g : F}, (Set.EqOn.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) g) s) -> (Eq.{succ u3} F f g))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {s : Set.{u2} R}, (Eq.{succ u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.closure.{u2} R _inst_1 s) (Top.top.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} R _inst_1))) -> (forall {f : F} {g : F}, (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) s) -> (Eq.{succ u1} F f g))
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.eq_of_eq_on_sdense NonUnitalRingHom.eq_of_eqOn_sdenseₓ'. -/
 theorem eq_of_eqOn_sdense {s : Set R} (hs : closure s = ⊤) {f g : F}
     (h : s.EqOn (f : R → S) (g : R → S)) : f = g :=
   eq_of_eqOn_stop <| hs ▸ eqOn_sclosure h
 #align non_unital_ring_hom.eq_of_eq_on_sdense NonUnitalRingHom.eq_of_eqOn_sdense
 
-/- warning: non_unital_ring_hom.sclosure_preimage_le -> NonUnitalRingHom.sclosure_preimage_le is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : Set.{u2} S), LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.preimage.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) s)) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u2} S _inst_2 s))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (s : Set.{u3} S), LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1))))) (NonUnitalSubsemiring.closure.{u2} R _inst_1 (Set.preimage.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) s)) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u3} S _inst_2 s))
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.sclosure_preimage_le NonUnitalRingHom.sclosure_preimage_leₓ'. -/
 theorem sclosure_preimage_le (f : F) (s : Set S) :
     closure ((f : R → S) ⁻¹' s) ≤ (closure s).comap f :=
   closure_le.2 fun x hx => SetLike.mem_coe.2 <| mem_comap.2 <| subset_closure hx
 #align non_unital_ring_hom.sclosure_preimage_le NonUnitalRingHom.sclosure_preimage_le
 
-/- warning: non_unital_ring_hom.map_sclosure -> NonUnitalRingHom.map_sclosure is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : Set.{u1} R), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) (NonUnitalSubsemiring.closure.{u2} S _inst_2 (Set.image.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) s))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (s : Set.{u2} R), Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u2} R _inst_1 s)) (NonUnitalSubsemiring.closure.{u3} S _inst_2 (Set.image.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) s))
-Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.map_sclosure NonUnitalRingHom.map_sclosureₓ'. -/
 /-- The image under a ring homomorphism of the subsemiring generated by a set equals
 the subsemiring generated by the image of the set. -/
 theorem map_sclosure (f : F) (s : Set R) : (closure s).map f = closure ((f : R → S) '' s) :=
@@ -1657,46 +985,22 @@ namespace NonUnitalSubsemiring
 
 open NonUnitalRingHom NonUnitalSubsemiringClass
 
-/- warning: non_unital_subsemiring.inclusion -> NonUnitalSubsemiring.inclusion is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : NonUnitalSubsemiring.{u1} R _inst_1} {T : NonUnitalSubsemiring.{u1} R _inst_1}, (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) S T) -> (NonUnitalRingHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) S) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) T) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) S) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) T))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : NonUnitalSubsemiring.{u1} R _inst_1} {T : NonUnitalSubsemiring.{u1} R _inst_1}, (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) S T) -> (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x S)) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x T)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) S) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) T))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.inclusion NonUnitalSubsemiring.inclusionₓ'. -/
 /-- The non-unital ring homomorphism associated to an inclusion of
 non-unital subsemirings. -/
 def inclusion {S T : NonUnitalSubsemiring R} (h : S ≤ T) : S →ₙ+* T :=
   codRestrict (Subtype S) _ fun x => h x.2
 #align non_unital_subsemiring.inclusion NonUnitalSubsemiring.inclusion
 
-/- warning: non_unital_subsemiring.srange_subtype -> NonUnitalSubsemiring.srange_subtype is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalRingHom.srange.{u1, u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) s) _inst_1 (NonUnitalRingHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) s) _inst_1) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) s) _inst_1) (NonUnitalSubsemiringClass.subtype.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) s)) s
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalRingHom.srange.{u1, u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s) _inst_1 (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s) _inst_1) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s) _inst_1) (NonUnitalSubsemiringClass.subtype.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) s
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.srange_subtype NonUnitalSubsemiring.srange_subtypeₓ'. -/
 @[simp]
 theorem srange_subtype (s : NonUnitalSubsemiring R) : (Subtype s).srange = s :=
   SetLike.coe_injective <| (coe_srange _).trans Subtype.range_coe
 #align non_unital_subsemiring.srange_subtype NonUnitalSubsemiring.srange_subtype
 
-/- warning: non_unital_subsemiring.range_fst -> NonUnitalSubsemiring.range_fst is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalRingHom.srange.{max u1 u2, u1, max u1 u2} (Prod.{u1, u2} R S) R (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_1 (NonUnitalRingHom.{max u1 u2, u1} (Prod.{u1, u2} R S) R (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.nonUnitalRingHomClass.{max u1 u2, u1} (Prod.{u1, u2} R S) R (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.fst.{u1, u2} R S _inst_1 _inst_2)) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalRingHom.srange.{max u1 u2, u1, max u1 u2} (Prod.{u1, u2} R S) R (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_1 (NonUnitalRingHom.{max u2 u1, u1} (Prod.{u1, u2} R S) R (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{max u1 u2, u1} (Prod.{u1, u2} R S) R (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.fst.{u1, u2} R S _inst_1 _inst_2)) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R _inst_1))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.range_fst NonUnitalSubsemiring.range_fstₓ'. -/
 @[simp]
 theorem range_fst : (fst R S).srange = ⊤ :=
   NonUnitalRingHom.srange_top_of_surjective (fst R S) Prod.fst_surjective
 #align non_unital_subsemiring.range_fst NonUnitalSubsemiring.range_fst
 
-/- warning: non_unital_subsemiring.range_snd -> NonUnitalSubsemiring.range_snd is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{max u1 u2, u2, max u1 u2} (Prod.{u1, u2} R S) S (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_2 (NonUnitalRingHom.{max u1 u2, u2} (Prod.{u1, u2} R S) S (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{max u1 u2, u2} (Prod.{u1, u2} R S) S (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.snd.{u1, u2} R S _inst_1 _inst_2)) (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasTop.{u2} S _inst_2))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{max u1 u2, u2, max u1 u2} (Prod.{u1, u2} R S) S (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_2 (NonUnitalRingHom.{max u2 u1, u2} (Prod.{u1, u2} R S) S (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{max u1 u2, u2} (Prod.{u1, u2} R S) S (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.snd.{u1, u2} R S _inst_1 _inst_2)) (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} S _inst_2))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.range_snd NonUnitalSubsemiring.range_sndₓ'. -/
 @[simp]
 theorem range_snd : (snd R S).srange = ⊤ :=
   NonUnitalRingHom.srange_top_of_surjective (snd R S) <| Prod.snd_surjective
@@ -1712,12 +1016,6 @@ variable {s t : NonUnitalSubsemiring R}
 
 variable {F : Type _} [NonUnitalRingHomClass F R S]
 
-/- warning: ring_equiv.non_unital_subsemiring_congr -> RingEquiv.nonUnitalSubsemiringCongr is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {t : NonUnitalSubsemiring.{u1} R _inst_1}, (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) s t) -> (RingEquiv.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) t) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (RingEquiv.nonUnitalSubsemiringCongr._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (RingEquiv.nonUnitalSubsemiringCongr._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (RingEquiv.nonUnitalSubsemiringCongr._proof_3.{u1} R _inst_1) t) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (RingEquiv.nonUnitalSubsemiringCongr._proof_4.{u1} R _inst_1) t))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {t : NonUnitalSubsemiring.{u1} R _inst_1}, (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) s t) -> (RingEquiv.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x t)) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x t)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) t)) (AddSubmonoid.add.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (AddSubmonoid.add.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 t)))
-Case conversion may be inaccurate. Consider using '#align ring_equiv.non_unital_subsemiring_congr RingEquiv.nonUnitalSubsemiringCongrₓ'. -/
 /-- Makes the identity isomorphism from a proof two non-unital subsemirings of a multiplicative
 monoid are equal. -/
 def nonUnitalSubsemiringCongr (h : s = t) : s ≃+* t :=
@@ -1727,12 +1025,6 @@ def nonUnitalSubsemiringCongr (h : s = t) : s ≃+* t :=
     map_add' := fun _ _ => rfl }
 #align ring_equiv.non_unital_subsemiring_congr RingEquiv.nonUnitalSubsemiringCongr
 
-/- warning: ring_equiv.sof_left_inverse' -> RingEquiv.sofLeftInverse' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {g : S -> R} {f : F}, (Function.LeftInverse.{succ u1, succ u2} R S g (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) -> (RingEquiv.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {g : S -> R} {f : F}, (Function.LeftInverse.{succ u1, succ u2} R S g (FunLike.coe.{succ u3, succ u1, succ u2} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u3, u1, u2} F R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4)) f)) -> (RingEquiv.{u1, u2} R (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (AddSubmonoid.add.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} S _inst_2 (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))))
-Case conversion may be inaccurate. Consider using '#align ring_equiv.sof_left_inverse' RingEquiv.sofLeftInverse'ₓ'. -/
 /-- Restrict a non-unital ring homomorphism with a left inverse to a ring isomorphism to its
 `non_unital_ring_hom.srange`. -/
 def sofLeftInverse' {g : S → R} {f : F} (h : Function.LeftInverse g f) : R ≃+* srange f :=
@@ -1746,30 +1038,18 @@ def sofLeftInverse' {g : S → R} {f : F} (h : Function.LeftInverse g f) : R ≃
         show f (g x) = x by rw [← hx', h x'] }
 #align ring_equiv.sof_left_inverse' RingEquiv.sofLeftInverse'
 
-/- warning: ring_equiv.sof_left_inverse'_apply -> RingEquiv.sofLeftInverse'_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring_equiv.sof_left_inverse'_apply RingEquiv.sofLeftInverse'_applyₓ'. -/
 @[simp]
 theorem sofLeftInverse'_apply {g : S → R} {f : F} (h : Function.LeftInverse g f) (x : R) :
     ↑(sofLeftInverse' h x) = f x :=
   rfl
 #align ring_equiv.sof_left_inverse'_apply RingEquiv.sofLeftInverse'_apply
 
-/- warning: ring_equiv.sof_left_inverse'_symm_apply -> RingEquiv.sofLeftInverse'_symm_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring_equiv.sof_left_inverse'_symm_apply RingEquiv.sofLeftInverse'_symm_applyₓ'. -/
 @[simp]
 theorem sofLeftInverse'_symm_apply {g : S → R} {f : F} (h : Function.LeftInverse g f)
     (x : srange f) : (sofLeftInverse' h).symm x = g x :=
   rfl
 #align ring_equiv.sof_left_inverse'_symm_apply RingEquiv.sofLeftInverse'_symm_apply
 
-/- warning: ring_equiv.non_unital_subsemiring_map -> RingEquiv.nonUnitalSubsemiringMap is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (e : RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (s : NonUnitalSubsemiring.{u1} R _inst_1), RingEquiv.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) (RingEquiv.toNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2 e) s)) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (RingEquiv.nonUnitalSubsemiringMap._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (RingEquiv.nonUnitalSubsemiringMap._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.nonUnitalSubsemiringMap._proof_3.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) (RingEquiv.toNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2 e) s)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.nonUnitalSubsemiringMap._proof_4.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) (RingEquiv.toNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2 e) s))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (e : RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (s : NonUnitalSubsemiring.{u1} R _inst_1), RingEquiv.{u1, u2} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (RingEquiv.toNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2 e) s))) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (RingEquiv.toNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2 e) s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (RingEquiv.toNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2 e) s))) (AddSubmonoid.add.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (AddSubmonoid.add.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} S _inst_2 (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (RingEquiv.toNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2 e) s)))
-Case conversion may be inaccurate. Consider using '#align ring_equiv.non_unital_subsemiring_map RingEquiv.nonUnitalSubsemiringMapₓ'. -/
 /-- Given an equivalence `e : R ≃+* S` of non-unital semirings and a non-unital subsemiring
 `s` of `R`, `non_unital_subsemiring_map e s` is the induced equivalence between `s` and
 `s.map e` -/
Diff
@@ -639,10 +639,7 @@ lean 3 declaration is
 but is expected to have type
   forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f (Top.top.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} R _inst_1)))
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.srange_eq_map NonUnitalRingHom.srange_eq_mapₓ'. -/
-theorem srange_eq_map : @srange R S _ _ _ _ f = (⊤ : NonUnitalSubsemiring R).map f :=
-  by
-  ext
-  simp
+theorem srange_eq_map : @srange R S _ _ _ _ f = (⊤ : NonUnitalSubsemiring R).map f := by ext; simp
 #align non_unital_ring_hom.srange_eq_map NonUnitalRingHom.srange_eq_map
 
 /- warning: non_unital_ring_hom.mem_srange_self -> NonUnitalRingHom.mem_srange_self is a dubious translation:
Diff
@@ -587,10 +587,7 @@ noncomputable def equivMapOfInjective (f : F) (hf : Function.Injective (f : R 
 #align non_unital_subsemiring.equiv_map_of_injective NonUnitalSubsemiring.equivMapOfInjective
 
 /- warning: non_unital_subsemiring.coe_equiv_map_of_injective_apply -> NonUnitalSubsemiring.coe_equivMapOfInjective_apply is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u1} R _inst_1) (f : F) (hf : Function.Injective.{succ u1, succ u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) (x : coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s), Eq.{succ u2} S ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) S (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) S (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) S (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) S (coeSubtype.{succ u2} S (fun (x : S) => Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_3.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_4.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (fun (_x : RingEquiv.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_3.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_4.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) => (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) -> (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (RingEquiv.hasCoeToFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_3.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_4.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiring.equivMapOfInjective.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 s f hf) x)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) x))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u2} R _inst_1) (f : F) (hf : Function.Injective.{succ u2, succ u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f)) (x : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)), Eq.{succ u3} S (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (fun (_x : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (EquivLike.toEmbeddingLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (MulEquivClass.toEquivLike.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (RingEquivClass.toMulEquivClass.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (RingEquiv.instRingEquivClassRingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))))))) (NonUnitalSubsemiring.equivMapOfInjective.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 s f hf) x)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f (Subtype.val.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Set.{u2} R) (Set.instMembershipSet.{u2} R) x (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_equiv_map_of_injective_apply NonUnitalSubsemiring.coe_equivMapOfInjective_applyₓ'. -/
 @[simp]
 theorem coe_equivMapOfInjective_apply (f : F) (hf : Function.Injective f) (x : s) :
@@ -1027,10 +1024,7 @@ theorem closure_eq_of_le {s : Set R} {t : NonUnitalSubsemiring R} (h₁ : s ⊆
 #align non_unital_subsemiring.closure_eq_of_le NonUnitalSubsemiring.closure_eq_of_le
 
 /- warning: non_unital_subsemiring.mem_map_equiv -> NonUnitalSubsemiring.mem_map_equiv is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {f : RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))} {K : NonUnitalSubsemiring.{u1} R _inst_1} {x : S}, Iff (Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u1) (succ u2)} a b] => self.0) (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.hasCoeT.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquiv.ringEquivClass.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))))))) f) K)) (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (fun (_x : RingEquiv.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) => S -> R) (RingEquiv.hasCoeToFun.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (RingEquiv.symm.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) f) x) K)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {f : RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))} {K : NonUnitalSubsemiring.{u1} R _inst_1} {x : S}, Iff (Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHomClass.toNonUnitalRingHom.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquiv.instRingEquivClassRingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)))) f) K)) (Membership.mem.{u1, u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : S) => R) x) (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S (fun (_x : S) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : S) => R) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u2, succ u1} (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u2, succ u1} (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R (MulEquivClass.toEquivLike.{max u1 u2, u2, u1} (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (RingEquivClass.toMulEquivClass.{max u1 u2, u2, u1} (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (RingEquiv.instRingEquivClassRingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))))))) (RingEquiv.symm.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) f) x) K)
+<too large>
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_map_equiv NonUnitalSubsemiring.mem_map_equivₓ'. -/
 theorem mem_map_equiv {f : R ≃+* S} {K : NonUnitalSubsemiring R} {x : S} :
     x ∈ K.map (f : R →ₙ+* S) ↔ f.symm x ∈ K :=
@@ -1450,10 +1444,7 @@ theorem top_prod_top : (⊤ : NonUnitalSubsemiring R).Prod (⊤ : NonUnitalSubse
 #align non_unital_subsemiring.top_prod_top NonUnitalSubsemiring.top_prod_top
 
 /- warning: non_unital_subsemiring.prod_equiv -> NonUnitalSubsemiring.prodEquiv is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1) (t : NonUnitalSubsemiring.{u2} S _inst_2), RingEquiv.{max u1 u2, max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)) (Prod.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) t)) (MulMemClass.mul.{max u1 u2, max u1 u2} (Prod.{u1, u2} R S) (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Distrib.toHasMul.{max u1 u2} (Prod.{u1, u2} R S) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prodEquiv._proof_1.{u1, u2} R S _inst_1 _inst_2) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)) (AddMemClass.add.{max u1 u2, max u1 u2} (Prod.{u1, u2} R S) (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (AddZeroClass.toHasAdd.{max u1 u2} (Prod.{u1, u2} R S) (AddMonoid.toAddZeroClass.{max u1 u2} (Prod.{u1, u2} R S) (AddCommMonoid.toAddMonoid.{max u1 u2} (Prod.{u1, u2} R S) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))))) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prodEquiv._proof_2.{u1, u2} R S _inst_1 _inst_2) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)) (Prod.hasMul.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) t) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.prodEquiv._proof_3.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.prodEquiv._proof_4.{u2} S _inst_2) t)) (Prod.hasAdd.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) t) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.prodEquiv._proof_5.{u1} R _inst_1) s) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.prodEquiv._proof_6.{u2} S _inst_2) t))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1) (t : NonUnitalSubsemiring.{u2} S _inst_2), RingEquiv.{max u1 u2, max u2 u1} (Subtype.{succ (max u1 u2)} (Prod.{u1, u2} R S) (fun (x : Prod.{u1, u2} R S) => Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} R S) (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (SetLike.instMembership.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2))) x (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t))) (Prod.{u1, u2} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x t))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Prod.{u1, u2} R S) (fun (x : Prod.{u1, u2} R S) => Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} R S) (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (SetLike.instMembership.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2))) x (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{max u1 u2, max u1 u2} (Prod.{u1, u2} R S) (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t))) (Prod.instMulProd.{u1, u2} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x t)) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x t)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) t))) (AddSubmonoid.add.{max u1 u2} (Prod.{u1, u2} R S) (AddMonoid.toAddZeroClass.{max u1 u2} (Prod.{u1, u2} R S) (AddCommMonoid.toAddMonoid.{max u1 u2} (Prod.{u1, u2} R S) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)))) (NonUnitalSubsemiring.toAddSubmonoid.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t))) (Prod.instAddSum.{u1, u2} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x t)) (AddSubmonoid.add.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (AddSubmonoid.add.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} S _inst_2 t)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.prod_equiv NonUnitalSubsemiring.prodEquivₓ'. -/
 /-- Product of non-unital subsemirings is isomorphic to their product as semigroups. -/
 def prodEquiv (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) : s.Prod t ≃+* s × t :=
@@ -1552,10 +1543,7 @@ def srangeRestrict (f : F) : R →ₙ+* (srange f : NonUnitalSubsemiring S) :=
 #align non_unital_ring_hom.srange_restrict NonUnitalRingHom.srangeRestrict
 
 /- warning: non_unital_ring_hom.coe_srange_restrict -> NonUnitalRingHom.coe_srangeRestrict is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (x : R), Eq.{succ u2} S ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) S (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) S (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) S (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) S (coeSubtype.{succ u2} S (fun (x : S) => Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (fun (_x : NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) => R -> (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHom.hasCoeToFun.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHom.srangeRestrict.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f) x)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f x)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (x : R), Eq.{succ u3} S (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f)) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))))) (NonUnitalRingHom.srangeRestrict.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f) x)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.coe_srange_restrict NonUnitalRingHom.coe_srangeRestrictₓ'. -/
 @[simp]
 theorem coe_srangeRestrict (f : F) (x : R) : (srangeRestrict f x : S) = f x :=
@@ -1762,10 +1750,7 @@ def sofLeftInverse' {g : S → R} {f : F} (h : Function.LeftInverse g f) : R ≃
 #align ring_equiv.sof_left_inverse' RingEquiv.sofLeftInverse'
 
 /- warning: ring_equiv.sof_left_inverse'_apply -> RingEquiv.sofLeftInverse'_apply is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {g : S -> R} {f : F} (h : Function.LeftInverse.{succ u1, succ u2} R S g (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) (x : R), Eq.{succ u2} S ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (coeSubtype.{succ u2} S (fun (x : S) => Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (fun (_x : RingEquiv.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) => R -> (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquiv.hasCoeToFun.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquiv.sofLeftInverse'.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 g f h) x)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f x)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {g : S -> R} {f : F} (h : Function.LeftInverse.{succ u2, succ u3} R S g (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f)) (x : R), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (fun (_x : R) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (EquivLike.toEmbeddingLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (MulEquivClass.toEquivLike.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquivClass.toMulEquivClass.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquiv.instRingEquivClassRingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))))))) (RingEquiv.sofLeftInverse'.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 g f h) x)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align ring_equiv.sof_left_inverse'_apply RingEquiv.sofLeftInverse'_applyₓ'. -/
 @[simp]
 theorem sofLeftInverse'_apply {g : S → R} {f : F} (h : Function.LeftInverse g f) (x : R) :
@@ -1774,10 +1759,7 @@ theorem sofLeftInverse'_apply {g : S → R} {f : F} (h : Function.LeftInverse g
 #align ring_equiv.sof_left_inverse'_apply RingEquiv.sofLeftInverse'_apply
 
 /- warning: ring_equiv.sof_left_inverse'_symm_apply -> RingEquiv.sofLeftInverse'_symm_apply is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {g : S -> R} {f : F} (h : Function.LeftInverse.{succ u1, succ u2} R S g (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) (x : coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)), Eq.{succ u1} R (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) R (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (fun (_x : RingEquiv.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) R (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) => (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) -> R) (RingEquiv.hasCoeToFun.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) R (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (RingEquiv.symm.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (RingEquiv.sofLeftInverse'.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 g f h)) x) (g ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (coeSubtype.{succ u2} S (fun (x : S) => Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)))))) x))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {g : S -> R} {f : F} (h : Function.LeftInverse.{succ u2, succ u3} R S g (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f)) (x : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) => R) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (fun (_x : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) => R) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u3), succ u3, succ u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (EquivLike.toEmbeddingLike.{max (succ u2) (succ u3), succ u3, succ u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (MulEquivClass.toEquivLike.{max u2 u3, u3, u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (RingEquivClass.toMulEquivClass.{max u2 u3, u3, u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (RingEquiv.instRingEquivClassRingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))))))) (RingEquiv.symm.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquiv.sofLeftInverse'.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 g f h)) x) (g (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align ring_equiv.sof_left_inverse'_symm_apply RingEquiv.sofLeftInverse'_symm_applyₓ'. -/
 @[simp]
 theorem sofLeftInverse'_symm_apply {g : S → R} {f : F} (h : Function.LeftInverse g f)
Diff
@@ -95,7 +95,7 @@ def subtype : s →ₙ+* R :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : SetLike.{u2, u1} S R] [_inst_3 : NonUnitalSubsemiringClass.{u1, u2} S R _inst_1 _inst_2] (s : S), Eq.{succ u1} ((fun (_x : NonUnitalRingHom.{u1, u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) => (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) -> R) (NonUnitalSubsemiringClass.subtype.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) (coeFn.{succ u1, succ u1} (NonUnitalRingHom.{u1, u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (fun (_x : NonUnitalRingHom.{u1, u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) => (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) -> R) (NonUnitalRingHom.hasCoeToFun.{u1, u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (NonUnitalSubsemiringClass.subtype.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u2} R S (SetLike.hasMem.{u2, u1} S R _inst_2) x s))))))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : SetLike.{u2, u1} S R] [_inst_3 : NonUnitalSubsemiringClass.{u1, u2} S R _inst_1 _inst_2] (s : S), Eq.{succ u1} (forall (a : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) => R) a) (FunLike.coe.{succ u1, succ u1, succ u1} (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) (fun (_x : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) => R) _x) (MulHomClass.toFunLike.{u1, u1, u1} (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1 (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1))) (NonUnitalSubsemiringClass.subtype.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u2, u1} S R _inst_2 s)))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : SetLike.{u2, u1} S R] [_inst_3 : NonUnitalSubsemiringClass.{u1, u2} S R _inst_1 _inst_2] (s : S), Eq.{succ u1} (forall (a : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) => R) a) (FunLike.coe.{succ u1, succ u1, succ u1} (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) (fun (_x : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) => R) _x) (MulHomClass.toFunLike.{u1, u1, u1} (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1 (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1))) (NonUnitalSubsemiringClass.subtype.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u2, u1} S R _inst_2 s)))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring_class.coe_subtype NonUnitalSubsemiringClass.coeSubtypeₓ'. -/
 @[simp]
 theorem coeSubtype : (subtype s : s → R) = coe :=
@@ -465,7 +465,7 @@ def comap (f : F) (s : NonUnitalSubsemiring S) : NonUnitalSubsemiring R :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u2} S _inst_2) (f : F), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (Set.preimage.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (HasLiftT.mk.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (CoeTCₓ.coe.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (SetLike.Set.hasCoeT.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) s))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u3} S _inst_2) (f : F), Eq.{succ u2} (Set.{u2} R) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Set.preimage.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f) (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) s))
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u3} S _inst_2) (f : F), Eq.{succ u2} (Set.{u2} R) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Set.preimage.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f) (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) s))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_comap NonUnitalSubsemiring.coe_comapₓ'. -/
 @[simp]
 theorem coe_comap (s : NonUnitalSubsemiring S) (f : F) : (s.comap f : Set R) = f ⁻¹' s :=
@@ -476,7 +476,7 @@ theorem coe_comap (s : NonUnitalSubsemiring S) (f : F) : (s.comap f : Set R) = f
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {s : NonUnitalSubsemiring.{u2} S _inst_2} {f : F} {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f x) s)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {s : NonUnitalSubsemiring.{u3} S _inst_2} {f : F} {x : R}, Iff (Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Membership.mem.{u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) s)
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {s : NonUnitalSubsemiring.{u3} S _inst_2} {f : F} {x : R}, Iff (Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Membership.mem.{u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) s)
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_comap NonUnitalSubsemiring.mem_comapₓ'. -/
 @[simp]
 theorem mem_comap {s : NonUnitalSubsemiring S} {f : F} {x : R} : x ∈ s.comap f ↔ f x ∈ s :=
@@ -507,7 +507,7 @@ def map (f : F) (s : NonUnitalSubsemiring R) : NonUnitalSubsemiring S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u2} (Set.{u2} S) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (HasLiftT.mk.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (CoeTCₓ.coe.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (SetLike.Set.hasCoeT.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (Set.image.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (s : NonUnitalSubsemiring.{u2} R _inst_1), Eq.{succ u3} (Set.{u3} S) (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Set.image.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s))
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (s : NonUnitalSubsemiring.{u2} R _inst_1), Eq.{succ u3} (Set.{u3} S) (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Set.image.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_map NonUnitalSubsemiring.coe_mapₓ'. -/
 @[simp]
 theorem coe_map (f : F) (s : NonUnitalSubsemiring R) : (s.map f : Set S) = f '' s :=
@@ -518,7 +518,7 @@ theorem coe_map (f : F) (s : NonUnitalSubsemiring R) : (s.map f : Set S) = f ''
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {s : NonUnitalSubsemiring.{u1} R _inst_1} {y : S}, Iff (Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) y (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (Exists.{succ u1} R (fun (x : R) => Exists.{0} (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s) (fun (H : Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s) => Eq.{succ u2} S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f x) y)))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {s : NonUnitalSubsemiring.{u2} R _inst_1} {y : S}, Iff (Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) y (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Exists.{succ u2} R (fun (x : R) => And (Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s) (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) y)))
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {s : NonUnitalSubsemiring.{u2} R _inst_1} {y : S}, Iff (Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) y (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Exists.{succ u2} R (fun (x : R) => And (Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s) (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) y)))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_map NonUnitalSubsemiring.mem_mapₓ'. -/
 @[simp]
 theorem mem_map {f : F} {s : NonUnitalSubsemiring R} {y : S} : y ∈ s.map f ↔ ∃ x ∈ s, f x = y :=
@@ -574,7 +574,7 @@ theorem gc_map_comap (f : F) :
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u1} R _inst_1) (f : F), (Function.Injective.{succ u1, succ u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) -> (RingEquiv.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_3.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_4.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u1} R _inst_1) (f : F), (Function.Injective.{succ u1, succ u2} R S (FunLike.coe.{succ u3, succ u1, succ u2} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u3, u1, u2} F R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4)) f)) -> (RingEquiv.{u1, u2} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (AddSubmonoid.add.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} S _inst_2 (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u1} R _inst_1) (f : F), (Function.Injective.{succ u1, succ u2} R S (FunLike.coe.{succ u3, succ u1, succ u2} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u3, u1, u2} F R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4)) f)) -> (RingEquiv.{u1, u2} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (AddSubmonoid.add.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} S _inst_2 (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.equiv_map_of_injective NonUnitalSubsemiring.equivMapOfInjectiveₓ'. -/
 /-- A non-unital subsemiring is isomorphic to its image under an injective function -/
 noncomputable def equivMapOfInjective (f : F) (hf : Function.Injective (f : R → S)) :
@@ -590,7 +590,7 @@ noncomputable def equivMapOfInjective (f : F) (hf : Function.Injective (f : R 
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u1} R _inst_1) (f : F) (hf : Function.Injective.{succ u1, succ u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) (x : coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s), Eq.{succ u2} S ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) S (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) S (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) S (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) S (coeSubtype.{succ u2} S (fun (x : S) => Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_3.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_4.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (fun (_x : RingEquiv.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_3.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_4.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) => (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) -> (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (RingEquiv.hasCoeToFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_3.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_4.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiring.equivMapOfInjective.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 s f hf) x)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) x))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u2} R _inst_1) (f : F) (hf : Function.Injective.{succ u2, succ u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f)) (x : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)), Eq.{succ u3} S (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (fun (_x : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (EquivLike.toEmbeddingLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (MulEquivClass.toEquivLike.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (RingEquivClass.toMulEquivClass.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (RingEquiv.instRingEquivClassRingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))))))) (NonUnitalSubsemiring.equivMapOfInjective.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 s f hf) x)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f (Subtype.val.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Set.{u2} R) (Set.instMembershipSet.{u2} R) x (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) x))
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u2} R _inst_1) (f : F) (hf : Function.Injective.{succ u2, succ u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f)) (x : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)), Eq.{succ u3} S (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (fun (_x : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (EquivLike.toEmbeddingLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (MulEquivClass.toEquivLike.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (RingEquivClass.toMulEquivClass.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (RingEquiv.instRingEquivClassRingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))))))) (NonUnitalSubsemiring.equivMapOfInjective.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 s f hf) x)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f (Subtype.val.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Set.{u2} R) (Set.instMembershipSet.{u2} R) x (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) x))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_equiv_map_of_injective_apply NonUnitalSubsemiring.coe_equivMapOfInjective_applyₓ'. -/
 @[simp]
 theorem coe_equivMapOfInjective_apply (f : F) (hf : Function.Injective f) (x : s) :
@@ -618,7 +618,7 @@ def srange : NonUnitalSubsemiring S :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), Eq.{succ u2} (Set.{u2} S) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (HasLiftT.mk.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (CoeTCₓ.coe.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (SetLike.Set.hasCoeT.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Set.range.{u2, succ u1} S R (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), Eq.{succ u3} (Set.{u3} S) (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)) (Set.range.{u3, succ u2} S R (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f))
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), Eq.{succ u3} (Set.{u3} S) (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)) (Set.range.{u3, succ u2} S R (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f))
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.coe_srange NonUnitalRingHom.coe_srangeₓ'. -/
 @[simp]
 theorem coe_srange : (@srange R S _ _ _ _ f : Set S) = Set.range f :=
@@ -629,7 +629,7 @@ theorem coe_srange : (@srange R S _ _ _ _ f : Set S) = Set.range f :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {y : S}, Iff (Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) y (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Exists.{succ u1} R (fun (x : R) => Eq.{succ u2} S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f x) y))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {y : S}, Iff (Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) y (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)) (Exists.{succ u2} R (fun (x : R) => Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) y))
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {y : S}, Iff (Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) y (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)) (Exists.{succ u2} R (fun (x : R) => Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) y))
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.mem_srange NonUnitalRingHom.mem_srangeₓ'. -/
 @[simp]
 theorem mem_srange {f : F} {y : S} : y ∈ @srange R S _ _ _ _ f ↔ ∃ x, f x = y :=
@@ -652,7 +652,7 @@ theorem srange_eq_map : @srange R S _ _ _ _ f = (⊤ : NonUnitalSubsemiring R).m
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (x : R), Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f x) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (x : R), Membership.mem.{u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (x : R), Membership.mem.{u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.mem_srange_self NonUnitalRingHom.mem_srange_selfₓ'. -/
 theorem mem_srange_self (f : F) (x : R) : f x ∈ @srange R S _ _ _ _ f :=
   mem_srange.mpr ⟨x, rfl⟩
@@ -1529,7 +1529,7 @@ open NonUnitalSubsemiringClass NonUnitalSubsemiring
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : NonUnitalSubsemiring.{u2} S _inst_2), (forall (x : R), Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f x) s) -> (NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) s) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) s))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : NonUnitalSubsemiring.{u2} S _inst_2), (forall (x : R), Membership.mem.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) (FunLike.coe.{succ u3, succ u1, succ u2} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u3, u1, u2} F R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5)) f x) s) -> (NonUnitalRingHom.{u1, u2} R (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x s)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) s))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : NonUnitalSubsemiring.{u2} S _inst_2), (forall (x : R), Membership.mem.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) (FunLike.coe.{succ u3, succ u1, succ u2} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u3, u1, u2} F R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5)) f x) s) -> (NonUnitalRingHom.{u1, u2} R (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x s)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) s))
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.cod_restrict NonUnitalRingHom.codRestrictₓ'. -/
 /-- Restriction of a non-unital ring homomorphism to a non-unital subsemiring of the codomain. -/
 def codRestrict (f : F) (s : NonUnitalSubsemiring S) (h : ∀ x, f x ∈ s) : R →ₙ+* s :=
@@ -1555,7 +1555,7 @@ def srangeRestrict (f : F) : R →ₙ+* (srange f : NonUnitalSubsemiring S) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (x : R), Eq.{succ u2} S ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) S (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) S (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) S (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) S (coeSubtype.{succ u2} S (fun (x : S) => Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (fun (_x : NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) => R -> (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHom.hasCoeToFun.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHom.srangeRestrict.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f) x)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f x)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (x : R), Eq.{succ u3} S (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f)) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))))) (NonUnitalRingHom.srangeRestrict.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f) x)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f x)
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (x : R), Eq.{succ u3} S (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f)) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))))) (NonUnitalRingHom.srangeRestrict.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f) x)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f x)
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.coe_srange_restrict NonUnitalRingHom.coe_srangeRestrictₓ'. -/
 @[simp]
 theorem coe_srangeRestrict (f : F) (x : R) : (srangeRestrict f x : S) = f x :=
@@ -1566,7 +1566,7 @@ theorem coe_srangeRestrict (f : F) (x : R) : (srangeRestrict f x : S) = f x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), Function.Surjective.{succ u1, succ u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (fun (_x : NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) => R -> (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHom.hasCoeToFun.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHom.srangeRestrict.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), Function.Surjective.{succ u2, succ u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f)) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))))) (NonUnitalRingHom.srangeRestrict.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), Function.Surjective.{succ u2, succ u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f)) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))))) (NonUnitalRingHom.srangeRestrict.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.srange_restrict_surjective NonUnitalRingHom.srangeRestrict_surjectiveₓ'. -/
 theorem srangeRestrict_surjective (f : F) :
     Function.Surjective (srangeRestrict f : R → (srange f : NonUnitalSubsemiring S)) :=
@@ -1579,7 +1579,7 @@ theorem srangeRestrict_surjective (f : F) :
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F}, Iff (Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f) (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasTop.{u2} S _inst_2))) (Function.Surjective.{succ u1, succ u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F}, Iff (Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f) (Top.top.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u3} S _inst_2))) (Function.Surjective.{succ u2, succ u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f))
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F}, Iff (Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f) (Top.top.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u3} S _inst_2))) (Function.Surjective.{succ u2, succ u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f))
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.srange_top_iff_surjective NonUnitalRingHom.srange_top_iff_surjectiveₓ'. -/
 theorem srange_top_iff_surjective {f : F} :
     srange f = (⊤ : NonUnitalSubsemiring S) ↔ Function.Surjective (f : R → S) :=
@@ -1590,7 +1590,7 @@ theorem srange_top_iff_surjective {f : F} :
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), (Function.Surjective.{succ u1, succ u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f)) -> (Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f) (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasTop.{u2} S _inst_2)))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), (Function.Surjective.{succ u2, succ u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f)) -> (Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f) (Top.top.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u3} S _inst_2)))
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), (Function.Surjective.{succ u2, succ u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f)) -> (Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f) (Top.top.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u3} S _inst_2)))
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.srange_top_of_surjective NonUnitalRingHom.srange_top_of_surjectiveₓ'. -/
 /-- The range of a surjective non-unital ring homomorphism is the whole of the codomain. -/
 theorem srange_top_of_surjective (f : F) (hf : Function.Surjective (f : R → S)) :
@@ -1609,7 +1609,7 @@ def eqSlocus (f g : F) : NonUnitalSubsemiring R :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {g : F} {s : Set.{u1} R}, (Set.EqOn.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) g) s) -> (Set.EqOn.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) g) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {g : F} {s : Set.{u2} R}, (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) s) -> (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.closure.{u2} R _inst_1 s)))
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {g : F} {s : Set.{u2} R}, (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) s) -> (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.closure.{u2} R _inst_1 s)))
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.eq_on_sclosure NonUnitalRingHom.eqOn_sclosureₓ'. -/
 /-- If two non-unital ring homomorphisms are equal on a set, then they are equal on its
 non-unital subsemiring closure. -/
@@ -1622,7 +1622,7 @@ theorem eqOn_sclosure {f g : F} {s : Set R} (h : Set.EqOn (f : R → S) (g : R 
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {g : F}, (Set.EqOn.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) g) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1)))) -> (Eq.{succ u3} F f g)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {g : F}, (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (Top.top.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} R _inst_1)))) -> (Eq.{succ u1} F f g)
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {g : F}, (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (Top.top.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} R _inst_1)))) -> (Eq.{succ u1} F f g)
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.eq_of_eq_on_stop NonUnitalRingHom.eq_of_eqOn_stopₓ'. -/
 theorem eq_of_eqOn_stop {f g : F}
     (h : Set.EqOn (f : R → S) (g : R → S) (⊤ : NonUnitalSubsemiring R)) : f = g :=
@@ -1633,7 +1633,7 @@ theorem eq_of_eqOn_stop {f g : F}
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {s : Set.{u1} R}, (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1))) -> (forall {f : F} {g : F}, (Set.EqOn.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) g) s) -> (Eq.{succ u3} F f g))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {s : Set.{u2} R}, (Eq.{succ u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.closure.{u2} R _inst_1 s) (Top.top.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} R _inst_1))) -> (forall {f : F} {g : F}, (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) s) -> (Eq.{succ u1} F f g))
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {s : Set.{u2} R}, (Eq.{succ u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.closure.{u2} R _inst_1 s) (Top.top.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} R _inst_1))) -> (forall {f : F} {g : F}, (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) s) -> (Eq.{succ u1} F f g))
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.eq_of_eq_on_sdense NonUnitalRingHom.eq_of_eqOn_sdenseₓ'. -/
 theorem eq_of_eqOn_sdense {s : Set R} (hs : closure s = ⊤) {f g : F}
     (h : s.EqOn (f : R → S) (g : R → S)) : f = g :=
@@ -1644,7 +1644,7 @@ theorem eq_of_eqOn_sdense {s : Set R} (hs : closure s = ⊤) {f g : F}
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : Set.{u2} S), LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.preimage.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) s)) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u2} S _inst_2 s))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (s : Set.{u3} S), LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1))))) (NonUnitalSubsemiring.closure.{u2} R _inst_1 (Set.preimage.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) s)) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u3} S _inst_2 s))
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (s : Set.{u3} S), LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1))))) (NonUnitalSubsemiring.closure.{u2} R _inst_1 (Set.preimage.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) s)) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u3} S _inst_2 s))
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.sclosure_preimage_le NonUnitalRingHom.sclosure_preimage_leₓ'. -/
 theorem sclosure_preimage_le (f : F) (s : Set S) :
     closure ((f : R → S) ⁻¹' s) ≤ (closure s).comap f :=
@@ -1655,7 +1655,7 @@ theorem sclosure_preimage_le (f : F) (s : Set S) :
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : Set.{u1} R), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) (NonUnitalSubsemiring.closure.{u2} S _inst_2 (Set.image.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) s))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (s : Set.{u2} R), Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u2} R _inst_1 s)) (NonUnitalSubsemiring.closure.{u3} S _inst_2 (Set.image.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) s))
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (s : Set.{u2} R), Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u2} R _inst_1 s)) (NonUnitalSubsemiring.closure.{u3} S _inst_2 (Set.image.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) s))
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.map_sclosure NonUnitalRingHom.map_sclosureₓ'. -/
 /-- The image under a ring homomorphism of the subsemiring generated by a set equals
 the subsemiring generated by the image of the set. -/
@@ -1746,7 +1746,7 @@ def nonUnitalSubsemiringCongr (h : s = t) : s ≃+* t :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {g : S -> R} {f : F}, (Function.LeftInverse.{succ u1, succ u2} R S g (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) -> (RingEquiv.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)))
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {g : S -> R} {f : F}, (Function.LeftInverse.{succ u1, succ u2} R S g (FunLike.coe.{succ u3, succ u1, succ u2} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u3, u1, u2} F R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4)) f)) -> (RingEquiv.{u1, u2} R (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (AddSubmonoid.add.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} S _inst_2 (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {g : S -> R} {f : F}, (Function.LeftInverse.{succ u1, succ u2} R S g (FunLike.coe.{succ u3, succ u1, succ u2} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u3, u1, u2} F R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4)) f)) -> (RingEquiv.{u1, u2} R (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (AddSubmonoid.add.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} S _inst_2 (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))))
 Case conversion may be inaccurate. Consider using '#align ring_equiv.sof_left_inverse' RingEquiv.sofLeftInverse'ₓ'. -/
 /-- Restrict a non-unital ring homomorphism with a left inverse to a ring isomorphism to its
 `non_unital_ring_hom.srange`. -/
@@ -1765,7 +1765,7 @@ def sofLeftInverse' {g : S → R} {f : F} (h : Function.LeftInverse g f) : R ≃
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {g : S -> R} {f : F} (h : Function.LeftInverse.{succ u1, succ u2} R S g (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) (x : R), Eq.{succ u2} S ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (coeSubtype.{succ u2} S (fun (x : S) => Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (fun (_x : RingEquiv.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) => R -> (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquiv.hasCoeToFun.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquiv.sofLeftInverse'.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 g f h) x)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f x)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {g : S -> R} {f : F} (h : Function.LeftInverse.{succ u2, succ u3} R S g (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f)) (x : R), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (fun (_x : R) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (EquivLike.toEmbeddingLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (MulEquivClass.toEquivLike.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquivClass.toMulEquivClass.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquiv.instRingEquivClassRingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))))))) (RingEquiv.sofLeftInverse'.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 g f h) x)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x)
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {g : S -> R} {f : F} (h : Function.LeftInverse.{succ u2, succ u3} R S g (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f)) (x : R), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (fun (_x : R) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (EquivLike.toEmbeddingLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (MulEquivClass.toEquivLike.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquivClass.toMulEquivClass.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquiv.instRingEquivClassRingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))))))) (RingEquiv.sofLeftInverse'.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 g f h) x)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x)
 Case conversion may be inaccurate. Consider using '#align ring_equiv.sof_left_inverse'_apply RingEquiv.sofLeftInverse'_applyₓ'. -/
 @[simp]
 theorem sofLeftInverse'_apply {g : S → R} {f : F} (h : Function.LeftInverse g f) (x : R) :
@@ -1777,7 +1777,7 @@ theorem sofLeftInverse'_apply {g : S → R} {f : F} (h : Function.LeftInverse g
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {g : S -> R} {f : F} (h : Function.LeftInverse.{succ u1, succ u2} R S g (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) (x : coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)), Eq.{succ u1} R (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) R (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (fun (_x : RingEquiv.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) R (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) => (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) -> R) (RingEquiv.hasCoeToFun.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) R (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (RingEquiv.symm.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (RingEquiv.sofLeftInverse'.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 g f h)) x) (g ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (coeSubtype.{succ u2} S (fun (x : S) => Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)))))) x))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {g : S -> R} {f : F} (h : Function.LeftInverse.{succ u2, succ u3} R S g (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f)) (x : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) => R) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (fun (_x : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) => R) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u3), succ u3, succ u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (EquivLike.toEmbeddingLike.{max (succ u2) (succ u3), succ u3, succ u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (MulEquivClass.toEquivLike.{max u2 u3, u3, u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (RingEquivClass.toMulEquivClass.{max u2 u3, u3, u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (RingEquiv.instRingEquivClassRingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))))))) (RingEquiv.symm.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquiv.sofLeftInverse'.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 g f h)) x) (g (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) x))
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {g : S -> R} {f : F} (h : Function.LeftInverse.{succ u2, succ u3} R S g (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f)) (x : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) => R) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (fun (_x : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) => R) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u3), succ u3, succ u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (EquivLike.toEmbeddingLike.{max (succ u2) (succ u3), succ u3, succ u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (MulEquivClass.toEquivLike.{max u2 u3, u3, u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (RingEquivClass.toMulEquivClass.{max u2 u3, u3, u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (RingEquiv.instRingEquivClassRingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))))))) (RingEquiv.symm.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquiv.sofLeftInverse'.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 g f h)) x) (g (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) x))
 Case conversion may be inaccurate. Consider using '#align ring_equiv.sof_left_inverse'_symm_apply RingEquiv.sofLeftInverse'_symm_applyₓ'. -/
 @[simp]
 theorem sofLeftInverse'_symm_apply {g : S → R} {f : F} (h : Function.LeftInverse g f)
Diff
@@ -550,7 +550,7 @@ theorem map_map (g : G) (f : F) :
 
 /- warning: non_unital_subsemiring.map_le_iff_le_comap -> NonUnitalSubsemiring.map_le_iff_le_comap is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {s : NonUnitalSubsemiring.{u1} R _inst_1} {t : NonUnitalSubsemiring.{u2} S _inst_2}, Iff (LE.le.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.partialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s) t) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f t))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {s : NonUnitalSubsemiring.{u1} R _inst_1} {t : NonUnitalSubsemiring.{u2} S _inst_2}, Iff (LE.le.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Preorder.toHasLe.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.partialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s) t) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f t))
 but is expected to have type
   forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {s : NonUnitalSubsemiring.{u2} R _inst_1} {t : NonUnitalSubsemiring.{u3} S _inst_2}, Iff (LE.le.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (Preorder.toLE.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (PartialOrder.toPreorder.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instPartialOrder.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)))) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s) t) (LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instPartialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)))) s (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f t))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_le_iff_le_comap NonUnitalSubsemiring.map_le_iff_le_comapₓ'. -/
@@ -934,7 +934,7 @@ theorem mem_centralizer_iff {R} [NonUnitalSemiring R] {s : Set R} {z : R} :
 
 /- warning: non_unital_subsemiring.centralizer_le -> NonUnitalSubsemiring.centralizer_le is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] (s : Set.{u1} R) (t : Set.{u1} R), (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s t) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.setLike.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))))) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 t) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s))
+  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] (s : Set.{u1} R) (t : Set.{u1} R), (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s t) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.setLike.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))))) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 t) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s))
 but is expected to have type
   forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] (s : Set.{u1} R) (t : Set.{u1} R), (HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s t) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))))) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 t) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.centralizer_le NonUnitalSubsemiring.centralizer_leₓ'. -/
@@ -993,7 +993,7 @@ theorem not_mem_of_not_mem_closure {s : Set R} {P : R} (hP : P ∉ closure s) :
 
 /- warning: non_unital_subsemiring.closure_le -> NonUnitalSubsemiring.closure_le is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {t : NonUnitalSubsemiring.{u1} R _inst_1}, Iff (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) t) (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) t))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {t : NonUnitalSubsemiring.{u1} R _inst_1}, Iff (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) t) (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) t))
 but is expected to have type
   forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {t : NonUnitalSubsemiring.{u1} R _inst_1}, Iff (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) t) (HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) t))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_le NonUnitalSubsemiring.closure_leₓ'. -/
@@ -1005,7 +1005,7 @@ theorem closure_le {s : Set R} {t : NonUnitalSubsemiring R} : closure s ≤ t 
 
 /- warning: non_unital_subsemiring.closure_mono -> NonUnitalSubsemiring.closure_mono is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {{s : Set.{u1} R}} {{t : Set.{u1} R}}, (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s t) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) (NonUnitalSubsemiring.closure.{u1} R _inst_1 t))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {{s : Set.{u1} R}} {{t : Set.{u1} R}}, (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s t) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) (NonUnitalSubsemiring.closure.{u1} R _inst_1 t))
 but is expected to have type
   forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {{s : Set.{u1} R}} {{t : Set.{u1} R}}, (HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s t) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) (NonUnitalSubsemiring.closure.{u1} R _inst_1 t))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_mono NonUnitalSubsemiring.closure_monoₓ'. -/
@@ -1017,7 +1017,7 @@ theorem closure_mono ⦃s t : Set R⦄ (h : s ⊆ t) : closure s ≤ closure t :
 
 /- warning: non_unital_subsemiring.closure_eq_of_le -> NonUnitalSubsemiring.closure_eq_of_le is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {t : NonUnitalSubsemiring.{u1} R _inst_1}, (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) t)) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) t (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) t)
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {t : NonUnitalSubsemiring.{u1} R _inst_1}, (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) t)) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) t (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) t)
 but is expected to have type
   forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {t : NonUnitalSubsemiring.{u1} R _inst_1}, (HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) t)) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) t (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) t)
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_eq_of_le NonUnitalSubsemiring.closure_eq_of_leₓ'. -/
@@ -1385,7 +1385,7 @@ theorem mem_prod {s : NonUnitalSubsemiring R} {t : NonUnitalSubsemiring S} {p :
 
 /- warning: non_unital_subsemiring.prod_mono -> NonUnitalSubsemiring.prod_mono is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {{s₁ : NonUnitalSubsemiring.{u1} R _inst_1}} {{s₂ : NonUnitalSubsemiring.{u1} R _inst_1}}, (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s₁ s₂) -> (forall {{t₁ : NonUnitalSubsemiring.{u2} S _inst_2}} {{t₂ : NonUnitalSubsemiring.{u2} S _inst_2}}, (LE.le.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.partialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) t₁ t₂) -> (LE.le.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Preorder.toLE.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (PartialOrder.toPreorder.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (SetLike.partialOrder.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))))) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s₁ t₁) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s₂ t₂)))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {{s₁ : NonUnitalSubsemiring.{u1} R _inst_1}} {{s₂ : NonUnitalSubsemiring.{u1} R _inst_1}}, (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s₁ s₂) -> (forall {{t₁ : NonUnitalSubsemiring.{u2} S _inst_2}} {{t₂ : NonUnitalSubsemiring.{u2} S _inst_2}}, (LE.le.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Preorder.toHasLe.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.partialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) t₁ t₂) -> (LE.le.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Preorder.toHasLe.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (PartialOrder.toPreorder.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (SetLike.partialOrder.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))))) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s₁ t₁) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s₂ t₂)))
 but is expected to have type
   forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {{s₁ : NonUnitalSubsemiring.{u1} R _inst_1}} {{s₂ : NonUnitalSubsemiring.{u1} R _inst_1}}, (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) s₁ s₂) -> (forall {{t₁ : NonUnitalSubsemiring.{u2} S _inst_2}} {{t₂ : NonUnitalSubsemiring.{u2} S _inst_2}}, (LE.le.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} S _inst_2))))) t₁ t₂) -> (LE.le.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (Preorder.toLE.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (PartialOrder.toPreorder.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (CompleteSemilatticeInf.toPartialOrder.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (CompleteLattice.toCompleteSemilatticeInf.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)))))) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s₁ t₁) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s₂ t₂)))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.prod_mono NonUnitalSubsemiring.prod_monoₓ'. -/
@@ -1464,7 +1464,7 @@ def prodEquiv (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) : s.Prod
 
 /- warning: non_unital_subsemiring.mem_supr_of_directed -> NonUnitalSubsemiring.mem_iSup_of_directed is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} [hι : Nonempty.{u2} ι] {S : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)}, (Directed.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) ι (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (forall {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (iSup.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => S i))) (Exists.{u2} ι (fun (i : ι) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (S i))))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} [hι : Nonempty.{u2} ι] {S : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)}, (Directed.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) ι (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (forall {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (iSup.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => S i))) (Exists.{u2} ι (fun (i : ι) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (S i))))
 but is expected to have type
   forall {R : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] {ι : Sort.{u1}} [hι : Nonempty.{u1} ι] {S : ι -> (NonUnitalSubsemiring.{u2} R _inst_1)}, (Directed.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) ι (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7496 : NonUnitalSubsemiring.{u2} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7498 : NonUnitalSubsemiring.{u2} R _inst_1) => LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7496 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7498) S) -> (forall {x : R}, Iff (Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x (iSup.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toSupSet.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)) ι (fun (i : ι) => S i))) (Exists.{u1} ι (fun (i : ι) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x (S i))))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_iSup_of_directedₓ'. -/
@@ -1483,7 +1483,7 @@ theorem mem_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubse
 
 /- warning: non_unital_subsemiring.coe_supr_of_directed -> NonUnitalSubsemiring.coe_iSup_of_directed is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} [hι : Nonempty.{u2} ι] {S : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)}, (Directed.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) ι (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (iSup.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => S i))) (Set.iUnion.{u1, u2} R ι (fun (i : ι) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (S i))))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} [hι : Nonempty.{u2} ι] {S : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)}, (Directed.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) ι (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (iSup.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => S i))) (Set.iUnion.{u1, u2} R ι (fun (i : ι) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (S i))))
 but is expected to have type
   forall {R : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] {ι : Sort.{u1}} [hι : Nonempty.{u1} ι] {S : ι -> (NonUnitalSubsemiring.{u2} R _inst_1)}, (Directed.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) ι (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7771 : NonUnitalSubsemiring.{u2} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7773 : NonUnitalSubsemiring.{u2} R _inst_1) => LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7771 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7773) S) -> (Eq.{succ u2} (Set.{u2} R) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (iSup.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toSupSet.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)) ι (fun (i : ι) => S i))) (Set.iUnion.{u2, u1} R ι (fun (i : ι) => SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (S i))))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_supr_of_directed NonUnitalSubsemiring.coe_iSup_of_directedₓ'. -/
@@ -1494,7 +1494,7 @@ theorem coe_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubse
 
 /- warning: non_unital_subsemiring.mem_Sup_of_directed_on -> NonUnitalSubsemiring.mem_sSup_of_directedOn is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (forall {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (SupSet.sSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) S)) (Exists.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Exists.{0} (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (forall {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (SupSet.sSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) S)) (Exists.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Exists.{0} (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))
 but is expected to have type
   forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7874 : NonUnitalSubsemiring.{u1} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7876 : NonUnitalSubsemiring.{u1} R _inst_1) => LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7874 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7876) S) -> (forall {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (SupSet.sSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) S)) (Exists.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => And (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s))))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_Sup_of_directed_on NonUnitalSubsemiring.mem_sSup_of_directedOnₓ'. -/
@@ -1507,7 +1507,7 @@ theorem mem_sSup_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonem
 
 /- warning: non_unital_subsemiring.coe_Sup_of_directed_on -> NonUnitalSubsemiring.coe_sSup_of_directedOn is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (SupSet.sSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) S)) (Set.iUnion.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.iUnion.{u1, 0} R (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s))))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (SupSet.sSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) S)) (Set.iUnion.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.iUnion.{u1, 0} R (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s))))
 but is expected to have type
   forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7977 : NonUnitalSubsemiring.{u1} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7979 : NonUnitalSubsemiring.{u1} R _inst_1) => LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7977 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7979) S) -> (Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (SupSet.sSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) S)) (Set.iUnion.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.iUnion.{u1, 0} R (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s))))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_Sup_of_directed_on NonUnitalSubsemiring.coe_sSup_of_directedOnₓ'. -/
@@ -1642,7 +1642,7 @@ theorem eq_of_eqOn_sdense {s : Set R} (hs : closure s = ⊤) {f g : F}
 
 /- warning: non_unital_ring_hom.sclosure_preimage_le -> NonUnitalRingHom.sclosure_preimage_le is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : Set.{u2} S), LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.preimage.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) s)) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u2} S _inst_2 s))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : Set.{u2} S), LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.preimage.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) s)) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u2} S _inst_2 s))
 but is expected to have type
   forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (s : Set.{u3} S), LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1))))) (NonUnitalSubsemiring.closure.{u2} R _inst_1 (Set.preimage.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) s)) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u3} S _inst_2 s))
 Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.sclosure_preimage_le NonUnitalRingHom.sclosure_preimage_leₓ'. -/
@@ -1674,7 +1674,7 @@ open NonUnitalRingHom NonUnitalSubsemiringClass
 
 /- warning: non_unital_subsemiring.inclusion -> NonUnitalSubsemiring.inclusion is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : NonUnitalSubsemiring.{u1} R _inst_1} {T : NonUnitalSubsemiring.{u1} R _inst_1}, (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) S T) -> (NonUnitalRingHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) S) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) T) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) S) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) T))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : NonUnitalSubsemiring.{u1} R _inst_1} {T : NonUnitalSubsemiring.{u1} R _inst_1}, (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toHasLe.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) S T) -> (NonUnitalRingHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) S) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) T) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) S) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) T))
 but is expected to have type
   forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : NonUnitalSubsemiring.{u1} R _inst_1} {T : NonUnitalSubsemiring.{u1} R _inst_1}, (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) S T) -> (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x S)) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x T)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) S) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) T))
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.inclusion NonUnitalSubsemiring.inclusionₓ'. -/
Diff
@@ -747,46 +747,46 @@ instance : InfSet (NonUnitalSubsemiring R) :=
     NonUnitalSubsemiring.mk' (⋂ t ∈ s, ↑t) (⨅ t ∈ s, NonUnitalSubsemiring.toSubsemigroup t)
       (by simp) (⨅ t ∈ s, NonUnitalSubsemiring.toAddSubmonoid t) (by simp)⟩
 
-/- warning: non_unital_subsemiring.coe_Inf -> NonUnitalSubsemiring.coe_infₛ is a dubious translation:
+/- warning: non_unital_subsemiring.coe_Inf -> NonUnitalSubsemiring.coe_sInf is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (InfSet.infₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) S)) (Set.interᵢ.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.interᵢ.{u1, 0} R (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s)))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (InfSet.sInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) S)) (Set.iInter.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.iInter.{u1, 0} R (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s)))
 but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (InfSet.infₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u1} R _inst_1) S)) (Set.interᵢ.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.interᵢ.{u1, 0} R (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_Inf NonUnitalSubsemiring.coe_infₛₓ'. -/
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (InfSet.sInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u1} R _inst_1) S)) (Set.iInter.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.iInter.{u1, 0} R (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_Inf NonUnitalSubsemiring.coe_sInfₓ'. -/
 @[simp, norm_cast]
-theorem coe_infₛ (S : Set (NonUnitalSubsemiring R)) :
-    ((infₛ S : NonUnitalSubsemiring R) : Set R) = ⋂ s ∈ S, ↑s :=
+theorem coe_sInf (S : Set (NonUnitalSubsemiring R)) :
+    ((sInf S : NonUnitalSubsemiring R) : Set R) = ⋂ s ∈ S, ↑s :=
   rfl
-#align non_unital_subsemiring.coe_Inf NonUnitalSubsemiring.coe_infₛ
+#align non_unital_subsemiring.coe_Inf NonUnitalSubsemiring.coe_sInf
 
-/- warning: non_unital_subsemiring.mem_Inf -> NonUnitalSubsemiring.mem_infₛ is a dubious translation:
+/- warning: non_unital_subsemiring.mem_Inf -> NonUnitalSubsemiring.mem_sInf is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)} {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (InfSet.infₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) S)) (forall (p : NonUnitalSubsemiring.{u1} R _inst_1), (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) p S) -> (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x p))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)} {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (InfSet.sInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) S)) (forall (p : NonUnitalSubsemiring.{u1} R _inst_1), (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) p S) -> (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x p))
 but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)} {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (InfSet.infₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u1} R _inst_1) S)) (forall (p : NonUnitalSubsemiring.{u1} R _inst_1), (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) p S) -> (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x p))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_Inf NonUnitalSubsemiring.mem_infₛₓ'. -/
-theorem mem_infₛ {S : Set (NonUnitalSubsemiring R)} {x : R} : x ∈ infₛ S ↔ ∀ p ∈ S, x ∈ p :=
-  Set.mem_interᵢ₂
-#align non_unital_subsemiring.mem_Inf NonUnitalSubsemiring.mem_infₛ
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)} {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (InfSet.sInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u1} R _inst_1) S)) (forall (p : NonUnitalSubsemiring.{u1} R _inst_1), (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) p S) -> (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x p))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_Inf NonUnitalSubsemiring.mem_sInfₓ'. -/
+theorem mem_sInf {S : Set (NonUnitalSubsemiring R)} {x : R} : x ∈ sInf S ↔ ∀ p ∈ S, x ∈ p :=
+  Set.mem_iInter₂
+#align non_unital_subsemiring.mem_Inf NonUnitalSubsemiring.mem_sInf
 
-/- warning: non_unital_subsemiring.Inf_to_subsemigroup -> NonUnitalSubsemiring.infₛ_toSubsemigroup is a dubious translation:
+/- warning: non_unital_subsemiring.Inf_to_subsemigroup -> NonUnitalSubsemiring.sInf_toSubsemigroup is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 (InfSet.infₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) s)) (infᵢ.{u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Subsemigroup.hasInf.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (NonUnitalSubsemiring.{u1} R _inst_1) (fun (t : NonUnitalSubsemiring.{u1} R _inst_1) => infᵢ.{u1, 0} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Subsemigroup.hasInf.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) => NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 t)))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 (InfSet.sInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) s)) (iInf.{u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Subsemigroup.hasInf.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (NonUnitalSubsemiring.{u1} R _inst_1) (fun (t : NonUnitalSubsemiring.{u1} R _inst_1) => iInf.{u1, 0} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Subsemigroup.hasInf.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) => NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 t)))
 but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 (InfSet.infₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u1} R _inst_1) s)) (infᵢ.{u1, succ u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.instInfSetSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (NonUnitalSubsemiring.{u1} R _inst_1) (fun (t : NonUnitalSubsemiring.{u1} R _inst_1) => infᵢ.{u1, 0} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.instInfSetSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) (fun (H : Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) => NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 t)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.Inf_to_subsemigroup NonUnitalSubsemiring.infₛ_toSubsemigroupₓ'. -/
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 (InfSet.sInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u1} R _inst_1) s)) (iInf.{u1, succ u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.instInfSetSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (NonUnitalSubsemiring.{u1} R _inst_1) (fun (t : NonUnitalSubsemiring.{u1} R _inst_1) => iInf.{u1, 0} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.instInfSetSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) (fun (H : Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) => NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 t)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.Inf_to_subsemigroup NonUnitalSubsemiring.sInf_toSubsemigroupₓ'. -/
 @[simp]
-theorem infₛ_toSubsemigroup (s : Set (NonUnitalSubsemiring R)) :
-    (infₛ s).toSubsemigroup = ⨅ t ∈ s, NonUnitalSubsemiring.toSubsemigroup t :=
+theorem sInf_toSubsemigroup (s : Set (NonUnitalSubsemiring R)) :
+    (sInf s).toSubsemigroup = ⨅ t ∈ s, NonUnitalSubsemiring.toSubsemigroup t :=
   mk'_toSubsemigroup _ _
-#align non_unital_subsemiring.Inf_to_subsemigroup NonUnitalSubsemiring.infₛ_toSubsemigroup
+#align non_unital_subsemiring.Inf_to_subsemigroup NonUnitalSubsemiring.sInf_toSubsemigroup
 
-#print NonUnitalSubsemiring.infₛ_toAddSubmonoid /-
+#print NonUnitalSubsemiring.sInf_toAddSubmonoid /-
 @[simp]
-theorem infₛ_toAddSubmonoid (s : Set (NonUnitalSubsemiring R)) :
-    (infₛ s).toAddSubmonoid = ⨅ t ∈ s, NonUnitalSubsemiring.toAddSubmonoid t :=
+theorem sInf_toAddSubmonoid (s : Set (NonUnitalSubsemiring R)) :
+    (sInf s).toAddSubmonoid = ⨅ t ∈ s, NonUnitalSubsemiring.toAddSubmonoid t :=
   mk'_toAddSubmonoid _ _
-#align non_unital_subsemiring.Inf_to_add_submonoid NonUnitalSubsemiring.infₛ_toAddSubmonoid
+#align non_unital_subsemiring.Inf_to_add_submonoid NonUnitalSubsemiring.sInf_toAddSubmonoid
 -/
 
 /-- Non-unital subsemirings of a non-unital semiring form a complete lattice. -/
@@ -794,7 +794,7 @@ instance : CompleteLattice (NonUnitalSubsemiring R) :=
   {
     completeLatticeOfInf (NonUnitalSubsemiring R) fun s =>
       IsGLB.of_image (fun s t => show (s : Set R) ≤ t ↔ s ≤ t from SetLike.coe_subset_coe)
-        isGLB_binfᵢ with
+        isGLB_biInf with
     bot := ⊥
     bot_le := fun s x hx => (mem_bot.mp hx).symm ▸ zero_mem s
     top := ⊤
@@ -955,7 +955,7 @@ end Centralizer
 #print NonUnitalSubsemiring.closure /-
 /-- The `non_unital_subsemiring` generated by a set. -/
 def closure (s : Set R) : NonUnitalSubsemiring R :=
-  infₛ { S | s ⊆ S }
+  sInf { S | s ⊆ S }
 #align non_unital_subsemiring.closure NonUnitalSubsemiring.closure
 -/
 
@@ -967,7 +967,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_closure NonUnitalSubsemiring.mem_closureₓ'. -/
 theorem mem_closure {x : R} {s : Set R} :
     x ∈ closure s ↔ ∀ S : NonUnitalSubsemiring R, s ⊆ S → x ∈ S :=
-  mem_infₛ
+  mem_sInf
 #align non_unital_subsemiring.mem_closure NonUnitalSubsemiring.mem_closure
 
 /- warning: non_unital_subsemiring.subset_closure -> NonUnitalSubsemiring.subset_closure is a dubious translation:
@@ -1000,7 +1000,7 @@ Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring
 /-- A non-unital subsemiring `S` includes `closure s` if and only if it includes `s`. -/
 @[simp]
 theorem closure_le {s : Set R} {t : NonUnitalSubsemiring R} : closure s ≤ t ↔ s ⊆ t :=
-  ⟨Set.Subset.trans subset_closure, fun h => infₛ_le h⟩
+  ⟨Set.Subset.trans subset_closure, fun h => sInf_le h⟩
 #align non_unital_subsemiring.closure_le NonUnitalSubsemiring.closure_le
 
 /- warning: non_unital_subsemiring.closure_mono -> NonUnitalSubsemiring.closure_mono is a dubious translation:
@@ -1259,25 +1259,25 @@ theorem closure_union (s t : Set R) : closure (s ∪ t) = closure s ⊔ closure
 #align non_unital_subsemiring.closure_union NonUnitalSubsemiring.closure_union
 -/
 
-/- warning: non_unital_subsemiring.closure_Union -> NonUnitalSubsemiring.closure_unionᵢ is a dubious translation:
+/- warning: non_unital_subsemiring.closure_Union -> NonUnitalSubsemiring.closure_iUnion is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} (s : ι -> (Set.{u1} R)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.unionᵢ.{u1, u2} R ι (fun (i : ι) => s i))) (supᵢ.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => NonUnitalSubsemiring.closure.{u1} R _inst_1 (s i)))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} (s : ι -> (Set.{u1} R)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.iUnion.{u1, u2} R ι (fun (i : ι) => s i))) (iSup.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => NonUnitalSubsemiring.closure.{u1} R _inst_1 (s i)))
 but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] {ι : Sort.{u1}} (s : ι -> (Set.{u2} R)), Eq.{succ u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.closure.{u2} R _inst_1 (Set.unionᵢ.{u2, u1} R ι (fun (i : ι) => s i))) (supᵢ.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toSupSet.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)) ι (fun (i : ι) => NonUnitalSubsemiring.closure.{u2} R _inst_1 (s i)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_Union NonUnitalSubsemiring.closure_unionᵢₓ'. -/
-theorem closure_unionᵢ {ι} (s : ι → Set R) : closure (⋃ i, s i) = ⨆ i, closure (s i) :=
-  (NonUnitalSubsemiring.gi R).gc.l_supᵢ
-#align non_unital_subsemiring.closure_Union NonUnitalSubsemiring.closure_unionᵢ
+  forall {R : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] {ι : Sort.{u1}} (s : ι -> (Set.{u2} R)), Eq.{succ u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.closure.{u2} R _inst_1 (Set.iUnion.{u2, u1} R ι (fun (i : ι) => s i))) (iSup.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toSupSet.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)) ι (fun (i : ι) => NonUnitalSubsemiring.closure.{u2} R _inst_1 (s i)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_Union NonUnitalSubsemiring.closure_iUnionₓ'. -/
+theorem closure_iUnion {ι} (s : ι → Set R) : closure (⋃ i, s i) = ⨆ i, closure (s i) :=
+  (NonUnitalSubsemiring.gi R).gc.l_iSup
+#align non_unital_subsemiring.closure_Union NonUnitalSubsemiring.closure_iUnion
 
-/- warning: non_unital_subsemiring.closure_sUnion -> NonUnitalSubsemiring.closure_unionₛ is a dubious translation:
+/- warning: non_unital_subsemiring.closure_sUnion -> NonUnitalSubsemiring.closure_sUnion is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (Set.{u1} R)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.unionₛ.{u1} R s)) (supᵢ.{u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) (Set.{u1} R) (fun (t : Set.{u1} R) => supᵢ.{u1, 0} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) (Membership.Mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.hasMem.{u1} (Set.{u1} R)) t s) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.hasMem.{u1} (Set.{u1} R)) t s) => NonUnitalSubsemiring.closure.{u1} R _inst_1 t)))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (Set.{u1} R)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.sUnion.{u1} R s)) (iSup.{u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) (Set.{u1} R) (fun (t : Set.{u1} R) => iSup.{u1, 0} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) (Membership.Mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.hasMem.{u1} (Set.{u1} R)) t s) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.hasMem.{u1} (Set.{u1} R)) t s) => NonUnitalSubsemiring.closure.{u1} R _inst_1 t)))
 but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (Set.{u1} R)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.unionₛ.{u1} R s)) (supᵢ.{u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) (Set.{u1} R) (fun (t : Set.{u1} R) => supᵢ.{u1, 0} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) (Membership.mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.instMembershipSet.{u1} (Set.{u1} R)) t s) (fun (H : Membership.mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.instMembershipSet.{u1} (Set.{u1} R)) t s) => NonUnitalSubsemiring.closure.{u1} R _inst_1 t)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_sUnion NonUnitalSubsemiring.closure_unionₛₓ'. -/
-theorem closure_unionₛ (s : Set (Set R)) : closure (⋃₀ s) = ⨆ t ∈ s, closure t :=
-  (NonUnitalSubsemiring.gi R).gc.l_supₛ
-#align non_unital_subsemiring.closure_sUnion NonUnitalSubsemiring.closure_unionₛ
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (Set.{u1} R)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.sUnion.{u1} R s)) (iSup.{u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) (Set.{u1} R) (fun (t : Set.{u1} R) => iSup.{u1, 0} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) (Membership.mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.instMembershipSet.{u1} (Set.{u1} R)) t s) (fun (H : Membership.mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.instMembershipSet.{u1} (Set.{u1} R)) t s) => NonUnitalSubsemiring.closure.{u1} R _inst_1 t)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_sUnion NonUnitalSubsemiring.closure_sUnionₓ'. -/
+theorem closure_sUnion (s : Set (Set R)) : closure (⋃₀ s) = ⨆ t ∈ s, closure t :=
+  (NonUnitalSubsemiring.gi R).gc.l_sSup
+#align non_unital_subsemiring.closure_sUnion NonUnitalSubsemiring.closure_sUnion
 
 /- warning: non_unital_subsemiring.map_sup -> NonUnitalSubsemiring.map_sup is a dubious translation:
 lean 3 declaration is
@@ -1290,16 +1290,16 @@ theorem map_sup (s t : NonUnitalSubsemiring R) (f : F) :
   @GaloisConnection.l_sup _ _ s t _ _ _ _ (gc_map_comap f)
 #align non_unital_subsemiring.map_sup NonUnitalSubsemiring.map_sup
 
-/- warning: non_unital_subsemiring.map_supr -> NonUnitalSubsemiring.map_supᵢ is a dubious translation:
+/- warning: non_unital_subsemiring.map_supr -> NonUnitalSubsemiring.map_iSup is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {ι : Sort.{u4}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (supᵢ.{u1, u4} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι s)) (supᵢ.{u2, u4} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteSemilatticeSup.toHasSup.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteLattice.toCompleteSemilatticeSup.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.completeLattice.{u2} S _inst_2))) ι (fun (i : ι) => NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (s i)))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {ι : Sort.{u4}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (iSup.{u1, u4} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι s)) (iSup.{u2, u4} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteSemilatticeSup.toHasSup.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteLattice.toCompleteSemilatticeSup.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.completeLattice.{u2} S _inst_2))) ι (fun (i : ι) => NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (s i)))
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u4}} [_inst_1 : NonUnitalNonAssocSemiring.{u3} R] [_inst_2 : NonUnitalNonAssocSemiring.{u4} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u3, u4} F R S _inst_1 _inst_2] {ι : Sort.{u2}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u3} R _inst_1)), Eq.{succ u4} (NonUnitalSubsemiring.{u4} S _inst_2) (NonUnitalSubsemiring.map.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (supᵢ.{u3, u2} (NonUnitalSubsemiring.{u3} R _inst_1) (CompleteLattice.toSupSet.{u3} (NonUnitalSubsemiring.{u3} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u3} R _inst_1)) ι s)) (supᵢ.{u4, u2} (NonUnitalSubsemiring.{u4} S _inst_2) (CompleteLattice.toSupSet.{u4} (NonUnitalSubsemiring.{u4} S _inst_2) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u4} S _inst_2)) ι (fun (i : ι) => NonUnitalSubsemiring.map.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (s i)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_supr NonUnitalSubsemiring.map_supᵢₓ'. -/
-theorem map_supᵢ {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring R) :
-    (map f (supᵢ s) : NonUnitalSubsemiring S) = ⨆ i, map f (s i) :=
-  @GaloisConnection.l_supᵢ _ _ _ _ _ _ _ (gc_map_comap f) s
-#align non_unital_subsemiring.map_supr NonUnitalSubsemiring.map_supᵢ
+  forall {R : Type.{u3}} {S : Type.{u4}} [_inst_1 : NonUnitalNonAssocSemiring.{u3} R] [_inst_2 : NonUnitalNonAssocSemiring.{u4} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u3, u4} F R S _inst_1 _inst_2] {ι : Sort.{u2}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u3} R _inst_1)), Eq.{succ u4} (NonUnitalSubsemiring.{u4} S _inst_2) (NonUnitalSubsemiring.map.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (iSup.{u3, u2} (NonUnitalSubsemiring.{u3} R _inst_1) (CompleteLattice.toSupSet.{u3} (NonUnitalSubsemiring.{u3} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u3} R _inst_1)) ι s)) (iSup.{u4, u2} (NonUnitalSubsemiring.{u4} S _inst_2) (CompleteLattice.toSupSet.{u4} (NonUnitalSubsemiring.{u4} S _inst_2) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u4} S _inst_2)) ι (fun (i : ι) => NonUnitalSubsemiring.map.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (s i)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_supr NonUnitalSubsemiring.map_iSupₓ'. -/
+theorem map_iSup {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring R) :
+    (map f (iSup s) : NonUnitalSubsemiring S) = ⨆ i, map f (s i) :=
+  @GaloisConnection.l_iSup _ _ _ _ _ _ _ (gc_map_comap f) s
+#align non_unital_subsemiring.map_supr NonUnitalSubsemiring.map_iSup
 
 /- warning: non_unital_subsemiring.comap_inf -> NonUnitalSubsemiring.comap_inf is a dubious translation:
 lean 3 declaration is
@@ -1312,16 +1312,16 @@ theorem comap_inf (s t : NonUnitalSubsemiring S) (f : F) :
   @GaloisConnection.u_inf _ _ s t _ _ _ _ (gc_map_comap f)
 #align non_unital_subsemiring.comap_inf NonUnitalSubsemiring.comap_inf
 
-/- warning: non_unital_subsemiring.comap_infi -> NonUnitalSubsemiring.comap_infᵢ is a dubious translation:
+/- warning: non_unital_subsemiring.comap_infi -> NonUnitalSubsemiring.comap_iInf is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {ι : Sort.{u4}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u2} S _inst_2)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (infᵢ.{u2, u4} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasInf.{u2} S _inst_2) ι s)) (infᵢ.{u1, u4} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) ι (fun (i : ι) => NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (s i)))
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {ι : Sort.{u4}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u2} S _inst_2)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (iInf.{u2, u4} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasInf.{u2} S _inst_2) ι s)) (iInf.{u1, u4} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) ι (fun (i : ι) => NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (s i)))
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u4}} [_inst_1 : NonUnitalNonAssocSemiring.{u3} R] [_inst_2 : NonUnitalNonAssocSemiring.{u4} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u3, u4} F R S _inst_1 _inst_2] {ι : Sort.{u2}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u4} S _inst_2)), Eq.{succ u3} (NonUnitalSubsemiring.{u3} R _inst_1) (NonUnitalSubsemiring.comap.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (infᵢ.{u4, u2} (NonUnitalSubsemiring.{u4} S _inst_2) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u4} S _inst_2) ι s)) (infᵢ.{u3, u2} (NonUnitalSubsemiring.{u3} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u3} R _inst_1) ι (fun (i : ι) => NonUnitalSubsemiring.comap.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (s i)))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.comap_infi NonUnitalSubsemiring.comap_infᵢₓ'. -/
-theorem comap_infᵢ {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring S) :
-    (comap f (infᵢ s) : NonUnitalSubsemiring R) = ⨅ i, comap f (s i) :=
-  @GaloisConnection.u_infᵢ _ _ _ _ _ _ _ (gc_map_comap f) s
-#align non_unital_subsemiring.comap_infi NonUnitalSubsemiring.comap_infᵢ
+  forall {R : Type.{u3}} {S : Type.{u4}} [_inst_1 : NonUnitalNonAssocSemiring.{u3} R] [_inst_2 : NonUnitalNonAssocSemiring.{u4} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u3, u4} F R S _inst_1 _inst_2] {ι : Sort.{u2}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u4} S _inst_2)), Eq.{succ u3} (NonUnitalSubsemiring.{u3} R _inst_1) (NonUnitalSubsemiring.comap.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (iInf.{u4, u2} (NonUnitalSubsemiring.{u4} S _inst_2) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u4} S _inst_2) ι s)) (iInf.{u3, u2} (NonUnitalSubsemiring.{u3} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u3} R _inst_1) ι (fun (i : ι) => NonUnitalSubsemiring.comap.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (s i)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.comap_infi NonUnitalSubsemiring.comap_iInfₓ'. -/
+theorem comap_iInf {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring S) :
+    (comap f (iInf s) : NonUnitalSubsemiring R) = ⨅ i, comap f (s i) :=
+  @GaloisConnection.u_iInf _ _ _ _ _ _ _ (gc_map_comap f) s
+#align non_unital_subsemiring.comap_infi NonUnitalSubsemiring.comap_iInf
 
 /- warning: non_unital_subsemiring.map_bot -> NonUnitalSubsemiring.map_bot is a dubious translation:
 lean 3 declaration is
@@ -1462,59 +1462,59 @@ def prodEquiv (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) : s.Prod
     map_add' := fun x y => rfl }
 #align non_unital_subsemiring.prod_equiv NonUnitalSubsemiring.prodEquiv
 
-/- warning: non_unital_subsemiring.mem_supr_of_directed -> NonUnitalSubsemiring.mem_supᵢ_of_directed is a dubious translation:
+/- warning: non_unital_subsemiring.mem_supr_of_directed -> NonUnitalSubsemiring.mem_iSup_of_directed is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} [hι : Nonempty.{u2} ι] {S : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)}, (Directed.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) ι (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (forall {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (supᵢ.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => S i))) (Exists.{u2} ι (fun (i : ι) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (S i))))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} [hι : Nonempty.{u2} ι] {S : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)}, (Directed.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) ι (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (forall {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (iSup.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => S i))) (Exists.{u2} ι (fun (i : ι) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (S i))))
 but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] {ι : Sort.{u1}} [hι : Nonempty.{u1} ι] {S : ι -> (NonUnitalSubsemiring.{u2} R _inst_1)}, (Directed.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) ι (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7496 : NonUnitalSubsemiring.{u2} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7498 : NonUnitalSubsemiring.{u2} R _inst_1) => LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7496 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7498) S) -> (forall {x : R}, Iff (Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x (supᵢ.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toSupSet.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)) ι (fun (i : ι) => S i))) (Exists.{u1} ι (fun (i : ι) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x (S i))))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_supᵢ_of_directedₓ'. -/
-theorem mem_supᵢ_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
+  forall {R : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] {ι : Sort.{u1}} [hι : Nonempty.{u1} ι] {S : ι -> (NonUnitalSubsemiring.{u2} R _inst_1)}, (Directed.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) ι (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7496 : NonUnitalSubsemiring.{u2} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7498 : NonUnitalSubsemiring.{u2} R _inst_1) => LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7496 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7498) S) -> (forall {x : R}, Iff (Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x (iSup.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toSupSet.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)) ι (fun (i : ι) => S i))) (Exists.{u1} ι (fun (i : ι) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x (S i))))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_iSup_of_directedₓ'. -/
+theorem mem_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
     (hS : Directed (· ≤ ·) S) {x : R} : (x ∈ ⨆ i, S i) ↔ ∃ i, x ∈ S i :=
   by
-  refine' ⟨_, fun ⟨i, hi⟩ => (SetLike.le_def.1 <| le_supᵢ S i) hi⟩
+  refine' ⟨_, fun ⟨i, hi⟩ => (SetLike.le_def.1 <| le_iSup S i) hi⟩
   let U : NonUnitalSubsemiring R :=
     NonUnitalSubsemiring.mk' (⋃ i, (S i : Set R)) (⨆ i, (S i).toSubsemigroup)
-      (Subsemigroup.coe_supᵢ_of_directed <| hS.mono_comp _ fun _ _ => id)
+      (Subsemigroup.coe_iSup_of_directed <| hS.mono_comp _ fun _ _ => id)
       (⨆ i, (S i).toAddSubmonoid)
-      (AddSubmonoid.coe_supᵢ_of_directed <| hS.mono_comp _ fun _ _ => id)
+      (AddSubmonoid.coe_iSup_of_directed <| hS.mono_comp _ fun _ _ => id)
   suffices (⨆ i, S i) ≤ U by simpa using @this x
-  exact supᵢ_le fun i x hx => Set.mem_unionᵢ.2 ⟨i, hx⟩
-#align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_supᵢ_of_directed
+  exact iSup_le fun i x hx => Set.mem_iUnion.2 ⟨i, hx⟩
+#align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_iSup_of_directed
 
-/- warning: non_unital_subsemiring.coe_supr_of_directed -> NonUnitalSubsemiring.coe_supᵢ_of_directed is a dubious translation:
+/- warning: non_unital_subsemiring.coe_supr_of_directed -> NonUnitalSubsemiring.coe_iSup_of_directed is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} [hι : Nonempty.{u2} ι] {S : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)}, (Directed.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) ι (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (supᵢ.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => S i))) (Set.unionᵢ.{u1, u2} R ι (fun (i : ι) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (S i))))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} [hι : Nonempty.{u2} ι] {S : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)}, (Directed.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) ι (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (iSup.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => S i))) (Set.iUnion.{u1, u2} R ι (fun (i : ι) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (S i))))
 but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] {ι : Sort.{u1}} [hι : Nonempty.{u1} ι] {S : ι -> (NonUnitalSubsemiring.{u2} R _inst_1)}, (Directed.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) ι (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7771 : NonUnitalSubsemiring.{u2} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7773 : NonUnitalSubsemiring.{u2} R _inst_1) => LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7771 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7773) S) -> (Eq.{succ u2} (Set.{u2} R) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (supᵢ.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toSupSet.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)) ι (fun (i : ι) => S i))) (Set.unionᵢ.{u2, u1} R ι (fun (i : ι) => SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (S i))))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_supr_of_directed NonUnitalSubsemiring.coe_supᵢ_of_directedₓ'. -/
-theorem coe_supᵢ_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
+  forall {R : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] {ι : Sort.{u1}} [hι : Nonempty.{u1} ι] {S : ι -> (NonUnitalSubsemiring.{u2} R _inst_1)}, (Directed.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) ι (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7771 : NonUnitalSubsemiring.{u2} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7773 : NonUnitalSubsemiring.{u2} R _inst_1) => LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7771 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7773) S) -> (Eq.{succ u2} (Set.{u2} R) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (iSup.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toSupSet.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)) ι (fun (i : ι) => S i))) (Set.iUnion.{u2, u1} R ι (fun (i : ι) => SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (S i))))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_supr_of_directed NonUnitalSubsemiring.coe_iSup_of_directedₓ'. -/
+theorem coe_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
     (hS : Directed (· ≤ ·) S) : ((⨆ i, S i : NonUnitalSubsemiring R) : Set R) = ⋃ i, ↑(S i) :=
   Set.ext fun x => by simp [mem_supr_of_directed hS]
-#align non_unital_subsemiring.coe_supr_of_directed NonUnitalSubsemiring.coe_supᵢ_of_directed
+#align non_unital_subsemiring.coe_supr_of_directed NonUnitalSubsemiring.coe_iSup_of_directed
 
-/- warning: non_unital_subsemiring.mem_Sup_of_directed_on -> NonUnitalSubsemiring.mem_supₛ_of_directedOn is a dubious translation:
+/- warning: non_unital_subsemiring.mem_Sup_of_directed_on -> NonUnitalSubsemiring.mem_sSup_of_directedOn is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (forall {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (SupSet.supₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) S)) (Exists.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Exists.{0} (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (forall {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (SupSet.sSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) S)) (Exists.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Exists.{0} (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))
 but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7874 : NonUnitalSubsemiring.{u1} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7876 : NonUnitalSubsemiring.{u1} R _inst_1) => LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7874 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7876) S) -> (forall {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (SupSet.supₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) S)) (Exists.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => And (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s))))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_Sup_of_directed_on NonUnitalSubsemiring.mem_supₛ_of_directedOnₓ'. -/
-theorem mem_supₛ_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
-    (hS : DirectedOn (· ≤ ·) S) {x : R} : x ∈ supₛ S ↔ ∃ s ∈ S, x ∈ s :=
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7874 : NonUnitalSubsemiring.{u1} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7876 : NonUnitalSubsemiring.{u1} R _inst_1) => LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7874 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7876) S) -> (forall {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (SupSet.sSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) S)) (Exists.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => And (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s))))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_Sup_of_directed_on NonUnitalSubsemiring.mem_sSup_of_directedOnₓ'. -/
+theorem mem_sSup_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
+    (hS : DirectedOn (· ≤ ·) S) {x : R} : x ∈ sSup S ↔ ∃ s ∈ S, x ∈ s :=
   by
   haveI : Nonempty S := Sne.to_subtype
-  simp only [supₛ_eq_supᵢ', mem_supr_of_directed hS.directed_coe, SetCoe.exists, Subtype.coe_mk]
-#align non_unital_subsemiring.mem_Sup_of_directed_on NonUnitalSubsemiring.mem_supₛ_of_directedOn
+  simp only [sSup_eq_iSup', mem_supr_of_directed hS.directed_coe, SetCoe.exists, Subtype.coe_mk]
+#align non_unital_subsemiring.mem_Sup_of_directed_on NonUnitalSubsemiring.mem_sSup_of_directedOn
 
-/- warning: non_unital_subsemiring.coe_Sup_of_directed_on -> NonUnitalSubsemiring.coe_supₛ_of_directedOn is a dubious translation:
+/- warning: non_unital_subsemiring.coe_Sup_of_directed_on -> NonUnitalSubsemiring.coe_sSup_of_directedOn is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (SupSet.supₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) S)) (Set.unionᵢ.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.unionᵢ.{u1, 0} R (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s))))
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (SupSet.sSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) S)) (Set.iUnion.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.iUnion.{u1, 0} R (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s))))
 but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7977 : NonUnitalSubsemiring.{u1} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7979 : NonUnitalSubsemiring.{u1} R _inst_1) => LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7977 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7979) S) -> (Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (SupSet.supₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) S)) (Set.unionᵢ.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.unionᵢ.{u1, 0} R (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s))))
-Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_Sup_of_directed_on NonUnitalSubsemiring.coe_supₛ_of_directedOnₓ'. -/
-theorem coe_supₛ_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
-    (hS : DirectedOn (· ≤ ·) S) : (↑(supₛ S) : Set R) = ⋃ s ∈ S, ↑s :=
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7977 : NonUnitalSubsemiring.{u1} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7979 : NonUnitalSubsemiring.{u1} R _inst_1) => LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7977 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7979) S) -> (Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (SupSet.sSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) S)) (Set.iUnion.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.iUnion.{u1, 0} R (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s))))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_Sup_of_directed_on NonUnitalSubsemiring.coe_sSup_of_directedOnₓ'. -/
+theorem coe_sSup_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
+    (hS : DirectedOn (· ≤ ·) S) : (↑(sSup S) : Set R) = ⋃ s ∈ S, ↑s :=
   Set.ext fun x => by simp [mem_Sup_of_directed_on Sne hS]
-#align non_unital_subsemiring.coe_Sup_of_directed_on NonUnitalSubsemiring.coe_supₛ_of_directedOn
+#align non_unital_subsemiring.coe_Sup_of_directed_on NonUnitalSubsemiring.coe_sSup_of_directedOn
 
 end NonUnitalSubsemiring
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jireh Loreaux
 
 ! This file was ported from Lean 3 source module ring_theory.non_unital_subsemiring.basic
-! leanprover-community/mathlib commit feb99064803fd3108e37c18b0f77d0a8344677a3
+! leanprover-community/mathlib commit ce38d86c0b2d427ce208c3cee3159cb421d2b3c4
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -18,6 +18,9 @@ import Mathbin.GroupTheory.Subsemigroup.Centralizer
 /-!
 # Bundled non-unital subsemirings
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 We define bundled non-unital subsemirings and some standard constructions:
 `complete_lattice` structure, `subtype` and `inclusion` ring homomorphisms, non-unital subsemiring
 `map`, `comap` and range (`srange`) of a `non_unital_ring_hom` etc.
Diff
@@ -30,13 +30,21 @@ universe u v w
 
 variable {R : Type u} {S : Type v} {T : Type w} [NonUnitalNonAssocSemiring R] (M : Subsemigroup R)
 
+#print NonUnitalSubsemiringClass /-
 /-- `non_unital_subsemiring_class S R` states that `S` is a type of subsets `s ⊆ R` that
 are both an additive submonoid and also a multiplicative subsemigroup. -/
 class NonUnitalSubsemiringClass (S : Type _) (R : Type u) [NonUnitalNonAssocSemiring R]
   [SetLike S R] extends AddSubmonoidClass S R where
   mul_mem : ∀ {s : S} {a b : R}, a ∈ s → b ∈ s → a * b ∈ s
 #align non_unital_subsemiring_class NonUnitalSubsemiringClass
+-/
 
+/- warning: non_unital_subsemiring_class.mul_mem_class -> NonUnitalSubsemiringClass.mulMemClass is a dubious translation:
+lean 3 declaration is
+  forall (S : Type.{u2}) (R : Type.{u1}) [_inst_2 : NonUnitalNonAssocSemiring.{u1} R] [_inst_3 : SetLike.{u2, u1} S R] [h : NonUnitalSubsemiringClass.{u1, u2} S R _inst_2 _inst_3], MulMemClass.{u2, u1} S R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_2)) _inst_3
+but is expected to have type
+  forall (S : Type.{u2}) (R : Type.{u1}) [_inst_2 : NonUnitalNonAssocSemiring.{u1} R] [_inst_3 : SetLike.{u2, u1} S R] [h : NonUnitalSubsemiringClass.{u1, u2} S R _inst_2 _inst_3], MulMemClass.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_2) _inst_3
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring_class.mul_mem_class NonUnitalSubsemiringClass.mulMemClassₓ'. -/
 -- See note [lower instance priority]
 instance (priority := 100) NonUnitalSubsemiringClass.mulMemClass (S : Type _) (R : Type u)
     [NonUnitalNonAssocSemiring R] [SetLike S R] [h : NonUnitalSubsemiringClass S R] :
@@ -52,6 +60,7 @@ include R S
 
 open AddSubmonoidClass
 
+#print NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring /-
 /- Prefer subclasses of `non_unital_non_assoc_semiring` over subclasses of
 `non_unital_subsemiring_class`. -/
 /-- A non-unital subsemiring of a `non_unital_non_assoc_semiring` inherits a
@@ -59,17 +68,32 @@ open AddSubmonoidClass
 instance (priority := 75) toNonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring s :=
   Subtype.coe_injective.NonUnitalNonAssocSemiring coe rfl (by simp) (fun _ _ => rfl) fun _ _ => rfl
 #align non_unital_subsemiring_class.to_non_unital_non_assoc_semiring NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring
+-/
 
+/- warning: non_unital_subsemiring_class.no_zero_divisors -> NonUnitalSubsemiringClass.noZeroDivisors is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : SetLike.{u2, u1} S R] [_inst_3 : NonUnitalSubsemiringClass.{u1, u2} S R _inst_1 _inst_2] (s : S) [_inst_4 : NoZeroDivisors.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))], NoZeroDivisors.{u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) (MulMemClass.mul.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) _inst_2 (NonUnitalSubsemiringClass.mulMemClass.{u1, u2} S R _inst_1 _inst_2 _inst_3) s) (ZeroMemClass.zero.{u2, u1} S R _inst_2 (AddZeroClass.toHasZero.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (AddSubmonoidClass.to_zeroMemClass.{u2, u1} S R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) _inst_2 (NonUnitalSubsemiringClass.to_addSubmonoidClass.{u1, u2} S R _inst_1 _inst_2 _inst_3)) s)
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : SetLike.{u2, u1} S R] [_inst_3 : NonUnitalSubsemiringClass.{u1, u2} S R _inst_1 _inst_2] (s : S) [_inst_4 : NoZeroDivisors.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))], NoZeroDivisors.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) (ZeroMemClass.zero.{u2, u1} S R _inst_2 (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1)) (AddSubmonoidClass.toZeroMemClass.{u2, u1} S R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) _inst_2 (NonUnitalSubsemiringClass.toAddSubmonoidClass.{u1, u2} S R _inst_1 _inst_2 _inst_3)) s)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring_class.no_zero_divisors NonUnitalSubsemiringClass.noZeroDivisorsₓ'. -/
 instance noZeroDivisors [NoZeroDivisors R] : NoZeroDivisors s :=
   Subtype.coe_injective.NoZeroDivisors coe rfl fun x y => rfl
 #align non_unital_subsemiring_class.no_zero_divisors NonUnitalSubsemiringClass.noZeroDivisors
 
+#print NonUnitalSubsemiringClass.subtype /-
 /-- The natural non-unital ring hom from a non-unital subsemiring of a non-unital semiring `R` to
 `R`. -/
 def subtype : s →ₙ+* R :=
   { AddSubmonoidClass.Subtype s, MulMemClass.subtype s with toFun := coe }
 #align non_unital_subsemiring_class.subtype NonUnitalSubsemiringClass.subtype
+-/
 
+/- warning: non_unital_subsemiring_class.coe_subtype -> NonUnitalSubsemiringClass.coeSubtype is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : SetLike.{u2, u1} S R] [_inst_3 : NonUnitalSubsemiringClass.{u1, u2} S R _inst_1 _inst_2] (s : S), Eq.{succ u1} ((fun (_x : NonUnitalRingHom.{u1, u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) => (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) -> R) (NonUnitalSubsemiringClass.subtype.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) (coeFn.{succ u1, succ u1} (NonUnitalRingHom.{u1, u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (fun (_x : NonUnitalRingHom.{u1, u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) => (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) -> R) (NonUnitalRingHom.hasCoeToFun.{u1, u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (NonUnitalSubsemiringClass.subtype.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u2, succ (succ u1)} S Type.{u1} (SetLike.hasCoeToSort.{u2, u1} S R _inst_2) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u2} R S (SetLike.hasMem.{u2, u1} S R _inst_2) x s))))))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : SetLike.{u2, u1} S R] [_inst_3 : NonUnitalSubsemiringClass.{u1, u2} S R _inst_1 _inst_2] (s : S), Eq.{succ u1} (forall (a : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) => R) a) (FunLike.coe.{succ u1, succ u1, succ u1} (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) (fun (_x : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) => R) _x) (MulHomClass.toFunLike.{u1, u1, u1} (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1 (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u2} R S (SetLike.instMembership.{u2, u1} S R _inst_2) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2 _inst_3 s) _inst_1))) (NonUnitalSubsemiringClass.subtype.{u1, u2} R S _inst_1 _inst_2 _inst_3 s)) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u2, u1} S R _inst_2 s)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring_class.coe_subtype NonUnitalSubsemiringClass.coeSubtypeₓ'. -/
 @[simp]
 theorem coeSubtype : (subtype s : s → R) = coe :=
   rfl
@@ -77,17 +101,21 @@ theorem coeSubtype : (subtype s : s → R) = coe :=
 
 omit R S
 
+#print NonUnitalSubsemiringClass.toNonUnitalSemiring /-
 /-- A non-unital subsemiring of a `non_unital_semiring` is a `non_unital_semiring`. -/
 instance toNonUnitalSemiring {R} [NonUnitalSemiring R] [SetLike S R]
     [NonUnitalSubsemiringClass S R] : NonUnitalSemiring s :=
   Subtype.coe_injective.NonUnitalSemiring coe rfl (by simp) (fun _ _ => rfl) fun _ _ => rfl
 #align non_unital_subsemiring_class.to_non_unital_semiring NonUnitalSubsemiringClass.toNonUnitalSemiring
+-/
 
+#print NonUnitalSubsemiringClass.toNonUnitalCommSemiring /-
 /-- A non-unital subsemiring of a `non_unital_comm_semiring` is a `non_unital_comm_semiring`. -/
 instance toNonUnitalCommSemiring {R} [NonUnitalCommSemiring R] [SetLike S R]
     [NonUnitalSubsemiringClass S R] : NonUnitalCommSemiring s :=
   Subtype.coe_injective.NonUnitalCommSemiring coe rfl (by simp) (fun _ _ => rfl) fun _ _ => rfl
 #align non_unital_subsemiring_class.to_non_unital_comm_semiring NonUnitalSubsemiringClass.toNonUnitalCommSemiring
+-/
 
 /-! Note: currently, there are no ordered versions of non-unital rings. -/
 
@@ -96,11 +124,13 @@ end NonUnitalSubsemiringClass
 
 variable [NonUnitalNonAssocSemiring S] [NonUnitalNonAssocSemiring T]
 
+#print NonUnitalSubsemiring /-
 /-- A non-unital subsemiring of a non-unital semiring `R` is a subset `s` that is both an additive
 submonoid and a semigroup. -/
 structure NonUnitalSubsemiring (R : Type u) [NonUnitalNonAssocSemiring R] extends AddSubmonoid R,
   Subsemigroup R
 #align non_unital_subsemiring NonUnitalSubsemiring
+-/
 
 /-- Reinterpret a `non_unital_subsemiring` as a `subsemigroup`. -/
 add_decl_doc NonUnitalSubsemiring.toSubsemigroup
@@ -121,17 +151,35 @@ instance : NonUnitalSubsemiringClass (NonUnitalSubsemiring R) R
   add_mem := add_mem'
   mul_mem := mul_mem'
 
+/- warning: non_unital_subsemiring.mem_carrier -> NonUnitalSubsemiring.mem_carrier is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.Mem.{u1, u1} R (Set.{u1} R) (Set.hasMem.{u1} R) x (NonUnitalSubsemiring.carrier.{u1} R _inst_1 s)) (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (AddSubsemigroup.carrier.{u1} R (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (AddSubmonoid.toAddSubsemigroup.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)))) (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_carrier NonUnitalSubsemiring.mem_carrierₓ'. -/
 @[simp]
 theorem mem_carrier {s : NonUnitalSubsemiring R} {x : R} : x ∈ s.carrier ↔ x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_carrier NonUnitalSubsemiring.mem_carrier
 
+/- warning: non_unital_subsemiring.ext -> NonUnitalSubsemiring.ext is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : NonUnitalSubsemiring.{u1} R _inst_1} {T : NonUnitalSubsemiring.{u1} R _inst_1}, (forall (x : R), Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x S) (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x T)) -> (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) S T)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : NonUnitalSubsemiring.{u1} R _inst_1} {T : NonUnitalSubsemiring.{u1} R _inst_1}, (forall (x : R), Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x S) (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x T)) -> (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) S T)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.ext NonUnitalSubsemiring.extₓ'. -/
 /-- Two non-unital subsemirings are equal if they have the same elements. -/
 @[ext]
 theorem ext {S T : NonUnitalSubsemiring R} (h : ∀ x, x ∈ S ↔ x ∈ T) : S = T :=
   SetLike.ext h
 #align non_unital_subsemiring.ext NonUnitalSubsemiring.ext
 
+/- warning: non_unital_subsemiring.copy -> NonUnitalSubsemiring.copy is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : NonUnitalSubsemiring.{u1} R _inst_1) (s : Set.{u1} R), (Eq.{succ u1} (Set.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) S)) -> (NonUnitalSubsemiring.{u1} R _inst_1)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : NonUnitalSubsemiring.{u1} R _inst_1) (s : Set.{u1} R), (Eq.{succ u1} (Set.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) S)) -> (NonUnitalSubsemiring.{u1} R _inst_1)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.copy NonUnitalSubsemiring.copyₓ'. -/
 /-- Copy of a non-unital subsemiring with a new `carrier` equal to the old one. Useful to fix
 definitional equalities.-/
 protected def copy (S : NonUnitalSubsemiring R) (s : Set R) (hs : s = ↑S) :
@@ -139,46 +187,96 @@ protected def copy (S : NonUnitalSubsemiring R) (s : Set R) (hs : s = ↑S) :
   { S.toAddSubmonoid.copy s hs, S.toSubsemigroup.copy s hs with carrier := s }
 #align non_unital_subsemiring.copy NonUnitalSubsemiring.copy
 
+/- warning: non_unital_subsemiring.coe_copy -> NonUnitalSubsemiring.coe_copy is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : NonUnitalSubsemiring.{u1} R _inst_1) (s : Set.{u1} R) (hs : Eq.{succ u1} (Set.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) S)), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.copy.{u1} R _inst_1 S s hs)) s
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : NonUnitalSubsemiring.{u1} R _inst_1) (s : Set.{u1} R) (hs : Eq.{succ u1} (Set.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) S)), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.copy.{u1} R _inst_1 S s hs)) s
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_copy NonUnitalSubsemiring.coe_copyₓ'. -/
 @[simp]
 theorem coe_copy (S : NonUnitalSubsemiring R) (s : Set R) (hs : s = ↑S) :
     (S.copy s hs : Set R) = s :=
   rfl
 #align non_unital_subsemiring.coe_copy NonUnitalSubsemiring.coe_copy
 
+/- warning: non_unital_subsemiring.copy_eq -> NonUnitalSubsemiring.copy_eq is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : NonUnitalSubsemiring.{u1} R _inst_1) (s : Set.{u1} R) (hs : Eq.{succ u1} (Set.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) S)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.copy.{u1} R _inst_1 S s hs) S
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : NonUnitalSubsemiring.{u1} R _inst_1) (s : Set.{u1} R) (hs : Eq.{succ u1} (Set.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) S)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.copy.{u1} R _inst_1 S s hs) S
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.copy_eq NonUnitalSubsemiring.copy_eqₓ'. -/
 theorem copy_eq (S : NonUnitalSubsemiring R) (s : Set R) (hs : s = ↑S) : S.copy s hs = S :=
   SetLike.coe_injective hs
 #align non_unital_subsemiring.copy_eq NonUnitalSubsemiring.copy_eq
 
+/- warning: non_unital_subsemiring.to_subsemigroup_injective -> NonUnitalSubsemiring.toSubsemigroup_injective is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Function.Injective.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Function.Injective.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.to_subsemigroup_injective NonUnitalSubsemiring.toSubsemigroup_injectiveₓ'. -/
 theorem toSubsemigroup_injective :
     Function.Injective (toSubsemigroup : NonUnitalSubsemiring R → Subsemigroup R)
   | r, s, h => ext (SetLike.ext_iff.mp h : _)
 #align non_unital_subsemiring.to_subsemigroup_injective NonUnitalSubsemiring.toSubsemigroup_injective
 
+/- warning: non_unital_subsemiring.to_subsemigroup_strict_mono -> NonUnitalSubsemiring.toSubsemigroup_strictMono is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], StrictMono.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], StrictMono.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instPartialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.instCompleteLatticeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1))))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.to_subsemigroup_strict_mono NonUnitalSubsemiring.toSubsemigroup_strictMonoₓ'. -/
 @[mono]
 theorem toSubsemigroup_strictMono :
     StrictMono (toSubsemigroup : NonUnitalSubsemiring R → Subsemigroup R) := fun _ _ => id
 #align non_unital_subsemiring.to_subsemigroup_strict_mono NonUnitalSubsemiring.toSubsemigroup_strictMono
 
+/- warning: non_unital_subsemiring.to_subsemigroup_mono -> NonUnitalSubsemiring.toSubsemigroup_mono is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Monotone.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (SetLike.partialOrder.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Monotone.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instPartialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.instCompleteLatticeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1))))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.to_subsemigroup_mono NonUnitalSubsemiring.toSubsemigroup_monoₓ'. -/
 @[mono]
 theorem toSubsemigroup_mono : Monotone (toSubsemigroup : NonUnitalSubsemiring R → Subsemigroup R) :=
   toSubsemigroup_strictMono.Monotone
 #align non_unital_subsemiring.to_subsemigroup_mono NonUnitalSubsemiring.toSubsemigroup_mono
 
+#print NonUnitalSubsemiring.toAddSubmonoid_injective /-
 theorem toAddSubmonoid_injective :
     Function.Injective (toAddSubmonoid : NonUnitalSubsemiring R → AddSubmonoid R)
   | r, s, h => ext (SetLike.ext_iff.mp h : _)
 #align non_unital_subsemiring.to_add_submonoid_injective NonUnitalSubsemiring.toAddSubmonoid_injective
+-/
 
+/- warning: non_unital_subsemiring.to_add_submonoid_strict_mono -> NonUnitalSubsemiring.toAddSubmonoid_strictMono is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], StrictMono.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (SetLike.partialOrder.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], StrictMono.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instPartialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (CompleteSemilatticeInf.toPartialOrder.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.to_add_submonoid_strict_mono NonUnitalSubsemiring.toAddSubmonoid_strictMonoₓ'. -/
 @[mono]
 theorem toAddSubmonoid_strictMono :
     StrictMono (toAddSubmonoid : NonUnitalSubsemiring R → AddSubmonoid R) := fun _ _ => id
 #align non_unital_subsemiring.to_add_submonoid_strict_mono NonUnitalSubsemiring.toAddSubmonoid_strictMono
 
+/- warning: non_unital_subsemiring.to_add_submonoid_mono -> NonUnitalSubsemiring.toAddSubmonoid_mono is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Monotone.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (SetLike.partialOrder.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Monotone.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instPartialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1))) (PartialOrder.toPreorder.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (CompleteSemilatticeInf.toPartialOrder.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.to_add_submonoid_mono NonUnitalSubsemiring.toAddSubmonoid_monoₓ'. -/
 @[mono]
 theorem toAddSubmonoid_mono : Monotone (toAddSubmonoid : NonUnitalSubsemiring R → AddSubmonoid R) :=
   toAddSubmonoid_strictMono.Monotone
 #align non_unital_subsemiring.to_add_submonoid_mono NonUnitalSubsemiring.toAddSubmonoid_mono
 
+/- warning: non_unital_subsemiring.mk' -> NonUnitalSubsemiring.mk' is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} R) (sg : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))), (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) sg) s) -> (forall (sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))), (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) sa) s) -> (NonUnitalSubsemiring.{u1} R _inst_1))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} R) (sg : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)), (Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) sg) s) -> (forall (sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))), (Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) sa) s) -> (NonUnitalSubsemiring.{u1} R _inst_1))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mk' NonUnitalSubsemiring.mk'ₓ'. -/
 /-- Construct a `non_unital_subsemiring R` from a set `s`, a subsemigroup `sg`, and an additive
 submonoid `sa` such that `x ∈ s ↔ x ∈ sg ↔ x ∈ sa`. -/
 protected def mk' (s : Set R) (sg : Subsemigroup R) (hg : ↑sg = s) (sa : AddSubmonoid R)
@@ -190,24 +288,48 @@ protected def mk' (s : Set R) (sg : Subsemigroup R) (hg : ↑sg = s) (sa : AddSu
   mul_mem' x y := by simpa only [← hg] using sg.mul_mem
 #align non_unital_subsemiring.mk' NonUnitalSubsemiring.mk'
 
+/- warning: non_unital_subsemiring.coe_mk' -> NonUnitalSubsemiring.coe_mk' is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))} (hg : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) sa) s), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) s
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)} (hg : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) sa) s), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) s
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_mk' NonUnitalSubsemiring.coe_mk'ₓ'. -/
 @[simp]
 theorem coe_mk' {s : Set R} {sg : Subsemigroup R} (hg : ↑sg = s) {sa : AddSubmonoid R}
     (ha : ↑sa = s) : (NonUnitalSubsemiring.mk' s sg hg sa ha : Set R) = s :=
   rfl
 #align non_unital_subsemiring.coe_mk' NonUnitalSubsemiring.coe_mk'
 
+/- warning: non_unital_subsemiring.mem_mk' -> NonUnitalSubsemiring.mem_mk' is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))} (hg : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) sa) s) {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) (Membership.Mem.{u1, u1} R (Set.{u1} R) (Set.hasMem.{u1} R) x s)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)} (hg : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) sa) s) {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) (Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x s)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_mk' NonUnitalSubsemiring.mem_mk'ₓ'. -/
 @[simp]
 theorem mem_mk' {s : Set R} {sg : Subsemigroup R} (hg : ↑sg = s) {sa : AddSubmonoid R}
     (ha : ↑sa = s) {x : R} : x ∈ NonUnitalSubsemiring.mk' s sg hg sa ha ↔ x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_mk' NonUnitalSubsemiring.mem_mk'
 
+/- warning: non_unital_subsemiring.mk'_to_subsemigroup -> NonUnitalSubsemiring.mk'_toSubsemigroup is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))} (hg : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) sa) s), Eq.{succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) sg
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)} (hg : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) sa) s), Eq.{succ u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) sg
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mk'_to_subsemigroup NonUnitalSubsemiring.mk'_toSubsemigroupₓ'. -/
 @[simp]
 theorem mk'_toSubsemigroup {s : Set R} {sg : Subsemigroup R} (hg : ↑sg = s) {sa : AddSubmonoid R}
     (ha : ↑sa = s) : (NonUnitalSubsemiring.mk' s sg hg sa ha).toSubsemigroup = sg :=
   SetLike.coe_injective hg.symm
 #align non_unital_subsemiring.mk'_to_subsemigroup NonUnitalSubsemiring.mk'_toSubsemigroup
 
+/- warning: non_unital_subsemiring.mk'_to_add_submonoid -> NonUnitalSubsemiring.mk'_toAddSubmonoid is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))} (hg : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) sa) s), Eq.{succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) sa
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {sg : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)} (hg : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) sg) s) {sa : AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))} (ha : Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) sa) s), Eq.{succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 (NonUnitalSubsemiring.mk'.{u1} R _inst_1 s sg hg sa ha)) sa
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mk'_to_add_submonoid NonUnitalSubsemiring.mk'_toAddSubmonoidₓ'. -/
 @[simp]
 theorem mk'_toAddSubmonoid {s : Set R} {sg : Subsemigroup R} (hg : ↑sg = s) {sa : AddSubmonoid R}
     (ha : ↑sa = s) : (NonUnitalSubsemiring.mk' s sg hg sa ha).toAddSubmonoid = sa :=
@@ -221,16 +343,34 @@ namespace NonUnitalSubsemiring
 variable {F G : Type _} [NonUnitalRingHomClass F R S] [NonUnitalRingHomClass G S T]
   (s : NonUnitalSubsemiring R)
 
+/- warning: non_unital_subsemiring.coe_zero -> NonUnitalSubsemiring.coe_zero is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} R ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) (OfNat.ofNat.{u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) 0 (OfNat.mk.{u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) 0 (Zero.zero.{u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (ZeroMemClass.zero.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (AddZeroClass.toHasZero.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (AddSubmonoidClass.to_zeroMemClass.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiringClass.to_addSubmonoidClass.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1))) s))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1)))))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} R (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (OfNat.ofNat.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) 0 (Zero.toOfNat0.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (AddSubmonoid.zero.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_zero NonUnitalSubsemiring.coe_zeroₓ'. -/
 @[simp, norm_cast]
 theorem coe_zero : ((0 : s) : R) = (0 : R) :=
   rfl
 #align non_unital_subsemiring.coe_zero NonUnitalSubsemiring.coe_zero
 
+/- warning: non_unital_subsemiring.coe_add -> NonUnitalSubsemiring.coe_add is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1) (x : coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (y : coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s), Eq.{succ u1} R ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) (HAdd.hAdd.{u1, u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (instHAdd.{u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (AddSubmonoidClass.to_addMemClass.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiringClass.to_addSubmonoidClass.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1))) s)) x y)) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) x) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) y))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1) (x : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (y : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)), Eq.{succ u1} R (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (HAdd.hAdd.{u1, u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (instHAdd.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (AddSubmonoid.add.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s))) x y)) (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) x) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) y))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_add NonUnitalSubsemiring.coe_addₓ'. -/
 @[simp, norm_cast]
 theorem coe_add (x y : s) : ((x + y : s) : R) = (x + y : R) :=
   rfl
 #align non_unital_subsemiring.coe_add NonUnitalSubsemiring.coe_add
 
+/- warning: non_unital_subsemiring.coe_mul -> NonUnitalSubsemiring.coe_mul is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1) (x : coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (y : coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s), Eq.{succ u1} R ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) (HMul.hMul.{u1, u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (instHMul.{u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiringClass.mulMemClass.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1)) s)) x y)) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) x) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) y))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1) (x : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (y : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)), Eq.{succ u1} R (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (HMul.hMul.{u1, u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (instHMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s))) x y)) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) x) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) y))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_mul NonUnitalSubsemiring.coe_mulₓ'. -/
 @[simp, norm_cast]
 theorem coe_mul (x y : s) : ((x * y : s) : R) = (x * y : R) :=
   rfl
@@ -239,21 +379,45 @@ theorem coe_mul (x y : s) : ((x * y : s) : R) = (x * y : R) :=
 /-! Note: currently, there are no ordered versions of non-unital rings. -/
 
 
+/- warning: non_unital_subsemiring.mem_to_subsemigroup -> NonUnitalSubsemiring.mem_toSubsemigroup is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.Mem.{u1, u1} R (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (SetLike.hasMem.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))) x (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 s)) (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.mem.{u1, u1} R (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (SetLike.instMembership.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1))) x (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 s)) (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_to_subsemigroup NonUnitalSubsemiring.mem_toSubsemigroupₓ'. -/
 @[simp]
 theorem mem_toSubsemigroup {s : NonUnitalSubsemiring R} {x : R} : x ∈ s.toSubsemigroup ↔ x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_to_subsemigroup NonUnitalSubsemiring.mem_toSubsemigroup
 
+/- warning: non_unital_subsemiring.coe_to_subsemigroup -> NonUnitalSubsemiring.coe_toSubsemigroup is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 s)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 s)) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_to_subsemigroup NonUnitalSubsemiring.coe_toSubsemigroupₓ'. -/
 @[simp]
 theorem coe_toSubsemigroup (s : NonUnitalSubsemiring R) : (s.toSubsemigroup : Set R) = s :=
   rfl
 #align non_unital_subsemiring.coe_to_subsemigroup NonUnitalSubsemiring.coe_toSubsemigroup
 
+/- warning: non_unital_subsemiring.mem_to_add_submonoid -> NonUnitalSubsemiring.mem_toAddSubmonoid is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.Mem.{u1, u1} R (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (SetLike.hasMem.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))) x (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.mem.{u1, u1} R (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (SetLike.instMembership.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))) x (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_to_add_submonoid NonUnitalSubsemiring.mem_toAddSubmonoidₓ'. -/
 @[simp]
 theorem mem_toAddSubmonoid {s : NonUnitalSubsemiring R} {x : R} : x ∈ s.toAddSubmonoid ↔ x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_to_add_submonoid NonUnitalSubsemiring.mem_toAddSubmonoid
 
+/- warning: non_unital_subsemiring.coe_to_add_submonoid -> NonUnitalSubsemiring.coe_toAddSubmonoid is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_to_add_submonoid NonUnitalSubsemiring.coe_toAddSubmonoidₓ'. -/
 @[simp]
 theorem coe_toAddSubmonoid (s : NonUnitalSubsemiring R) : (s.toAddSubmonoid : Set R) = s :=
   rfl
@@ -263,33 +427,65 @@ theorem coe_toAddSubmonoid (s : NonUnitalSubsemiring R) : (s.toAddSubmonoid : Se
 instance : Top (NonUnitalSubsemiring R) :=
   ⟨{ (⊤ : Subsemigroup R), (⊤ : AddSubmonoid R) with }⟩
 
+/- warning: non_unital_subsemiring.mem_top -> NonUnitalSubsemiring.mem_top is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (x : R), Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (x : R), Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R _inst_1))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_top NonUnitalSubsemiring.mem_topₓ'. -/
 @[simp]
 theorem mem_top (x : R) : x ∈ (⊤ : NonUnitalSubsemiring R) :=
   Set.mem_univ x
 #align non_unital_subsemiring.mem_top NonUnitalSubsemiring.mem_top
 
+/- warning: non_unital_subsemiring.coe_top -> NonUnitalSubsemiring.coe_top is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1))) (Set.univ.{u1} R)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R _inst_1))) (Set.univ.{u1} R)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_top NonUnitalSubsemiring.coe_topₓ'. -/
 @[simp]
 theorem coe_top : ((⊤ : NonUnitalSubsemiring R) : Set R) = Set.univ :=
   rfl
 #align non_unital_subsemiring.coe_top NonUnitalSubsemiring.coe_top
 
+#print NonUnitalSubsemiring.comap /-
 /-- The preimage of a non-unital subsemiring along a non-unital ring homomorphism is a
 non-unital subsemiring. -/
 def comap (f : F) (s : NonUnitalSubsemiring S) : NonUnitalSubsemiring R :=
   { s.toSubsemigroup.comap (f : MulHom R S), s.toAddSubmonoid.comap (f : R →+ S) with
     carrier := f ⁻¹' s }
 #align non_unital_subsemiring.comap NonUnitalSubsemiring.comap
+-/
 
+/- warning: non_unital_subsemiring.coe_comap -> NonUnitalSubsemiring.coe_comap is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u2} S _inst_2) (f : F), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (Set.preimage.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (HasLiftT.mk.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (CoeTCₓ.coe.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (SetLike.Set.hasCoeT.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) s))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u3} S _inst_2) (f : F), Eq.{succ u2} (Set.{u2} R) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Set.preimage.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f) (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) s))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_comap NonUnitalSubsemiring.coe_comapₓ'. -/
 @[simp]
 theorem coe_comap (s : NonUnitalSubsemiring S) (f : F) : (s.comap f : Set R) = f ⁻¹' s :=
   rfl
 #align non_unital_subsemiring.coe_comap NonUnitalSubsemiring.coe_comap
 
+/- warning: non_unital_subsemiring.mem_comap -> NonUnitalSubsemiring.mem_comap is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {s : NonUnitalSubsemiring.{u2} S _inst_2} {f : F} {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f x) s)
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {s : NonUnitalSubsemiring.{u3} S _inst_2} {f : F} {x : R}, Iff (Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Membership.mem.{u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) s)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_comap NonUnitalSubsemiring.mem_comapₓ'. -/
 @[simp]
 theorem mem_comap {s : NonUnitalSubsemiring S} {f : F} {x : R} : x ∈ s.comap f ↔ f x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_comap NonUnitalSubsemiring.mem_comap
 
+/- warning: non_unital_subsemiring.comap_comap -> NonUnitalSubsemiring.comap_comap is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] [_inst_3 : NonUnitalNonAssocSemiring.{u3} T] {F : Type.{u4}} {G : Type.{u5}} [_inst_4 : NonUnitalRingHomClass.{u4, u1, u2} F R S _inst_1 _inst_2] [_inst_5 : NonUnitalRingHomClass.{u5, u2, u3} G S T _inst_2 _inst_3] (s : NonUnitalSubsemiring.{u3} T _inst_3) (g : G) (f : F), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, u4} R S _inst_1 _inst_2 F _inst_4 f (NonUnitalSubsemiring.comap.{u2, u3, u5} S T _inst_2 _inst_3 G _inst_5 g s)) (NonUnitalSubsemiring.comap.{u1, u3, max u1 u3} R T _inst_1 _inst_3 (NonUnitalRingHom.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.comp.{u1, u2, u3} R S T _inst_1 _inst_2 _inst_3 ((fun (a : Type.{u5}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{succ u5, max (succ u2) (succ u3)} a b] => self.0) G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (HasLiftT.mk.{succ u5, max (succ u2) (succ u3)} G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (CoeTCₓ.coe.{succ u5, max (succ u2) (succ u3)} G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (NonUnitalRingHom.hasCoeT.{u5, u2, u3} G S T _inst_2 _inst_3 _inst_5))) g) ((fun (a : Type.{u4}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u4, max (succ u1) (succ u2)} a b] => self.0) F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (HasLiftT.mk.{succ u4, max (succ u1) (succ u2)} F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (CoeTCₓ.coe.{succ u4, max (succ u1) (succ u2)} F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.hasCoeT.{u4, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) s)
+but is expected to have type
+  forall {R : Type.{u3}} {S : Type.{u4}} {T : Type.{u5}} [_inst_1 : NonUnitalNonAssocSemiring.{u3} R] [_inst_2 : NonUnitalNonAssocSemiring.{u4} S] [_inst_3 : NonUnitalNonAssocSemiring.{u5} T] {F : Type.{u2}} {G : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u2, u3, u4} F R S _inst_1 _inst_2] [_inst_5 : NonUnitalRingHomClass.{u1, u4, u5} G S T _inst_2 _inst_3] (s : NonUnitalSubsemiring.{u5} T _inst_3) (g : G) (f : F), Eq.{succ u3} (NonUnitalSubsemiring.{u3} R _inst_1) (NonUnitalSubsemiring.comap.{u3, u4, u2} R S _inst_1 _inst_2 F _inst_4 f (NonUnitalSubsemiring.comap.{u4, u5, u1} S T _inst_2 _inst_3 G _inst_5 g s)) (NonUnitalSubsemiring.comap.{u3, u5, max u5 u3} R T _inst_1 _inst_3 (NonUnitalRingHom.{u3, u5} R T _inst_1 _inst_3) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u3, u5} R T _inst_1 _inst_3) (NonUnitalRingHom.comp.{u3, u4, u5} R S T _inst_1 _inst_2 _inst_3 (NonUnitalRingHomClass.toNonUnitalRingHom.{u1, u4, u5} G S T _inst_2 _inst_3 _inst_5 g) (NonUnitalRingHomClass.toNonUnitalRingHom.{u2, u3, u4} F R S _inst_1 _inst_2 _inst_4 f)) s)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.comap_comap NonUnitalSubsemiring.comap_comapₓ'. -/
 -- this has some nasty coercions, how to deal with it?
 theorem comap_comap (s : NonUnitalSubsemiring T) (g : G) (f : F) :
     ((s.comap g : NonUnitalSubsemiring S).comap f : NonUnitalSubsemiring R) =
@@ -297,42 +493,86 @@ theorem comap_comap (s : NonUnitalSubsemiring T) (g : G) (f : F) :
   rfl
 #align non_unital_subsemiring.comap_comap NonUnitalSubsemiring.comap_comap
 
+#print NonUnitalSubsemiring.map /-
 /-- The image of a non-unital subsemiring along a ring homomorphism is a non-unital subsemiring. -/
 def map (f : F) (s : NonUnitalSubsemiring R) : NonUnitalSubsemiring S :=
   { s.toSubsemigroup.map (f : R →ₙ* S), s.toAddSubmonoid.map (f : R →+ S) with carrier := f '' s }
 #align non_unital_subsemiring.map NonUnitalSubsemiring.map
+-/
 
+/- warning: non_unital_subsemiring.coe_map -> NonUnitalSubsemiring.coe_map is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u2} (Set.{u2} S) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (HasLiftT.mk.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (CoeTCₓ.coe.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (SetLike.Set.hasCoeT.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (Set.image.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (s : NonUnitalSubsemiring.{u2} R _inst_1), Eq.{succ u3} (Set.{u3} S) (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Set.image.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_map NonUnitalSubsemiring.coe_mapₓ'. -/
 @[simp]
 theorem coe_map (f : F) (s : NonUnitalSubsemiring R) : (s.map f : Set S) = f '' s :=
   rfl
 #align non_unital_subsemiring.coe_map NonUnitalSubsemiring.coe_map
 
+/- warning: non_unital_subsemiring.mem_map -> NonUnitalSubsemiring.mem_map is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {s : NonUnitalSubsemiring.{u1} R _inst_1} {y : S}, Iff (Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) y (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (Exists.{succ u1} R (fun (x : R) => Exists.{0} (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s) (fun (H : Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s) => Eq.{succ u2} S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f x) y)))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {s : NonUnitalSubsemiring.{u2} R _inst_1} {y : S}, Iff (Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) y (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)) (Exists.{succ u2} R (fun (x : R) => And (Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s) (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) y)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_map NonUnitalSubsemiring.mem_mapₓ'. -/
 @[simp]
 theorem mem_map {f : F} {s : NonUnitalSubsemiring R} {y : S} : y ∈ s.map f ↔ ∃ x ∈ s, f x = y :=
   Set.mem_image_iff_bex
 #align non_unital_subsemiring.mem_map NonUnitalSubsemiring.mem_map
 
+/- warning: non_unital_subsemiring.map_id -> NonUnitalSubsemiring.map_id is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.map.{u1, u1, u1} R R _inst_1 _inst_1 (NonUnitalRingHom.{u1, u1} R R _inst_1 _inst_1) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u1} R R _inst_1 _inst_1) (NonUnitalRingHom.id.{u1} R _inst_1) s) s
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.map.{u1, u1, u1} R R _inst_1 _inst_1 (NonUnitalRingHom.{u1, u1} R R _inst_1 _inst_1) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u1} R R _inst_1 _inst_1) (NonUnitalRingHom.id.{u1} R _inst_1) s) s
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_id NonUnitalSubsemiring.map_idₓ'. -/
 @[simp]
 theorem map_id : s.map (NonUnitalRingHom.id R) = s :=
   SetLike.coe_injective <| Set.image_id _
 #align non_unital_subsemiring.map_id NonUnitalSubsemiring.map_id
 
+/- warning: non_unital_subsemiring.map_map -> NonUnitalSubsemiring.map_map is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] [_inst_3 : NonUnitalNonAssocSemiring.{u3} T] {F : Type.{u4}} {G : Type.{u5}} [_inst_4 : NonUnitalRingHomClass.{u4, u1, u2} F R S _inst_1 _inst_2] [_inst_5 : NonUnitalRingHomClass.{u5, u2, u3} G S T _inst_2 _inst_3] (s : NonUnitalSubsemiring.{u1} R _inst_1) (g : G) (f : F), Eq.{succ u3} (NonUnitalSubsemiring.{u3} T _inst_3) (NonUnitalSubsemiring.map.{u2, u3, max u2 u3} S T _inst_2 _inst_3 (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (NonUnitalRingHom.nonUnitalRingHomClass.{u2, u3} S T _inst_2 _inst_3) ((fun (a : Type.{u5}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{succ u5, max (succ u2) (succ u3)} a b] => self.0) G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (HasLiftT.mk.{succ u5, max (succ u2) (succ u3)} G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (CoeTCₓ.coe.{succ u5, max (succ u2) (succ u3)} G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (NonUnitalRingHom.hasCoeT.{u5, u2, u3} G S T _inst_2 _inst_3 _inst_5))) g) (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) ((fun (a : Type.{u4}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u4, max (succ u1) (succ u2)} a b] => self.0) F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (HasLiftT.mk.{succ u4, max (succ u1) (succ u2)} F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (CoeTCₓ.coe.{succ u4, max (succ u1) (succ u2)} F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.hasCoeT.{u4, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f) s)) (NonUnitalSubsemiring.map.{u1, u3, max u1 u3} R T _inst_1 _inst_3 (NonUnitalRingHom.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.comp.{u1, u2, u3} R S T _inst_1 _inst_2 _inst_3 ((fun (a : Type.{u5}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{succ u5, max (succ u2) (succ u3)} a b] => self.0) G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (HasLiftT.mk.{succ u5, max (succ u2) (succ u3)} G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (CoeTCₓ.coe.{succ u5, max (succ u2) (succ u3)} G (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (NonUnitalRingHom.hasCoeT.{u5, u2, u3} G S T _inst_2 _inst_3 _inst_5))) g) ((fun (a : Type.{u4}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u4, max (succ u1) (succ u2)} a b] => self.0) F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (HasLiftT.mk.{succ u4, max (succ u1) (succ u2)} F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (CoeTCₓ.coe.{succ u4, max (succ u1) (succ u2)} F (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.hasCoeT.{u4, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) s)
+but is expected to have type
+  forall {R : Type.{u3}} {S : Type.{u4}} {T : Type.{u5}} [_inst_1 : NonUnitalNonAssocSemiring.{u3} R] [_inst_2 : NonUnitalNonAssocSemiring.{u4} S] [_inst_3 : NonUnitalNonAssocSemiring.{u5} T] {F : Type.{u1}} {G : Type.{u2}} [_inst_4 : NonUnitalRingHomClass.{u1, u3, u4} F R S _inst_1 _inst_2] [_inst_5 : NonUnitalRingHomClass.{u2, u4, u5} G S T _inst_2 _inst_3] (s : NonUnitalSubsemiring.{u3} R _inst_1) (g : G) (f : F), Eq.{succ u5} (NonUnitalSubsemiring.{u5} T _inst_3) (NonUnitalSubsemiring.map.{u4, u5, max u4 u5} S T _inst_2 _inst_3 (NonUnitalRingHom.{u4, u5} S T _inst_2 _inst_3) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u4, u5} S T _inst_2 _inst_3) (NonUnitalRingHomClass.toNonUnitalRingHom.{u2, u4, u5} G S T _inst_2 _inst_3 _inst_5 g) (NonUnitalSubsemiring.map.{u3, u4, max u3 u4} R S _inst_1 _inst_2 (NonUnitalRingHom.{u3, u4} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u3, u4} R S _inst_1 _inst_2) (NonUnitalRingHomClass.toNonUnitalRingHom.{u1, u3, u4} F R S _inst_1 _inst_2 _inst_4 f) s)) (NonUnitalSubsemiring.map.{u3, u5, max u5 u3} R T _inst_1 _inst_3 (NonUnitalRingHom.{u3, u5} R T _inst_1 _inst_3) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u3, u5} R T _inst_1 _inst_3) (NonUnitalRingHom.comp.{u3, u4, u5} R S T _inst_1 _inst_2 _inst_3 (NonUnitalRingHomClass.toNonUnitalRingHom.{u2, u4, u5} G S T _inst_2 _inst_3 _inst_5 g) (NonUnitalRingHomClass.toNonUnitalRingHom.{u1, u3, u4} F R S _inst_1 _inst_2 _inst_4 f)) s)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_map NonUnitalSubsemiring.map_mapₓ'. -/
 -- unavoidable coercions?
 theorem map_map (g : G) (f : F) :
     (s.map (f : R →ₙ+* S)).map (g : S →ₙ+* T) = s.map ((g : S →ₙ+* T).comp (f : R →ₙ+* S)) :=
   SetLike.coe_injective <| Set.image_image _ _ _
 #align non_unital_subsemiring.map_map NonUnitalSubsemiring.map_map
 
+/- warning: non_unital_subsemiring.map_le_iff_le_comap -> NonUnitalSubsemiring.map_le_iff_le_comap is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {s : NonUnitalSubsemiring.{u1} R _inst_1} {t : NonUnitalSubsemiring.{u2} S _inst_2}, Iff (LE.le.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.partialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s) t) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f t))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {s : NonUnitalSubsemiring.{u2} R _inst_1} {t : NonUnitalSubsemiring.{u3} S _inst_2}, Iff (LE.le.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (Preorder.toLE.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (PartialOrder.toPreorder.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instPartialOrder.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)))) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s) t) (LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instPartialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)))) s (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f t))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_le_iff_le_comap NonUnitalSubsemiring.map_le_iff_le_comapₓ'. -/
 theorem map_le_iff_le_comap {f : F} {s : NonUnitalSubsemiring R} {t : NonUnitalSubsemiring S} :
     s.map f ≤ t ↔ s ≤ t.comap f :=
   Set.image_subset_iff
 #align non_unital_subsemiring.map_le_iff_le_comap NonUnitalSubsemiring.map_le_iff_le_comap
 
+/- warning: non_unital_subsemiring.gc_map_comap -> NonUnitalSubsemiring.gc_map_comap is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), GaloisConnection.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.{u2} S _inst_2) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.partialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2))) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), GaloisConnection.{u2, u3} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.{u3} S _inst_2) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instPartialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1))) (PartialOrder.toPreorder.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instPartialOrder.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2))) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.gc_map_comap NonUnitalSubsemiring.gc_map_comapₓ'. -/
 theorem gc_map_comap (f : F) :
     @GaloisConnection (NonUnitalSubsemiring R) (NonUnitalSubsemiring S) _ _ (map f) (comap f) :=
   fun S T => map_le_iff_le_comap
 #align non_unital_subsemiring.gc_map_comap NonUnitalSubsemiring.gc_map_comap
 
+/- warning: non_unital_subsemiring.equiv_map_of_injective -> NonUnitalSubsemiring.equivMapOfInjective is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u1} R _inst_1) (f : F), (Function.Injective.{succ u1, succ u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) -> (RingEquiv.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_3.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_4.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u1} R _inst_1) (f : F), (Function.Injective.{succ u1, succ u2} R S (FunLike.coe.{succ u3, succ u1, succ u2} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u3, u1, u2} F R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4)) f)) -> (RingEquiv.{u1, u2} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (AddSubmonoid.add.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} S _inst_2 (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.equiv_map_of_injective NonUnitalSubsemiring.equivMapOfInjectiveₓ'. -/
 /-- A non-unital subsemiring is isomorphic to its image under an injective function -/
 noncomputable def equivMapOfInjective (f : F) (hf : Function.Injective (f : R → S)) :
     s ≃+* s.map f :=
@@ -343,6 +583,12 @@ noncomputable def equivMapOfInjective (f : F) (hf : Function.Injective (f : R 
     map_add' := fun _ _ => Subtype.ext (map_add f _ _) }
 #align non_unital_subsemiring.equiv_map_of_injective NonUnitalSubsemiring.equivMapOfInjective
 
+/- warning: non_unital_subsemiring.coe_equiv_map_of_injective_apply -> NonUnitalSubsemiring.coe_equivMapOfInjective_apply is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u1} R _inst_1) (f : F) (hf : Function.Injective.{succ u1, succ u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) (x : coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s), Eq.{succ u2} S ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) S (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) S (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) S (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) S (coeSubtype.{succ u2} S (fun (x : S) => Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_3.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_4.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (fun (_x : RingEquiv.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_3.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_4.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) => (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) -> (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (RingEquiv.hasCoeToFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.equivMapOfInjective._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_3.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.equivMapOfInjective._proof_4.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiring.equivMapOfInjective.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 s f hf) x)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))) x))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u2} R _inst_1) (f : F) (hf : Function.Injective.{succ u2, succ u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f)) (x : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)), Eq.{succ u3} S (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (fun (_x : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (EquivLike.toEmbeddingLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (MulEquivClass.toEquivLike.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (RingEquivClass.toMulEquivClass.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))) (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (RingEquiv.instRingEquivClassRingEquiv.{u2, u3} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s))) (AddSubmonoid.add.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} R _inst_1 s)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s)))))))) (NonUnitalSubsemiring.equivMapOfInjective.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 s f hf) x)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f (Subtype.val.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Set.{u2} R) (Set.instMembershipSet.{u2} R) x (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) s)) x))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_equiv_map_of_injective_apply NonUnitalSubsemiring.coe_equivMapOfInjective_applyₓ'. -/
 @[simp]
 theorem coe_equivMapOfInjective_apply (f : F) (hf : Function.Injective f) (x : s) :
     (equivMapOfInjective s f hf x : S) = f x :=
@@ -357,36 +603,74 @@ open NonUnitalSubsemiring
 
 variable {F G : Type _} [NonUnitalRingHomClass F R S] [NonUnitalRingHomClass G S T] (f : F) (g : G)
 
+#print NonUnitalRingHom.srange /-
 /-- The range of a non-unital ring homomorphism is a non-unital subsemiring.
 See note [range copy pattern]. -/
 def srange : NonUnitalSubsemiring S :=
   ((⊤ : NonUnitalSubsemiring R).map (f : R →ₙ+* S)).copy (Set.range f) Set.image_univ.symm
 #align non_unital_ring_hom.srange NonUnitalRingHom.srange
+-/
 
+/- warning: non_unital_ring_hom.coe_srange -> NonUnitalRingHom.coe_srange is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), Eq.{succ u2} (Set.{u2} S) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (HasLiftT.mk.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (CoeTCₓ.coe.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (SetLike.Set.hasCoeT.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Set.range.{u2, succ u1} S R (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), Eq.{succ u3} (Set.{u3} S) (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)) (Set.range.{u3, succ u2} S R (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f))
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.coe_srange NonUnitalRingHom.coe_srangeₓ'. -/
 @[simp]
 theorem coe_srange : (@srange R S _ _ _ _ f : Set S) = Set.range f :=
   rfl
 #align non_unital_ring_hom.coe_srange NonUnitalRingHom.coe_srange
 
+/- warning: non_unital_ring_hom.mem_srange -> NonUnitalRingHom.mem_srange is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {y : S}, Iff (Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) y (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Exists.{succ u1} R (fun (x : R) => Eq.{succ u2} S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f x) y))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {y : S}, Iff (Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) y (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)) (Exists.{succ u2} R (fun (x : R) => Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) y))
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.mem_srange NonUnitalRingHom.mem_srangeₓ'. -/
 @[simp]
 theorem mem_srange {f : F} {y : S} : y ∈ @srange R S _ _ _ _ f ↔ ∃ x, f x = y :=
   Iff.rfl
 #align non_unital_ring_hom.mem_srange NonUnitalRingHom.mem_srange
 
+/- warning: non_unital_ring_hom.srange_eq_map -> NonUnitalRingHom.srange_eq_map is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1)))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f (Top.top.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} R _inst_1)))
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.srange_eq_map NonUnitalRingHom.srange_eq_mapₓ'. -/
 theorem srange_eq_map : @srange R S _ _ _ _ f = (⊤ : NonUnitalSubsemiring R).map f :=
   by
   ext
   simp
 #align non_unital_ring_hom.srange_eq_map NonUnitalRingHom.srange_eq_map
 
+/- warning: non_unital_ring_hom.mem_srange_self -> NonUnitalRingHom.mem_srange_self is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (x : R), Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f x) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (x : R), Membership.mem.{u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.mem_srange_self NonUnitalRingHom.mem_srange_selfₓ'. -/
 theorem mem_srange_self (f : F) (x : R) : f x ∈ @srange R S _ _ _ _ f :=
   mem_srange.mpr ⟨x, rfl⟩
 #align non_unital_ring_hom.mem_srange_self NonUnitalRingHom.mem_srange_self
 
+/- warning: non_unital_ring_hom.map_srange -> NonUnitalRingHom.map_srange is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] [_inst_3 : NonUnitalNonAssocSemiring.{u3} T] (g : NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (f : NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2), Eq.{succ u3} (NonUnitalSubsemiring.{u3} T _inst_3) (NonUnitalSubsemiring.map.{u2, u3, max u2 u3} S T _inst_2 _inst_3 (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (NonUnitalRingHom.nonUnitalRingHomClass.{u2, u3} S T _inst_2 _inst_3) g (NonUnitalRingHom.srange.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) f)) (NonUnitalRingHom.srange.{u1, u3, max u1 u3} R T _inst_1 _inst_3 (NonUnitalRingHom.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.comp.{u1, u2, u3} R S T _inst_1 _inst_2 _inst_3 g f))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] [_inst_3 : NonUnitalNonAssocSemiring.{u3} T] (g : NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (f : NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2), Eq.{succ u3} (NonUnitalSubsemiring.{u3} T _inst_3) (NonUnitalSubsemiring.map.{u2, u3, max u2 u3} S T _inst_2 _inst_3 (NonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u2, u3} S T _inst_2 _inst_3) g (NonUnitalRingHom.srange.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) f)) (NonUnitalRingHom.srange.{u1, u3, max u3 u1} R T _inst_1 _inst_3 (NonUnitalRingHom.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u3} R T _inst_1 _inst_3) (NonUnitalRingHom.comp.{u1, u2, u3} R S T _inst_1 _inst_2 _inst_3 g f))
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.map_srange NonUnitalRingHom.map_srangeₓ'. -/
 theorem map_srange (g : S →ₙ+* T) (f : R →ₙ+* S) : map g (srange f) = srange (g.comp f) := by
   simpa only [srange_eq_map] using (⊤ : NonUnitalSubsemiring R).map_map g f
 #align non_unital_ring_hom.map_srange NonUnitalRingHom.map_srange
 
+/- warning: non_unital_ring_hom.finite_srange -> NonUnitalRingHom.finite_srange is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] [_inst_6 : Finite.{succ u1} R] (f : F), Finite.{succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] [_inst_6 : Finite.{succ u1} R] (f : F), Finite.{succ u2} (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)))
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.finite_srange NonUnitalRingHom.finite_srangeₓ'. -/
 /-- The range of a morphism of non-unital semirings is finite if the domain is a finite. -/
 instance finite_srange [Finite R] (f : F) : Finite (srange f : NonUnitalSubsemiring S) :=
   (Set.finite_range f).to_subtype
@@ -406,10 +690,22 @@ instance : Bot (NonUnitalSubsemiring R) :=
 instance : Inhabited (NonUnitalSubsemiring R) :=
   ⟨⊥⟩
 
+/- warning: non_unital_subsemiring.coe_bot -> NonUnitalSubsemiring.coe_bot is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (Bot.bot.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasBot.{u1} R _inst_1))) (Singleton.singleton.{u1, u1} R (Set.{u1} R) (Set.hasSingleton.{u1} R) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))))))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (Bot.bot.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instBotNonUnitalSubsemiring.{u1} R _inst_1))) (Singleton.singleton.{u1, u1} R (Set.{u1} R) (Set.instSingletonSet.{u1} R) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_bot NonUnitalSubsemiring.coe_botₓ'. -/
 theorem coe_bot : ((⊥ : NonUnitalSubsemiring R) : Set R) = {0} :=
   rfl
 #align non_unital_subsemiring.coe_bot NonUnitalSubsemiring.coe_bot
 
+/- warning: non_unital_subsemiring.mem_bot -> NonUnitalSubsemiring.mem_bot is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (Bot.bot.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasBot.{u1} R _inst_1))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))))))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (Bot.bot.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instBotNonUnitalSubsemiring.{u1} R _inst_1))) (Eq.{succ u1} R x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_bot NonUnitalSubsemiring.mem_botₓ'. -/
 theorem mem_bot {x : R} : x ∈ (⊥ : NonUnitalSubsemiring R) ↔ x = 0 :=
   Set.mem_singleton_iff
 #align non_unital_subsemiring.mem_bot NonUnitalSubsemiring.mem_bot
@@ -420,12 +716,24 @@ instance : Inf (NonUnitalSubsemiring R) :=
     { s.toSubsemigroup ⊓ t.toSubsemigroup, s.toAddSubmonoid ⊓ t.toAddSubmonoid with
       carrier := s ∩ t }⟩
 
+/- warning: non_unital_subsemiring.coe_inf -> NonUnitalSubsemiring.coe_inf is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (p : NonUnitalSubsemiring.{u1} R _inst_1) (p' : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (Inf.inf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) p p')) (Inter.inter.{u1} (Set.{u1} R) (Set.hasInter.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) p) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) p'))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (p : NonUnitalSubsemiring.{u1} R _inst_1) (p' : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (Inf.inf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfNonUnitalSubsemiring.{u1} R _inst_1) p p')) (Inter.inter.{u1} (Set.{u1} R) (Set.instInterSet.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) p) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) p'))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_inf NonUnitalSubsemiring.coe_infₓ'. -/
 @[simp]
 theorem coe_inf (p p' : NonUnitalSubsemiring R) :
     ((p ⊓ p' : NonUnitalSubsemiring R) : Set R) = p ∩ p' :=
   rfl
 #align non_unital_subsemiring.coe_inf NonUnitalSubsemiring.coe_inf
 
+/- warning: non_unital_subsemiring.mem_inf -> NonUnitalSubsemiring.mem_inf is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {p : NonUnitalSubsemiring.{u1} R _inst_1} {p' : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (Inf.inf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) p p')) (And (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x p) (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x p'))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {p : NonUnitalSubsemiring.{u1} R _inst_1} {p' : NonUnitalSubsemiring.{u1} R _inst_1} {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (Inf.inf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfNonUnitalSubsemiring.{u1} R _inst_1) p p')) (And (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x p) (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x p'))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_inf NonUnitalSubsemiring.mem_infₓ'. -/
 @[simp]
 theorem mem_inf {p p' : NonUnitalSubsemiring R} {x : R} : x ∈ p ⊓ p' ↔ x ∈ p ∧ x ∈ p' :=
   Iff.rfl
@@ -436,27 +744,47 @@ instance : InfSet (NonUnitalSubsemiring R) :=
     NonUnitalSubsemiring.mk' (⋂ t ∈ s, ↑t) (⨅ t ∈ s, NonUnitalSubsemiring.toSubsemigroup t)
       (by simp) (⨅ t ∈ s, NonUnitalSubsemiring.toAddSubmonoid t) (by simp)⟩
 
+/- warning: non_unital_subsemiring.coe_Inf -> NonUnitalSubsemiring.coe_infₛ is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (InfSet.infₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) S)) (Set.interᵢ.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.interᵢ.{u1, 0} R (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s)))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (InfSet.infₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u1} R _inst_1) S)) (Set.interᵢ.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.interᵢ.{u1, 0} R (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_Inf NonUnitalSubsemiring.coe_infₛₓ'. -/
 @[simp, norm_cast]
 theorem coe_infₛ (S : Set (NonUnitalSubsemiring R)) :
     ((infₛ S : NonUnitalSubsemiring R) : Set R) = ⋂ s ∈ S, ↑s :=
   rfl
 #align non_unital_subsemiring.coe_Inf NonUnitalSubsemiring.coe_infₛ
 
+/- warning: non_unital_subsemiring.mem_Inf -> NonUnitalSubsemiring.mem_infₛ is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)} {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (InfSet.infₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) S)) (forall (p : NonUnitalSubsemiring.{u1} R _inst_1), (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) p S) -> (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x p))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)} {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (InfSet.infₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u1} R _inst_1) S)) (forall (p : NonUnitalSubsemiring.{u1} R _inst_1), (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) p S) -> (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x p))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_Inf NonUnitalSubsemiring.mem_infₛₓ'. -/
 theorem mem_infₛ {S : Set (NonUnitalSubsemiring R)} {x : R} : x ∈ infₛ S ↔ ∀ p ∈ S, x ∈ p :=
   Set.mem_interᵢ₂
 #align non_unital_subsemiring.mem_Inf NonUnitalSubsemiring.mem_infₛ
 
+/- warning: non_unital_subsemiring.Inf_to_subsemigroup -> NonUnitalSubsemiring.infₛ_toSubsemigroup is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 (InfSet.infₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) s)) (infᵢ.{u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Subsemigroup.hasInf.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (NonUnitalSubsemiring.{u1} R _inst_1) (fun (t : NonUnitalSubsemiring.{u1} R _inst_1) => infᵢ.{u1, 0} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Subsemigroup.hasInf.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) => NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 t)))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 (InfSet.infₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u1} R _inst_1) s)) (infᵢ.{u1, succ u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.instInfSetSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (NonUnitalSubsemiring.{u1} R _inst_1) (fun (t : NonUnitalSubsemiring.{u1} R _inst_1) => infᵢ.{u1, 0} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.instInfSetSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) (fun (H : Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) t s) => NonUnitalSubsemiring.toSubsemigroup.{u1} R _inst_1 t)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.Inf_to_subsemigroup NonUnitalSubsemiring.infₛ_toSubsemigroupₓ'. -/
 @[simp]
 theorem infₛ_toSubsemigroup (s : Set (NonUnitalSubsemiring R)) :
     (infₛ s).toSubsemigroup = ⨅ t ∈ s, NonUnitalSubsemiring.toSubsemigroup t :=
   mk'_toSubsemigroup _ _
 #align non_unital_subsemiring.Inf_to_subsemigroup NonUnitalSubsemiring.infₛ_toSubsemigroup
 
+#print NonUnitalSubsemiring.infₛ_toAddSubmonoid /-
 @[simp]
 theorem infₛ_toAddSubmonoid (s : Set (NonUnitalSubsemiring R)) :
     (infₛ s).toAddSubmonoid = ⨅ t ∈ s, NonUnitalSubsemiring.toAddSubmonoid t :=
   mk'_toAddSubmonoid _ _
 #align non_unital_subsemiring.Inf_to_add_submonoid NonUnitalSubsemiring.infₛ_toAddSubmonoid
+-/
 
 /-- Non-unital subsemirings of a non-unital semiring form a complete lattice. -/
 instance : CompleteLattice (NonUnitalSubsemiring R) :=
@@ -473,12 +801,19 @@ instance : CompleteLattice (NonUnitalSubsemiring R) :=
     inf_le_right := fun s t x => And.right
     le_inf := fun s t₁ t₂ h₁ h₂ x hx => ⟨h₁ hx, h₂ hx⟩ }
 
+/- warning: non_unital_subsemiring.eq_top_iff' -> NonUnitalSubsemiring.eq_top_iff' is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (A : NonUnitalSubsemiring.{u1} R _inst_1), Iff (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) A (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1))) (forall (x : R), Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x A)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (A : NonUnitalSubsemiring.{u1} R _inst_1), Iff (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) A (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R _inst_1))) (forall (x : R), Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x A)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.eq_top_iff' NonUnitalSubsemiring.eq_top_iff'ₓ'. -/
 theorem eq_top_iff' (A : NonUnitalSubsemiring R) : A = ⊤ ↔ ∀ x : R, x ∈ A :=
   eq_top_iff.trans ⟨fun h m => h <| mem_top m, fun h m _ => h m⟩
 #align non_unital_subsemiring.eq_top_iff' NonUnitalSubsemiring.eq_top_iff'
 
 section Center
 
+#print NonUnitalSubsemiring.center /-
 /-- The center of a semiring `R` is the set of elements that commute with everything in `R` -/
 def center (R) [NonUnitalSemiring R] : NonUnitalSubsemiring R :=
   { Subsemigroup.center R with
@@ -486,25 +821,56 @@ def center (R) [NonUnitalSemiring R] : NonUnitalSubsemiring R :=
     zero_mem' := Set.zero_mem_center R
     add_mem' := fun a b => Set.add_mem_center }
 #align non_unital_subsemiring.center NonUnitalSubsemiring.center
+-/
 
+/- warning: non_unital_subsemiring.coe_center -> NonUnitalSubsemiring.coe_center is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_4 : NonUnitalSemiring.{u1} R], Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.setLike.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))))) (NonUnitalSubsemiring.center.{u1} R _inst_4)) (Set.center.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_4 : NonUnitalSemiring.{u1} R], Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (NonUnitalSubsemiring.center.{u1} R _inst_4)) (Set.center.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_center NonUnitalSubsemiring.coe_centerₓ'. -/
 theorem coe_center (R) [NonUnitalSemiring R] : ↑(center R) = Set.center R :=
   rfl
 #align non_unital_subsemiring.coe_center NonUnitalSubsemiring.coe_center
 
+/- warning: non_unital_subsemiring.center_to_subsemigroup -> NonUnitalSubsemiring.center_toSubsemigroup is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_4 : NonUnitalSemiring.{u1} R], Eq.{succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4) (NonUnitalSubsemiring.center.{u1} R _inst_4)) (Subsemigroup.center.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R _inst_4)))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_4 : NonUnitalSemiring.{u1} R], Eq.{succ u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4) (NonUnitalSubsemiring.center.{u1} R _inst_4)) (Subsemigroup.center.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R _inst_4)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.center_to_subsemigroup NonUnitalSubsemiring.center_toSubsemigroupₓ'. -/
 @[simp]
 theorem center_toSubsemigroup (R) [NonUnitalSemiring R] :
     (center R).toSubsemigroup = Subsemigroup.center R :=
   rfl
 #align non_unital_subsemiring.center_to_subsemigroup NonUnitalSubsemiring.center_toSubsemigroup
 
+/- warning: non_unital_subsemiring.mem_center_iff -> NonUnitalSubsemiring.mem_center_iff is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] {z : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.setLike.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) z (NonUnitalSubsemiring.center.{u1} R _inst_4)) (forall (g : R), Eq.{succ u1} R (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))) g z) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))) z g))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] {z : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) z (NonUnitalSubsemiring.center.{u1} R _inst_4)) (forall (g : R), Eq.{succ u1} R (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) g z) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) z g))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_center_iff NonUnitalSubsemiring.mem_center_iffₓ'. -/
 theorem mem_center_iff {R} [NonUnitalSemiring R] {z : R} : z ∈ center R ↔ ∀ g, g * z = z * g :=
   Iff.rfl
 #align non_unital_subsemiring.mem_center_iff NonUnitalSubsemiring.mem_center_iff
 
+/- warning: non_unital_subsemiring.decidable_mem_center -> NonUnitalSubsemiring.decidableMemCenter is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] [_inst_5 : DecidableEq.{succ u1} R] [_inst_6 : Fintype.{u1} R], DecidablePred.{succ u1} R (fun (_x : R) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.setLike.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) _x (NonUnitalSubsemiring.center.{u1} R _inst_4))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] [_inst_5 : DecidableEq.{succ u1} R] [_inst_6 : Fintype.{u1} R], DecidablePred.{succ u1} R (fun (_x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) _x (NonUnitalSubsemiring.center.{u1} R _inst_4))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.decidable_mem_center NonUnitalSubsemiring.decidableMemCenterₓ'. -/
 instance decidableMemCenter {R} [NonUnitalSemiring R] [DecidableEq R] [Fintype R] :
     DecidablePred (· ∈ center R) := fun _ => decidable_of_iff' _ mem_center_iff
 #align non_unital_subsemiring.decidable_mem_center NonUnitalSubsemiring.decidableMemCenter
 
+/- warning: non_unital_subsemiring.center_eq_top -> NonUnitalSubsemiring.center_eq_top is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_4 : NonUnitalCommSemiring.{u1} R], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4))) (NonUnitalSubsemiring.center.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4)) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4))) (NonUnitalSubsemiring.hasTop.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4))))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_4 : NonUnitalCommSemiring.{u1} R], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4))) (NonUnitalSubsemiring.center.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4)) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4))) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R _inst_4))))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.center_eq_top NonUnitalSubsemiring.center_eq_topₓ'. -/
 @[simp]
 theorem center_eq_top (R) [NonUnitalCommSemiring R] : center R = ⊤ :=
   SetLike.coe_injective (Set.center_eq_univ R)
@@ -519,6 +885,7 @@ end Center
 
 section Centralizer
 
+#print NonUnitalSubsemiring.centralizer /-
 /-- The centralizer of a set as non-unital subsemiring. -/
 def centralizer {R} [NonUnitalSemiring R] (s : Set R) : NonUnitalSubsemiring R :=
   { Subsemigroup.centralizer s with
@@ -526,81 +893,164 @@ def centralizer {R} [NonUnitalSemiring R] (s : Set R) : NonUnitalSubsemiring R :
     zero_mem' := Set.zero_mem_centralizer _
     add_mem' := fun x y hx hy => Set.add_mem_centralizer hx hy }
 #align non_unital_subsemiring.centralizer NonUnitalSubsemiring.centralizer
+-/
 
+/- warning: non_unital_subsemiring.coe_centralizer -> NonUnitalSubsemiring.coe_centralizer is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] (s : Set.{u1} R), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.setLike.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))))) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s)) (Set.centralizer.{u1} R s (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] (s : Set.{u1} R), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s)) (Set.centralizer.{u1} R s (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_centralizer NonUnitalSubsemiring.coe_centralizerₓ'. -/
 @[simp, norm_cast]
 theorem coe_centralizer {R} [NonUnitalSemiring R] (s : Set R) :
     (centralizer s : Set R) = s.centralizer :=
   rfl
 #align non_unital_subsemiring.coe_centralizer NonUnitalSubsemiring.coe_centralizer
 
+/- warning: non_unital_subsemiring.centralizer_to_subsemigroup -> NonUnitalSubsemiring.centralizer_toSubsemigroup is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] (s : Set.{u1} R), Eq.{succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s)) (Subsemigroup.centralizer.{u1} R s (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R _inst_4)))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] (s : Set.{u1} R), Eq.{succ u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) (NonUnitalSubsemiring.toSubsemigroup.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s)) (Subsemigroup.centralizer.{u1} R s (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R _inst_4)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.centralizer_to_subsemigroup NonUnitalSubsemiring.centralizer_toSubsemigroupₓ'. -/
 theorem centralizer_toSubsemigroup {R} [NonUnitalSemiring R] (s : Set R) :
     (centralizer s).toSubsemigroup = Subsemigroup.centralizer s :=
   rfl
 #align non_unital_subsemiring.centralizer_to_subsemigroup NonUnitalSubsemiring.centralizer_toSubsemigroup
 
+/- warning: non_unital_subsemiring.mem_centralizer_iff -> NonUnitalSubsemiring.mem_centralizer_iff is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] {s : Set.{u1} R} {z : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.setLike.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) z (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s)) (forall (g : R), (Membership.Mem.{u1, u1} R (Set.{u1} R) (Set.hasMem.{u1} R) g s) -> (Eq.{succ u1} R (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))) g z) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))) z g)))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] {s : Set.{u1} R} {z : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) z (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s)) (forall (g : R), (Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) g s) -> (Eq.{succ u1} R (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) g z) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))) z g)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_centralizer_iff NonUnitalSubsemiring.mem_centralizer_iffₓ'. -/
 theorem mem_centralizer_iff {R} [NonUnitalSemiring R] {s : Set R} {z : R} :
     z ∈ centralizer s ↔ ∀ g ∈ s, g * z = z * g :=
   Iff.rfl
 #align non_unital_subsemiring.mem_centralizer_iff NonUnitalSubsemiring.mem_centralizer_iff
 
+/- warning: non_unital_subsemiring.centralizer_le -> NonUnitalSubsemiring.centralizer_le is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] (s : Set.{u1} R) (t : Set.{u1} R), (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s t) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) R (NonUnitalSubsemiring.setLike.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4))))) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 t) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_4 : NonUnitalSemiring.{u1} R] (s : Set.{u1} R) (t : Set.{u1} R), (HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s t) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_4)))))) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 t) (NonUnitalSubsemiring.centralizer.{u1} R _inst_4 s))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.centralizer_le NonUnitalSubsemiring.centralizer_leₓ'. -/
 theorem centralizer_le {R} [NonUnitalSemiring R] (s t : Set R) (h : s ⊆ t) :
     centralizer t ≤ centralizer s :=
   Set.centralizer_subset h
 #align non_unital_subsemiring.centralizer_le NonUnitalSubsemiring.centralizer_le
 
+#print NonUnitalSubsemiring.centralizer_univ /-
 @[simp]
 theorem centralizer_univ {R} [NonUnitalSemiring R] : centralizer Set.univ = center R :=
   SetLike.ext' (Set.centralizer_univ R)
 #align non_unital_subsemiring.centralizer_univ NonUnitalSubsemiring.centralizer_univ
+-/
 
 end Centralizer
 
+#print NonUnitalSubsemiring.closure /-
 /-- The `non_unital_subsemiring` generated by a set. -/
 def closure (s : Set R) : NonUnitalSubsemiring R :=
   infₛ { S | s ⊆ S }
 #align non_unital_subsemiring.closure NonUnitalSubsemiring.closure
+-/
 
+/- warning: non_unital_subsemiring.mem_closure -> NonUnitalSubsemiring.mem_closure is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {x : R} {s : Set.{u1} R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) (forall (S : NonUnitalSubsemiring.{u1} R _inst_1), (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) S)) -> (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x S))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {x : R} {s : Set.{u1} R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) (forall (S : NonUnitalSubsemiring.{u1} R _inst_1), (HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) S)) -> (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x S))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_closure NonUnitalSubsemiring.mem_closureₓ'. -/
 theorem mem_closure {x : R} {s : Set R} :
     x ∈ closure s ↔ ∀ S : NonUnitalSubsemiring R, s ⊆ S → x ∈ S :=
   mem_infₛ
 #align non_unital_subsemiring.mem_closure NonUnitalSubsemiring.mem_closure
 
+/- warning: non_unital_subsemiring.subset_closure -> NonUnitalSubsemiring.subset_closure is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R}, HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R}, HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.subset_closure NonUnitalSubsemiring.subset_closureₓ'. -/
 /-- The non-unital subsemiring generated by a set includes the set. -/
 @[simp]
 theorem subset_closure {s : Set R} : s ⊆ closure s := fun x hx => mem_closure.2 fun S hS => hS hx
 #align non_unital_subsemiring.subset_closure NonUnitalSubsemiring.subset_closure
 
+/- warning: non_unital_subsemiring.not_mem_of_not_mem_closure -> NonUnitalSubsemiring.not_mem_of_not_mem_closure is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {P : R}, (Not (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) P (NonUnitalSubsemiring.closure.{u1} R _inst_1 s))) -> (Not (Membership.Mem.{u1, u1} R (Set.{u1} R) (Set.hasMem.{u1} R) P s))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {P : R}, (Not (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) P (NonUnitalSubsemiring.closure.{u1} R _inst_1 s))) -> (Not (Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) P s))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.not_mem_of_not_mem_closure NonUnitalSubsemiring.not_mem_of_not_mem_closureₓ'. -/
 theorem not_mem_of_not_mem_closure {s : Set R} {P : R} (hP : P ∉ closure s) : P ∉ s := fun h =>
   hP (subset_closure h)
 #align non_unital_subsemiring.not_mem_of_not_mem_closure NonUnitalSubsemiring.not_mem_of_not_mem_closure
 
+/- warning: non_unital_subsemiring.closure_le -> NonUnitalSubsemiring.closure_le is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {t : NonUnitalSubsemiring.{u1} R _inst_1}, Iff (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) t) (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) t))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {t : NonUnitalSubsemiring.{u1} R _inst_1}, Iff (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) t) (HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) t))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_le NonUnitalSubsemiring.closure_leₓ'. -/
 /-- A non-unital subsemiring `S` includes `closure s` if and only if it includes `s`. -/
 @[simp]
 theorem closure_le {s : Set R} {t : NonUnitalSubsemiring R} : closure s ≤ t ↔ s ⊆ t :=
   ⟨Set.Subset.trans subset_closure, fun h => infₛ_le h⟩
 #align non_unital_subsemiring.closure_le NonUnitalSubsemiring.closure_le
 
+/- warning: non_unital_subsemiring.closure_mono -> NonUnitalSubsemiring.closure_mono is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {{s : Set.{u1} R}} {{t : Set.{u1} R}}, (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s t) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) (NonUnitalSubsemiring.closure.{u1} R _inst_1 t))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {{s : Set.{u1} R}} {{t : Set.{u1} R}}, (HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s t) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) (NonUnitalSubsemiring.closure.{u1} R _inst_1 t))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_mono NonUnitalSubsemiring.closure_monoₓ'. -/
 /-- Subsemiring closure of a set is monotone in its argument: if `s ⊆ t`,
 then `closure s ≤ closure t`. -/
 theorem closure_mono ⦃s t : Set R⦄ (h : s ⊆ t) : closure s ≤ closure t :=
   closure_le.2 <| Set.Subset.trans h subset_closure
 #align non_unital_subsemiring.closure_mono NonUnitalSubsemiring.closure_mono
 
+/- warning: non_unital_subsemiring.closure_eq_of_le -> NonUnitalSubsemiring.closure_eq_of_le is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {t : NonUnitalSubsemiring.{u1} R _inst_1}, (HasSubset.Subset.{u1} (Set.{u1} R) (Set.hasSubset.{u1} R) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) t)) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) t (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) t)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {t : NonUnitalSubsemiring.{u1} R _inst_1}, (HasSubset.Subset.{u1} (Set.{u1} R) (Set.instHasSubsetSet.{u1} R) s (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) t)) -> (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) t (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) t)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_eq_of_le NonUnitalSubsemiring.closure_eq_of_leₓ'. -/
 theorem closure_eq_of_le {s : Set R} {t : NonUnitalSubsemiring R} (h₁ : s ⊆ t)
     (h₂ : t ≤ closure s) : closure s = t :=
   le_antisymm (closure_le.2 h₁) h₂
 #align non_unital_subsemiring.closure_eq_of_le NonUnitalSubsemiring.closure_eq_of_le
 
+/- warning: non_unital_subsemiring.mem_map_equiv -> NonUnitalSubsemiring.mem_map_equiv is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {f : RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))} {K : NonUnitalSubsemiring.{u1} R _inst_1} {x : S}, Iff (Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u1) (succ u2)} a b] => self.0) (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.hasCoeT.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquiv.ringEquivClass.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))))))) f) K)) (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (fun (_x : RingEquiv.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) => S -> R) (RingEquiv.hasCoeToFun.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (RingEquiv.symm.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) f) x) K)
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {f : RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))} {K : NonUnitalSubsemiring.{u1} R _inst_1} {x : S}, Iff (Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHomClass.toNonUnitalRingHom.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquiv.instRingEquivClassRingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)))) f) K)) (Membership.mem.{u1, u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : S) => R) x) (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S (fun (_x : S) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : S) => R) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u2, succ u1} (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u2, succ u1} (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R (MulEquivClass.toEquivLike.{max u1 u2, u2, u1} (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (RingEquivClass.toMulEquivClass.{max u1 u2, u2, u1} (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (RingEquiv.instRingEquivClassRingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))))))) (RingEquiv.symm.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) f) x) K)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_map_equiv NonUnitalSubsemiring.mem_map_equivₓ'. -/
 theorem mem_map_equiv {f : R ≃+* S} {K : NonUnitalSubsemiring R} {x : S} :
     x ∈ K.map (f : R →ₙ+* S) ↔ f.symm x ∈ K :=
   @Set.mem_image_equiv _ _ (↑K) f.toEquiv x
 #align non_unital_subsemiring.mem_map_equiv NonUnitalSubsemiring.mem_map_equiv
 
+/- warning: non_unital_subsemiring.map_equiv_eq_comap_symm -> NonUnitalSubsemiring.map_equiv_eq_comap_symm is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (f : RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (K : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u1) (succ u2)} a b] => self.0) (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.hasCoeT.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquiv.ringEquivClass.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))))))) f) K) (NonUnitalSubsemiring.comap.{u2, u1, max u2 u1} S R _inst_2 _inst_1 (RingEquiv.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (RingEquivClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingEquiv.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R _inst_2 _inst_1 (RingEquiv.ringEquivClass.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))) (RingEquiv.symm.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) f) K)
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (f : RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (K : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHomClass.toNonUnitalRingHom.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquiv.instRingEquivClassRingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)))) f) K) (NonUnitalSubsemiring.comap.{u2, u1, max u1 u2} S R _inst_2 _inst_1 (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R _inst_2 _inst_1 (RingEquiv.instRingEquivClassRingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))) (RingEquiv.symm.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) f) K)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_equiv_eq_comap_symm NonUnitalSubsemiring.map_equiv_eq_comap_symmₓ'. -/
 theorem map_equiv_eq_comap_symm (f : R ≃+* S) (K : NonUnitalSubsemiring R) :
     K.map (f : R →ₙ+* S) = K.comap f.symm :=
   SetLike.coe_injective (f.toEquiv.image_eq_preimage K)
 #align non_unital_subsemiring.map_equiv_eq_comap_symm NonUnitalSubsemiring.map_equiv_eq_comap_symm
 
+/- warning: non_unital_subsemiring.comap_equiv_eq_map_symm -> NonUnitalSubsemiring.comap_equiv_eq_map_symm is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (f : RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (K : NonUnitalSubsemiring.{u2} S _inst_2), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u1) (succ u2)} a b] => self.0) (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.hasCoeT.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquiv.ringEquivClass.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))))))) f) K) (NonUnitalSubsemiring.map.{u2, u1, max u2 u1} S R _inst_2 _inst_1 (RingEquiv.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (RingEquivClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingEquiv.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R _inst_2 _inst_1 (RingEquiv.ringEquivClass.{u2, u1} S R (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))) (RingEquiv.symm.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) f) K)
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (f : RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (K : NonUnitalSubsemiring.{u2} S _inst_2), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHomClass.toNonUnitalRingHom.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) R S _inst_1 _inst_2 (RingEquiv.instRingEquivClassRingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)))) f) K) (NonUnitalSubsemiring.map.{u2, u1, max u1 u2} S R _inst_2 _inst_1 (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (RingEquivClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) S R _inst_2 _inst_1 (RingEquiv.instRingEquivClassRingEquiv.{u2, u1} S R (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))) (RingEquiv.symm.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) f) K)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.comap_equiv_eq_map_symm NonUnitalSubsemiring.comap_equiv_eq_map_symmₓ'. -/
 theorem comap_equiv_eq_map_symm (f : R ≃+* S) (K : NonUnitalSubsemiring S) :
     K.comap (f : R →ₙ+* S) = K.map f.symm :=
   (map_equiv_eq_comap_symm f.symm K).symm
@@ -610,21 +1060,45 @@ end NonUnitalSubsemiring
 
 namespace Subsemigroup
 
+/- warning: subsemigroup.non_unital_subsemiring_closure -> Subsemigroup.nonUnitalSubsemiringClosure is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) -> (NonUnitalSubsemiring.{u1} R _inst_1)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) -> (NonUnitalSubsemiring.{u1} R _inst_1)
+Case conversion may be inaccurate. Consider using '#align subsemigroup.non_unital_subsemiring_closure Subsemigroup.nonUnitalSubsemiringClosureₓ'. -/
 /-- The additive closure of a non-unital subsemigroup is a non-unital subsemiring. -/
 def nonUnitalSubsemiringClosure (M : Subsemigroup R) : NonUnitalSubsemiring R :=
   { AddSubmonoid.closure (M : Set R) with mul_mem' := fun x y => MulMemClass.mul_mem_add_closure }
 #align subsemigroup.non_unital_subsemiring_closure Subsemigroup.nonUnitalSubsemiringClosure
 
+/- warning: subsemigroup.non_unital_subsemiring_closure_coe -> Subsemigroup.nonUnitalSubsemiringClosure_coe is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (M : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (Subsemigroup.nonUnitalSubsemiringClosure.{u1} R _inst_1 M)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) M)))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (M : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.nonUnitalSubsemiringClosure.{u1} R _inst_1 M)) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) M)))
+Case conversion may be inaccurate. Consider using '#align subsemigroup.non_unital_subsemiring_closure_coe Subsemigroup.nonUnitalSubsemiringClosure_coeₓ'. -/
 theorem nonUnitalSubsemiringClosure_coe :
     (M.nonUnitalSubsemiringClosure : Set R) = AddSubmonoid.closure (M : Set R) :=
   rfl
 #align subsemigroup.non_unital_subsemiring_closure_coe Subsemigroup.nonUnitalSubsemiringClosure_coe
 
+/- warning: subsemigroup.non_unital_subsemiring_closure_to_add_submonoid -> Subsemigroup.nonUnitalSubsemiringClosure_toAddSubmonoid is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (M : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))), Eq.{succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 (Subsemigroup.nonUnitalSubsemiringClosure.{u1} R _inst_1 M)) (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) M))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (M : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)), Eq.{succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 (Subsemigroup.nonUnitalSubsemiringClosure.{u1} R _inst_1 M)) (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) M))
+Case conversion may be inaccurate. Consider using '#align subsemigroup.non_unital_subsemiring_closure_to_add_submonoid Subsemigroup.nonUnitalSubsemiringClosure_toAddSubmonoidₓ'. -/
 theorem nonUnitalSubsemiringClosure_toAddSubmonoid :
     M.nonUnitalSubsemiringClosure.toAddSubmonoid = AddSubmonoid.closure (M : Set R) :=
   rfl
 #align subsemigroup.non_unital_subsemiring_closure_to_add_submonoid Subsemigroup.nonUnitalSubsemiringClosure_toAddSubmonoid
 
+/- warning: subsemigroup.non_unital_subsemiring_closure_eq_closure -> Subsemigroup.nonUnitalSubsemiringClosure_eq_closure is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (M : Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.nonUnitalSubsemiringClosure.{u1} R _inst_1 M) (NonUnitalSubsemiring.closure.{u1} R _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) M))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (M : Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Subsemigroup.nonUnitalSubsemiringClosure.{u1} R _inst_1 M) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) M))
+Case conversion may be inaccurate. Consider using '#align subsemigroup.non_unital_subsemiring_closure_eq_closure Subsemigroup.nonUnitalSubsemiringClosure_eq_closureₓ'. -/
 /-- The `non_unital_subsemiring` generated by a multiplicative subsemigroup coincides with the
 `non_unital_subsemiring.closure` of the subsemigroup itself . -/
 theorem nonUnitalSubsemiringClosure_eq_closure :
@@ -645,6 +1119,7 @@ end Subsemigroup
 
 namespace NonUnitalSubsemiring
 
+#print NonUnitalSubsemiring.closure_subsemigroup_closure /-
 @[simp]
 theorem closure_subsemigroup_closure (s : Set R) : closure ↑(Subsemigroup.closure s) = closure s :=
   le_antisymm
@@ -652,7 +1127,14 @@ theorem closure_subsemigroup_closure (s : Set R) : closure ↑(Subsemigroup.clos
       (Subsemigroup.mem_closure.mp hy) (closure s).toSubsemigroup subset_closure)
     (closure_mono Subsemigroup.subset_closure)
 #align non_unital_subsemiring.closure_subsemigroup_closure NonUnitalSubsemiring.closure_subsemigroup_closure
+-/
 
+/- warning: non_unital_subsemiring.coe_closure_eq -> NonUnitalSubsemiring.coe_closure_eq is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} R), Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))))) (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) (Subsemigroup.closure.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) s))))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} R), Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) (SetLike.coe.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.closure.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) s))))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_closure_eq NonUnitalSubsemiring.coe_closure_eqₓ'. -/
 /-- The elements of the non-unital subsemiring closure of `M` are exactly the elements of the
 additive closure of a multiplicative subsemigroup `M`. -/
 theorem coe_closure_eq (s : Set R) :
@@ -661,11 +1143,18 @@ theorem coe_closure_eq (s : Set R) :
     Subsemigroup.nonUnitalSubsemiringClosure_eq_closure]
 #align non_unital_subsemiring.coe_closure_eq NonUnitalSubsemiring.coe_closure_eq
 
+/- warning: non_unital_subsemiring.mem_closure_iff -> NonUnitalSubsemiring.mem_closure_iff is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) (Membership.Mem.{u1, u1} R (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (SetLike.hasMem.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.setLike.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))) x (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (Subsemigroup.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) R (Subsemigroup.setLike.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)))))) (Subsemigroup.closure.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) s))))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) (Membership.mem.{u1, u1} R (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (SetLike.instMembership.{u1, u1} (AddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) R (AddSubmonoid.instSetLikeAddSubmonoid.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))))) x (AddSubmonoid.closure.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (SetLike.coe.{u1, u1} (Subsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) R (Subsemigroup.instSetLikeSubsemigroup.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) (Subsemigroup.closure.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) s))))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_closure_iff NonUnitalSubsemiring.mem_closure_iffₓ'. -/
 theorem mem_closure_iff {s : Set R} {x} :
     x ∈ closure s ↔ x ∈ AddSubmonoid.closure (Subsemigroup.closure s : Set R) :=
   Set.ext_iff.mp (coe_closure_eq s) x
 #align non_unital_subsemiring.mem_closure_iff NonUnitalSubsemiring.mem_closure_iff
 
+#print NonUnitalSubsemiring.closure_addSubmonoid_closure /-
 @[simp]
 theorem closure_addSubmonoid_closure {s : Set R} : closure ↑(AddSubmonoid.closure s) = closure s :=
   by
@@ -677,7 +1166,14 @@ theorem closure_addSubmonoid_closure {s : Set R} : closure ↑(AddSubmonoid.clos
   refine' (subsemigroup.mem_closure.mp hy) H.to_subsemigroup fun z hz => _
   exact (add_submonoid.mem_closure.mp hz) H.to_add_submonoid fun w hw => J hw
 #align non_unital_subsemiring.closure_add_submonoid_closure NonUnitalSubsemiring.closure_addSubmonoid_closure
+-/
 
+/- warning: non_unital_subsemiring.closure_induction -> NonUnitalSubsemiring.closure_induction is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {p : R -> Prop} {x : R}, (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (forall (x : R), (Membership.Mem.{u1, u1} R (Set.{u1} R) (Set.hasMem.{u1} R) x s) -> (p x)) -> (p (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1)))))) -> (forall (x : R) (y : R), (p x) -> (p y) -> (p (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) x y))) -> (forall (x : R) (y : R), (p x) -> (p y) -> (p (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) x y))) -> (p x)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {p : R -> Prop} {x : R}, (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (forall (x : R), (Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x s) -> (p x)) -> (p (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))))) -> (forall (x : R) (y : R), (p x) -> (p y) -> (p (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) x y))) -> (forall (x : R) (y : R), (p x) -> (p y) -> (p (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) x y))) -> (p x)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_induction NonUnitalSubsemiring.closure_inductionₓ'. -/
 /-- An induction principle for closure membership. If `p` holds for `0`, `1`, and all elements
 of `s`, and is preserved under addition and multiplication, then `p` holds for all elements
 of the closure of `s`. -/
@@ -687,6 +1183,12 @@ theorem closure_induction {s : Set R} {p : R → Prop} {x} (h : x ∈ closure s)
   (@closure_le _ _ _ ⟨p, Hadd, H0, Hmul⟩).2 Hs h
 #align non_unital_subsemiring.closure_induction NonUnitalSubsemiring.closure_induction
 
+/- warning: non_unital_subsemiring.closure_induction₂ -> NonUnitalSubsemiring.closure_induction₂ is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {p : R -> R -> Prop} {x : R} {y : R}, (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) y (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (forall (x : R), (Membership.Mem.{u1, u1} R (Set.{u1} R) (Set.hasMem.{u1} R) x s) -> (forall (y : R), (Membership.Mem.{u1, u1} R (Set.{u1} R) (Set.hasMem.{u1} R) y s) -> (p x y))) -> (forall (x : R), p (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))))) x) -> (forall (x : R), p x (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1)))))) -> (forall (x₁ : R) (x₂ : R) (y : R), (p x₁ y) -> (p x₂ y) -> (p (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) x₁ x₂) y)) -> (forall (x : R) (y₁ : R) (y₂ : R), (p x y₁) -> (p x y₂) -> (p x (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) y₁ y₂))) -> (forall (x₁ : R) (x₂ : R) (y : R), (p x₁ y) -> (p x₂ y) -> (p (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) x₁ x₂) y)) -> (forall (x : R) (y₁ : R) (y₂ : R), (p x y₁) -> (p x y₂) -> (p x (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) y₁ y₂))) -> (p x y)
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : Set.{u1} R} {p : R -> R -> Prop} {x : R} {y : R}, (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) y (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) -> (forall (x : R), (Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x s) -> (forall (y : R), (Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) y s) -> (p x y))) -> (forall (x : R), p (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1)))) x) -> (forall (x : R), p x (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MulZeroClass.toZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R _inst_1))))) -> (forall (x₁ : R) (x₂ : R) (y : R), (p x₁ y) -> (p x₂ y) -> (p (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) x₁ x₂) y)) -> (forall (x : R) (y₁ : R) (y₂ : R), (p x y₁) -> (p x y₂) -> (p x (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) y₁ y₂))) -> (forall (x₁ : R) (x₂ : R) (y : R), (p x₁ y) -> (p x₂ y) -> (p (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) x₁ x₂) y)) -> (forall (x : R) (y₁ : R) (y₂ : R), (p x y₁) -> (p x y₂) -> (p x (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1)) y₁ y₂))) -> (p x y)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_induction₂ NonUnitalSubsemiring.closure_induction₂ₓ'. -/
 /-- An induction principle for closure membership for predicates with two arguments. -/
 @[elab_as_elim]
 theorem closure_induction₂ {s : Set R} {p : R → R → Prop} {x} {y : R} (hx : x ∈ closure s)
@@ -702,6 +1204,12 @@ theorem closure_induction₂ {s : Set R} {p : R → R → Prop} {x} {y : R} (hx
 
 variable (R)
 
+/- warning: non_unital_subsemiring.gi -> NonUnitalSubsemiring.gi is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], GaloisInsertion.{u1, u1} (Set.{u1} R) (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (Set.{u1} R) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} R) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} R) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} R) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} R) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} R) (Set.completeBooleanAlgebra.{u1} R))))))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))) (NonUnitalSubsemiring.closure.{u1} R _inst_1) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], GaloisInsertion.{u1, u1} (Set.{u1} R) (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (Set.{u1} R) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} R) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} R) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} R) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} R) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} R) (Set.instCompleteBooleanAlgebraSet.{u1} R))))))) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.gi NonUnitalSubsemiring.giₓ'. -/
 /-- `closure` forms a Galois insertion with the coercion to set. -/
 protected def gi : GaloisInsertion (@closure R _) coe
     where
@@ -713,63 +1221,133 @@ protected def gi : GaloisInsertion (@closure R _) coe
 
 variable {R} {F : Type _} [NonUnitalRingHomClass F R S]
 
+#print NonUnitalSubsemiring.closure_eq /-
 /-- Closure of a non-unital subsemiring `S` equals `S`. -/
 theorem closure_eq (s : NonUnitalSubsemiring R) : closure (s : Set R) = s :=
   (NonUnitalSubsemiring.gi R).l_u_eq s
 #align non_unital_subsemiring.closure_eq NonUnitalSubsemiring.closure_eq
+-/
 
+/- warning: non_unital_subsemiring.closure_empty -> NonUnitalSubsemiring.closure_empty is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (EmptyCollection.emptyCollection.{u1} (Set.{u1} R) (Set.hasEmptyc.{u1} R))) (Bot.bot.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasBot.{u1} R _inst_1))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (EmptyCollection.emptyCollection.{u1} (Set.{u1} R) (Set.instEmptyCollectionSet.{u1} R))) (Bot.bot.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instBotNonUnitalSubsemiring.{u1} R _inst_1))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_empty NonUnitalSubsemiring.closure_emptyₓ'. -/
 @[simp]
 theorem closure_empty : closure (∅ : Set R) = ⊥ :=
   (NonUnitalSubsemiring.gi R).gc.l_bot
 #align non_unital_subsemiring.closure_empty NonUnitalSubsemiring.closure_empty
 
+/- warning: non_unital_subsemiring.closure_univ -> NonUnitalSubsemiring.closure_univ is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.univ.{u1} R)) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.univ.{u1} R)) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R _inst_1))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_univ NonUnitalSubsemiring.closure_univₓ'. -/
 @[simp]
 theorem closure_univ : closure (Set.univ : Set R) = ⊤ :=
   @coe_top R _ ▸ closure_eq ⊤
 #align non_unital_subsemiring.closure_univ NonUnitalSubsemiring.closure_univ
 
+#print NonUnitalSubsemiring.closure_union /-
 theorem closure_union (s t : Set R) : closure (s ∪ t) = closure s ⊔ closure t :=
   (NonUnitalSubsemiring.gi R).gc.l_sup
 #align non_unital_subsemiring.closure_union NonUnitalSubsemiring.closure_union
+-/
 
+/- warning: non_unital_subsemiring.closure_Union -> NonUnitalSubsemiring.closure_unionᵢ is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} (s : ι -> (Set.{u1} R)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.unionᵢ.{u1, u2} R ι (fun (i : ι) => s i))) (supᵢ.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => NonUnitalSubsemiring.closure.{u1} R _inst_1 (s i)))
+but is expected to have type
+  forall {R : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] {ι : Sort.{u1}} (s : ι -> (Set.{u2} R)), Eq.{succ u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.closure.{u2} R _inst_1 (Set.unionᵢ.{u2, u1} R ι (fun (i : ι) => s i))) (supᵢ.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toSupSet.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)) ι (fun (i : ι) => NonUnitalSubsemiring.closure.{u2} R _inst_1 (s i)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_Union NonUnitalSubsemiring.closure_unionᵢₓ'. -/
 theorem closure_unionᵢ {ι} (s : ι → Set R) : closure (⋃ i, s i) = ⨆ i, closure (s i) :=
   (NonUnitalSubsemiring.gi R).gc.l_supᵢ
 #align non_unital_subsemiring.closure_Union NonUnitalSubsemiring.closure_unionᵢ
 
+/- warning: non_unital_subsemiring.closure_sUnion -> NonUnitalSubsemiring.closure_unionₛ is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (Set.{u1} R)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.unionₛ.{u1} R s)) (supᵢ.{u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) (Set.{u1} R) (fun (t : Set.{u1} R) => supᵢ.{u1, 0} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) (Membership.Mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.hasMem.{u1} (Set.{u1} R)) t s) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.hasMem.{u1} (Set.{u1} R)) t s) => NonUnitalSubsemiring.closure.{u1} R _inst_1 t)))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : Set.{u1} (Set.{u1} R)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.unionₛ.{u1} R s)) (supᵢ.{u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) (Set.{u1} R) (fun (t : Set.{u1} R) => supᵢ.{u1, 0} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) (Membership.mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.instMembershipSet.{u1} (Set.{u1} R)) t s) (fun (H : Membership.mem.{u1, u1} (Set.{u1} R) (Set.{u1} (Set.{u1} R)) (Set.instMembershipSet.{u1} (Set.{u1} R)) t s) => NonUnitalSubsemiring.closure.{u1} R _inst_1 t)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.closure_sUnion NonUnitalSubsemiring.closure_unionₛₓ'. -/
 theorem closure_unionₛ (s : Set (Set R)) : closure (⋃₀ s) = ⨆ t ∈ s, closure t :=
   (NonUnitalSubsemiring.gi R).gc.l_supₛ
 #align non_unital_subsemiring.closure_sUnion NonUnitalSubsemiring.closure_unionₛ
 
+/- warning: non_unital_subsemiring.map_sup -> NonUnitalSubsemiring.map_sup is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u1} R _inst_1) (t : NonUnitalSubsemiring.{u1} R _inst_1) (f : F), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (Sup.sup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Lattice.toSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toLattice.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1)))) s t)) (Sup.sup.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (SemilatticeSup.toHasSup.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Lattice.toSemilatticeSup.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteLattice.toLattice.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.completeLattice.{u2} S _inst_2)))) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f t))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u2} R _inst_1) (t : NonUnitalSubsemiring.{u2} R _inst_1) (f : F), Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f (Sup.sup.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (SemilatticeSup.toSup.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Lattice.toSemilatticeSup.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toLattice.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)))) s t)) (Sup.sup.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (SemilatticeSup.toSup.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (Lattice.toSemilatticeSup.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (CompleteLattice.toLattice.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u3} S _inst_2)))) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f t))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_sup NonUnitalSubsemiring.map_supₓ'. -/
 theorem map_sup (s t : NonUnitalSubsemiring R) (f : F) :
     (map f (s ⊔ t) : NonUnitalSubsemiring S) = map f s ⊔ map f t :=
   @GaloisConnection.l_sup _ _ s t _ _ _ _ (gc_map_comap f)
 #align non_unital_subsemiring.map_sup NonUnitalSubsemiring.map_sup
 
+/- warning: non_unital_subsemiring.map_supr -> NonUnitalSubsemiring.map_supᵢ is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {ι : Sort.{u4}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (supᵢ.{u1, u4} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι s)) (supᵢ.{u2, u4} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteSemilatticeSup.toHasSup.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteLattice.toCompleteSemilatticeSup.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.completeLattice.{u2} S _inst_2))) ι (fun (i : ι) => NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (s i)))
+but is expected to have type
+  forall {R : Type.{u3}} {S : Type.{u4}} [_inst_1 : NonUnitalNonAssocSemiring.{u3} R] [_inst_2 : NonUnitalNonAssocSemiring.{u4} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u3, u4} F R S _inst_1 _inst_2] {ι : Sort.{u2}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u3} R _inst_1)), Eq.{succ u4} (NonUnitalSubsemiring.{u4} S _inst_2) (NonUnitalSubsemiring.map.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (supᵢ.{u3, u2} (NonUnitalSubsemiring.{u3} R _inst_1) (CompleteLattice.toSupSet.{u3} (NonUnitalSubsemiring.{u3} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u3} R _inst_1)) ι s)) (supᵢ.{u4, u2} (NonUnitalSubsemiring.{u4} S _inst_2) (CompleteLattice.toSupSet.{u4} (NonUnitalSubsemiring.{u4} S _inst_2) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u4} S _inst_2)) ι (fun (i : ι) => NonUnitalSubsemiring.map.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (s i)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_supr NonUnitalSubsemiring.map_supᵢₓ'. -/
 theorem map_supᵢ {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring R) :
     (map f (supᵢ s) : NonUnitalSubsemiring S) = ⨆ i, map f (s i) :=
   @GaloisConnection.l_supᵢ _ _ _ _ _ _ _ (gc_map_comap f) s
 #align non_unital_subsemiring.map_supr NonUnitalSubsemiring.map_supᵢ
 
+/- warning: non_unital_subsemiring.comap_inf -> NonUnitalSubsemiring.comap_inf is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u2} S _inst_2) (t : NonUnitalSubsemiring.{u2} S _inst_2) (f : F), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (Inf.inf.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasInf.{u2} S _inst_2) s t)) (Inf.inf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f s) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f t))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (s : NonUnitalSubsemiring.{u3} S _inst_2) (t : NonUnitalSubsemiring.{u3} S _inst_2) (f : F), Eq.{succ u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f (Inf.inf.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instInfNonUnitalSubsemiring.{u3} S _inst_2) s t)) (Inf.inf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instInfNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f s) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f t))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.comap_inf NonUnitalSubsemiring.comap_infₓ'. -/
 theorem comap_inf (s t : NonUnitalSubsemiring S) (f : F) :
     (comap f (s ⊓ t) : NonUnitalSubsemiring R) = comap f s ⊓ comap f t :=
   @GaloisConnection.u_inf _ _ s t _ _ _ _ (gc_map_comap f)
 #align non_unital_subsemiring.comap_inf NonUnitalSubsemiring.comap_inf
 
+/- warning: non_unital_subsemiring.comap_infi -> NonUnitalSubsemiring.comap_infᵢ is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {ι : Sort.{u4}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u2} S _inst_2)), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (infᵢ.{u2, u4} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasInf.{u2} S _inst_2) ι s)) (infᵢ.{u1, u4} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasInf.{u1} R _inst_1) ι (fun (i : ι) => NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (s i)))
+but is expected to have type
+  forall {R : Type.{u3}} {S : Type.{u4}} [_inst_1 : NonUnitalNonAssocSemiring.{u3} R] [_inst_2 : NonUnitalNonAssocSemiring.{u4} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u3, u4} F R S _inst_1 _inst_2] {ι : Sort.{u2}} (f : F) (s : ι -> (NonUnitalSubsemiring.{u4} S _inst_2)), Eq.{succ u3} (NonUnitalSubsemiring.{u3} R _inst_1) (NonUnitalSubsemiring.comap.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (infᵢ.{u4, u2} (NonUnitalSubsemiring.{u4} S _inst_2) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u4} S _inst_2) ι s)) (infᵢ.{u3, u2} (NonUnitalSubsemiring.{u3} R _inst_1) (NonUnitalSubsemiring.instInfSetNonUnitalSubsemiring.{u3} R _inst_1) ι (fun (i : ι) => NonUnitalSubsemiring.comap.{u3, u4, u1} R S _inst_1 _inst_2 F _inst_4 f (s i)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.comap_infi NonUnitalSubsemiring.comap_infᵢₓ'. -/
 theorem comap_infᵢ {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring S) :
     (comap f (infᵢ s) : NonUnitalSubsemiring R) = ⨅ i, comap f (s i) :=
   @GaloisConnection.u_infᵢ _ _ _ _ _ _ _ (gc_map_comap f) s
 #align non_unital_subsemiring.comap_infi NonUnitalSubsemiring.comap_infᵢ
 
+/- warning: non_unital_subsemiring.map_bot -> NonUnitalSubsemiring.map_bot is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (Bot.bot.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasBot.{u1} R _inst_1))) (Bot.bot.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasBot.{u2} S _inst_2))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f (Bot.bot.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instBotNonUnitalSubsemiring.{u2} R _inst_1))) (Bot.bot.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instBotNonUnitalSubsemiring.{u3} S _inst_2))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.map_bot NonUnitalSubsemiring.map_botₓ'. -/
 @[simp]
 theorem map_bot (f : F) : map f (⊥ : NonUnitalSubsemiring R) = (⊥ : NonUnitalSubsemiring S) :=
   (gc_map_comap f).l_bot
 #align non_unital_subsemiring.map_bot NonUnitalSubsemiring.map_bot
 
+/- warning: non_unital_subsemiring.comap_top -> NonUnitalSubsemiring.comap_top is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasTop.{u2} S _inst_2))) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), Eq.{succ u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f (Top.top.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u3} S _inst_2))) (Top.top.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} R _inst_1))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.comap_top NonUnitalSubsemiring.comap_topₓ'. -/
 @[simp]
 theorem comap_top (f : F) : comap f (⊤ : NonUnitalSubsemiring S) = (⊤ : NonUnitalSubsemiring R) :=
   (gc_map_comap f).u_top
 #align non_unital_subsemiring.comap_top NonUnitalSubsemiring.comap_top
 
+/- warning: non_unital_subsemiring.prod -> NonUnitalSubsemiring.prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], (NonUnitalSubsemiring.{u1} R _inst_1) -> (NonUnitalSubsemiring.{u2} S _inst_2) -> (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], (NonUnitalSubsemiring.{u1} R _inst_1) -> (NonUnitalSubsemiring.{u2} S _inst_2) -> (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.prod NonUnitalSubsemiring.prodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /-- Given `non_unital_subsemiring`s `s`, `t` of semirings `R`, `S` respectively, `s.prod t` is
 `s × t` as a non-unital subsemiring of `R × S`. -/
@@ -778,6 +1356,12 @@ def prod (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) : NonUnitalSu
     carrier := (s : Set R) ×ˢ (t : Set S) }
 #align non_unital_subsemiring.prod NonUnitalSubsemiring.prod
 
+/- warning: non_unital_subsemiring.coe_prod -> NonUnitalSubsemiring.coe_prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1) (t : NonUnitalSubsemiring.{u2} S _inst_2), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (Prod.{u1, u2} R S)) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Set.{max u1 u2} (Prod.{u1, u2} R S)) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Set.{max u1 u2} (Prod.{u1, u2} R S)) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Set.{max u1 u2} (Prod.{u1, u2} R S)) (SetLike.Set.hasCoeT.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))))) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)) (Set.prod.{u1, u2} R S ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (HasLiftT.mk.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (CoeTCₓ.coe.{succ u2, succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Set.{u2} S) (SetLike.Set.hasCoeT.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) t))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1) (t : NonUnitalSubsemiring.{u2} S _inst_2), Eq.{max (succ u1) (succ u2)} (Set.{max u1 u2} (Prod.{u1, u2} R S)) (SetLike.coe.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)) (Set.prod.{u1, u2} R S (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) t))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_prod NonUnitalSubsemiring.coe_prodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 @[norm_cast]
 theorem coe_prod (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) :
@@ -785,41 +1369,89 @@ theorem coe_prod (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) :
   rfl
 #align non_unital_subsemiring.coe_prod NonUnitalSubsemiring.coe_prod
 
+/- warning: non_unital_subsemiring.mem_prod -> NonUnitalSubsemiring.mem_prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {s : NonUnitalSubsemiring.{u1} R _inst_1} {t : NonUnitalSubsemiring.{u2} S _inst_2} {p : Prod.{u1, u2} R S}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} R S) (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (SetLike.hasMem.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))) p (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)) (And (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) (Prod.fst.{u1, u2} R S p) s) (Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (Prod.snd.{u1, u2} R S p) t))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {s : NonUnitalSubsemiring.{u1} R _inst_1} {t : NonUnitalSubsemiring.{u2} S _inst_2} {p : Prod.{u1, u2} R S}, Iff (Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} R S) (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (SetLike.instMembership.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2))) p (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)) (And (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) (Prod.fst.{u1, u2} R S p) s) (Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) (Prod.snd.{u1, u2} R S p) t))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_prod NonUnitalSubsemiring.mem_prodₓ'. -/
 theorem mem_prod {s : NonUnitalSubsemiring R} {t : NonUnitalSubsemiring S} {p : R × S} :
     p ∈ s.Prod t ↔ p.1 ∈ s ∧ p.2 ∈ t :=
   Iff.rfl
 #align non_unital_subsemiring.mem_prod NonUnitalSubsemiring.mem_prod
 
+/- warning: non_unital_subsemiring.prod_mono -> NonUnitalSubsemiring.prod_mono is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {{s₁ : NonUnitalSubsemiring.{u1} R _inst_1}} {{s₂ : NonUnitalSubsemiring.{u1} R _inst_1}}, (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s₁ s₂) -> (forall {{t₁ : NonUnitalSubsemiring.{u2} S _inst_2}} {{t₂ : NonUnitalSubsemiring.{u2} S _inst_2}}, (LE.le.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.partialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)))) t₁ t₂) -> (LE.le.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Preorder.toLE.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (PartialOrder.toPreorder.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (SetLike.partialOrder.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))))) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s₁ t₁) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s₂ t₂)))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {{s₁ : NonUnitalSubsemiring.{u1} R _inst_1}} {{s₂ : NonUnitalSubsemiring.{u1} R _inst_1}}, (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) s₁ s₂) -> (forall {{t₁ : NonUnitalSubsemiring.{u2} S _inst_2}} {{t₂ : NonUnitalSubsemiring.{u2} S _inst_2}}, (LE.le.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} S _inst_2))))) t₁ t₂) -> (LE.le.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (Preorder.toLE.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (PartialOrder.toPreorder.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (CompleteSemilatticeInf.toPartialOrder.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (CompleteLattice.toCompleteSemilatticeInf.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)))))) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s₁ t₁) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s₂ t₂)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.prod_mono NonUnitalSubsemiring.prod_monoₓ'. -/
 @[mono]
 theorem prod_mono ⦃s₁ s₂ : NonUnitalSubsemiring R⦄ (hs : s₁ ≤ s₂) ⦃t₁ t₂ : NonUnitalSubsemiring S⦄
     (ht : t₁ ≤ t₂) : s₁.Prod t₁ ≤ s₂.Prod t₂ :=
   Set.prod_mono hs ht
 #align non_unital_subsemiring.prod_mono NonUnitalSubsemiring.prod_mono
 
+/- warning: non_unital_subsemiring.prod_mono_right -> NonUnitalSubsemiring.prod_mono_right is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1), Monotone.{u2, max u1 u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.partialOrder.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2))) (PartialOrder.toPreorder.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (SetLike.partialOrder.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)))) (fun (t : NonUnitalSubsemiring.{u2} S _inst_2) => NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1), Monotone.{u2, max u1 u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} S _inst_2)))) (PartialOrder.toPreorder.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (CompleteSemilatticeInf.toPartialOrder.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (CompleteLattice.toCompleteSemilatticeInf.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2))))) (fun (t : NonUnitalSubsemiring.{u2} S _inst_2) => NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.prod_mono_right NonUnitalSubsemiring.prod_mono_rightₓ'. -/
 theorem prod_mono_right (s : NonUnitalSubsemiring R) :
     Monotone fun t : NonUnitalSubsemiring S => s.Prod t :=
   prod_mono (le_refl s)
 #align non_unital_subsemiring.prod_mono_right NonUnitalSubsemiring.prod_mono_right
 
+/- warning: non_unital_subsemiring.prod_mono_left -> NonUnitalSubsemiring.prod_mono_left is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (t : NonUnitalSubsemiring.{u2} S _inst_2), Monotone.{u1, max u1 u2} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))) (PartialOrder.toPreorder.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (SetLike.partialOrder.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)))) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (t : NonUnitalSubsemiring.{u2} S _inst_2), Monotone.{u1, max u1 u2} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)))) (PartialOrder.toPreorder.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (CompleteSemilatticeInf.toPartialOrder.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (CompleteLattice.toCompleteSemilatticeInf.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2))))) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.prod_mono_left NonUnitalSubsemiring.prod_mono_leftₓ'. -/
 theorem prod_mono_left (t : NonUnitalSubsemiring S) :
     Monotone fun s : NonUnitalSubsemiring R => s.Prod t := fun s₁ s₂ hs => prod_mono hs (le_refl t)
 #align non_unital_subsemiring.prod_mono_left NonUnitalSubsemiring.prod_mono_left
 
+/- warning: non_unital_subsemiring.prod_top -> NonUnitalSubsemiring.prod_top is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ (max u1 u2)} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasTop.{u2} S _inst_2))) (NonUnitalSubsemiring.comap.{max u1 u2, u1, max u1 u2} (Prod.{u1, u2} R S) R (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_1 (NonUnitalRingHom.{max u1 u2, u1} (Prod.{u1, u2} R S) R (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.nonUnitalRingHomClass.{max u1 u2, u1} (Prod.{u1, u2} R S) R (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.fst.{u1, u2} R S _inst_1 _inst_2) s)
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{max (succ u1) (succ u2)} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} S _inst_2))) (NonUnitalSubsemiring.comap.{max u1 u2, u1, max u1 u2} (Prod.{u1, u2} R S) R (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_1 (NonUnitalRingHom.{max u2 u1, u1} (Prod.{u1, u2} R S) R (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{max u1 u2, u1} (Prod.{u1, u2} R S) R (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.fst.{u1, u2} R S _inst_1 _inst_2) s)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.prod_top NonUnitalSubsemiring.prod_topₓ'. -/
 theorem prod_top (s : NonUnitalSubsemiring R) :
     s.Prod (⊤ : NonUnitalSubsemiring S) = s.comap (NonUnitalRingHom.fst R S) :=
   ext fun x => by simp [mem_prod, MonoidHom.coe_fst]
 #align non_unital_subsemiring.prod_top NonUnitalSubsemiring.prod_top
 
+/- warning: non_unital_subsemiring.top_prod -> NonUnitalSubsemiring.top_prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u2} S _inst_2), Eq.{succ (max u1 u2)} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1)) s) (NonUnitalSubsemiring.comap.{max u1 u2, u2, max u1 u2} (Prod.{u1, u2} R S) S (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_2 (NonUnitalRingHom.{max u1 u2, u2} (Prod.{u1, u2} R S) S (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{max u1 u2, u2} (Prod.{u1, u2} R S) S (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.snd.{u1, u2} R S _inst_1 _inst_2) s)
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u2} S _inst_2), Eq.{max (succ u1) (succ u2)} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R _inst_1)) s) (NonUnitalSubsemiring.comap.{max u1 u2, u2, max u1 u2} (Prod.{u1, u2} R S) S (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_2 (NonUnitalRingHom.{max u2 u1, u2} (Prod.{u1, u2} R S) S (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{max u1 u2, u2} (Prod.{u1, u2} R S) S (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.snd.{u1, u2} R S _inst_1 _inst_2) s)
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.top_prod NonUnitalSubsemiring.top_prodₓ'. -/
 theorem top_prod (s : NonUnitalSubsemiring S) :
     (⊤ : NonUnitalSubsemiring R).Prod s = s.comap (NonUnitalRingHom.snd R S) :=
   ext fun x => by simp [mem_prod, MonoidHom.coe_snd]
 #align non_unital_subsemiring.top_prod NonUnitalSubsemiring.top_prod
 
+/- warning: non_unital_subsemiring.top_prod_top -> NonUnitalSubsemiring.top_prod_top is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], Eq.{succ (max u1 u2)} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1)) (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasTop.{u2} S _inst_2))) (Top.top.{max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.hasTop.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], Eq.{max (succ u1) (succ u2)} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R _inst_1)) (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} S _inst_2))) (Top.top.{max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.top_prod_top NonUnitalSubsemiring.top_prod_topₓ'. -/
 @[simp]
 theorem top_prod_top : (⊤ : NonUnitalSubsemiring R).Prod (⊤ : NonUnitalSubsemiring S) = ⊤ :=
   (top_prod _).trans <| comap_top _
 #align non_unital_subsemiring.top_prod_top NonUnitalSubsemiring.top_prod_top
 
+/- warning: non_unital_subsemiring.prod_equiv -> NonUnitalSubsemiring.prodEquiv is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1) (t : NonUnitalSubsemiring.{u2} S _inst_2), RingEquiv.{max u1 u2, max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)) (Prod.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) t)) (MulMemClass.mul.{max u1 u2, max u1 u2} (Prod.{u1, u2} R S) (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (Distrib.toHasMul.{max u1 u2} (Prod.{u1, u2} R S) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prodEquiv._proof_1.{u1, u2} R S _inst_1 _inst_2) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)) (AddMemClass.add.{max u1 u2, max u1 u2} (Prod.{u1, u2} R S) (NonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (AddZeroClass.toHasAdd.{max u1 u2} (Prod.{u1, u2} R S) (AddMonoid.toAddZeroClass.{max u1 u2} (Prod.{u1, u2} R S) (AddCommMonoid.toAddMonoid.{max u1 u2} (Prod.{u1, u2} R S) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2))))) (NonUnitalSubsemiring.setLike.{max u1 u2} (Prod.{u1, u2} R S) (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prodEquiv._proof_2.{u1, u2} R S _inst_1 _inst_2) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t)) (Prod.hasMul.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) t) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.prodEquiv._proof_3.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.prodEquiv._proof_4.{u2} S _inst_2) t)) (Prod.hasAdd.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) t) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.prodEquiv._proof_5.{u1} R _inst_1) s) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.prodEquiv._proof_6.{u2} S _inst_2) t))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (s : NonUnitalSubsemiring.{u1} R _inst_1) (t : NonUnitalSubsemiring.{u2} S _inst_2), RingEquiv.{max u1 u2, max u2 u1} (Subtype.{succ (max u1 u2)} (Prod.{u1, u2} R S) (fun (x : Prod.{u1, u2} R S) => Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} R S) (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (SetLike.instMembership.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2))) x (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t))) (Prod.{u1, u2} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x t))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Prod.{u1, u2} R S) (fun (x : Prod.{u1, u2} R S) => Membership.mem.{max u1 u2, max u1 u2} (Prod.{u1, u2} R S) (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (SetLike.instMembership.{max u1 u2, max u1 u2} (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (Prod.{u1, u2} R S) (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2))) x (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{max u1 u2, max u1 u2} (Prod.{u1, u2} R S) (NonUnitalSubsemiring.{max u2 u1} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t))) (Prod.instMulProd.{u1, u2} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x t)) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x t)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) t))) (AddSubmonoid.add.{max u1 u2} (Prod.{u1, u2} R S) (AddMonoid.toAddZeroClass.{max u1 u2} (Prod.{u1, u2} R S) (AddCommMonoid.toAddMonoid.{max u1 u2} (Prod.{u1, u2} R S) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2)))) (NonUnitalSubsemiring.toAddSubmonoid.{max u1 u2} (Prod.{u1, u2} R S) (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) (NonUnitalSubsemiring.prod.{u1, u2} R S _inst_1 _inst_2 s t))) (Prod.instAddSum.{u1, u2} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x t)) (AddSubmonoid.add.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (AddSubmonoid.add.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} S _inst_2 t)))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.prod_equiv NonUnitalSubsemiring.prodEquivₓ'. -/
 /-- Product of non-unital subsemirings is isomorphic to their product as semigroups. -/
 def prodEquiv (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) : s.Prod t ≃+* s × t :=
   { Equiv.Set.prod ↑s ↑t with
@@ -827,6 +1459,12 @@ def prodEquiv (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) : s.Prod
     map_add' := fun x y => rfl }
 #align non_unital_subsemiring.prod_equiv NonUnitalSubsemiring.prodEquiv
 
+/- warning: non_unital_subsemiring.mem_supr_of_directed -> NonUnitalSubsemiring.mem_supᵢ_of_directed is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} [hι : Nonempty.{u2} ι] {S : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)}, (Directed.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) ι (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (forall {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (supᵢ.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => S i))) (Exists.{u2} ι (fun (i : ι) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (S i))))
+but is expected to have type
+  forall {R : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] {ι : Sort.{u1}} [hι : Nonempty.{u1} ι] {S : ι -> (NonUnitalSubsemiring.{u2} R _inst_1)}, (Directed.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) ι (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7496 : NonUnitalSubsemiring.{u2} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7498 : NonUnitalSubsemiring.{u2} R _inst_1) => LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7496 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7498) S) -> (forall {x : R}, Iff (Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x (supᵢ.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toSupSet.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)) ι (fun (i : ι) => S i))) (Exists.{u1} ι (fun (i : ι) => Membership.mem.{u2, u2} R (NonUnitalSubsemiring.{u2} R _inst_1) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1)) x (S i))))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_supᵢ_of_directedₓ'. -/
 theorem mem_supᵢ_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
     (hS : Directed (· ≤ ·) S) {x : R} : (x ∈ ⨆ i, S i) ↔ ∃ i, x ∈ S i :=
   by
@@ -840,11 +1478,23 @@ theorem mem_supᵢ_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSub
   exact supᵢ_le fun i x hx => Set.mem_unionᵢ.2 ⟨i, hx⟩
 #align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_supᵢ_of_directed
 
+/- warning: non_unital_subsemiring.coe_supr_of_directed -> NonUnitalSubsemiring.coe_supᵢ_of_directed is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {ι : Sort.{u2}} [hι : Nonempty.{u2} ι] {S : ι -> (NonUnitalSubsemiring.{u1} R _inst_1)}, (Directed.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) ι (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (supᵢ.{u1, u2} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) ι (fun (i : ι) => S i))) (Set.unionᵢ.{u1, u2} R ι (fun (i : ι) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (S i))))
+but is expected to have type
+  forall {R : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] {ι : Sort.{u1}} [hι : Nonempty.{u1} ι] {S : ι -> (NonUnitalSubsemiring.{u2} R _inst_1)}, (Directed.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) ι (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7771 : NonUnitalSubsemiring.{u2} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7773 : NonUnitalSubsemiring.{u2} R _inst_1) => LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7771 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7773) S) -> (Eq.{succ u2} (Set.{u2} R) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (supᵢ.{u2, u1} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toSupSet.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1)) ι (fun (i : ι) => S i))) (Set.unionᵢ.{u2, u1} R ι (fun (i : ι) => SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (S i))))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_supr_of_directed NonUnitalSubsemiring.coe_supᵢ_of_directedₓ'. -/
 theorem coe_supᵢ_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
     (hS : Directed (· ≤ ·) S) : ((⨆ i, S i : NonUnitalSubsemiring R) : Set R) = ⋃ i, ↑(S i) :=
   Set.ext fun x => by simp [mem_supr_of_directed hS]
 #align non_unital_subsemiring.coe_supr_of_directed NonUnitalSubsemiring.coe_supᵢ_of_directed
 
+/- warning: non_unital_subsemiring.mem_Sup_of_directed_on -> NonUnitalSubsemiring.mem_supₛ_of_directedOn is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (forall {x : R}, Iff (Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x (SupSet.supₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) S)) (Exists.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Exists.{0} (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => Membership.Mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.hasMem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) x s))))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7874 : NonUnitalSubsemiring.{u1} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7876 : NonUnitalSubsemiring.{u1} R _inst_1) => LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7874 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7876) S) -> (forall {x : R}, Iff (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x (SupSet.supₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) S)) (Exists.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => And (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s))))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.mem_Sup_of_directed_on NonUnitalSubsemiring.mem_supₛ_of_directedOnₓ'. -/
 theorem mem_supₛ_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
     (hS : DirectedOn (· ≤ ·) S) {x : R} : x ∈ supₛ S ↔ ∃ s ∈ S, x ∈ s :=
   by
@@ -852,6 +1502,12 @@ theorem mem_supₛ_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Non
   simp only [supₛ_eq_supᵢ', mem_supr_of_directed hS.directed_coe, SetCoe.exists, Subtype.coe_mk]
 #align non_unital_subsemiring.mem_Sup_of_directed_on NonUnitalSubsemiring.mem_supₛ_of_directedOn
 
+/- warning: non_unital_subsemiring.coe_Sup_of_directed_on -> NonUnitalSubsemiring.coe_supₛ_of_directedOn is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1))))) S) -> (Eq.{succ u1} (Set.{u1} R) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (SupSet.supₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeSup.toHasSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeSup.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.completeLattice.{u1} R _inst_1))) S)) (Set.unionᵢ.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.unionᵢ.{u1, 0} R (Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.Mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.hasMem.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => (fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) s))))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)}, (Set.Nonempty.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) S) -> (DirectedOn.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (fun (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7977 : NonUnitalSubsemiring.{u1} R _inst_1) (x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7979 : NonUnitalSubsemiring.{u1} R _inst_1) => LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7977 x._@.Mathlib.RingTheory.NonUnitalSubsemiring.Basic._hyg.7979) S) -> (Eq.{succ u1} (Set.{u1} R) (SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (SupSet.supₛ.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toSupSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1)) S)) (Set.unionᵢ.{u1, succ u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (fun (s : NonUnitalSubsemiring.{u1} R _inst_1) => Set.unionᵢ.{u1, 0} R (Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) (fun (H : Membership.mem.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) (Set.instMembershipSet.{u1} (NonUnitalSubsemiring.{u1} R _inst_1)) s S) => SetLike.coe.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s))))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.coe_Sup_of_directed_on NonUnitalSubsemiring.coe_supₛ_of_directedOnₓ'. -/
 theorem coe_supₛ_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
     (hS : DirectedOn (· ≤ ·) S) : (↑(supₛ S) : Set R) = ⋃ s ∈ S, ↑s :=
   Set.ext fun x => by simp [mem_Sup_of_directed_on Sne hS]
@@ -866,12 +1522,24 @@ variable {F : Type _} [NonUnitalNonAssocSemiring T] [NonUnitalRingHomClass F R S
 
 open NonUnitalSubsemiringClass NonUnitalSubsemiring
 
+/- warning: non_unital_ring_hom.cod_restrict -> NonUnitalRingHom.codRestrict is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : NonUnitalSubsemiring.{u2} S _inst_2), (forall (x : R), Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f x) s) -> (NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) s) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) s))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : NonUnitalSubsemiring.{u2} S _inst_2), (forall (x : R), Membership.mem.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) (FunLike.coe.{succ u3, succ u1, succ u2} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u3, u1, u2} F R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5)) f x) s) -> (NonUnitalRingHom.{u1, u2} R (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x s)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) s))
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.cod_restrict NonUnitalRingHom.codRestrictₓ'. -/
 /-- Restriction of a non-unital ring homomorphism to a non-unital subsemiring of the codomain. -/
 def codRestrict (f : F) (s : NonUnitalSubsemiring S) (h : ∀ x, f x ∈ s) : R →ₙ+* s :=
   { (f : R →ₙ* S).codRestrict s.toSubsemigroup h, (f : R →+ S).codRestrict s.toAddSubmonoid h with
     toFun := fun n => ⟨f n, h n⟩ }
 #align non_unital_ring_hom.cod_restrict NonUnitalRingHom.codRestrict
 
+/- warning: non_unital_ring_hom.srange_restrict -> NonUnitalRingHom.srangeRestrict is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), NonUnitalRingHom.{u1, u2} R (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.srange_restrict NonUnitalRingHom.srangeRestrictₓ'. -/
 /-- Restriction of a non-unital ring homomorphism to its range interpreted as a
 non-unital subsemiring.
 
@@ -880,11 +1548,23 @@ def srangeRestrict (f : F) : R →ₙ+* (srange f : NonUnitalSubsemiring S) :=
   codRestrict f (srange f) (mem_srange_self f)
 #align non_unital_ring_hom.srange_restrict NonUnitalRingHom.srangeRestrict
 
+/- warning: non_unital_ring_hom.coe_srange_restrict -> NonUnitalRingHom.coe_srangeRestrict is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (x : R), Eq.{succ u2} S ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) S (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) S (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) S (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) S (coeSubtype.{succ u2} S (fun (x : S) => Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (fun (_x : NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) => R -> (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHom.hasCoeToFun.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHom.srangeRestrict.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f) x)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f x)
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (x : R), Eq.{succ u3} S (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f)) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))))) (NonUnitalRingHom.srangeRestrict.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f) x)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f x)
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.coe_srange_restrict NonUnitalRingHom.coe_srangeRestrictₓ'. -/
 @[simp]
 theorem coe_srangeRestrict (f : F) (x : R) : (srangeRestrict f x : S) = f x :=
   rfl
 #align non_unital_ring_hom.coe_srange_restrict NonUnitalRingHom.coe_srangeRestrict
 
+/- warning: non_unital_ring_hom.srange_restrict_surjective -> NonUnitalRingHom.srangeRestrict_surjective is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), Function.Surjective.{succ u1, succ u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (fun (_x : NonUnitalRingHom.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) => R -> (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHom.hasCoeToFun.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f)) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHom.srangeRestrict.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), Function.Surjective.{succ u2, succ u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u3, u2, u3} (NonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f)) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))) _inst_1 (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))))) (NonUnitalRingHom.srangeRestrict.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f))
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.srange_restrict_surjective NonUnitalRingHom.srangeRestrict_surjectiveₓ'. -/
 theorem srangeRestrict_surjective (f : F) :
     Function.Surjective (srangeRestrict f : R → (srange f : NonUnitalSubsemiring S)) :=
   fun ⟨y, hy⟩ =>
@@ -892,22 +1572,42 @@ theorem srangeRestrict_surjective (f : F) :
   ⟨x, Subtype.ext hx⟩
 #align non_unital_ring_hom.srange_restrict_surjective NonUnitalRingHom.srangeRestrict_surjective
 
+/- warning: non_unital_ring_hom.srange_top_iff_surjective -> NonUnitalRingHom.srange_top_iff_surjective is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F}, Iff (Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f) (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasTop.{u2} S _inst_2))) (Function.Surjective.{succ u1, succ u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F}, Iff (Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f) (Top.top.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u3} S _inst_2))) (Function.Surjective.{succ u2, succ u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f))
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.srange_top_iff_surjective NonUnitalRingHom.srange_top_iff_surjectiveₓ'. -/
 theorem srange_top_iff_surjective {f : F} :
     srange f = (⊤ : NonUnitalSubsemiring S) ↔ Function.Surjective (f : R → S) :=
   SetLike.ext'_iff.trans <| Iff.trans (by rw [coe_srange, coe_top]) Set.range_iff_surjective
 #align non_unital_ring_hom.srange_top_iff_surjective NonUnitalRingHom.srange_top_iff_surjective
 
+/- warning: non_unital_ring_hom.srange_top_of_surjective -> NonUnitalRingHom.srange_top_of_surjective is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F), (Function.Surjective.{succ u1, succ u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f)) -> (Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f) (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasTop.{u2} S _inst_2)))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F), (Function.Surjective.{succ u2, succ u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f)) -> (Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f) (Top.top.{u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u3} S _inst_2)))
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.srange_top_of_surjective NonUnitalRingHom.srange_top_of_surjectiveₓ'. -/
 /-- The range of a surjective non-unital ring homomorphism is the whole of the codomain. -/
 theorem srange_top_of_surjective (f : F) (hf : Function.Surjective (f : R → S)) :
     srange f = (⊤ : NonUnitalSubsemiring S) :=
   srange_top_iff_surjective.2 hf
 #align non_unital_ring_hom.srange_top_of_surjective NonUnitalRingHom.srange_top_of_surjective
 
+#print NonUnitalRingHom.eqSlocus /-
 /-- The non-unital subsemiring of elements `x : R` such that `f x = g x` -/
 def eqSlocus (f g : F) : NonUnitalSubsemiring R :=
   { (f : R →ₙ* S).eqLocus (g : R →ₙ* S), (f : R →+ S).eqLocus g with carrier := { x | f x = g x } }
 #align non_unital_ring_hom.eq_slocus NonUnitalRingHom.eqSlocus
+-/
 
+/- warning: non_unital_ring_hom.eq_on_sclosure -> NonUnitalRingHom.eqOn_sclosure is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {g : F} {s : Set.{u1} R}, (Set.EqOn.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) g) s) -> (Set.EqOn.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) g) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {g : F} {s : Set.{u2} R}, (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) s) -> (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.closure.{u2} R _inst_1 s)))
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.eq_on_sclosure NonUnitalRingHom.eqOn_sclosureₓ'. -/
 /-- If two non-unital ring homomorphisms are equal on a set, then they are equal on its
 non-unital subsemiring closure. -/
 theorem eqOn_sclosure {f g : F} {s : Set R} (h : Set.EqOn (f : R → S) (g : R → S) s) :
@@ -915,21 +1615,45 @@ theorem eqOn_sclosure {f g : F} {s : Set R} (h : Set.EqOn (f : R → S) (g : R 
   show closure s ≤ eqSlocus f g from closure_le.2 h
 #align non_unital_ring_hom.eq_on_sclosure NonUnitalRingHom.eqOn_sclosure
 
+/- warning: non_unital_ring_hom.eq_of_eq_on_stop -> NonUnitalRingHom.eq_of_eqOn_stop is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {f : F} {g : F}, (Set.EqOn.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) g) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (HasLiftT.mk.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (CoeTCₓ.coe.{succ u1, succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Set.{u1} R) (SetLike.Set.hasCoeT.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1)))) -> (Eq.{succ u3} F f g)
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {f : F} {g : F}, (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) (SetLike.coe.{u2, u2} (NonUnitalSubsemiring.{u2} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} R _inst_1) (Top.top.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} R _inst_1)))) -> (Eq.{succ u1} F f g)
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.eq_of_eq_on_stop NonUnitalRingHom.eq_of_eqOn_stopₓ'. -/
 theorem eq_of_eqOn_stop {f g : F}
     (h : Set.EqOn (f : R → S) (g : R → S) (⊤ : NonUnitalSubsemiring R)) : f = g :=
   FunLike.ext _ _ fun x => h trivial
 #align non_unital_ring_hom.eq_of_eq_on_stop NonUnitalRingHom.eq_of_eqOn_stop
 
+/- warning: non_unital_ring_hom.eq_of_eq_on_sdense -> NonUnitalRingHom.eq_of_eqOn_sdense is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {s : Set.{u1} R}, (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.closure.{u1} R _inst_1 s) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1))) -> (forall {f : F} {g : F}, (Set.EqOn.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) g) s) -> (Eq.{succ u3} F f g))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {s : Set.{u2} R}, (Eq.{succ u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.closure.{u2} R _inst_1 s) (Top.top.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} R _inst_1))) -> (forall {f : F} {g : F}, (Set.EqOn.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) g) s) -> (Eq.{succ u1} F f g))
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.eq_of_eq_on_sdense NonUnitalRingHom.eq_of_eqOn_sdenseₓ'. -/
 theorem eq_of_eqOn_sdense {s : Set R} (hs : closure s = ⊤) {f g : F}
     (h : s.EqOn (f : R → S) (g : R → S)) : f = g :=
   eq_of_eqOn_stop <| hs ▸ eqOn_sclosure h
 #align non_unital_ring_hom.eq_of_eq_on_sdense NonUnitalRingHom.eq_of_eqOn_sdense
 
+/- warning: non_unital_ring_hom.sclosure_preimage_le -> NonUnitalRingHom.sclosure_preimage_le is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : Set.{u2} S), LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) (NonUnitalSubsemiring.closure.{u1} R _inst_1 (Set.preimage.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) s)) (NonUnitalSubsemiring.comap.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u2} S _inst_2 s))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (s : Set.{u3} S), LE.le.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (Preorder.toLE.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (PartialOrder.toPreorder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (NonUnitalSubsemiring.{u2} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u2} R _inst_1))))) (NonUnitalSubsemiring.closure.{u2} R _inst_1 (Set.preimage.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) s)) (NonUnitalSubsemiring.comap.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u3} S _inst_2 s))
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.sclosure_preimage_le NonUnitalRingHom.sclosure_preimage_leₓ'. -/
 theorem sclosure_preimage_le (f : F) (s : Set S) :
     closure ((f : R → S) ⁻¹' s) ≤ (closure s).comap f :=
   closure_le.2 fun x hx => SetLike.mem_coe.2 <| mem_comap.2 <| subset_closure hx
 #align non_unital_ring_hom.sclosure_preimage_le NonUnitalRingHom.sclosure_preimage_le
 
+/- warning: non_unital_ring_hom.map_sclosure -> NonUnitalRingHom.map_sclosure is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_5 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] (f : F) (s : Set.{u1} R), Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u1} R _inst_1 s)) (NonUnitalSubsemiring.closure.{u2} S _inst_2 (Set.image.{u1, u2} R S (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_5))) f) s))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_5 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] (f : F) (s : Set.{u2} R), Eq.{succ u3} (NonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.map.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_5 f (NonUnitalSubsemiring.closure.{u2} R _inst_1 s)) (NonUnitalSubsemiring.closure.{u3} S _inst_2 (Set.image.{u2, u3} R S (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_5)) f) s))
+Case conversion may be inaccurate. Consider using '#align non_unital_ring_hom.map_sclosure NonUnitalRingHom.map_sclosureₓ'. -/
 /-- The image under a ring homomorphism of the subsemiring generated by a set equals
 the subsemiring generated by the image of the set. -/
 theorem map_sclosure (f : F) (s : Set R) : (closure s).map f = closure ((f : R → S) '' s) :=
@@ -945,22 +1669,46 @@ namespace NonUnitalSubsemiring
 
 open NonUnitalRingHom NonUnitalSubsemiringClass
 
+/- warning: non_unital_subsemiring.inclusion -> NonUnitalSubsemiring.inclusion is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : NonUnitalSubsemiring.{u1} R _inst_1} {T : NonUnitalSubsemiring.{u1} R _inst_1}, (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.partialOrder.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)))) S T) -> (NonUnitalRingHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) S) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) T) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) S) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) T))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {S : NonUnitalSubsemiring.{u1} R _inst_1} {T : NonUnitalSubsemiring.{u1} R _inst_1}, (LE.le.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (Preorder.toLE.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (PartialOrder.toPreorder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instCompleteLatticeNonUnitalSubsemiring.{u1} R _inst_1))))) S T) -> (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x S)) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x T)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) S) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) T))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.inclusion NonUnitalSubsemiring.inclusionₓ'. -/
 /-- The non-unital ring homomorphism associated to an inclusion of
 non-unital subsemirings. -/
 def inclusion {S T : NonUnitalSubsemiring R} (h : S ≤ T) : S →ₙ+* T :=
   codRestrict (Subtype S) _ fun x => h x.2
 #align non_unital_subsemiring.inclusion NonUnitalSubsemiring.inclusion
 
+/- warning: non_unital_subsemiring.srange_subtype -> NonUnitalSubsemiring.srange_subtype is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalRingHom.srange.{u1, u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) s) _inst_1 (NonUnitalRingHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) s) _inst_1) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) s) _inst_1) (NonUnitalSubsemiringClass.subtype.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (NonUnitalSubsemiring.nonUnitalSubsemiringClass.{u1} R _inst_1) s)) s
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] (s : NonUnitalSubsemiring.{u1} R _inst_1), Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalRingHom.srange.{u1, u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s) _inst_1 (NonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s) _inst_1) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) R (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s) _inst_1) (NonUnitalSubsemiringClass.subtype.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) s
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.srange_subtype NonUnitalSubsemiring.srange_subtypeₓ'. -/
 @[simp]
 theorem srange_subtype (s : NonUnitalSubsemiring R) : (Subtype s).srange = s :=
   SetLike.coe_injective <| (coe_srange _).trans Subtype.range_coe
 #align non_unital_subsemiring.srange_subtype NonUnitalSubsemiring.srange_subtype
 
+/- warning: non_unital_subsemiring.range_fst -> NonUnitalSubsemiring.range_fst is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalRingHom.srange.{max u1 u2, u1, max u1 u2} (Prod.{u1, u2} R S) R (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_1 (NonUnitalRingHom.{max u1 u2, u1} (Prod.{u1, u2} R S) R (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.nonUnitalRingHomClass.{max u1 u2, u1} (Prod.{u1, u2} R S) R (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.fst.{u1, u2} R S _inst_1 _inst_2)) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.hasTop.{u1} R _inst_1))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalRingHom.srange.{max u1 u2, u1, max u1 u2} (Prod.{u1, u2} R S) R (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_1 (NonUnitalRingHom.{max u2 u1, u1} (Prod.{u1, u2} R S) R (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{max u1 u2, u1} (Prod.{u1, u2} R S) R (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_1) (NonUnitalRingHom.fst.{u1, u2} R S _inst_1 _inst_2)) (Top.top.{u1} (NonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u1} R _inst_1))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.range_fst NonUnitalSubsemiring.range_fstₓ'. -/
 @[simp]
 theorem range_fst : (fst R S).srange = ⊤ :=
   NonUnitalRingHom.srange_top_of_surjective (fst R S) Prod.fst_surjective
 #align non_unital_subsemiring.range_fst NonUnitalSubsemiring.range_fst
 
+/- warning: non_unital_subsemiring.range_snd -> NonUnitalSubsemiring.range_snd is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{max u1 u2, u2, max u1 u2} (Prod.{u1, u2} R S) S (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_2 (NonUnitalRingHom.{max u1 u2, u2} (Prod.{u1, u2} R S) S (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{max u1 u2, u2} (Prod.{u1, u2} R S) S (Prod.nonUnitalNonAssocSemiring.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.snd.{u1, u2} R S _inst_1 _inst_2)) (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.hasTop.{u2} S _inst_2))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S], Eq.{succ u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{max u1 u2, u2, max u1 u2} (Prod.{u1, u2} R S) S (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_2 (NonUnitalRingHom.{max u2 u1, u2} (Prod.{u1, u2} R S) S (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{max u1 u2, u2} (Prod.{u1, u2} R S) S (Prod.instNonUnitalNonAssocSemiringProd.{u1, u2} R S _inst_1 _inst_2) _inst_2) (NonUnitalRingHom.snd.{u1, u2} R S _inst_1 _inst_2)) (Top.top.{u2} (NonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instTopNonUnitalSubsemiring.{u2} S _inst_2))
+Case conversion may be inaccurate. Consider using '#align non_unital_subsemiring.range_snd NonUnitalSubsemiring.range_sndₓ'. -/
 @[simp]
 theorem range_snd : (snd R S).srange = ⊤ :=
   NonUnitalRingHom.srange_top_of_surjective (snd R S) <| Prod.snd_surjective
@@ -976,6 +1724,12 @@ variable {s t : NonUnitalSubsemiring R}
 
 variable {F : Type _} [NonUnitalRingHomClass F R S]
 
+/- warning: ring_equiv.non_unital_subsemiring_congr -> RingEquiv.nonUnitalSubsemiringCongr is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {t : NonUnitalSubsemiring.{u1} R _inst_1}, (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) s t) -> (RingEquiv.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) t) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (RingEquiv.nonUnitalSubsemiringCongr._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (RingEquiv.nonUnitalSubsemiringCongr._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (RingEquiv.nonUnitalSubsemiringCongr._proof_3.{u1} R _inst_1) t) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (RingEquiv.nonUnitalSubsemiringCongr._proof_4.{u1} R _inst_1) t))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] {s : NonUnitalSubsemiring.{u1} R _inst_1} {t : NonUnitalSubsemiring.{u1} R _inst_1}, (Eq.{succ u1} (NonUnitalSubsemiring.{u1} R _inst_1) s t) -> (RingEquiv.{u1, u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x t)) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x t)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) t)) (AddSubmonoid.add.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (AddSubmonoid.add.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 t)))
+Case conversion may be inaccurate. Consider using '#align ring_equiv.non_unital_subsemiring_congr RingEquiv.nonUnitalSubsemiringCongrₓ'. -/
 /-- Makes the identity isomorphism from a proof two non-unital subsemirings of a multiplicative
 monoid are equal. -/
 def nonUnitalSubsemiringCongr (h : s = t) : s ≃+* t :=
@@ -985,6 +1739,12 @@ def nonUnitalSubsemiringCongr (h : s = t) : s ≃+* t :=
     map_add' := fun _ _ => rfl }
 #align ring_equiv.non_unital_subsemiring_congr RingEquiv.nonUnitalSubsemiringCongr
 
+/- warning: ring_equiv.sof_left_inverse' -> RingEquiv.sofLeftInverse' is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {g : S -> R} {f : F}, (Function.LeftInverse.{succ u1, succ u2} R S g (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) -> (RingEquiv.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {g : S -> R} {f : F}, (Function.LeftInverse.{succ u1, succ u2} R S g (FunLike.coe.{succ u3, succ u1, succ u2} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u3, u1, u2} F R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4)) f)) -> (RingEquiv.{u1, u2} R (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (AddSubmonoid.add.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} S _inst_2 (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))))
+Case conversion may be inaccurate. Consider using '#align ring_equiv.sof_left_inverse' RingEquiv.sofLeftInverse'ₓ'. -/
 /-- Restrict a non-unital ring homomorphism with a left inverse to a ring isomorphism to its
 `non_unital_ring_hom.srange`. -/
 def sofLeftInverse' {g : S → R} {f : F} (h : Function.LeftInverse g f) : R ≃+* srange f :=
@@ -998,18 +1758,36 @@ def sofLeftInverse' {g : S → R} {f : F} (h : Function.LeftInverse g f) : R ≃
         show f (g x) = x by rw [← hx', h x'] }
 #align ring_equiv.sof_left_inverse' RingEquiv.sofLeftInverse'
 
+/- warning: ring_equiv.sof_left_inverse'_apply -> RingEquiv.sofLeftInverse'_apply is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {g : S -> R} {f : F} (h : Function.LeftInverse.{succ u1, succ u2} R S g (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) (x : R), Eq.{succ u2} S ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (coeSubtype.{succ u2} S (fun (x : S) => Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingEquiv.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (fun (_x : RingEquiv.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) => R -> (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquiv.hasCoeToFun.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquiv.sofLeftInverse'.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 g f h) x)) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f x)
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {g : S -> R} {f : F} (h : Function.LeftInverse.{succ u2, succ u3} R S g (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f)) (x : R), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (fun (_x : R) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (EquivLike.toEmbeddingLike.{max (succ u2) (succ u3), succ u2, succ u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (MulEquivClass.toEquivLike.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquivClass.toMulEquivClass.{max u2 u3, u2, u3} (RingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))) R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquiv.instRingEquivClassRingEquiv.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f)))))))) (RingEquiv.sofLeftInverse'.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 g f h) x)) (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f x)
+Case conversion may be inaccurate. Consider using '#align ring_equiv.sof_left_inverse'_apply RingEquiv.sofLeftInverse'_applyₓ'. -/
 @[simp]
 theorem sofLeftInverse'_apply {g : S → R} {f : F} (h : Function.LeftInverse g f) (x : R) :
     ↑(sofLeftInverse' h x) = f x :=
   rfl
 #align ring_equiv.sof_left_inverse'_apply RingEquiv.sofLeftInverse'_apply
 
+/- warning: ring_equiv.sof_left_inverse'_symm_apply -> RingEquiv.sofLeftInverse'_symm_apply is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] {F : Type.{u3}} [_inst_4 : NonUnitalRingHomClass.{u3, u1, u2} F R S _inst_1 _inst_2] {g : S -> R} {f : F} (h : Function.LeftInverse.{succ u1, succ u2} R S g (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => R -> S) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F R (fun (_x : R) => S) (MulHomClass.toFunLike.{u3, u1, u2} F R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalRingHomClass.toMulHomClass.{u3, u1, u2} F R S _inst_1 _inst_2 _inst_4))) f)) (x : coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)), Eq.{succ u1} R (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) R (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (fun (_x : RingEquiv.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) R (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) => (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) -> R) (RingEquiv.hasCoeToFun.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) R (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1))) (RingEquiv.symm.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_1.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.sofLeftInverse'._proof_2.{u2} S _inst_2) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) (RingEquiv.sofLeftInverse'.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 g f h)) x) (g ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)) S (coeSubtype.{succ u2} S (fun (x : S) => Membership.Mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.hasMem.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) x (NonUnitalRingHom.srange.{u1, u2, u3} R S _inst_1 _inst_2 F _inst_4 f)))))) x))
+but is expected to have type
+  forall {R : Type.{u2}} {S : Type.{u3}} [_inst_1 : NonUnitalNonAssocSemiring.{u2} R] [_inst_2 : NonUnitalNonAssocSemiring.{u3} S] {F : Type.{u1}} [_inst_4 : NonUnitalRingHomClass.{u1, u2, u3} F R S _inst_1 _inst_2] {g : S -> R} {f : F} (h : Function.LeftInverse.{succ u2, succ u3} R S g (FunLike.coe.{succ u1, succ u2, succ u3} F R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{u1, u2, u3} F R S (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} S _inst_2) (NonUnitalRingHomClass.toMulHomClass.{u1, u2, u3} F R S _inst_1 _inst_2 _inst_4)) f)) (x : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) => R) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (fun (_x : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) => R) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u3), succ u3, succ u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (EquivLike.toEmbeddingLike.{max (succ u2) (succ u3), succ u3, succ u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (MulEquivClass.toEquivLike.{max u2 u3, u3, u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (RingEquivClass.toMulEquivClass.{max u2 u3, u3, u2} (RingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))) (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (RingEquiv.instRingEquivClassRingEquiv.{u3, u2} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) R (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1))))))) (RingEquiv.symm.{u2, u3} R (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalNonAssocSemiring.toMul.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u3} (Subtype.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) (SetLike.instMembership.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2)) x (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u3, u3} S (NonUnitalSubsemiring.{u3} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R _inst_1)) (AddSubmonoid.add.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u3} S _inst_2 (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) (RingEquiv.sofLeftInverse'.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 g f h)) x) (g (Subtype.val.{succ u3} S (fun (x : S) => Membership.mem.{u3, u3} S (Set.{u3} S) (Set.instMembershipSet.{u3} S) x (SetLike.coe.{u3, u3} (NonUnitalSubsemiring.{u3} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u3} S _inst_2) (NonUnitalRingHom.srange.{u2, u3, u1} R S _inst_1 _inst_2 F _inst_4 f))) x))
+Case conversion may be inaccurate. Consider using '#align ring_equiv.sof_left_inverse'_symm_apply RingEquiv.sofLeftInverse'_symm_applyₓ'. -/
 @[simp]
 theorem sofLeftInverse'_symm_apply {g : S → R} {f : F} (h : Function.LeftInverse g f)
     (x : srange f) : (sofLeftInverse' h).symm x = g x :=
   rfl
 #align ring_equiv.sof_left_inverse'_symm_apply RingEquiv.sofLeftInverse'_symm_apply
 
+/- warning: ring_equiv.non_unital_subsemiring_map -> RingEquiv.nonUnitalSubsemiringMap is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (e : RingEquiv.{u1, u2} R S (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (Distrib.toHasAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (s : NonUnitalSubsemiring.{u1} R _inst_1), RingEquiv.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (NonUnitalSubsemiring.{u1} R _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.setLike.{u1} R _inst_1)) s) (coeSort.{succ u2, succ (succ u2)} (NonUnitalSubsemiring.{u2} S _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.setLike.{u2} S _inst_2)) (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) (RingEquiv.toNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2 e) s)) (MulMemClass.mul.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (RingEquiv.nonUnitalSubsemiringMap._proof_1.{u1} R _inst_1) s) (AddMemClass.add.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (AddZeroClass.toHasAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1)))) (NonUnitalSubsemiring.setLike.{u1} R _inst_1) (RingEquiv.nonUnitalSubsemiringMap._proof_2.{u1} R _inst_1) s) (MulMemClass.mul.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (Distrib.toHasMul.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2)) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.nonUnitalSubsemiringMap._proof_3.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) (RingEquiv.toNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2 e) s)) (AddMemClass.add.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (AddZeroClass.toHasAdd.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2)))) (NonUnitalSubsemiring.setLike.{u2} S _inst_2) (RingEquiv.nonUnitalSubsemiringMap._proof_4.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.nonUnitalRingHomClass.{u1, u2} R S _inst_1 _inst_2) (RingEquiv.toNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2 e) s))
+but is expected to have type
+  forall {R : Type.{u1}} {S : Type.{u2}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} R] [_inst_2 : NonUnitalNonAssocSemiring.{u2} S] (e : RingEquiv.{u1, u2} R S (NonUnitalNonAssocSemiring.toMul.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} S _inst_2) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R _inst_1)) (Distrib.toAdd.{u2} S (NonUnitalNonAssocSemiring.toDistrib.{u2} S _inst_2))) (s : NonUnitalSubsemiring.{u1} R _inst_1), RingEquiv.{u1, u2} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (RingEquiv.toNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2 e) s))) (NonUnitalNonAssocSemiring.toMul.{u1} (Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) (SetLike.instMembership.{u1, u1} (NonUnitalSubsemiring.{u1} R _inst_1) R (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1)) x s)) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u1, u1} R (NonUnitalSubsemiring.{u1} R _inst_1) _inst_1 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u1} R _inst_1) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u1} R _inst_1) s)) (NonUnitalNonAssocSemiring.toMul.{u2} (Subtype.{succ u2} S (fun (x : S) => Membership.mem.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) (SetLike.instMembership.{u2, u2} (NonUnitalSubsemiring.{u2} S _inst_2) S (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2)) x (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (RingEquiv.toNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2 e) s))) (NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring.{u2, u2} S (NonUnitalSubsemiring.{u2} S _inst_2) _inst_2 (NonUnitalSubsemiring.instSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.instNonUnitalSubsemiringClassNonUnitalSubsemiringInstSetLikeNonUnitalSubsemiring.{u2} S _inst_2) (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (RingEquiv.toNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2 e) s))) (AddSubmonoid.add.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_1))) (NonUnitalSubsemiring.toAddSubmonoid.{u1} R _inst_1 s)) (AddSubmonoid.add.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S _inst_2))) (NonUnitalSubsemiring.toAddSubmonoid.{u2} S _inst_2 (NonUnitalSubsemiring.map.{u1, u2, max u1 u2} R S _inst_1 _inst_2 (NonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (NonUnitalRingHom.instNonUnitalRingHomClassNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2) (RingEquiv.toNonUnitalRingHom.{u1, u2} R S _inst_1 _inst_2 e) s)))
+Case conversion may be inaccurate. Consider using '#align ring_equiv.non_unital_subsemiring_map RingEquiv.nonUnitalSubsemiringMapₓ'. -/
 /-- Given an equivalence `e : R ≃+* S` of non-unital semirings and a non-unital subsemiring
 `s` of `R`, `non_unital_subsemiring_map e s` is the induced equivalence between `s` and
 `s.map e` -/
Diff
@@ -415,7 +415,7 @@ theorem mem_bot {x : R} : x ∈ (⊥ : NonUnitalSubsemiring R) ↔ x = 0 :=
 #align non_unital_subsemiring.mem_bot NonUnitalSubsemiring.mem_bot
 
 /-- The inf of two non-unital subsemirings is their intersection. -/
-instance : HasInf (NonUnitalSubsemiring R) :=
+instance : Inf (NonUnitalSubsemiring R) :=
   ⟨fun s t =>
     { s.toSubsemigroup ⊓ t.toSubsemigroup, s.toAddSubmonoid ⊓ t.toAddSubmonoid with
       carrier := s ∩ t }⟩

Changes in mathlib4

mathlib3
mathlib4
chore: refactor to avoid importing Ring for Group topics (#11913)

This is a far from a complete success at the PR title, but it makes a fair bit of progress, and then guards this with appropriate assert_not_exists Ring statements.

It also breaks apart the Mathlib.GroupTheory.Subsemigroup.[Center|Centralizer] files, to pull the Set.center and Set.centralizer declarations into their own files not depending on Subsemigroup.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>

Diff
@@ -5,9 +5,12 @@ Authors: Jireh Loreaux
 -/
 import Mathlib.Algebra.Ring.Equiv
 import Mathlib.Algebra.Ring.Prod
+import Mathlib.Algebra.Group.Hom.End
 import Mathlib.Data.Set.Finite
 import Mathlib.GroupTheory.Submonoid.Membership
 import Mathlib.GroupTheory.Subsemigroup.Membership
+import Mathlib.Algebra.Ring.Center
+import Mathlib.Algebra.Ring.Centralizer
 import Mathlib.GroupTheory.Subsemigroup.Centralizer
 
 #align_import ring_theory.non_unital_subsemiring.basic from "leanprover-community/mathlib"@"b915e9392ecb2a861e1e766f0e1df6ac481188ca"
chore: remove more bex and ball from lemma names (#11615)

Follow-up to #10816.

Remaining places containing such lemmas are

  • Option.bex_ne_none and Option.ball_ne_none: defined in Lean core
  • Nat.decidableBallLT and Nat.decidableBallLE: defined in Lean core
  • bef_def is still used in a number of places and could be renamed
  • BAll.imp_{left,right}, BEx.imp_{left,right}, BEx.intro and BEx.elim

I only audited the first ~150 lemmas mentioning "ball"; too many lemmas named after Metric.ball/openBall/closedBall.

Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>

Diff
@@ -303,9 +303,8 @@ theorem coe_map (f : F) (s : NonUnitalSubsemiring R) : (s.map f : Set S) = f ''
 #align non_unital_subsemiring.coe_map NonUnitalSubsemiring.coe_map
 
 @[simp]
-theorem mem_map {f : F} {s : NonUnitalSubsemiring R} {y : S} : y ∈ s.map f ↔ ∃ x ∈ s, f x = y := by
-  convert Set.mem_image_iff_bex
-  simp
+theorem mem_map {f : F} {s : NonUnitalSubsemiring R} {y : S} : y ∈ s.map f ↔ ∃ x ∈ s, f x = y :=
+  Iff.rfl
 #align non_unital_subsemiring.mem_map NonUnitalSubsemiring.mem_map
 
 @[simp]
style: replace '.-/' by '. -/' (#11938)

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

Diff
@@ -123,7 +123,7 @@ theorem ext {S T : NonUnitalSubsemiring R} (h : ∀ x, x ∈ S ↔ x ∈ T) : S
 #align non_unital_subsemiring.ext NonUnitalSubsemiring.ext
 
 /-- Copy of a non-unital subsemiring with a new `carrier` equal to the old one. Useful to fix
-definitional equalities.-/
+definitional equalities. -/
 protected def copy (S : NonUnitalSubsemiring R) (s : Set R) (hs : s = ↑S) :
     NonUnitalSubsemiring R :=
   { S.toAddSubmonoid.copy s hs, S.toSubsemigroup.copy s hs with carrier := s }
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
@@ -998,7 +998,6 @@ namespace RingEquiv
 open NonUnitalRingHom NonUnitalSubsemiringClass
 
 variable {s t : NonUnitalSubsemiring R}
-
 variable {F : Type*} [FunLike F R S] [NonUnitalRingHomClass F R S]
 
 /-- Makes the identity isomorphism from a proof two non-unital subsemirings of a multiplicative
chore(Algebra): improve argument names to induction principles (#11439)

These are the case names used by the induction tactic after the with.

This replaces H0, H1, Hmul etc with zero, one, mul.

This PR does not touch Submonoid or Subgroup, as to_additive does not know how to rename the argument names. There are ways to work around this, but I'd prefer to leave them to a later PR.

This also leaves the closure_induction₂ variants alone, as renaming the arguments is more work for less gain.

Diff
@@ -706,9 +706,9 @@ theorem closure_addSubmonoid_closure {s : Set R} :
 of `s`, and is preserved under addition and multiplication, then `p` holds for all elements
 of the closure of `s`. -/
 @[elab_as_elim]
-theorem closure_induction {s : Set R} {p : R → Prop} {x} (h : x ∈ closure s) (Hs : ∀ x ∈ s, p x)
-    (H0 : p 0) (Hadd : ∀ x y, p x → p y → p (x + y)) (Hmul : ∀ x y, p x → p y → p (x * y)) : p x :=
-  (@closure_le _ _ _ ⟨⟨⟨p, fun {a b} => Hadd a b⟩, H0⟩, fun {a b} => Hmul a b⟩).2 Hs h
+theorem closure_induction {s : Set R} {p : R → Prop} {x} (h : x ∈ closure s) (mem : ∀ x ∈ s, p x)
+    (zero : p 0) (add : ∀ x y, p x → p y → p (x + y)) (mul : ∀ x y, p x → p y → p (x * y)) : p x :=
+  (@closure_le _ _ _ ⟨⟨⟨p, fun {a b} => add a b⟩, zero⟩, fun {a b} => mul a b⟩).2 mem h
 #align non_unital_subsemiring.closure_induction NonUnitalSubsemiring.closure_induction
 
 /-- An induction principle for closure membership for predicates with two arguments. -/
chore: more backporting of simp changes from #10995 (#11001)

Co-authored-by: Patrick Massot <patrickmassot@free.fr> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -857,7 +857,7 @@ theorem mem_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubse
       (⨆ i, (S i).toSubsemigroup) (Subsemigroup.coe_iSup_of_directed hS)
       (⨆ i, (S i).toAddSubmonoid) (AddSubmonoid.coe_iSup_of_directed hS)
   -- Porting note `@this` doesn't work
-  suffices H : ⨆ i, S i ≤ U by simpa using @H x
+  suffices H : ⨆ i, S i ≤ U by simpa [U] using @H x
   exact iSup_le fun i x hx => Set.mem_iUnion.2 ⟨i, hx⟩
 #align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_iSup_of_directed
 
chore: bump aesop; update syntax (#10955)

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

Diff
@@ -593,7 +593,7 @@ theorem mem_closure {x : R} {s : Set R} :
 #align non_unital_subsemiring.mem_closure NonUnitalSubsemiring.mem_closure
 
 /-- The non-unital subsemiring generated by a set includes the set. -/
-@[simp, aesop safe 20 apply (rule_sets [SetLike])]
+@[simp, aesop safe 20 apply (rule_sets := [SetLike])]
 theorem subset_closure {s : Set R} : s ⊆ closure s := fun _ hx => mem_closure.2 fun _ hS => hS hx
 #align non_unital_subsemiring.subset_closure NonUnitalSubsemiring.subset_closure
 
chore(diamonds): appropriate transparency levels for diamond checks (#10910)

Currently, we have multiple "no-diamond" tests of the form

example : x = y := rfl

where X and Y are instances of some class. The problem is that since simp and type class synthesis operate at reducible_and_instances transparency this check means little.

We went through all the mentions of diamonds and either added with_reducible_and_instancse or added a reference to the issue #10906.

Co-authored-by: Kevin Buzzard <k.buzzard@imperial.ac.uk>

Diff
@@ -516,7 +516,7 @@ section NonUnitalSemiring
 example {R} [NonUnitalSemiring R] :
     (center.instNonUnitalCommSemiring _).toNonUnitalSemiring =
       NonUnitalSubsemiringClass.toNonUnitalSemiring (center R) :=
-  rfl
+  by with_reducible_and_instances rfl
 
 theorem mem_center_iff {R} [NonUnitalSemiring R] {z : R} : z ∈ center R ↔ ∀ g, g * z = z * g := by
   rw [← Semigroup.mem_center_iff]
chore: remove stream-of-consciousness uses of have, replace and suffices (#10640)

No changes to tactic file, it's just boring fixes throughout the library.

This follows on from #6964.

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -857,7 +857,7 @@ theorem mem_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubse
       (⨆ i, (S i).toSubsemigroup) (Subsemigroup.coe_iSup_of_directed hS)
       (⨆ i, (S i).toAddSubmonoid) (AddSubmonoid.coe_iSup_of_directed hS)
   -- Porting note `@this` doesn't work
-  suffices H : ⨆ i, S i ≤ U; simpa using @H x
+  suffices H : ⨆ i, S i ≤ U by simpa using @H x
   exact iSup_le fun i x hx => Set.mem_iUnion.2 ⟨i, hx⟩
 #align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_iSup_of_directed
 
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
@@ -207,7 +207,8 @@ end NonUnitalSubsemiring
 
 namespace NonUnitalSubsemiring
 
-variable {F G : Type*} [NonUnitalRingHomClass F R S] [NonUnitalRingHomClass G S T]
+variable {F G : Type*} [FunLike F R S] [NonUnitalRingHomClass F R S]
+  [FunLike G S T] [NonUnitalRingHomClass G S T]
   (s : NonUnitalSubsemiring R)
 
 @[simp, norm_cast]
@@ -348,7 +349,8 @@ namespace NonUnitalRingHom
 
 open NonUnitalSubsemiring
 
-variable {F G : Type*} [NonUnitalRingHomClass F R S] [NonUnitalRingHomClass G S T] (f : F) (g : G)
+variable {F G : Type*} [FunLike F R S] [NonUnitalRingHomClass F R S]
+variable [FunLike G S T] [NonUnitalRingHomClass G S T] (f : F) (g : G)
 
 /-- The range of a non-unital ring homomorphism is a non-unital subsemiring.
 See note [range copy pattern]. -/
@@ -357,21 +359,21 @@ def srange : NonUnitalSubsemiring S :=
 #align non_unital_ring_hom.srange NonUnitalRingHom.srange
 
 @[simp]
-theorem coe_srange : (@srange R S _ _ _ _ f : Set S) = Set.range f :=
+theorem coe_srange : (srange f : Set S) = Set.range f :=
   rfl
 #align non_unital_ring_hom.coe_srange NonUnitalRingHom.coe_srange
 
 @[simp]
-theorem mem_srange {f : F} {y : S} : y ∈ @srange R S _ _ _ _ f ↔ ∃ x, f x = y :=
+theorem mem_srange {f : F} {y : S} : y ∈ srange f ↔ ∃ x, f x = y :=
   Iff.rfl
 #align non_unital_ring_hom.mem_srange NonUnitalRingHom.mem_srange
 
-theorem srange_eq_map : @srange R S _ _ _ _ f = (⊤ : NonUnitalSubsemiring R).map f := by
+theorem srange_eq_map : srange f = (⊤ : NonUnitalSubsemiring R).map f := by
   ext
   simp
 #align non_unital_ring_hom.srange_eq_map NonUnitalRingHom.srange_eq_map
 
-theorem mem_srange_self (f : F) (x : R) : f x ∈ @srange R S _ _ _ _ f :=
+theorem mem_srange_self (f : F) (x : R) : f x ∈ srange f :=
   mem_srange.mpr ⟨x, rfl⟩
 #align non_unital_ring_hom.mem_srange_self NonUnitalRingHom.mem_srange_self
 
@@ -733,7 +735,7 @@ protected def gi : GaloisInsertion (@closure R _) (↑) where
 #align non_unital_subsemiring.gi NonUnitalSubsemiring.gi
 
 variable {R}
-variable {F : Type*} [NonUnitalRingHomClass F R S]
+variable {F : Type*} [FunLike F R S] [NonUnitalRingHomClass F R S]
 
 /-- Closure of a non-unital subsemiring `S` equals `S`. -/
 theorem closure_eq (s : NonUnitalSubsemiring R) : closure (s : Set R) = s :=
@@ -879,7 +881,7 @@ end NonUnitalSubsemiring
 
 namespace NonUnitalRingHom
 
-variable {F : Type*} [NonUnitalNonAssocSemiring T] [NonUnitalRingHomClass F R S]
+variable {F : Type*} [NonUnitalNonAssocSemiring T] [FunLike F R S] [NonUnitalRingHomClass F R S]
   {S' : Type*} [SetLike S' S] [NonUnitalSubsemiringClass S' S]
   {s : NonUnitalSubsemiring R}
 
@@ -997,7 +999,7 @@ open NonUnitalRingHom NonUnitalSubsemiringClass
 
 variable {s t : NonUnitalSubsemiring R}
 
-variable {F : Type*} [NonUnitalRingHomClass F R S]
+variable {F : Type*} [FunLike F R S] [NonUnitalRingHomClass F R S]
 
 /-- Makes the identity isomorphism from a proof two non-unital subsemirings of a multiplicative
 monoid are equal. -/
chore: tidy various files (#9851)
Diff
@@ -504,8 +504,7 @@ lemma _root_.Set.mem_center_iff_addMonoidHom (a : R) :
       AddMonoidHom.comp .mul (.mulRight a) = .compl₂ .mul (.mulLeft a) ∧
       AddMonoidHom.compr₂ .mul (.mulRight a) = .compl₂ .mul (.mulRight a) := by
   rw [Set.mem_center_iff, isMulCentral_iff]
-  simp_rw [DFunLike.ext_iff]
-  rfl
+  simp [DFunLike.ext_iff]
 
 end NonUnitalNonAssocSemiring
 
chore(*): rename FunLike to DFunLike (#9785)

This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.

This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:

sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean     
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean

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

Diff
@@ -504,7 +504,7 @@ lemma _root_.Set.mem_center_iff_addMonoidHom (a : R) :
       AddMonoidHom.comp .mul (.mulRight a) = .compl₂ .mul (.mulLeft a) ∧
       AddMonoidHom.compr₂ .mul (.mulRight a) = .compl₂ .mul (.mulRight a) := by
   rw [Set.mem_center_iff, isMulCentral_iff]
-  simp_rw [FunLike.ext_iff]
+  simp_rw [DFunLike.ext_iff]
   rfl
 
 end NonUnitalNonAssocSemiring
@@ -941,7 +941,7 @@ theorem eqOn_sclosure {f g : F} {s : Set R} (h : Set.EqOn (f : R → S) (g : R 
 
 theorem eq_of_eqOn_stop {f g : F}
     (h : Set.EqOn (f : R → S) (g : R → S) (⊤ : NonUnitalSubsemiring R)) : f = g :=
-  FunLike.ext _ _ fun _ => h trivial
+  DFunLike.ext _ _ fun _ => h trivial
 #align non_unital_ring_hom.eq_of_eq_on_stop NonUnitalRingHom.eq_of_eqOn_stop
 
 theorem eq_of_eqOn_sdense {s : Set R} (hs : closure s = ⊤) {f g : F}
feat(RingTheory/NonUnitalSubsemiring): point-free statement of centrality (#9053)

Also adds isMulCentral_iff using mk_iff.

Diff
@@ -494,6 +494,19 @@ instance center.instNonUnitalCommSemiring : NonUnitalCommSemiring (center R) :=
   { Subsemigroup.center.commSemigroup,
     NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring (center R) with }
 
+/-- A point-free means of proving membership in the center, for a non-associative ring.
+
+This can be helpful when working with types that have ext lemmas for `R →+ R`. -/
+lemma _root_.Set.mem_center_iff_addMonoidHom (a : R) :
+    a ∈ Set.center R ↔
+      AddMonoidHom.mulLeft a = .mulRight a ∧
+      AddMonoidHom.compr₂ .mul (.mulLeft a) = .comp .mul (.mulLeft a) ∧
+      AddMonoidHom.comp .mul (.mulRight a) = .compl₂ .mul (.mulLeft a) ∧
+      AddMonoidHom.compr₂ .mul (.mulRight a) = .compl₂ .mul (.mulRight a) := by
+  rw [Set.mem_center_iff, isMulCentral_iff]
+  simp_rw [FunLike.ext_iff]
+  rfl
+
 end NonUnitalNonAssocSemiring
 
 section NonUnitalSemiring
refactor(Algebra): Define the center appropriately for non-associative algebras (#6996)

For a sensible theory, we require that the centre of an algebra is closed under multiplication. The definition currently in Mathlib works for associative algebras, but not non-associative algebras. This PR uses the definition from Cabrera García and Rodríguez Palacios, which works for any multiplication (addition) and which coincides with the current definition in the associative case.

I did consider whether the centralizer should also be re-defined in terms of operator commutation, but this still results in a centralizer which is not closed under multiplication in the non-associative case. I have therefore retained the current definition, but changed centralizer_eq_top_iff_subset and centralizer_univ to only work in the associative case.

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com> Co-authored-by: Christopher Hoskin <christopher.hoskin@overleaf.com>

Diff
@@ -467,28 +467,46 @@ theorem eq_top_iff' (A : NonUnitalSubsemiring R) : A = ⊤ ↔ ∀ x : R, x ∈
   eq_top_iff.trans ⟨fun h m => h <| mem_top m, fun h m _ => h m⟩
 #align non_unital_subsemiring.eq_top_iff' NonUnitalSubsemiring.eq_top_iff'
 
-section Center
+section NonUnitalNonAssocSemiring
 
-/-- The center of a semiring `R` is the set of elements that commute with everything in `R` -/
-def center (R) [NonUnitalSemiring R] : NonUnitalSubsemiring R :=
+variable (R) [NonUnitalNonAssocSemiring R]
+
+/-- The center of a semiring `R` is the set of elements that commute and associate with everything
+in `R` -/
+def center : NonUnitalSubsemiring R :=
   { Subsemigroup.center R with
-    carrier := Set.center R
     zero_mem' := Set.zero_mem_center R
     add_mem' := Set.add_mem_center }
 #align non_unital_subsemiring.center NonUnitalSubsemiring.center
 
-theorem coe_center (R) [NonUnitalSemiring R] : ↑(center R) = Set.center R :=
+theorem coe_center : ↑(center R) = Set.center R :=
   rfl
 #align non_unital_subsemiring.coe_center NonUnitalSubsemiring.coe_center
 
 @[simp]
-theorem center_toSubsemigroup (R) [NonUnitalSemiring R] :
+theorem center_toSubsemigroup :
     (center R).toSubsemigroup = Subsemigroup.center R :=
   rfl
 #align non_unital_subsemiring.center_to_subsemigroup NonUnitalSubsemiring.center_toSubsemigroup
 
-theorem mem_center_iff {R} [NonUnitalSemiring R] {z : R} : z ∈ center R ↔ ∀ g, g * z = z * g :=
-  Iff.rfl
+/-- The center is commutative and associative. -/
+instance center.instNonUnitalCommSemiring : NonUnitalCommSemiring (center R) :=
+  { Subsemigroup.center.commSemigroup,
+    NonUnitalSubsemiringClass.toNonUnitalNonAssocSemiring (center R) with }
+
+end NonUnitalNonAssocSemiring
+
+section NonUnitalSemiring
+
+-- no instance diamond, unlike the unital version
+example {R} [NonUnitalSemiring R] :
+    (center.instNonUnitalCommSemiring _).toNonUnitalSemiring =
+      NonUnitalSubsemiringClass.toNonUnitalSemiring (center R) :=
+  rfl
+
+theorem mem_center_iff {R} [NonUnitalSemiring R] {z : R} : z ∈ center R ↔ ∀ g, g * z = z * g := by
+  rw [← Semigroup.mem_center_iff]
+  exact Iff.rfl
 #align non_unital_subsemiring.mem_center_iff NonUnitalSubsemiring.mem_center_iff
 
 instance decidableMemCenter {R} [NonUnitalSemiring R] [DecidableEq R] [Fintype R] :
@@ -500,13 +518,7 @@ theorem center_eq_top (R) [NonUnitalCommSemiring R] : center R = ⊤ :=
   SetLike.coe_injective (Set.center_eq_univ R)
 #align non_unital_subsemiring.center_eq_top NonUnitalSubsemiring.center_eq_top
 
-/-- The center is commutative. -/
-instance center.instNonUnitalCommSemiring {R} [NonUnitalSemiring R] :
-    NonUnitalCommSemiring (center R) :=
-  { Subsemigroup.center.commSemigroup,
-    NonUnitalSubsemiringClass.toNonUnitalSemiring (center R) with }
-
-end Center
+end NonUnitalSemiring
 
 section Centralizer
 
chore: golf all coe_iSup_of_directed (#8232)
Diff
@@ -825,20 +825,19 @@ def prodEquiv (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) : s.prod
 
 theorem mem_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
     (hS : Directed (· ≤ ·) S) {x : R} : (x ∈ ⨆ i, S i) ↔ ∃ i, x ∈ S i := by
-  refine' ⟨_, fun ⟨i, hi⟩ => (SetLike.le_def.1 <| le_iSup S i) hi⟩
+  refine ⟨?_, fun ⟨i, hi⟩ ↦ le_iSup S i hi⟩
   let U : NonUnitalSubsemiring R :=
-    NonUnitalSubsemiring.mk' (⋃ i, (S i : Set R)) (⨆ i, (S i).toSubsemigroup)
-      (Subsemigroup.coe_iSup_of_directed <| hS.mono_comp _ fun _ _ => id)
-      (⨆ i, (S i).toAddSubmonoid)
-      (AddSubmonoid.coe_iSup_of_directed <| hS.mono_comp _ fun _ _ => id)
+    NonUnitalSubsemiring.mk' (⋃ i, (S i : Set R))
+      (⨆ i, (S i).toSubsemigroup) (Subsemigroup.coe_iSup_of_directed hS)
+      (⨆ i, (S i).toAddSubmonoid) (AddSubmonoid.coe_iSup_of_directed hS)
   -- Porting note `@this` doesn't work
   suffices H : ⨆ i, S i ≤ U; simpa using @H x
   exact iSup_le fun i x hx => Set.mem_iUnion.2 ⟨i, hx⟩
 #align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_iSup_of_directed
 
 theorem coe_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
-    (hS : Directed (· ≤ ·) S) : ((⨆ i, S i : NonUnitalSubsemiring R) : Set R) = ⋃ i, ↑(S i) :=
-  Set.ext fun x => by simp [mem_iSup_of_directed hS]
+    (hS : Directed (· ≤ ·) S) : ((⨆ i, S i : NonUnitalSubsemiring R) : Set R) = ⋃ i, S i :=
+  Set.ext fun x ↦ by simp [mem_iSup_of_directed hS]
 #align non_unital_subsemiring.coe_supr_of_directed NonUnitalSubsemiring.coe_iSup_of_directed
 
 theorem mem_sSup_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
feat: add a SetLike default rule set for aesop (#7111)

This creates a new aesop rule set called SetLike to house lemmas about membership in subobjects.

Lemmas like pow_mem should be included in the rule set:

@[to_additive (attr := aesop safe apply (rule_sets [SetLike]))]
theorem pow_mem {M A} [Monoid M] [SetLike A M] [SubmonoidClass A M] {S : A} {x : M}
(hx : x ∈ S) : ∀ n : ℕ, x ^ n ∈ S

Lemmas about closures, like AddSubmonoid.closure should be included in the rule set, but they should be assigned a penalty (here we choose 20 throughout) so that they are not attempted before the general purpose ones like pow_mem.

@[to_additive (attr := simp, aesop safe 20 apply (rule_sets [SetLike]))
  "The `AddSubmonoid` generated by a set includes the set."]
theorem subset_closure : s ⊆ closure s := fun _ hx => mem_closure.2 fun _ hS => hS hx

In order for aesop to make effective use of AddSubmonoid.closure it needs the following new lemma.

@[aesop 5% apply (rule_sets [SetLike])]
lemma mem_of_subset {s : Set B} (hp : s ⊆ p) {x : B} (hx : x ∈ s) : x ∈ p := hp hx

Note: this lemma is marked as very unsafe (5%) because it will apply whenever the goal is of the form x ∈ p where p is any term of a SetLike instance; and moreover, it will create s as a metavariable, which is in general a terrible idea, but necessary for the reason mentioned above.

Diff
@@ -567,7 +567,7 @@ theorem mem_closure {x : R} {s : Set R} :
 #align non_unital_subsemiring.mem_closure NonUnitalSubsemiring.mem_closure
 
 /-- The non-unital subsemiring generated by a set includes the set. -/
-@[simp]
+@[simp, aesop safe 20 apply (rule_sets [SetLike])]
 theorem subset_closure {s : Set R} : s ⊆ closure s := fun _ hx => mem_closure.2 fun _ hS => hS hx
 #align non_unital_subsemiring.subset_closure NonUnitalSubsemiring.subset_closure
 
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
@@ -29,13 +29,13 @@ variable {R : Type u} {S : Type v} {T : Type w} [NonUnitalNonAssocSemiring R] (M
 
 /-- `NonUnitalSubsemiringClass S R` states that `S` is a type of subsets `s ⊆ R` that
 are both an additive submonoid and also a multiplicative subsemigroup. -/
-class NonUnitalSubsemiringClass (S : Type _) (R : Type u) [NonUnitalNonAssocSemiring R]
+class NonUnitalSubsemiringClass (S : Type*) (R : Type u) [NonUnitalNonAssocSemiring R]
   [SetLike S R] extends AddSubmonoidClass S R : Prop where
   mul_mem : ∀ {s : S} {a b : R}, a ∈ s → b ∈ s → a * b ∈ s
 #align non_unital_subsemiring_class NonUnitalSubsemiringClass
 
 -- See note [lower instance priority]
-instance (priority := 100) NonUnitalSubsemiringClass.mulMemClass (S : Type _) (R : Type u)
+instance (priority := 100) NonUnitalSubsemiringClass.mulMemClass (S : Type*) (R : Type u)
     [NonUnitalNonAssocSemiring R] [SetLike S R] [h : NonUnitalSubsemiringClass S R] :
     MulMemClass S R :=
   { h with }
@@ -207,7 +207,7 @@ end NonUnitalSubsemiring
 
 namespace NonUnitalSubsemiring
 
-variable {F G : Type _} [NonUnitalRingHomClass F R S] [NonUnitalRingHomClass G S T]
+variable {F G : Type*} [NonUnitalRingHomClass F R S] [NonUnitalRingHomClass G S T]
   (s : NonUnitalSubsemiring R)
 
 @[simp, norm_cast]
@@ -348,7 +348,7 @@ namespace NonUnitalRingHom
 
 open NonUnitalSubsemiring
 
-variable {F G : Type _} [NonUnitalRingHomClass F R S] [NonUnitalRingHomClass G S T] (f : F) (g : G)
+variable {F G : Type*} [NonUnitalRingHomClass F R S] [NonUnitalRingHomClass G S T] (f : F) (g : G)
 
 /-- The range of a non-unital ring homomorphism is a non-unital subsemiring.
 See note [range copy pattern]. -/
@@ -709,7 +709,7 @@ protected def gi : GaloisInsertion (@closure R _) (↑) where
 #align non_unital_subsemiring.gi NonUnitalSubsemiring.gi
 
 variable {R}
-variable {F : Type _} [NonUnitalRingHomClass F R S]
+variable {F : Type*} [NonUnitalRingHomClass F R S]
 
 /-- Closure of a non-unital subsemiring `S` equals `S`. -/
 theorem closure_eq (s : NonUnitalSubsemiring R) : closure (s : Set R) = s :=
@@ -743,7 +743,7 @@ theorem map_sup (s t : NonUnitalSubsemiring R) (f : F) :
   @GaloisConnection.l_sup _ _ s t _ _ _ _ (gc_map_comap f)
 #align non_unital_subsemiring.map_sup NonUnitalSubsemiring.map_sup
 
-theorem map_iSup {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring R) :
+theorem map_iSup {ι : Sort*} (f : F) (s : ι → NonUnitalSubsemiring R) :
     (map f (iSup s) : NonUnitalSubsemiring S) = ⨆ i, map f (s i) :=
   @GaloisConnection.l_iSup _ _ _ _ _ _ _ (gc_map_comap f) s
 #align non_unital_subsemiring.map_supr NonUnitalSubsemiring.map_iSup
@@ -753,7 +753,7 @@ theorem comap_inf (s t : NonUnitalSubsemiring S) (f : F) :
   @GaloisConnection.u_inf _ _ s t _ _ _ _ (gc_map_comap f)
 #align non_unital_subsemiring.comap_inf NonUnitalSubsemiring.comap_inf
 
-theorem comap_iInf {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring S) :
+theorem comap_iInf {ι : Sort*} (f : F) (s : ι → NonUnitalSubsemiring S) :
     (comap f (iInf s) : NonUnitalSubsemiring R) = ⨅ i, comap f (s i) :=
   @GaloisConnection.u_iInf _ _ _ _ _ _ _ (gc_map_comap f) s
 #align non_unital_subsemiring.comap_infi NonUnitalSubsemiring.comap_iInf
@@ -856,8 +856,8 @@ end NonUnitalSubsemiring
 
 namespace NonUnitalRingHom
 
-variable {F : Type _} [NonUnitalNonAssocSemiring T] [NonUnitalRingHomClass F R S]
-  {S' : Type _} [SetLike S' S] [NonUnitalSubsemiringClass S' S]
+variable {F : Type*} [NonUnitalNonAssocSemiring T] [NonUnitalRingHomClass F R S]
+  {S' : Type*} [SetLike S' S] [NonUnitalSubsemiringClass S' S]
   {s : NonUnitalSubsemiring R}
 
 open NonUnitalSubsemiringClass NonUnitalSubsemiring
@@ -974,7 +974,7 @@ open NonUnitalRingHom NonUnitalSubsemiringClass
 
 variable {s t : NonUnitalSubsemiring R}
 
-variable {F : Type _} [NonUnitalRingHomClass F R S]
+variable {F : Type*} [NonUnitalRingHomClass F R S]
 
 /-- Makes the identity isomorphism from a proof two non-unital subsemirings of a multiplicative
 monoid are equal. -/
chore: fix names (Add)SubmonoidClass.Subtype (#6374)
Diff
@@ -62,7 +62,7 @@ instance noZeroDivisors [NoZeroDivisors R] : NoZeroDivisors s :=
 /-- The natural non-unital ring hom from a non-unital subsemiring of a non-unital semiring `R` to
 `R`. -/
 def subtype : s →ₙ+* R :=
-  { AddSubmonoidClass.Subtype s, MulMemClass.subtype s with toFun := (↑) }
+  { AddSubmonoidClass.subtype s, MulMemClass.subtype s with toFun := (↑) }
 #align non_unital_subsemiring_class.subtype NonUnitalSubsemiringClass.subtype
 
 @[simp]
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) 2022 Jireh Loreaux All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jireh Loreaux
-
-! This file was ported from Lean 3 source module ring_theory.non_unital_subsemiring.basic
-! leanprover-community/mathlib commit b915e9392ecb2a861e1e766f0e1df6ac481188ca
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Ring.Equiv
 import Mathlib.Algebra.Ring.Prod
@@ -15,6 +10,8 @@ import Mathlib.GroupTheory.Submonoid.Membership
 import Mathlib.GroupTheory.Subsemigroup.Membership
 import Mathlib.GroupTheory.Subsemigroup.Centralizer
 
+#align_import ring_theory.non_unital_subsemiring.basic from "leanprover-community/mathlib"@"b915e9392ecb2a861e1e766f0e1df6ac481188ca"
+
 /-!
 # Bundled non-unital subsemirings
 
feat: define NonUnitalSubrings (#5151)

This continues the non-unital-ization of mathlib by defining NonUnitalSubring. We attempt to provide as much feature parity as possible with both NonUnitalSubsemiring and Subring.

Diff
@@ -33,7 +33,7 @@ variable {R : Type u} {S : Type v} {T : Type w} [NonUnitalNonAssocSemiring R] (M
 /-- `NonUnitalSubsemiringClass S R` states that `S` is a type of subsets `s ⊆ R` that
 are both an additive submonoid and also a multiplicative subsemigroup. -/
 class NonUnitalSubsemiringClass (S : Type _) (R : Type u) [NonUnitalNonAssocSemiring R]
-  [SetLike S R] extends AddSubmonoidClass S R where
+  [SetLike S R] extends AddSubmonoidClass S R : Prop where
   mul_mem : ∀ {s : S} {a b : R}, a ∈ s → b ∈ s → a * b ∈ s
 #align non_unital_subsemiring_class NonUnitalSubsemiringClass
 
@@ -115,7 +115,6 @@ instance : NonUnitalSubsemiringClass (NonUnitalSubsemiring R) R where
   add_mem {s} := AddSubsemigroup.add_mem' s.toAddSubmonoid.toAddSubsemigroup
   mul_mem {s} := mul_mem' s
 
-@[simp high]
 theorem mem_carrier {s : NonUnitalSubsemiring R} {x : R} : x ∈ s.carrier ↔ x ∈ s :=
   Iff.rfl
 #align non_unital_subsemiring.mem_carrier NonUnitalSubsemiring.mem_carrier
@@ -266,6 +265,11 @@ theorem coe_top : ((⊤ : NonUnitalSubsemiring R) : Set R) = Set.univ :=
   rfl
 #align non_unital_subsemiring.coe_top NonUnitalSubsemiring.coe_top
 
+/-- The ring equiv between the top element of `NonUnitalSubsemiring R` and `R`. -/
+@[simps!]
+def topEquiv : (⊤ : NonUnitalSubsemiring R) ≃+* R :=
+  { Subsemigroup.topEquiv, AddSubmonoid.topEquiv with }
+
 /-- The preimage of a non-unital subsemiring along a non-unital ring homomorphism is a
 non-unital subsemiring. -/
 def comap (f : F) (s : NonUnitalSubsemiring S) : NonUnitalSubsemiring R :=
@@ -500,7 +504,8 @@ theorem center_eq_top (R) [NonUnitalCommSemiring R] : center R = ⊤ :=
 #align non_unital_subsemiring.center_eq_top NonUnitalSubsemiring.center_eq_top
 
 /-- The center is commutative. -/
-instance {R} [NonUnitalSemiring R] : NonUnitalCommSemiring (center R) :=
+instance center.instNonUnitalCommSemiring {R} [NonUnitalSemiring R] :
+    NonUnitalCommSemiring (center R) :=
   { Subsemigroup.center.commSemigroup,
     NonUnitalSubsemiringClass.toNonUnitalSemiring (center R) with }
 
@@ -855,15 +860,18 @@ end NonUnitalSubsemiring
 namespace NonUnitalRingHom
 
 variable {F : Type _} [NonUnitalNonAssocSemiring T] [NonUnitalRingHomClass F R S]
+  {S' : Type _} [SetLike S' S] [NonUnitalSubsemiringClass S' S]
   {s : NonUnitalSubsemiring R}
 
 open NonUnitalSubsemiringClass NonUnitalSubsemiring
 
 /-- Restriction of a non-unital ring homomorphism to a non-unital subsemiring of the codomain. -/
-def codRestrict (f : F) (s : NonUnitalSubsemiring S) (h : ∀ x, f x ∈ s) : R →ₙ+* s :=
-  { (f : R →ₙ* S).codRestrict s.toSubsemigroup h, (f : R →+ S).codRestrict s.toAddSubmonoid h with
-    toFun := fun n => ⟨f n, h n⟩ }
-#align non_unital_ring_hom.cod_restrict NonUnitalRingHom.codRestrict
+def codRestrict (f : F) (s : S') (h : ∀ x, f x ∈ s) : R →ₙ+* s where
+  toFun n := ⟨f n, h n⟩
+  map_mul' x y := Subtype.eq (map_mul f x y)
+  map_add' x y := Subtype.eq (map_add f x y)
+  map_zero' := Subtype.eq (map_zero f)
+#align non_unital_ring_hom.cod_restrict NonUnitalRingHom.codRestrictₓ
 
 /-- Restriction of a non-unital ring homomorphism to its range interpreted as a
 non-unital subsemiring.
fix: precedences of ⨆⋃⋂⨅ (#5614)
Diff
@@ -830,7 +830,7 @@ theorem mem_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubse
       (⨆ i, (S i).toAddSubmonoid)
       (AddSubmonoid.coe_iSup_of_directed <| hS.mono_comp _ fun _ _ => id)
   -- Porting note `@this` doesn't work
-  suffices H : (⨆ i, S i) ≤ U; simpa using @H x
+  suffices H : ⨆ i, S i ≤ U; simpa using @H x
   exact iSup_le fun i x hx => Set.mem_iUnion.2 ⟨i, hx⟩
 #align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_iSup_of_directed
 
chore: add @[simp] uniformly to _top_of_surjective lemmas (#5064)

Some such lemmas are already labelled @[simp], and this PR adds @[simp] to the remaining ones.

It's useful for some automation I'm writing to have these all in simp.

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au>

Diff
@@ -891,6 +891,7 @@ theorem srange_top_iff_surjective {f : F} :
 #align non_unital_ring_hom.srange_top_iff_surjective NonUnitalRingHom.srange_top_iff_surjective
 
 /-- The range of a surjective non-unital ring homomorphism is the whole of the codomain. -/
+@[simp]
 theorem srange_top_of_surjective (f : F) (hf : Function.Surjective (f : R → S)) :
     srange f = (⊤ : NonUnitalSubsemiring S) :=
   srange_top_iff_surjective.2 hf
chore: port leanprover-community/mathlib#18861 (#4896)

I forgot to put some required to_additives in Lean3, I am currently backporting this change in leanprover-community/mathlib#19168.

Co-authored-by: Eric Rodriguez <37984851+ericrbg@users.noreply.github.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jireh Loreaux
 
 ! This file was ported from Lean 3 source module ring_theory.non_unital_subsemiring.basic
-! leanprover-community/mathlib commit feb99064803fd3108e37c18b0f77d0a8344677a3
+! leanprover-community/mathlib commit b915e9392ecb2a861e1e766f0e1df6ac481188ca
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -532,11 +532,21 @@ theorem mem_centralizer_iff {R} [NonUnitalSemiring R] {s : Set R} {z : R} :
   Iff.rfl
 #align non_unital_subsemiring.mem_centralizer_iff NonUnitalSubsemiring.mem_centralizer_iff
 
+theorem center_le_centralizer {R} [NonUnitalSemiring R] (s) : center R ≤ centralizer s :=
+  s.center_subset_centralizer
+#align non_unital_subsemiring.center_le_centralizer NonUnitalSubsemiring.center_le_centralizer
+
 theorem centralizer_le {R} [NonUnitalSemiring R] (s t : Set R) (h : s ⊆ t) :
     centralizer t ≤ centralizer s :=
   Set.centralizer_subset h
 #align non_unital_subsemiring.centralizer_le NonUnitalSubsemiring.centralizer_le
 
+@[simp]
+theorem centralizer_eq_top_iff_subset {R} [NonUnitalSemiring R] {s : Set R} :
+    centralizer s = ⊤ ↔ s ⊆ center R :=
+  SetLike.ext'_iff.trans Set.centralizer_eq_top_iff_subset
+#align non_unital_subsemiring.centralizer_eq_top_iff_subset NonUnitalSubsemiring.centralizer_eq_top_iff_subset
+
 @[simp]
 theorem centralizer_univ {R} [NonUnitalSemiring R] : centralizer Set.univ = center R :=
   SetLike.ext' (Set.centralizer_univ R)
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

  • supₛsSup
  • infₛsInf
  • supᵢiSup
  • infᵢiInf
  • bsupₛbsSup
  • binfₛbsInf
  • bsupᵢbiSup
  • binfᵢbiInf
  • csupₛcsSup
  • cinfₛcsInf
  • csupᵢciSup
  • cinfᵢciInf
  • unionₛsUnion
  • interₛsInter
  • unionᵢiUnion
  • interᵢiInter
  • bunionₛbsUnion
  • binterₛbsInter
  • bunionᵢbiUnion
  • binterᵢbiInter

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -428,31 +428,31 @@ instance : InfSet (NonUnitalSubsemiring R) :=
       (by simp) (⨅ t ∈ s, NonUnitalSubsemiring.toAddSubmonoid t) (by simp)⟩
 
 @[simp, norm_cast]
-theorem coe_infₛ (S : Set (NonUnitalSubsemiring R)) :
-    ((infₛ S : NonUnitalSubsemiring R) : Set R) = ⋂ s ∈ S, ↑s :=
+theorem coe_sInf (S : Set (NonUnitalSubsemiring R)) :
+    ((sInf S : NonUnitalSubsemiring R) : Set R) = ⋂ s ∈ S, ↑s :=
   rfl
-#align non_unital_subsemiring.coe_Inf NonUnitalSubsemiring.coe_infₛ
+#align non_unital_subsemiring.coe_Inf NonUnitalSubsemiring.coe_sInf
 
-theorem mem_infₛ {S : Set (NonUnitalSubsemiring R)} {x : R} : x ∈ infₛ S ↔ ∀ p ∈ S, x ∈ p :=
-  Set.mem_interᵢ₂
-#align non_unital_subsemiring.mem_Inf NonUnitalSubsemiring.mem_infₛ
+theorem mem_sInf {S : Set (NonUnitalSubsemiring R)} {x : R} : x ∈ sInf S ↔ ∀ p ∈ S, x ∈ p :=
+  Set.mem_iInter₂
+#align non_unital_subsemiring.mem_Inf NonUnitalSubsemiring.mem_sInf
 
 @[simp]
-theorem infₛ_toSubsemigroup (s : Set (NonUnitalSubsemiring R)) :
-    (infₛ s).toSubsemigroup = ⨅ t ∈ s, NonUnitalSubsemiring.toSubsemigroup t :=
+theorem sInf_toSubsemigroup (s : Set (NonUnitalSubsemiring R)) :
+    (sInf s).toSubsemigroup = ⨅ t ∈ s, NonUnitalSubsemiring.toSubsemigroup t :=
   mk'_toSubsemigroup _ _
-#align non_unital_subsemiring.Inf_to_subsemigroup NonUnitalSubsemiring.infₛ_toSubsemigroup
+#align non_unital_subsemiring.Inf_to_subsemigroup NonUnitalSubsemiring.sInf_toSubsemigroup
 
 @[simp]
-theorem infₛ_toAddSubmonoid (s : Set (NonUnitalSubsemiring R)) :
-    (infₛ s).toAddSubmonoid = ⨅ t ∈ s, NonUnitalSubsemiring.toAddSubmonoid t :=
+theorem sInf_toAddSubmonoid (s : Set (NonUnitalSubsemiring R)) :
+    (sInf s).toAddSubmonoid = ⨅ t ∈ s, NonUnitalSubsemiring.toAddSubmonoid t :=
   mk'_toAddSubmonoid _ _
-#align non_unital_subsemiring.Inf_to_add_submonoid NonUnitalSubsemiring.infₛ_toAddSubmonoid
+#align non_unital_subsemiring.Inf_to_add_submonoid NonUnitalSubsemiring.sInf_toAddSubmonoid
 
 /-- Non-unital subsemirings of a non-unital semiring form a complete lattice. -/
 instance : CompleteLattice (NonUnitalSubsemiring R) :=
   { completeLatticeOfInf (NonUnitalSubsemiring R)
-      fun _ => IsGLB.of_image SetLike.coe_subset_coe isGLB_binfᵢ with
+      fun _ => IsGLB.of_image SetLike.coe_subset_coe isGLB_biInf with
     bot := ⊥
     bot_le := fun s _ hx => (mem_bot.mp hx).symm ▸ zero_mem s
     top := ⊤
@@ -546,12 +546,12 @@ end Centralizer
 
 /-- The `NonUnitalSubsemiring` generated by a set. -/
 def closure (s : Set R) : NonUnitalSubsemiring R :=
-  infₛ { S | s ⊆ S }
+  sInf { S | s ⊆ S }
 #align non_unital_subsemiring.closure NonUnitalSubsemiring.closure
 
 theorem mem_closure {x : R} {s : Set R} :
     x ∈ closure s ↔ ∀ S : NonUnitalSubsemiring R, s ⊆ S → x ∈ S :=
-  mem_infₛ
+  mem_sInf
 #align non_unital_subsemiring.mem_closure NonUnitalSubsemiring.mem_closure
 
 /-- The non-unital subsemiring generated by a set includes the set. -/
@@ -566,7 +566,7 @@ theorem not_mem_of_not_mem_closure {s : Set R} {P : R} (hP : P ∉ closure s) :
 /-- A non-unital subsemiring `S` includes `closure s` if and only if it includes `s`. -/
 @[simp]
 theorem closure_le {s : Set R} {t : NonUnitalSubsemiring R} : closure s ≤ t ↔ s ⊆ t :=
-  ⟨Set.Subset.trans subset_closure, fun h => infₛ_le h⟩
+  ⟨Set.Subset.trans subset_closure, fun h => sInf_le h⟩
 #align non_unital_subsemiring.closure_le NonUnitalSubsemiring.closure_le
 
 /-- Subsemiring closure of a set is monotone in its argument: if `s ⊆ t`,
@@ -718,33 +718,33 @@ theorem closure_union (s t : Set R) : closure (s ∪ t) = closure s ⊔ closure
   (NonUnitalSubsemiring.gi R).gc.l_sup
 #align non_unital_subsemiring.closure_union NonUnitalSubsemiring.closure_union
 
-theorem closure_unionᵢ {ι} (s : ι → Set R) : closure (⋃ i, s i) = ⨆ i, closure (s i) :=
-  (NonUnitalSubsemiring.gi R).gc.l_supᵢ
-#align non_unital_subsemiring.closure_Union NonUnitalSubsemiring.closure_unionᵢ
+theorem closure_iUnion {ι} (s : ι → Set R) : closure (⋃ i, s i) = ⨆ i, closure (s i) :=
+  (NonUnitalSubsemiring.gi R).gc.l_iSup
+#align non_unital_subsemiring.closure_Union NonUnitalSubsemiring.closure_iUnion
 
-theorem closure_unionₛ (s : Set (Set R)) : closure (⋃₀ s) = ⨆ t ∈ s, closure t :=
-  (NonUnitalSubsemiring.gi R).gc.l_supₛ
-#align non_unital_subsemiring.closure_sUnion NonUnitalSubsemiring.closure_unionₛ
+theorem closure_sUnion (s : Set (Set R)) : closure (⋃₀ s) = ⨆ t ∈ s, closure t :=
+  (NonUnitalSubsemiring.gi R).gc.l_sSup
+#align non_unital_subsemiring.closure_sUnion NonUnitalSubsemiring.closure_sUnion
 
 theorem map_sup (s t : NonUnitalSubsemiring R) (f : F) :
     (map f (s ⊔ t) : NonUnitalSubsemiring S) = map f s ⊔ map f t :=
   @GaloisConnection.l_sup _ _ s t _ _ _ _ (gc_map_comap f)
 #align non_unital_subsemiring.map_sup NonUnitalSubsemiring.map_sup
 
-theorem map_supᵢ {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring R) :
-    (map f (supᵢ s) : NonUnitalSubsemiring S) = ⨆ i, map f (s i) :=
-  @GaloisConnection.l_supᵢ _ _ _ _ _ _ _ (gc_map_comap f) s
-#align non_unital_subsemiring.map_supr NonUnitalSubsemiring.map_supᵢ
+theorem map_iSup {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring R) :
+    (map f (iSup s) : NonUnitalSubsemiring S) = ⨆ i, map f (s i) :=
+  @GaloisConnection.l_iSup _ _ _ _ _ _ _ (gc_map_comap f) s
+#align non_unital_subsemiring.map_supr NonUnitalSubsemiring.map_iSup
 
 theorem comap_inf (s t : NonUnitalSubsemiring S) (f : F) :
     (comap f (s ⊓ t) : NonUnitalSubsemiring R) = comap f s ⊓ comap f t :=
   @GaloisConnection.u_inf _ _ s t _ _ _ _ (gc_map_comap f)
 #align non_unital_subsemiring.comap_inf NonUnitalSubsemiring.comap_inf
 
-theorem comap_infᵢ {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring S) :
-    (comap f (infᵢ s) : NonUnitalSubsemiring R) = ⨅ i, comap f (s i) :=
-  @GaloisConnection.u_infᵢ _ _ _ _ _ _ _ (gc_map_comap f) s
-#align non_unital_subsemiring.comap_infi NonUnitalSubsemiring.comap_infᵢ
+theorem comap_iInf {ι : Sort _} (f : F) (s : ι → NonUnitalSubsemiring S) :
+    (comap f (iInf s) : NonUnitalSubsemiring R) = ⨅ i, comap f (s i) :=
+  @GaloisConnection.u_iInf _ _ _ _ _ _ _ (gc_map_comap f) s
+#align non_unital_subsemiring.comap_infi NonUnitalSubsemiring.comap_iInf
 
 @[simp]
 theorem map_bot (f : F) : map f (⊥ : NonUnitalSubsemiring R) = (⊥ : NonUnitalSubsemiring S) :=
@@ -811,34 +811,34 @@ def prodEquiv (s : NonUnitalSubsemiring R) (t : NonUnitalSubsemiring S) : s.prod
     map_add' := fun _ _ => rfl }
 #align non_unital_subsemiring.prod_equiv NonUnitalSubsemiring.prodEquiv
 
-theorem mem_supᵢ_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
+theorem mem_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
     (hS : Directed (· ≤ ·) S) {x : R} : (x ∈ ⨆ i, S i) ↔ ∃ i, x ∈ S i := by
-  refine' ⟨_, fun ⟨i, hi⟩ => (SetLike.le_def.1 <| le_supᵢ S i) hi⟩
+  refine' ⟨_, fun ⟨i, hi⟩ => (SetLike.le_def.1 <| le_iSup S i) hi⟩
   let U : NonUnitalSubsemiring R :=
     NonUnitalSubsemiring.mk' (⋃ i, (S i : Set R)) (⨆ i, (S i).toSubsemigroup)
-      (Subsemigroup.coe_supᵢ_of_directed <| hS.mono_comp _ fun _ _ => id)
+      (Subsemigroup.coe_iSup_of_directed <| hS.mono_comp _ fun _ _ => id)
       (⨆ i, (S i).toAddSubmonoid)
-      (AddSubmonoid.coe_supᵢ_of_directed <| hS.mono_comp _ fun _ _ => id)
+      (AddSubmonoid.coe_iSup_of_directed <| hS.mono_comp _ fun _ _ => id)
   -- Porting note `@this` doesn't work
   suffices H : (⨆ i, S i) ≤ U; simpa using @H x
-  exact supᵢ_le fun i x hx => Set.mem_unionᵢ.2 ⟨i, hx⟩
-#align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_supᵢ_of_directed
+  exact iSup_le fun i x hx => Set.mem_iUnion.2 ⟨i, hx⟩
+#align non_unital_subsemiring.mem_supr_of_directed NonUnitalSubsemiring.mem_iSup_of_directed
 
-theorem coe_supᵢ_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
+theorem coe_iSup_of_directed {ι} [hι : Nonempty ι] {S : ι → NonUnitalSubsemiring R}
     (hS : Directed (· ≤ ·) S) : ((⨆ i, S i : NonUnitalSubsemiring R) : Set R) = ⋃ i, ↑(S i) :=
-  Set.ext fun x => by simp [mem_supᵢ_of_directed hS]
-#align non_unital_subsemiring.coe_supr_of_directed NonUnitalSubsemiring.coe_supᵢ_of_directed
+  Set.ext fun x => by simp [mem_iSup_of_directed hS]
+#align non_unital_subsemiring.coe_supr_of_directed NonUnitalSubsemiring.coe_iSup_of_directed
 
-theorem mem_supₛ_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
-    (hS : DirectedOn (· ≤ ·) S) {x : R} : x ∈ supₛ S ↔ ∃ s ∈ S, x ∈ s := by
+theorem mem_sSup_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
+    (hS : DirectedOn (· ≤ ·) S) {x : R} : x ∈ sSup S ↔ ∃ s ∈ S, x ∈ s := by
   haveI : Nonempty S := Sne.to_subtype
-  simp only [supₛ_eq_supᵢ', mem_supᵢ_of_directed hS.directed_val, Subtype.exists, exists_prop]
-#align non_unital_subsemiring.mem_Sup_of_directed_on NonUnitalSubsemiring.mem_supₛ_of_directedOn
+  simp only [sSup_eq_iSup', mem_iSup_of_directed hS.directed_val, Subtype.exists, exists_prop]
+#align non_unital_subsemiring.mem_Sup_of_directed_on NonUnitalSubsemiring.mem_sSup_of_directedOn
 
-theorem coe_supₛ_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
-    (hS : DirectedOn (· ≤ ·) S) : (↑(supₛ S) : Set R) = ⋃ s ∈ S, ↑s :=
-  Set.ext fun x => by simp [mem_supₛ_of_directedOn Sne hS]
-#align non_unital_subsemiring.coe_Sup_of_directed_on NonUnitalSubsemiring.coe_supₛ_of_directedOn
+theorem coe_sSup_of_directedOn {S : Set (NonUnitalSubsemiring R)} (Sne : S.Nonempty)
+    (hS : DirectedOn (· ≤ ·) S) : (↑(sSup S) : Set R) = ⋃ s ∈ S, ↑s :=
+  Set.ext fun x => by simp [mem_sSup_of_directedOn Sne hS]
+#align non_unital_subsemiring.coe_Sup_of_directed_on NonUnitalSubsemiring.coe_sSup_of_directedOn
 
 end NonUnitalSubsemiring
 
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -653,8 +653,8 @@ theorem mem_closure_iff {s : Set R} {x} :
 #align non_unital_subsemiring.mem_closure_iff NonUnitalSubsemiring.mem_closure_iff
 
 @[simp]
-theorem closure_addSubmonoid_closure {s : Set R} : closure ↑(AddSubmonoid.closure s) = closure s :=
-  by
+theorem closure_addSubmonoid_closure {s : Set R} :
+    closure ↑(AddSubmonoid.closure s) = closure s := by
   ext x
   refine' ⟨fun hx => _, fun hx => closure_mono AddSubmonoid.subset_closure hx⟩
   rintro - ⟨H, rfl⟩
feat: Port RingTheory.NonUnitalSubsemiring.Basic (#1774)

Co-authored-by: ART0 <18333981+0Art0@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Dependencies 8 + 241

242 files ported (96.8%)
105244 lines ported (97.1%)
Show graph

The unported dependencies are