Documentation

Mathlib.Algebra.GroupWithZero.InjSurj

Lifting groups with zero along injective/surjective maps #

@[reducible, inline]
abbrev Function.Injective.mulZeroClass {Mโ‚€ : Type u_1} {Mโ‚€' : Type u_3} [MulZeroClass Mโ‚€] [Mul Mโ‚€'] [Zero Mโ‚€'] (f : Mโ‚€' โ†’ Mโ‚€) (hf : Injective f) (zero : f 0 = 0) (mul : โˆ€ (a b : Mโ‚€'), f (a * b) = f a * f b) :
MulZeroClass Mโ‚€'

Pull back a MulZeroClass instance along an injective function. See note [reducible non-instances].

Instances For
    @[reducible, inline]
    abbrev Function.Surjective.mulZeroClass {Mโ‚€ : Type u_1} {Mโ‚€' : Type u_3} [MulZeroClass Mโ‚€] [Mul Mโ‚€'] [Zero Mโ‚€'] (f : Mโ‚€ โ†’ Mโ‚€') (hf : Surjective f) (zero : f 0 = 0) (mul : โˆ€ (a b : Mโ‚€), f (a * b) = f a * f b) :
    MulZeroClass Mโ‚€'

    Push forward a MulZeroClass instance along a surjective function. See note [reducible non-instances].

    Instances For
      theorem Function.Injective.noZeroDivisors {Mโ‚€ : Type u_1} {Mโ‚€' : Type u_3} [Mul Mโ‚€] [Zero Mโ‚€] [Mul Mโ‚€'] [Zero Mโ‚€'] (f : Mโ‚€ โ†’ Mโ‚€') (hf : Injective f) (zero : f 0 = 0) (mul : โˆ€ (x y : Mโ‚€), f (x * y) = f x * f y) [NoZeroDivisors Mโ‚€'] :

      Pull back a NoZeroDivisors instance along an injective function.

      theorem Function.Injective.isLeftCancelMulZero {Mโ‚€ : Type u_1} {Mโ‚€' : Type u_3} [Mul Mโ‚€] [Zero Mโ‚€] [Mul Mโ‚€'] [Zero Mโ‚€'] (f : Mโ‚€ โ†’ Mโ‚€') (hf : Injective f) (zero : f 0 = 0) (mul : โˆ€ (x y : Mโ‚€), f (x * y) = f x * f y) [IsLeftCancelMulZero Mโ‚€'] :
      theorem Function.Injective.isRightCancelMulZero {Mโ‚€ : Type u_1} {Mโ‚€' : Type u_3} [Mul Mโ‚€] [Zero Mโ‚€] [Mul Mโ‚€'] [Zero Mโ‚€'] (f : Mโ‚€ โ†’ Mโ‚€') (hf : Injective f) (zero : f 0 = 0) (mul : โˆ€ (x y : Mโ‚€), f (x * y) = f x * f y) [IsRightCancelMulZero Mโ‚€'] :
      theorem Function.Injective.isCancelMulZero {Mโ‚€ : Type u_1} {Mโ‚€' : Type u_3} [Mul Mโ‚€] [Zero Mโ‚€] [Mul Mโ‚€'] [Zero Mโ‚€'] (f : Mโ‚€ โ†’ Mโ‚€') (hf : Injective f) (zero : f 0 = 0) (mul : โˆ€ (x y : Mโ‚€), f (x * y) = f x * f y) [IsCancelMulZero Mโ‚€'] :
      @[reducible, inline]
      abbrev Function.Injective.mulZeroOneClass {Mโ‚€ : Type u_1} {Mโ‚€' : Type u_3} [MulZeroOneClass Mโ‚€] [Mul Mโ‚€'] [Zero Mโ‚€'] [One Mโ‚€'] (f : Mโ‚€' โ†’ Mโ‚€) (hf : Injective f) (zero : f 0 = 0) (one : f 1 = 1) (mul : โˆ€ (a b : Mโ‚€'), f (a * b) = f a * f b) :
      MulZeroOneClass Mโ‚€'

      Pull back a MulZeroOneClass instance along an injective function. See note [reducible non-instances].

      Instances For
        @[reducible, inline]
        abbrev Function.Surjective.mulZeroOneClass {Mโ‚€ : Type u_1} {Mโ‚€' : Type u_3} [MulZeroOneClass Mโ‚€] [Mul Mโ‚€'] [Zero Mโ‚€'] [One Mโ‚€'] (f : Mโ‚€ โ†’ Mโ‚€') (hf : Surjective f) (zero : f 0 = 0) (one : f 1 = 1) (mul : โˆ€ (a b : Mโ‚€), f (a * b) = f a * f b) :
        MulZeroOneClass Mโ‚€'

        Push forward a MulZeroOneClass instance along a surjective function. See note [reducible non-instances].

        Instances For
          @[reducible, inline]
          abbrev Function.Injective.semigroupWithZero {Mโ‚€ : Type u_1} {Mโ‚€' : Type u_3} [Zero Mโ‚€'] [Mul Mโ‚€'] [SemigroupWithZero Mโ‚€] (f : Mโ‚€' โ†’ Mโ‚€) (hf : Injective f) (zero : f 0 = 0) (mul : โˆ€ (x y : Mโ‚€'), f (x * y) = f x * f y) :

          Pull back a SemigroupWithZero along an injective function. See note [reducible non-instances].

          Instances For
            @[reducible, inline]
            abbrev Function.Surjective.semigroupWithZero {Mโ‚€ : Type u_1} {Mโ‚€' : Type u_3} [SemigroupWithZero Mโ‚€] [Zero Mโ‚€'] [Mul Mโ‚€'] (f : Mโ‚€ โ†’ Mโ‚€') (hf : Surjective f) (zero : f 0 = 0) (mul : โˆ€ (x y : Mโ‚€), f (x * y) = f x * f y) :

            Push forward a SemigroupWithZero along a surjective function. See note [reducible non-instances].

            Instances For
              @[reducible, inline]
              abbrev Function.Injective.monoidWithZero {Mโ‚€ : Type u_1} {Mโ‚€' : Type u_3} [Zero Mโ‚€'] [Mul Mโ‚€'] [One Mโ‚€'] [Pow Mโ‚€' โ„•] [MonoidWithZero Mโ‚€] (f : Mโ‚€' โ†’ Mโ‚€) (hf : Injective f) (zero : f 0 = 0) (one : f 1 = 1) (mul : โˆ€ (x y : Mโ‚€'), f (x * y) = f x * f y) (npow : โˆ€ (x : Mโ‚€') (n : โ„•), f (x ^ n) = f x ^ n) :
              MonoidWithZero Mโ‚€'

              Pull back a MonoidWithZero along an injective function. See note [reducible non-instances].

              Instances For
                @[reducible, inline]
                abbrev Function.Surjective.monoidWithZero {Mโ‚€ : Type u_1} {Mโ‚€' : Type u_3} [Zero Mโ‚€'] [Mul Mโ‚€'] [One Mโ‚€'] [Pow Mโ‚€' โ„•] [MonoidWithZero Mโ‚€] (f : Mโ‚€ โ†’ Mโ‚€') (hf : Surjective f) (zero : f 0 = 0) (one : f 1 = 1) (mul : โˆ€ (x y : Mโ‚€), f (x * y) = f x * f y) (npow : โˆ€ (x : Mโ‚€) (n : โ„•), f (x ^ n) = f x ^ n) :
                MonoidWithZero Mโ‚€'

                Push forward a MonoidWithZero along a surjective function. See note [reducible non-instances].

                Instances For
                  @[reducible, inline]
                  abbrev Function.Injective.commMonoidWithZero {Mโ‚€ : Type u_1} {Mโ‚€' : Type u_3} [Zero Mโ‚€'] [Mul Mโ‚€'] [One Mโ‚€'] [Pow Mโ‚€' โ„•] [CommMonoidWithZero Mโ‚€] (f : Mโ‚€' โ†’ Mโ‚€) (hf : Injective f) (zero : f 0 = 0) (one : f 1 = 1) (mul : โˆ€ (x y : Mโ‚€'), f (x * y) = f x * f y) (npow : โˆ€ (x : Mโ‚€') (n : โ„•), f (x ^ n) = f x ^ n) :

                  Pull back a CommMonoidWithZero along an injective function. See note [reducible non-instances].

                  Instances For
                    @[reducible, inline]
                    abbrev Function.Surjective.commMonoidWithZero {Mโ‚€ : Type u_1} {Mโ‚€' : Type u_3} [Zero Mโ‚€'] [Mul Mโ‚€'] [One Mโ‚€'] [Pow Mโ‚€' โ„•] [CommMonoidWithZero Mโ‚€] (f : Mโ‚€ โ†’ Mโ‚€') (hf : Surjective f) (zero : f 0 = 0) (one : f 1 = 1) (mul : โˆ€ (x y : Mโ‚€), f (x * y) = f x * f y) (npow : โˆ€ (x : Mโ‚€) (n : โ„•), f (x ^ n) = f x ^ n) :

                    Push forward a CommMonoidWithZero along a surjective function. See note [reducible non-instances].

                    Instances For
                      @[reducible, inline]
                      abbrev Function.Injective.groupWithZero {Gโ‚€ : Type u_2} {Gโ‚€' : Type u_4} [GroupWithZero Gโ‚€] [Zero Gโ‚€'] [Mul Gโ‚€'] [One Gโ‚€'] [Inv Gโ‚€'] [Div Gโ‚€'] [Pow Gโ‚€' โ„•] [Pow Gโ‚€' โ„ค] (f : Gโ‚€' โ†’ Gโ‚€) (hf : Injective f) (zero : f 0 = 0) (one : f 1 = 1) (mul : โˆ€ (x y : Gโ‚€'), f (x * y) = f x * f y) (inv : โˆ€ (x : Gโ‚€'), f xโปยน = (f x)โปยน) (div : โˆ€ (x y : Gโ‚€'), f (x / y) = f x / f y) (npow : โˆ€ (x : Gโ‚€') (n : โ„•), f (x ^ n) = f x ^ n) (zpow : โˆ€ (x : Gโ‚€') (n : โ„ค), f (x ^ n) = f x ^ n) :
                      GroupWithZero Gโ‚€'

                      Pull back a GroupWithZero along an injective function. See note [reducible non-instances].

                      Instances For
                        @[reducible, inline]
                        abbrev Function.Surjective.groupWithZero {Gโ‚€ : Type u_2} {Gโ‚€' : Type u_4} [GroupWithZero Gโ‚€] [Zero Gโ‚€'] [Mul Gโ‚€'] [One Gโ‚€'] [Inv Gโ‚€'] [Div Gโ‚€'] [Pow Gโ‚€' โ„•] [Pow Gโ‚€' โ„ค] (h01 : 0 โ‰  1) (f : Gโ‚€ โ†’ Gโ‚€') (hf : Surjective f) (zero : f 0 = 0) (one : f 1 = 1) (mul : โˆ€ (x y : Gโ‚€), f (x * y) = f x * f y) (inv : โˆ€ (x : Gโ‚€), f xโปยน = (f x)โปยน) (div : โˆ€ (x y : Gโ‚€), f (x / y) = f x / f y) (npow : โˆ€ (x : Gโ‚€) (n : โ„•), f (x ^ n) = f x ^ n) (zpow : โˆ€ (x : Gโ‚€) (n : โ„ค), f (x ^ n) = f x ^ n) :
                        GroupWithZero Gโ‚€'

                        Push forward a GroupWithZero along a surjective function. See note [reducible non-instances].

                        Instances For
                          @[reducible, inline]
                          abbrev Function.Injective.commGroupWithZero {Gโ‚€ : Type u_2} {Gโ‚€' : Type u_4} [CommGroupWithZero Gโ‚€] [Zero Gโ‚€'] [Mul Gโ‚€'] [One Gโ‚€'] [Inv Gโ‚€'] [Div Gโ‚€'] [Pow Gโ‚€' โ„•] [Pow Gโ‚€' โ„ค] (f : Gโ‚€' โ†’ Gโ‚€) (hf : Injective f) (zero : f 0 = 0) (one : f 1 = 1) (mul : โˆ€ (x y : Gโ‚€'), f (x * y) = f x * f y) (inv : โˆ€ (x : Gโ‚€'), f xโปยน = (f x)โปยน) (div : โˆ€ (x y : Gโ‚€'), f (x / y) = f x / f y) (npow : โˆ€ (x : Gโ‚€') (n : โ„•), f (x ^ n) = f x ^ n) (zpow : โˆ€ (x : Gโ‚€') (n : โ„ค), f (x ^ n) = f x ^ n) :

                          Pull back a CommGroupWithZero along an injective function. See note [reducible non-instances].

                          Instances For
                            @[implicit_reducible]
                            def Function.Surjective.commGroupWithZero {Gโ‚€ : Type u_2} {Gโ‚€' : Type u_4} [CommGroupWithZero Gโ‚€] [Zero Gโ‚€'] [Mul Gโ‚€'] [One Gโ‚€'] [Inv Gโ‚€'] [Div Gโ‚€'] [Pow Gโ‚€' โ„•] [Pow Gโ‚€' โ„ค] (h01 : 0 โ‰  1) (f : Gโ‚€ โ†’ Gโ‚€') (hf : Surjective f) (zero : f 0 = 0) (one : f 1 = 1) (mul : โˆ€ (x y : Gโ‚€), f (x * y) = f x * f y) (inv : โˆ€ (x : Gโ‚€), f xโปยน = (f x)โปยน) (div : โˆ€ (x y : Gโ‚€), f (x / y) = f x / f y) (npow : โˆ€ (x : Gโ‚€) (n : โ„•), f (x ^ n) = f x ^ n) (zpow : โˆ€ (x : Gโ‚€) (n : โ„ค), f (x ^ n) = f x ^ n) :

                            Push forward a CommGroupWithZero along a surjective function. See note [reducible non-instances].

                            Instances For