algebra.group_ring_action.invariantMathlib.Algebra.GroupRingAction.Invariant

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2021 Eric Wieser. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
 -/
-import Algebra.Hom.GroupAction
+import GroupTheory.GroupAction.Hom
 import RingTheory.Subring.Pointwise
 
 #align_import algebra.group_ring_action.invariant from "leanprover-community/mathlib"@"1dac236edca9b4b6f5f00b1ad831e35f89472837"
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2021 Eric Wieser. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
 -/
-import Mathbin.Algebra.Hom.GroupAction
-import Mathbin.RingTheory.Subring.Pointwise
+import Algebra.Hom.GroupAction
+import RingTheory.Subring.Pointwise
 
 #align_import algebra.group_ring_action.invariant from "leanprover-community/mathlib"@"1dac236edca9b4b6f5f00b1ad831e35f89472837"
 
Diff
@@ -36,11 +36,11 @@ instance IsInvariantSubring.toMulSemiringAction [IsInvariantSubring M S] : MulSe
     where
   smul m x := ⟨m • x, IsInvariantSubring.smul_mem m x.2⟩
   one_smul s := Subtype.eq <| one_smul M s
-  mul_smul m₁ m₂ s := Subtype.eq <| mul_smul m₁ m₂ s
+  hMul_smul m₁ m₂ s := Subtype.eq <| hMul_smul m₁ m₂ s
   smul_add m s₁ s₂ := Subtype.eq <| smul_add m s₁ s₂
   smul_zero m := Subtype.eq <| smul_zero m
   smul_one m := Subtype.eq <| smul_one m
-  smul_mul m s₁ s₂ := Subtype.eq <| smul_mul' m s₁ s₂
+  smul_hMul m s₁ s₂ := Subtype.eq <| smul_mul' m s₁ s₂
 #align is_invariant_subring.to_mul_semiring_action IsInvariantSubring.toMulSemiringAction
 -/
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2021 Eric Wieser. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
-
-! This file was ported from Lean 3 source module algebra.group_ring_action.invariant
-! leanprover-community/mathlib commit 1dac236edca9b4b6f5f00b1ad831e35f89472837
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Hom.GroupAction
 import Mathbin.RingTheory.Subring.Pointwise
 
+#align_import algebra.group_ring_action.invariant from "leanprover-community/mathlib"@"1dac236edca9b4b6f5f00b1ad831e35f89472837"
+
 /-! # Subrings invariant under an action 
 
 > THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
Diff
@@ -34,6 +34,7 @@ class IsInvariantSubring : Prop where
 #align is_invariant_subring IsInvariantSubring
 -/
 
+#print IsInvariantSubring.toMulSemiringAction /-
 instance IsInvariantSubring.toMulSemiringAction [IsInvariantSubring M S] : MulSemiringAction M S
     where
   smul m x := ⟨m • x, IsInvariantSubring.smul_mem m x.2⟩
@@ -44,6 +45,7 @@ instance IsInvariantSubring.toMulSemiringAction [IsInvariantSubring M S] : MulSe
   smul_one m := Subtype.eq <| smul_one m
   smul_mul m s₁ s₂ := Subtype.eq <| smul_mul' m s₁ s₂
 #align is_invariant_subring.to_mul_semiring_action IsInvariantSubring.toMulSemiringAction
+-/
 
 end Ring
 
@@ -55,21 +57,27 @@ variable {R' : Type _} [Ring R'] [MulSemiringAction M R']
 
 variable (U : Subring R') [IsInvariantSubring M U]
 
+#print IsInvariantSubring.subtypeHom /-
 /-- The canonical inclusion from an invariant subring. -/
 def IsInvariantSubring.subtypeHom : U →+*[M] R' :=
   { U.Subtype with map_smul' := fun m s => rfl }
 #align is_invariant_subring.subtype_hom IsInvariantSubring.subtypeHom
+-/
 
+#print IsInvariantSubring.coe_subtypeHom /-
 @[simp]
 theorem IsInvariantSubring.coe_subtypeHom : (IsInvariantSubring.subtypeHom M U : U → R') = coe :=
   rfl
 #align is_invariant_subring.coe_subtype_hom IsInvariantSubring.coe_subtypeHom
+-/
 
+#print IsInvariantSubring.coe_subtypeHom' /-
 @[simp]
 theorem IsInvariantSubring.coe_subtypeHom' :
     (IsInvariantSubring.subtypeHom M U : U →+* R') = U.Subtype :=
   rfl
 #align is_invariant_subring.coe_subtype_hom' IsInvariantSubring.coe_subtypeHom'
+-/
 
 end
 
Diff
@@ -34,12 +34,6 @@ class IsInvariantSubring : Prop where
 #align is_invariant_subring IsInvariantSubring
 -/
 
-/- warning: is_invariant_subring.to_mul_semiring_action -> IsInvariantSubring.toMulSemiringAction is a dubious translation:
-lean 3 declaration is
-  forall (M : Type.{u1}) {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (S : Subring.{u2} R _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R _inst_1 _inst_2 _inst_3 S], MulSemiringAction.{u1, u2} M (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) S) _inst_1 (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) S) (Subring.toRing.{u2} R _inst_2 S))
-but is expected to have type
-  forall (M : Type.{u1}) {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (S : Subring.{u2} R _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R _inst_1 _inst_2 _inst_3 S], MulSemiringAction.{u1, u2} M (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) x S)) _inst_1 (Subsemiring.toSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2) (Subring.toSubsemiring.{u2} R _inst_2 S))
-Case conversion may be inaccurate. Consider using '#align is_invariant_subring.to_mul_semiring_action IsInvariantSubring.toMulSemiringActionₓ'. -/
 instance IsInvariantSubring.toMulSemiringAction [IsInvariantSubring M S] : MulSemiringAction M S
     where
   smul m x := ⟨m • x, IsInvariantSubring.smul_mem m x.2⟩
@@ -61,28 +55,16 @@ variable {R' : Type _} [Ring R'] [MulSemiringAction M R']
 
 variable (U : Subring R') [IsInvariantSubring M U]
 
-/- warning: is_invariant_subring.subtype_hom -> IsInvariantSubring.subtypeHom is a dubious translation:
-lean 3 declaration is
-  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3
-but is expected to have type
-  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3
-Case conversion may be inaccurate. Consider using '#align is_invariant_subring.subtype_hom IsInvariantSubring.subtypeHomₓ'. -/
 /-- The canonical inclusion from an invariant subring. -/
 def IsInvariantSubring.subtypeHom : U →+*[M] R' :=
   { U.Subtype with map_smul' := fun m s => rfl }
 #align is_invariant_subring.subtype_hom IsInvariantSubring.subtypeHom
 
-/- warning: is_invariant_subring.coe_subtype_hom -> IsInvariantSubring.coe_subtypeHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_invariant_subring.coe_subtype_hom IsInvariantSubring.coe_subtypeHomₓ'. -/
 @[simp]
 theorem IsInvariantSubring.coe_subtypeHom : (IsInvariantSubring.subtypeHom M U : U → R') = coe :=
   rfl
 #align is_invariant_subring.coe_subtype_hom IsInvariantSubring.coe_subtypeHom
 
-/- warning: is_invariant_subring.coe_subtype_hom' -> IsInvariantSubring.coe_subtypeHom' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_invariant_subring.coe_subtype_hom' IsInvariantSubring.coe_subtypeHom'ₓ'. -/
 @[simp]
 theorem IsInvariantSubring.coe_subtypeHom' :
     (IsInvariantSubring.subtypeHom M U : U →+* R') = U.Subtype :=
Diff
@@ -73,10 +73,7 @@ def IsInvariantSubring.subtypeHom : U →+*[M] R' :=
 #align is_invariant_subring.subtype_hom IsInvariantSubring.subtypeHom
 
 /- warning: is_invariant_subring.coe_subtype_hom -> IsInvariantSubring.coe_subtypeHom is a dubious translation:
-lean 3 declaration is
-  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} ((fun (_x : MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) => (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) -> R') (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (coeFn.{succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (fun (_x : MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) => (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) -> R') ([anonymous].{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (coeSubtype.{succ u2} R' (fun (x : R') => Membership.Mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) x U))))))
-but is expected to have type
-  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} (forall (a : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => R') a) (FunLike.coe.{succ u2, succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (fun (_x : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => R') _x) (SMulHomClass.toFunLike.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' (SMulZeroClass.toSMul.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoid.toZero.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U))))))) (DistribSMul.toSMulZeroClass.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U))))))) (DistribMulAction.toDistribSMul.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4))))) (SMulZeroClass.toSMul.{u1, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R' _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3)))) (DistribMulActionHomClass.toSMulHomClass.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)))))) (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4)) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (MulSemiringActionHomClass.toDistribMulActionHomClass.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (Ring.toSemiring.{u2} R' _inst_2) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4)) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3)))) (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (Subtype.val.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_invariant_subring.coe_subtype_hom IsInvariantSubring.coe_subtypeHomₓ'. -/
 @[simp]
 theorem IsInvariantSubring.coe_subtypeHom : (IsInvariantSubring.subtypeHom M U : U → R') = coe :=
@@ -84,10 +81,7 @@ theorem IsInvariantSubring.coe_subtypeHom : (IsInvariantSubring.subtypeHom M U :
 #align is_invariant_subring.coe_subtype_hom IsInvariantSubring.coe_subtypeHom
 
 /- warning: is_invariant_subring.coe_subtype_hom' -> IsInvariantSubring.coe_subtypeHom' is a dubious translation:
-lean 3 declaration is
-  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} (RingHom.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (NonAssocRing.toNonAssocSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U))) (NonAssocRing.toNonAssocSemiring.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (RingHom.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (NonAssocRing.toNonAssocSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U))) (NonAssocRing.toNonAssocSemiring.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_2))) (HasLiftT.mk.{succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (RingHom.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (NonAssocRing.toNonAssocSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U))) (NonAssocRing.toNonAssocSemiring.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_2))) (CoeTCₓ.coe.{succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (RingHom.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (NonAssocRing.toNonAssocSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U))) (NonAssocRing.toNonAssocSemiring.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_2))) (RingHom.hasCoeT.{u2, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (NonAssocRing.toNonAssocSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U))) (NonAssocRing.toNonAssocSemiring.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_2)) (MulSemiringActionHomClass.toRingHomClass.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' _inst_1 (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (Ring.toSemiring.{u2} R' _inst_2) (MulSemiringAction.toDistribMulAction.{u1, u2} M (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) _inst_1 (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4)) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (MulSemiringActionHom.mulSemiringActionHomClass.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3))))) (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (Subring.subtype.{u2} R' _inst_2 U)
-but is expected to have type
-  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} (RingHom.{u2, u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U))) (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))) (MulSemiringActionHom.toRingHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3 (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (Subring.subtype.{u2} R' _inst_2 U)
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_invariant_subring.coe_subtype_hom' IsInvariantSubring.coe_subtypeHom'ₓ'. -/
 @[simp]
 theorem IsInvariantSubring.coe_subtypeHom' :
Diff
@@ -76,7 +76,7 @@ def IsInvariantSubring.subtypeHom : U →+*[M] R' :=
 lean 3 declaration is
   forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} ((fun (_x : MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) => (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) -> R') (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (coeFn.{succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (fun (_x : MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) => (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) -> R') ([anonymous].{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (coeSubtype.{succ u2} R' (fun (x : R') => Membership.Mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) x U))))))
 but is expected to have type
-  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} (forall (a : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => R') a) (FunLike.coe.{succ u2, succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (fun (_x : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => R') _x) (SMulHomClass.toFunLike.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' (SMulZeroClass.toSMul.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoid.toZero.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U))))))) (DistribSMul.toSMulZeroClass.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U))))))) (DistribMulAction.toDistribSMul.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4))))) (SMulZeroClass.toSMul.{u1, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R' _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3)))) (DistribMulActionHomClass.toSMulHomClass.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)))))) (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4)) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (MulSemiringActionHomClass.toDistribMulActionHomClass.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (Ring.toSemiring.{u2} R' _inst_2) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4)) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3)))) (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (Subtype.val.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U))
+  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} (forall (a : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => R') a) (FunLike.coe.{succ u2, succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (fun (_x : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => R') _x) (SMulHomClass.toFunLike.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' (SMulZeroClass.toSMul.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoid.toZero.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U))))))) (DistribSMul.toSMulZeroClass.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U))))))) (DistribMulAction.toDistribSMul.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4))))) (SMulZeroClass.toSMul.{u1, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R' _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3)))) (DistribMulActionHomClass.toSMulHomClass.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)))))) (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4)) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (MulSemiringActionHomClass.toDistribMulActionHomClass.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (Ring.toSemiring.{u2} R' _inst_2) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4)) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3)))) (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (Subtype.val.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U))
 Case conversion may be inaccurate. Consider using '#align is_invariant_subring.coe_subtype_hom IsInvariantSubring.coe_subtypeHomₓ'. -/
 @[simp]
 theorem IsInvariantSubring.coe_subtypeHom : (IsInvariantSubring.subtypeHom M U : U → R') = coe :=
Diff
@@ -38,7 +38,7 @@ class IsInvariantSubring : Prop where
 lean 3 declaration is
   forall (M : Type.{u1}) {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (S : Subring.{u2} R _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R _inst_1 _inst_2 _inst_3 S], MulSemiringAction.{u1, u2} M (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) S) _inst_1 (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) S) (Subring.toRing.{u2} R _inst_2 S))
 but is expected to have type
-  forall (M : Type.{u1}) {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (S : Subring.{u2} R _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R _inst_1 _inst_2 _inst_3 S], MulSemiringAction.{u1, u2} M (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) x S)) _inst_1 (Ring.toSemiring.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) x S)) (Subring.toRing.{u2} R _inst_2 S))
+  forall (M : Type.{u1}) {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (S : Subring.{u2} R _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R _inst_1 _inst_2 _inst_3 S], MulSemiringAction.{u1, u2} M (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) x S)) _inst_1 (Subsemiring.toSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2) (Subring.toSubsemiring.{u2} R _inst_2 S))
 Case conversion may be inaccurate. Consider using '#align is_invariant_subring.to_mul_semiring_action IsInvariantSubring.toMulSemiringActionₓ'. -/
 instance IsInvariantSubring.toMulSemiringAction [IsInvariantSubring M S] : MulSemiringAction M S
     where
@@ -65,7 +65,7 @@ variable (U : Subring R') [IsInvariantSubring M U]
 lean 3 declaration is
   forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3
 but is expected to have type
-  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3
+  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3
 Case conversion may be inaccurate. Consider using '#align is_invariant_subring.subtype_hom IsInvariantSubring.subtypeHomₓ'. -/
 /-- The canonical inclusion from an invariant subring. -/
 def IsInvariantSubring.subtypeHom : U →+*[M] R' :=
@@ -76,7 +76,7 @@ def IsInvariantSubring.subtypeHom : U →+*[M] R' :=
 lean 3 declaration is
   forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} ((fun (_x : MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) => (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) -> R') (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (coeFn.{succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (fun (_x : MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) => (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) -> R') ([anonymous].{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (coeSubtype.{succ u2} R' (fun (x : R') => Membership.Mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) x U))))))
 but is expected to have type
-  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} (forall (a : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => R') a) (FunLike.coe.{succ u2, succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (fun (_x : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => R') _x) (SMulHomClass.toFunLike.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' (SMulZeroClass.toSMul.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoid.toZero.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U))))))) (DistribSMul.toSMulZeroClass.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U))))))) (DistribMulAction.toDistribSMul.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4))))) (SMulZeroClass.toSMul.{u1, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R' _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3)))) (DistribMulActionHomClass.toSMulHomClass.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)))))) (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4)) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (MulSemiringActionHomClass.toDistribMulActionHomClass.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' _inst_1 (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (Ring.toSemiring.{u2} R' _inst_2) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4)) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3)))) (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (Subtype.val.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U))
+  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} (forall (a : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => R') a) (FunLike.coe.{succ u2, succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (fun (_x : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => R') _x) (SMulHomClass.toFunLike.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' (SMulZeroClass.toSMul.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoid.toZero.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U))))))) (DistribSMul.toSMulZeroClass.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U))))))) (DistribMulAction.toDistribSMul.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4))))) (SMulZeroClass.toSMul.{u1, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R' _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3)))) (DistribMulActionHomClass.toSMulHomClass.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)))))) (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4)) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (MulSemiringActionHomClass.toDistribMulActionHomClass.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (Ring.toSemiring.{u2} R' _inst_2) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4)) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3)))) (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (Subtype.val.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U))
 Case conversion may be inaccurate. Consider using '#align is_invariant_subring.coe_subtype_hom IsInvariantSubring.coe_subtypeHomₓ'. -/
 @[simp]
 theorem IsInvariantSubring.coe_subtypeHom : (IsInvariantSubring.subtypeHom M U : U → R') = coe :=
@@ -87,7 +87,7 @@ theorem IsInvariantSubring.coe_subtypeHom : (IsInvariantSubring.subtypeHom M U :
 lean 3 declaration is
   forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} (RingHom.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (NonAssocRing.toNonAssocSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U))) (NonAssocRing.toNonAssocSemiring.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (RingHom.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (NonAssocRing.toNonAssocSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U))) (NonAssocRing.toNonAssocSemiring.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_2))) (HasLiftT.mk.{succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (RingHom.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (NonAssocRing.toNonAssocSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U))) (NonAssocRing.toNonAssocSemiring.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_2))) (CoeTCₓ.coe.{succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (RingHom.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (NonAssocRing.toNonAssocSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U))) (NonAssocRing.toNonAssocSemiring.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_2))) (RingHom.hasCoeT.{u2, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (NonAssocRing.toNonAssocSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U))) (NonAssocRing.toNonAssocSemiring.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_2)) (MulSemiringActionHomClass.toRingHomClass.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' _inst_1 (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (Ring.toSemiring.{u2} R' _inst_2) (MulSemiringAction.toDistribMulAction.{u1, u2} M (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) _inst_1 (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4)) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (MulSemiringActionHom.mulSemiringActionHomClass.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3))))) (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (Subring.subtype.{u2} R' _inst_2 U)
 but is expected to have type
-  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} (RingHom.{u2, u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U))) (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))) (MulSemiringActionHom.toRingHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3 (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (Subring.subtype.{u2} R' _inst_2 U)
+  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} (RingHom.{u2, u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U))) (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))) (MulSemiringActionHom.toRingHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subsemiring.toSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2) (Subring.toSubsemiring.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3 (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (Subring.subtype.{u2} R' _inst_2 U)
 Case conversion may be inaccurate. Consider using '#align is_invariant_subring.coe_subtype_hom' IsInvariantSubring.coe_subtypeHom'ₓ'. -/
 @[simp]
 theorem IsInvariantSubring.coe_subtypeHom' :
Diff
@@ -4,14 +4,17 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
 
 ! This file was ported from Lean 3 source module algebra.group_ring_action.invariant
-! leanprover-community/mathlib commit e7bab9a85e92cf46c02cb4725a7be2f04691e3a7
+! leanprover-community/mathlib commit 1dac236edca9b4b6f5f00b1ad831e35f89472837
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Hom.GroupAction
 import Mathbin.RingTheory.Subring.Pointwise
 
-/-! # Subrings invariant under an action -/
+/-! # Subrings invariant under an action 
+
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.-/
 
 
 section Ring
Diff
@@ -24,11 +24,19 @@ open MulAction
 
 variable {R}
 
+#print IsInvariantSubring /-
 /-- A typeclass for subrings invariant under a `mul_semiring_action`. -/
 class IsInvariantSubring : Prop where
   smul_mem : ∀ (m : M) {x : R}, x ∈ S → m • x ∈ S
 #align is_invariant_subring IsInvariantSubring
+-/
 
+/- warning: is_invariant_subring.to_mul_semiring_action -> IsInvariantSubring.toMulSemiringAction is a dubious translation:
+lean 3 declaration is
+  forall (M : Type.{u1}) {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (S : Subring.{u2} R _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R _inst_1 _inst_2 _inst_3 S], MulSemiringAction.{u1, u2} M (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) S) _inst_1 (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) S) (Subring.toRing.{u2} R _inst_2 S))
+but is expected to have type
+  forall (M : Type.{u1}) {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (S : Subring.{u2} R _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R _inst_1 _inst_2 _inst_3 S], MulSemiringAction.{u1, u2} M (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) x S)) _inst_1 (Ring.toSemiring.{u2} (Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) x S)) (Subring.toRing.{u2} R _inst_2 S))
+Case conversion may be inaccurate. Consider using '#align is_invariant_subring.to_mul_semiring_action IsInvariantSubring.toMulSemiringActionₓ'. -/
 instance IsInvariantSubring.toMulSemiringAction [IsInvariantSubring M S] : MulSemiringAction M S
     where
   smul m x := ⟨m • x, IsInvariantSubring.smul_mem m x.2⟩
@@ -50,21 +58,39 @@ variable {R' : Type _} [Ring R'] [MulSemiringAction M R']
 
 variable (U : Subring R') [IsInvariantSubring M U]
 
+/- warning: is_invariant_subring.subtype_hom -> IsInvariantSubring.subtypeHom is a dubious translation:
+lean 3 declaration is
+  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3
+but is expected to have type
+  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3
+Case conversion may be inaccurate. Consider using '#align is_invariant_subring.subtype_hom IsInvariantSubring.subtypeHomₓ'. -/
 /-- The canonical inclusion from an invariant subring. -/
 def IsInvariantSubring.subtypeHom : U →+*[M] R' :=
   { U.Subtype with map_smul' := fun m s => rfl }
 #align is_invariant_subring.subtype_hom IsInvariantSubring.subtypeHom
 
+/- warning: is_invariant_subring.coe_subtype_hom -> IsInvariantSubring.coe_subtypeHom is a dubious translation:
+lean 3 declaration is
+  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} ((fun (_x : MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) => (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) -> R') (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (coeFn.{succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (fun (_x : MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) => (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) -> R') ([anonymous].{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (coeSubtype.{succ u2} R' (fun (x : R') => Membership.Mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) x U))))))
+but is expected to have type
+  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} (forall (a : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => R') a) (FunLike.coe.{succ u2, succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (fun (_x : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) => R') _x) (SMulHomClass.toFunLike.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' (SMulZeroClass.toSMul.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoid.toZero.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U))))))) (DistribSMul.toSMulZeroClass.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoid.toAddZeroClass.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U))))))) (DistribMulAction.toDistribSMul.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4))))) (SMulZeroClass.toSMul.{u1, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R' _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3)))) (DistribMulActionHomClass.toSMulHomClass.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)))))) (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4)) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (MulSemiringActionHomClass.toDistribMulActionHomClass.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' _inst_1 (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (Ring.toSemiring.{u2} R' _inst_2) (MulSemiringAction.toDistribMulAction.{u1, u2} M (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) _inst_1 (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4)) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3)))) (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (Subtype.val.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U))
+Case conversion may be inaccurate. Consider using '#align is_invariant_subring.coe_subtype_hom IsInvariantSubring.coe_subtypeHomₓ'. -/
 @[simp]
-theorem IsInvariantSubring.coeSubtype_hom : (IsInvariantSubring.subtypeHom M U : U → R') = coe :=
+theorem IsInvariantSubring.coe_subtypeHom : (IsInvariantSubring.subtypeHom M U : U → R') = coe :=
   rfl
-#align is_invariant_subring.coe_subtype_hom IsInvariantSubring.coeSubtype_hom
-
+#align is_invariant_subring.coe_subtype_hom IsInvariantSubring.coe_subtypeHom
+
+/- warning: is_invariant_subring.coe_subtype_hom' -> IsInvariantSubring.coe_subtypeHom' is a dubious translation:
+lean 3 declaration is
+  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} (RingHom.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (NonAssocRing.toNonAssocSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U))) (NonAssocRing.toNonAssocSemiring.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (RingHom.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (NonAssocRing.toNonAssocSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U))) (NonAssocRing.toNonAssocSemiring.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_2))) (HasLiftT.mk.{succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (RingHom.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (NonAssocRing.toNonAssocSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U))) (NonAssocRing.toNonAssocSemiring.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_2))) (CoeTCₓ.coe.{succ u2, succ u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (RingHom.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (NonAssocRing.toNonAssocSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U))) (NonAssocRing.toNonAssocSemiring.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_2))) (RingHom.hasCoeT.{u2, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' (NonAssocRing.toNonAssocSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toNonAssocRing.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U))) (NonAssocRing.toNonAssocSemiring.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_2)) (MulSemiringActionHomClass.toRingHomClass.{u2, u1, u2, u2} (MulSemiringActionHom.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3) M (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) R' _inst_1 (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (Ring.toSemiring.{u2} R' _inst_2) (MulSemiringAction.toDistribMulAction.{u1, u2} M (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) _inst_1 (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4)) (MulSemiringAction.toDistribMulAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2) _inst_3) (MulSemiringActionHom.mulSemiringActionHomClass.{u1, u2, u2} M _inst_1 (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Ring.toSemiring.{u2} (coeSort.{succ u2, succ (succ u2)} (Subring.{u2} R' _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.setLike.{u2} R' _inst_2)) U) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3))))) (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (Subring.subtype.{u2} R' _inst_2 U)
+but is expected to have type
+  forall (M : Type.{u1}) [_inst_1 : Monoid.{u1} M] {R' : Type.{u2}} [_inst_2 : Ring.{u2} R'] [_inst_3 : MulSemiringAction.{u1, u2} M R' _inst_1 (Ring.toSemiring.{u2} R' _inst_2)] (U : Subring.{u2} R' _inst_2) [_inst_4 : IsInvariantSubring.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U], Eq.{succ u2} (RingHom.{u2, u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) R' (Semiring.toNonAssocSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U))) (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_2))) (MulSemiringActionHom.toRingHom.{u1, u2, u2} M _inst_1 (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Ring.toSemiring.{u2} (Subtype.{succ u2} R' (fun (x : R') => Membership.mem.{u2, u2} R' (Subring.{u2} R' _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R' _inst_2) R' (Subring.instSetLikeSubring.{u2} R' _inst_2)) x U)) (Subring.toRing.{u2} R' _inst_2 U)) (IsInvariantSubring.toMulSemiringAction.{u1, u2} M R' _inst_1 _inst_2 _inst_3 U _inst_4) R' (Ring.toSemiring.{u2} R' _inst_2) _inst_3 (IsInvariantSubring.subtypeHom.{u1, u2} M _inst_1 R' _inst_2 _inst_3 U _inst_4)) (Subring.subtype.{u2} R' _inst_2 U)
+Case conversion may be inaccurate. Consider using '#align is_invariant_subring.coe_subtype_hom' IsInvariantSubring.coe_subtypeHom'ₓ'. -/
 @[simp]
-theorem IsInvariantSubring.coe_subtype_hom' :
+theorem IsInvariantSubring.coe_subtypeHom' :
     (IsInvariantSubring.subtypeHom M U : U →+* R') = U.Subtype :=
   rfl
-#align is_invariant_subring.coe_subtype_hom' IsInvariantSubring.coe_subtype_hom'
+#align is_invariant_subring.coe_subtype_hom' IsInvariantSubring.coe_subtypeHom'
 
 end
 

Changes in mathlib4

mathlib3
mathlib4
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
@@ -14,7 +14,6 @@ import Mathlib.RingTheory.Subring.Basic
 section Ring
 
 variable (M R : Type*) [Monoid M] [Ring R] [MulSemiringAction M R]
-
 variable (S : Subring R)
 
 open MulAction
@@ -42,9 +41,7 @@ end Ring
 section
 
 variable (M : Type*) [Monoid M]
-
 variable {R' : Type*} [Ring R'] [MulSemiringAction M R']
-
 variable (U : Subring R') [IsInvariantSubring M U]
 
 /-- The canonical inclusion from an invariant subring. -/
chore: reduce imports (#9830)

This uses the improved shake script from #9772 to reduce imports across mathlib. The corresponding noshake.json file has been added to #9772.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
 -/
 import Mathlib.GroupTheory.GroupAction.Hom
-import Mathlib.RingTheory.Subring.Pointwise
+import Mathlib.RingTheory.Subring.Basic
 
 #align_import algebra.group_ring_action.invariant from "leanprover-community/mathlib"@"e7bab9a85e92cf46c02cb4725a7be2f04691e3a7"
 
refactor(Algebra/Hom): transpose Hom and file name (#8095)

I believe the file defining a type of morphisms belongs alongside the file defining the structure this morphism works on. So I would like to reorganize the files in the Mathlib.Algebra.Hom folder so that e.g. Mathlib.Algebra.Hom.Ring becomes Mathlib.Algebra.Ring.Hom and Mathlib.Algebra.Hom.NonUnitalAlg becomes Mathlib.Algebra.Algebra.NonUnitalHom.

While fixing the imports I went ahead and sorted them for good luck.

The full list of changes is: renamed: Mathlib/Algebra/Hom/NonUnitalAlg.lean -> Mathlib/Algebra/Algebra/NonUnitalHom.lean renamed: Mathlib/Algebra/Hom/Aut.lean -> Mathlib/Algebra/Group/Aut.lean renamed: Mathlib/Algebra/Hom/Commute.lean -> Mathlib/Algebra/Group/Commute/Hom.lean renamed: Mathlib/Algebra/Hom/Embedding.lean -> Mathlib/Algebra/Group/Embedding.lean renamed: Mathlib/Algebra/Hom/Equiv/Basic.lean -> Mathlib/Algebra/Group/Equiv/Basic.lean renamed: Mathlib/Algebra/Hom/Equiv/TypeTags.lean -> Mathlib/Algebra/Group/Equiv/TypeTags.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/Basic.lean -> Mathlib/Algebra/Group/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/GroupWithZero.lean -> Mathlib/Algebra/GroupWithZero/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Freiman.lean -> Mathlib/Algebra/Group/Freiman.lean renamed: Mathlib/Algebra/Hom/Group/Basic.lean -> Mathlib/Algebra/Group/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Group/Defs.lean -> Mathlib/Algebra/Group/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/GroupAction.lean -> Mathlib/GroupTheory/GroupAction/Hom.lean renamed: Mathlib/Algebra/Hom/GroupInstances.lean -> Mathlib/Algebra/Group/Hom/Instances.lean renamed: Mathlib/Algebra/Hom/Iterate.lean -> Mathlib/Algebra/GroupPower/IterateHom.lean renamed: Mathlib/Algebra/Hom/Centroid.lean -> Mathlib/Algebra/Ring/CentroidHom.lean renamed: Mathlib/Algebra/Hom/Ring/Basic.lean -> Mathlib/Algebra/Ring/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Ring/Defs.lean -> Mathlib/Algebra/Ring/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/Units.lean -> Mathlib/Algebra/Group/Units/Hom.lean

Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Reorganizing.20.60Mathlib.2EAlgebra.2EHom.60

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2021 Eric Wieser. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
 -/
-import Mathlib.Algebra.Hom.GroupAction
+import Mathlib.GroupTheory.GroupAction.Hom
 import Mathlib.RingTheory.Subring.Pointwise
 
 #align_import algebra.group_ring_action.invariant from "leanprover-community/mathlib"@"e7bab9a85e92cf46c02cb4725a7be2f04691e3a7"
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
@@ -13,7 +13,7 @@ import Mathlib.RingTheory.Subring.Pointwise
 
 section Ring
 
-variable (M R : Type _) [Monoid M] [Ring R] [MulSemiringAction M R]
+variable (M R : Type*) [Monoid M] [Ring R] [MulSemiringAction M R]
 
 variable (S : Subring R)
 
@@ -41,9 +41,9 @@ end Ring
 
 section
 
-variable (M : Type _) [Monoid M]
+variable (M : Type*) [Monoid M]
 
-variable {R' : Type _} [Ring R'] [MulSemiringAction M R']
+variable {R' : Type*} [Ring R'] [MulSemiringAction M R']
 
 variable (U : Subring R') [IsInvariantSubring M U]
 
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,15 +2,12 @@
 Copyright (c) 2021 Eric Wieser. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
-
-! This file was ported from Lean 3 source module algebra.group_ring_action.invariant
-! leanprover-community/mathlib commit e7bab9a85e92cf46c02cb4725a7be2f04691e3a7
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Hom.GroupAction
 import Mathlib.RingTheory.Subring.Pointwise
 
+#align_import algebra.group_ring_action.invariant from "leanprover-community/mathlib"@"e7bab9a85e92cf46c02cb4725a7be2f04691e3a7"
+
 /-! # Subrings invariant under an action -/
 
 
feat: port Algebra.GroupRingAction.Invariant (#2970)

Co-authored-by: Chris Hughes <33847686+ChrisHughes24@users.noreply.github.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com>

Dependencies 8 + 308

309 files ported (97.5%)
128473 lines ported (97.6%)
Show graph

The unported dependencies are