Documentation

Mathlib.Algebra.Group.Hom.Basic

Additional lemmas about monoid and group homomorphisms #

def powMonoidHom {ฮฑ : Type u_1} [CommMonoid ฮฑ] (n : โ„•) :
ฮฑ โ†’* ฮฑ

The nth power map on a commutative monoid for a natural n, considered as a morphism of monoids.

Equations
    Instances For
      def nsmulAddMonoidHom {ฮฑ : Type u_1} [AddCommMonoid ฮฑ] (n : โ„•) :
      ฮฑ โ†’+ ฮฑ

      Multiplication by a natural n on a commutative additive monoid, considered as a morphism of additive monoids.

      Equations
        Instances For
          @[simp]
          theorem powMonoidHom_apply {ฮฑ : Type u_1} [CommMonoid ฮฑ] (n : โ„•) (xโœ : ฮฑ) :
          (powMonoidHom n) xโœ = xโœ ^ n
          @[simp]
          theorem nsmulAddMonoidHom_apply {ฮฑ : Type u_1} [AddCommMonoid ฮฑ] (n : โ„•) (xโœ : ฮฑ) :
          (nsmulAddMonoidHom n) xโœ = n โ€ข xโœ
          def zpowGroupHom {ฮฑ : Type u_1} [DivisionCommMonoid ฮฑ] (n : โ„ค) :
          ฮฑ โ†’* ฮฑ

          The n-th power map (for an integer n) on a commutative group, considered as a group homomorphism.

          Equations
            Instances For
              def zsmulAddGroupHom {ฮฑ : Type u_1} [SubtractionCommMonoid ฮฑ] (n : โ„ค) :
              ฮฑ โ†’+ ฮฑ

              Multiplication by an integer n on a commutative additive group, considered as an additive group homomorphism.

              Equations
                Instances For
                  @[simp]
                  theorem zsmulAddGroupHom_apply {ฮฑ : Type u_1} [SubtractionCommMonoid ฮฑ] (n : โ„ค) (xโœ : ฮฑ) :
                  (zsmulAddGroupHom n) xโœ = n โ€ข xโœ
                  @[simp]
                  theorem zpowGroupHom_apply {ฮฑ : Type u_1} [DivisionCommMonoid ฮฑ] (n : โ„ค) (xโœ : ฮฑ) :
                  (zpowGroupHom n) xโœ = xโœ ^ n
                  def invMonoidHom {ฮฑ : Type u_1} [DivisionCommMonoid ฮฑ] :
                  ฮฑ โ†’* ฮฑ

                  Inversion on a commutative group, considered as a monoid homomorphism.

                  Equations
                    Instances For
                      def negAddMonoidHom {ฮฑ : Type u_1} [SubtractionCommMonoid ฮฑ] :
                      ฮฑ โ†’+ ฮฑ

                      Negation on a commutative additive group, considered as an additive monoid homomorphism.

                      Equations
                        Instances For
                          @[simp]
                          theorem coe_invMonoidHom {ฮฑ : Type u_1} [DivisionCommMonoid ฮฑ] :
                          @[simp]
                          theorem invMonoidHom_apply {ฮฑ : Type u_1} [DivisionCommMonoid ฮฑ] (a : ฮฑ) :
                          @[simp]
                          theorem negAddMonoidHom_apply {ฮฑ : Type u_1} [SubtractionCommMonoid ฮฑ] (a : ฮฑ) :
                          instance OneHom.instMul {M : Type u_2} {N : Type u_3} [One M] [MulOneClass N] :
                          Mul (OneHom M N)

                          Given two one-preserving morphisms f, g, f * g is the one-preserving morphism sending x to f x * g x.

                          Equations
                            instance ZeroHom.instAdd {M : Type u_2} {N : Type u_3} [Zero M] [AddZeroClass N] :
                            Add (ZeroHom M N)

                            Given two zero-preserving morphisms f, g, f + g is the zero-preserving morphism sending x to f x + g x.

                            Equations
                              theorem OneHom.coe_mul {M : Type u_8} {N : Type u_9} [One M] [MulOneClass N] (f g : OneHom M N) :
                              โ‡‘(f * g) = โ‡‘f * โ‡‘g
                              theorem ZeroHom.coe_add {M : Type u_8} {N : Type u_9} [Zero M] [AddZeroClass N] (f g : ZeroHom M N) :
                              โ‡‘(f + g) = โ‡‘f + โ‡‘g
                              @[simp]
                              theorem OneHom.mul_apply {M : Type u_8} {N : Type u_9} [One M] [MulOneClass N] (f g : OneHom M N) (x : M) :
                              (f * g) x = f x * g x
                              @[simp]
                              theorem ZeroHom.add_apply {M : Type u_8} {N : Type u_9} [Zero M] [AddZeroClass N] (f g : ZeroHom M N) (x : M) :
                              (f + g) x = f x + g x
                              theorem OneHom.mul_comp {M : Type u_2} {N : Type u_3} {P : Type u_4} [One M] [One N] [MulOneClass P] (gโ‚ gโ‚‚ : OneHom N P) (f : OneHom M N) :
                              (gโ‚ * gโ‚‚).comp f = gโ‚.comp f * gโ‚‚.comp f
                              theorem ZeroHom.add_comp {M : Type u_2} {N : Type u_3} {P : Type u_4} [Zero M] [Zero N] [AddZeroClass P] (gโ‚ gโ‚‚ : ZeroHom N P) (f : ZeroHom M N) :
                              (gโ‚ + gโ‚‚).comp f = gโ‚.comp f + gโ‚‚.comp f
                              instance OneHom.instInv {M : Type u_2} {N : Type u_3} [One M] [InvOneClass N] :
                              Inv (OneHom M N)

                              Given a one-preserving morphism f, fโปยน is the one-preserving morphism sending x to (f x)โปยน.

                              Equations
                                instance ZeroHom.instNeg {M : Type u_2} {N : Type u_3} [Zero M] [NegZeroClass N] :
                                Neg (ZeroHom M N)

                                Given a zero-preserving morphism f, -f is the zero-preserving morphism sending x to -f x.

                                Equations
                                  theorem OneHom.coe_inv {M : Type u_8} {N : Type u_9} [One M] [InvOneClass N] (f : OneHom M N) :
                                  โ‡‘fโปยน = (โ‡‘f)โปยน
                                  theorem ZeroHom.coe_neg {M : Type u_8} {N : Type u_9} [Zero M] [NegZeroClass N] (f : ZeroHom M N) :
                                  โ‡‘(-f) = -โ‡‘f
                                  @[simp]
                                  theorem OneHom.inv_apply {M : Type u_8} {N : Type u_9} [One M] [InvOneClass N] (f : OneHom M N) (x : M) :
                                  @[simp]
                                  theorem ZeroHom.neg_apply {M : Type u_8} {N : Type u_9} [Zero M] [NegZeroClass N] (f : ZeroHom M N) (x : M) :
                                  (-f) x = -f x
                                  theorem OneHom.inv_comp {M : Type u_2} {N : Type u_3} {P : Type u_4} [One M] [One N] [InvOneClass P] (g : OneHom N P) (f : OneHom M N) :
                                  theorem ZeroHom.neg_comp {M : Type u_2} {N : Type u_3} {P : Type u_4} [Zero M] [Zero N] [NegZeroClass P] (g : ZeroHom N P) (f : ZeroHom M N) :
                                  (-g).comp f = -g.comp f
                                  instance OneHom.instDiv {M : Type u_2} {N : Type u_3} [One M] [DivisionMonoid N] :
                                  Div (OneHom M N)

                                  Given two one-preserving morphisms f, g, f / g is the one-preserving morphism sending x to f x / g x.

                                  Equations
                                    instance ZeroHom.instSub {M : Type u_2} {N : Type u_3} [Zero M] [SubtractionMonoid N] :
                                    Sub (ZeroHom M N)

                                    Given two zero-preserving morphisms f, g, f - g is the additive morphism sending x to f x - g x.

                                    Equations
                                      theorem OneHom.coe_div {M : Type u_8} {N : Type u_9} [One M] [DivisionMonoid N] (f g : OneHom M N) :
                                      โ‡‘(f / g) = โ‡‘f / โ‡‘g
                                      theorem ZeroHom.coe_sub {M : Type u_8} {N : Type u_9} [Zero M] [SubtractionMonoid N] (f g : ZeroHom M N) :
                                      โ‡‘(f - g) = โ‡‘f - โ‡‘g
                                      @[simp]
                                      theorem OneHom.div_apply {M : Type u_8} {N : Type u_9} [One M] [DivisionMonoid N] (f g : OneHom M N) (x : M) :
                                      (f / g) x = f x / g x
                                      @[simp]
                                      theorem ZeroHom.sub_apply {M : Type u_8} {N : Type u_9} [Zero M] [SubtractionMonoid N] (f g : ZeroHom M N) (x : M) :
                                      (f - g) x = f x - g x
                                      theorem OneHom.div_comp {M : Type u_2} {N : Type u_3} {P : Type u_4} [One M] [One N] [DivisionMonoid P] (gโ‚ gโ‚‚ : OneHom N P) (f : OneHom M N) :
                                      (gโ‚ / gโ‚‚).comp f = gโ‚.comp f / gโ‚‚.comp f
                                      theorem ZeroHom.sub_comp {M : Type u_2} {N : Type u_3} {P : Type u_4} [Zero M] [Zero N] [SubtractionMonoid P] (gโ‚ gโ‚‚ : ZeroHom N P) (f : ZeroHom M N) :
                                      (gโ‚ - gโ‚‚).comp f = gโ‚.comp f - gโ‚‚.comp f
                                      instance MulHom.instMul {M : Type u_2} {N : Type u_3} [Mul M] [CommSemigroup N] :

                                      Given two mul morphisms f, g to a commutative semigroup, f * g is the mul morphism sending x to f x * g x.

                                      Equations
                                        instance AddHom.instAdd {M : Type u_2} {N : Type u_3} [Add M] [AddCommSemigroup N] :

                                        Given two additive morphisms f, g to an additive commutative semigroup, f + g is the additive morphism sending x to f x + g x.

                                        Equations
                                          @[simp]
                                          theorem MulHom.mul_apply {M : Type u_8} {N : Type u_9} [Mul M] [CommSemigroup N] (f g : M โ†’โ‚™* N) (x : M) :
                                          (f * g) x = f x * g x
                                          @[simp]
                                          theorem AddHom.add_apply {M : Type u_8} {N : Type u_9} [Add M] [AddCommSemigroup N] (f g : M โ†’โ‚™+ N) (x : M) :
                                          (f + g) x = f x + g x
                                          theorem MulHom.mul_comp {M : Type u_2} {N : Type u_3} {P : Type u_4} [Mul M] [Mul N] [CommSemigroup P] (gโ‚ gโ‚‚ : N โ†’โ‚™* P) (f : M โ†’โ‚™* N) :
                                          (gโ‚ * gโ‚‚).comp f = gโ‚.comp f * gโ‚‚.comp f
                                          theorem AddHom.add_comp {M : Type u_2} {N : Type u_3} {P : Type u_4} [Add M] [Add N] [AddCommSemigroup P] (gโ‚ gโ‚‚ : N โ†’โ‚™+ P) (f : M โ†’โ‚™+ N) :
                                          (gโ‚ + gโ‚‚).comp f = gโ‚.comp f + gโ‚‚.comp f
                                          theorem MulHom.comp_mul {M : Type u_2} {N : Type u_3} {P : Type u_4} [Mul M] [CommSemigroup N] [CommSemigroup P] (g : N โ†’โ‚™* P) (fโ‚ fโ‚‚ : M โ†’โ‚™* N) :
                                          g.comp (fโ‚ * fโ‚‚) = g.comp fโ‚ * g.comp fโ‚‚
                                          theorem AddHom.comp_add {M : Type u_2} {N : Type u_3} {P : Type u_4} [Add M] [AddCommSemigroup N] [AddCommSemigroup P] (g : N โ†’โ‚™+ P) (fโ‚ fโ‚‚ : M โ†’โ‚™+ N) :
                                          g.comp (fโ‚ + fโ‚‚) = g.comp fโ‚ + g.comp fโ‚‚
                                          theorem injective_iff_map_eq_one {F : Type u_7} {G : Type u_8} {H : Type u_9} [Group G] [MulOneClass H] [FunLike F G H] [MonoidHomClass F G H] (f : F) :
                                          Function.Injective โ‡‘f โ†” โˆ€ (a : G), f a = 1 โ†’ a = 1

                                          A homomorphism from a group to a monoid is injective iff its kernel is trivial. For the iff statement on the triviality of the kernel, see injective_iff_map_eq_one'.

                                          theorem injective_iff_map_eq_zero {F : Type u_7} {G : Type u_8} {H : Type u_9} [AddGroup G] [AddZeroClass H] [FunLike F G H] [AddMonoidHomClass F G H] (f : F) :
                                          Function.Injective โ‡‘f โ†” โˆ€ (a : G), f a = 0 โ†’ a = 0

                                          A homomorphism from an additive group to an additive monoid is injective iff its kernel is trivial. For the iff statement on the triviality of the kernel, see injective_iff_map_eq_zero'.

                                          theorem injective_iff_map_eq_one' {F : Type u_7} {G : Type u_8} {H : Type u_9} [Group G] [MulOneClass H] [FunLike F G H] [MonoidHomClass F G H] (f : F) :
                                          Function.Injective โ‡‘f โ†” โˆ€ (a : G), f a = 1 โ†” a = 1

                                          A homomorphism from a group to a monoid is injective iff its kernel is trivial, stated as an iff on the triviality of the kernel. For the implication, see injective_iff_map_eq_one.

                                          theorem injective_iff_map_eq_zero' {F : Type u_7} {G : Type u_8} {H : Type u_9} [AddGroup G] [AddZeroClass H] [FunLike F G H] [AddMonoidHomClass F G H] (f : F) :
                                          Function.Injective โ‡‘f โ†” โˆ€ (a : G), f a = 0 โ†” a = 0

                                          A homomorphism from an additive group to an additive monoid is injective iff its kernel is trivial, stated as an iff on the triviality of the kernel. For the implication, see injective_iff_map_eq_zero.

                                          def MonoidHom.ofMapMulInv {G : Type u_5} [Group G] {H : Type u_8} [Group H] (f : G โ†’ H) (map_div : โˆ€ (a b : G), f (a * bโปยน) = f a * (f b)โปยน) :

                                          Makes a group homomorphism from a proof that the map preserves right division fun x y => x * yโปยน. See also MonoidHom.of_map_div for a version using fun x y => x / y.

                                          Equations
                                            Instances For
                                              def AddMonoidHom.ofMapAddNeg {G : Type u_5} [AddGroup G] {H : Type u_8} [AddGroup H] (f : G โ†’ H) (map_sub : โˆ€ (a b : G), f (a + -b) = f a + -f b) :

                                              Makes an additive group homomorphism from a proof that the map preserves the operation fun a b => a + -b. See also AddMonoidHom.ofMapSub for a version using fun a b => a - b.

                                              Equations
                                                Instances For
                                                  @[simp]
                                                  theorem MonoidHom.coe_of_map_mul_inv {G : Type u_5} [Group G] {H : Type u_8} [Group H] (f : G โ†’ H) (map_div : โˆ€ (a b : G), f (a * bโปยน) = f a * (f b)โปยน) :
                                                  โ‡‘(ofMapMulInv f map_div) = f
                                                  @[simp]
                                                  theorem AddMonoidHom.coe_of_map_add_neg {G : Type u_5} [AddGroup G] {H : Type u_8} [AddGroup H] (f : G โ†’ H) (map_sub : โˆ€ (a b : G), f (a + -b) = f a + -f b) :
                                                  โ‡‘(ofMapAddNeg f map_sub) = f
                                                  def MonoidHom.ofMapDiv {G : Type u_5} [Group G] {H : Type u_8} [Group H] (f : G โ†’ H) (hf : โˆ€ (x y : G), f (x / y) = f x / f y) :

                                                  Define a morphism of additive groups given a map which respects ratios.

                                                  Equations
                                                    Instances For
                                                      def AddMonoidHom.ofMapSub {G : Type u_5} [AddGroup G] {H : Type u_8} [AddGroup H] (f : G โ†’ H) (hf : โˆ€ (x y : G), f (x - y) = f x - f y) :

                                                      Define a morphism of additive groups given a map which respects difference.

                                                      Equations
                                                        Instances For
                                                          @[simp]
                                                          theorem MonoidHom.coe_of_map_div {G : Type u_5} [Group G] {H : Type u_8} [Group H] (f : G โ†’ H) (hf : โˆ€ (x y : G), f (x / y) = f x / f y) :
                                                          โ‡‘(ofMapDiv f hf) = f
                                                          @[simp]
                                                          theorem AddMonoidHom.coe_of_map_sub {G : Type u_5} [AddGroup G] {H : Type u_8} [AddGroup H] (f : G โ†’ H) (hf : โˆ€ (x y : G), f (x - y) = f x - f y) :
                                                          โ‡‘(ofMapSub f hf) = f
                                                          instance MonoidHom.mul {M : Type u_2} {N : Type u_3} [MulOneClass M] [CommMonoid N] :

                                                          Given two monoid morphisms f, g to a commutative monoid, f * g is the monoid morphism sending x to f x * g x.

                                                          Equations
                                                            instance AddMonoidHom.add {M : Type u_2} {N : Type u_3} [AddZeroClass M] [AddCommMonoid N] :

                                                            Given two additive monoid morphisms f, g to an additive commutative monoid, f + g is the additive monoid morphism sending x to f x + g x.

                                                            Equations
                                                              @[simp]
                                                              theorem MonoidHom.mul_apply {M : Type u_2} {N : Type u_3} [MulOneClass M] [CommMonoid N] (f g : M โ†’* N) (x : M) :
                                                              (f * g) x = f x * g x
                                                              @[simp]
                                                              theorem AddMonoidHom.add_apply {M : Type u_2} {N : Type u_3} [AddZeroClass M] [AddCommMonoid N] (f g : M โ†’+ N) (x : M) :
                                                              (f + g) x = f x + g x
                                                              theorem MonoidHom.mul_comp {M : Type u_2} {N : Type u_3} {P : Type u_4} [MulOneClass M] [CommMonoid N] [MulOneClass P] (gโ‚ gโ‚‚ : M โ†’* N) (f : P โ†’* M) :
                                                              (gโ‚ * gโ‚‚).comp f = gโ‚.comp f * gโ‚‚.comp f
                                                              theorem AddMonoidHom.add_comp {M : Type u_2} {N : Type u_3} {P : Type u_4} [AddZeroClass M] [AddCommMonoid N] [AddZeroClass P] (gโ‚ gโ‚‚ : M โ†’+ N) (f : P โ†’+ M) :
                                                              (gโ‚ + gโ‚‚).comp f = gโ‚.comp f + gโ‚‚.comp f
                                                              theorem MonoidHom.comp_mul {M : Type u_2} {N : Type u_3} {P : Type u_4} [MulOneClass M] [CommMonoid N] [CommMonoid P] (g : N โ†’* P) (fโ‚ fโ‚‚ : M โ†’* N) :
                                                              g.comp (fโ‚ * fโ‚‚) = g.comp fโ‚ * g.comp fโ‚‚
                                                              theorem AddMonoidHom.comp_add {M : Type u_2} {N : Type u_3} {P : Type u_4} [AddZeroClass M] [AddCommMonoid N] [AddCommMonoid P] (g : N โ†’+ P) (fโ‚ fโ‚‚ : M โ†’+ N) :
                                                              g.comp (fโ‚ + fโ‚‚) = g.comp fโ‚ + g.comp fโ‚‚
                                                              instance MonoidHom.instInv {M : Type u_2} {G : Type u_5} [MulOneClass M] [CommGroup G] :

                                                              If f is a monoid homomorphism to a commutative group, then fโปยน is the homomorphism sending x to (f x)โปยน.

                                                              Equations
                                                                instance AddMonoidHom.instNeg {M : Type u_2} {G : Type u_5} [AddZeroClass M] [AddCommGroup G] :

                                                                If f is an additive monoid homomorphism to an additive commutative group, then -f is the homomorphism sending x to -(f x).

                                                                Equations
                                                                  @[simp]
                                                                  theorem MonoidHom.inv_apply {M : Type u_2} {G : Type u_5} [MulOneClass M] [CommGroup G] (f : M โ†’* G) (x : M) :
                                                                  @[simp]
                                                                  theorem AddMonoidHom.neg_apply {M : Type u_2} {G : Type u_5} [AddZeroClass M] [AddCommGroup G] (f : M โ†’+ G) (x : M) :
                                                                  (-f) x = -f x
                                                                  @[simp]
                                                                  theorem MonoidHom.inv_comp {M : Type u_2} {N : Type u_3} {G : Type u_5} [MulOneClass M] [MulOneClass N] [CommGroup G] (ฯ† : N โ†’* G) (ฯˆ : M โ†’* N) :
                                                                  ฯ†โปยน.comp ฯˆ = (ฯ†.comp ฯˆ)โปยน
                                                                  @[simp]
                                                                  theorem AddMonoidHom.neg_comp {M : Type u_2} {N : Type u_3} {G : Type u_5} [AddZeroClass M] [AddZeroClass N] [AddCommGroup G] (ฯ† : N โ†’+ G) (ฯˆ : M โ†’+ N) :
                                                                  (-ฯ†).comp ฯˆ = -ฯ†.comp ฯˆ
                                                                  @[simp]
                                                                  theorem MonoidHom.comp_inv {M : Type u_2} {G : Type u_5} {H : Type u_6} [MulOneClass M] [CommGroup G] [CommGroup H] (ฯ† : G โ†’* H) (ฯˆ : M โ†’* G) :
                                                                  ฯ†.comp ฯˆโปยน = (ฯ†.comp ฯˆ)โปยน
                                                                  @[simp]
                                                                  theorem AddMonoidHom.comp_neg {M : Type u_2} {G : Type u_5} {H : Type u_6} [AddZeroClass M] [AddCommGroup G] [AddCommGroup H] (ฯ† : G โ†’+ H) (ฯˆ : M โ†’+ G) :
                                                                  ฯ†.comp (-ฯˆ) = -ฯ†.comp ฯˆ
                                                                  instance MonoidHom.instDiv {M : Type u_2} {G : Type u_5} [MulOneClass M] [CommGroup G] :

                                                                  If f and g are monoid homomorphisms to a commutative group, then f / g is the homomorphism sending x to (f x) / (g x).

                                                                  Equations
                                                                    instance AddMonoidHom.instSub {M : Type u_2} {G : Type u_5} [AddZeroClass M] [AddCommGroup G] :

                                                                    If f and g are monoid homomorphisms to an additive commutative group, then f - g is the homomorphism sending x to (f x) - (g x).

                                                                    Equations
                                                                      @[simp]
                                                                      theorem MonoidHom.div_apply {M : Type u_2} {G : Type u_5} [MulOneClass M] [CommGroup G] (f g : M โ†’* G) (x : M) :
                                                                      (f / g) x = f x / g x
                                                                      @[simp]
                                                                      theorem AddMonoidHom.sub_apply {M : Type u_2} {G : Type u_5} [AddZeroClass M] [AddCommGroup G] (f g : M โ†’+ G) (x : M) :
                                                                      (f - g) x = f x - g x
                                                                      @[simp]
                                                                      theorem MonoidHom.div_comp {M : Type u_2} {N : Type u_3} {G : Type u_5} [MulOneClass M] [MulOneClass N] [CommGroup G] (f g : N โ†’* G) (h : M โ†’* N) :
                                                                      (f / g).comp h = f.comp h / g.comp h
                                                                      @[simp]
                                                                      theorem AddMonoidHom.sub_comp {M : Type u_2} {N : Type u_3} {G : Type u_5} [AddZeroClass M] [AddZeroClass N] [AddCommGroup G] (f g : N โ†’+ G) (h : M โ†’+ N) :
                                                                      (f - g).comp h = f.comp h - g.comp h
                                                                      @[simp]
                                                                      theorem MonoidHom.comp_div {M : Type u_2} {G : Type u_5} {H : Type u_6} [MulOneClass M] [CommGroup G] [CommGroup H] (f : G โ†’* H) (g h : M โ†’* G) :
                                                                      f.comp (g / h) = f.comp g / f.comp h
                                                                      @[simp]
                                                                      theorem AddMonoidHom.comp_sub {M : Type u_2} {G : Type u_5} {H : Type u_6} [AddZeroClass M] [AddCommGroup G] [AddCommGroup H] (f : G โ†’+ H) (g h : M โ†’+ G) :
                                                                      f.comp (g - h) = f.comp g - f.comp h
                                                                      def MonoidHom.commGroupOfInjective {G : Type u_5} {H : Type u_6} [Group G] [CommGroup H] (f : G โ†’* H) (hf : Function.Injective โ‡‘f) :

                                                                      If H is commutative and G โ†’* H is injective, then G is commutative.

                                                                      Equations
                                                                        Instances For
                                                                          def MonoidHom.commGroupOfSurjective {G : Type u_5} {H : Type u_6} [CommGroup G] [Group H] (f : G โ†’* H) (hf : Function.Surjective โ‡‘f) :

                                                                          If G is commutative and G โ†’* H is surjective, then H is commutative.

                                                                          Equations
                                                                            Instances For