algebra.group_ring_action.invariant
⟷
Mathlib.Algebra.GroupRingAction.Invariant
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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.
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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' :
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -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 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -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' :
mathlib commit https://github.com/leanprover-community/mathlib/commit/7ec294687917cbc5c73620b4414ae9b5dd9ae1b4
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/02ba8949f486ebecf93fe7460f1ed0564b5e442c
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
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)
@@ -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. -/
@@ -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"
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
@@ -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"
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -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]
@@ -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 -/
The unported dependencies are