Documentation

Mathlib.Algebra.GroupWithZero.WithZero

Adjoining a zero to a group #

This file proves that one can adjoin a new zero element to a group and get a group with zero.

Main definitions #

instance WithZero.one {α : Type u_1} [One α] :
Equations
    @[simp]
    theorem WithZero.coe_one {α : Type u_1} [One α] :
    1 = 1
    instance WithZero.instMulZeroClass {α : Type u_1} [Mul α] :
    Equations
      @[simp]
      theorem WithZero.coe_mul {α : Type u_1} [Mul α] (a b : α) :
      ↑(a * b) = a * b
      theorem WithZero.unzero_mul {α : Type u_1} [Mul α] {x y : WithZero α} (hxy : x * y 0) :
      unzero hxy = unzero * unzero

      Coercion as a monoid hom.

      Equations
        Instances For
          @[simp]
          theorem WithZero.coeMonoidHom_apply {α : Type u_1} [MulOneClass α] (a✝ : α) :
          coeMonoidHom a✝ = a✝
          theorem WithZero.monoidWithZeroHom_ext {α : Type u_1} {β : Type u_2} [MulOneClass α] [MulZeroOneClass β] f g : WithZero α →*₀ β (h : (↑f).comp coeMonoidHom = (↑g).comp coeMonoidHom) :
          f = g
          theorem WithZero.monoidWithZeroHom_ext_iff {α : Type u_1} {β : Type u_2} [MulOneClass α] [MulZeroOneClass β] {f g : WithZero α →*₀ β} :
          noncomputable def WithZero.lift' {α : Type u_1} {β : Type u_2} [MulOneClass α] [MulZeroOneClass β] :
          (α →* β) (WithZero α →*₀ β)

          The (multiplicative) universal property of WithZero.

          Equations
            Instances For
              @[simp]
              theorem WithZero.lift'_symm_apply_apply {α : Type u_1} {β : Type u_2} [MulOneClass α] [MulZeroOneClass β] (F : WithZero α →*₀ β) (a✝ : α) :
              (lift'.symm F) a✝ = F a✝
              theorem WithZero.lift'_zero {α : Type u_1} {β : Type u_2} [MulOneClass α] [MulZeroOneClass β] (f : α →* β) :
              (lift' f) 0 = 0
              @[simp]
              theorem WithZero.lift'_coe {α : Type u_1} {β : Type u_2} [MulOneClass α] [MulZeroOneClass β] (f : α →* β) (x : α) :
              (lift' f) x = f x
              theorem WithZero.lift'_unique {α : Type u_1} {β : Type u_2} [MulOneClass α] [MulZeroOneClass β] (f : WithZero α →*₀ β) :
              noncomputable def WithZero.map' {α : Type u_1} {β : Type u_2} [MulOneClass α] [MulOneClass β] (f : α →* β) :

              The MonoidWithZero homomorphism WithZero α →* WithZero β induced by a monoid homomorphism f : α →* β.

              Equations
                Instances For
                  theorem WithZero.map'_zero {α : Type u_1} {β : Type u_2} [MulOneClass α] [MulOneClass β] (f : α →* β) :
                  (map' f) 0 = 0
                  @[simp]
                  theorem WithZero.map'_coe {α : Type u_1} {β : Type u_2} [MulOneClass α] [MulOneClass β] (f : α →* β) (x : α) :
                  (map' f) x = (f x)
                  @[simp]
                  theorem WithZero.map'_id {β : Type u_2} [MulOneClass β] :
                  theorem WithZero.map'_map' {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MulOneClass α] [MulOneClass β] [MulOneClass γ] (f : α →* β) (g : β →* γ) (x : WithZero α) :
                  (map' g) ((map' f) x) = (map' (g.comp f)) x
                  @[simp]
                  theorem WithZero.map'_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MulOneClass α] [MulOneClass β] [MulOneClass γ] (f : α →* β) (g : β →* γ) :
                  map' (g.comp f) = (map' g).comp (map' f)
                  instance WithZero.pow {α : Type u_1} [One α] [Pow α ] :
                  Equations
                    @[simp]
                    theorem WithZero.coe_pow {α : Type u_1} [One α] [Pow α ] (a : α) (n : ) :
                    ↑(a ^ n) = a ^ n
                    Equations
                      instance WithZero.inv {α : Type u_1} [Inv α] :

                      Extend the inverse operation on α to WithZero α by sending 0 to 0.

                      Equations
                        @[simp]
                        theorem WithZero.coe_inv {α : Type u_1} [Inv α] (a : α) :
                        a⁻¹ = (↑a)⁻¹
                        @[simp]
                        theorem WithZero.inv_zero {α : Type u_1} [Inv α] :
                        0⁻¹ = 0
                        Equations
                          instance WithZero.div {α : Type u_1} [Div α] :
                          Equations
                            theorem WithZero.coe_div {α : Type u_1} [Div α] (a b : α) :
                            ↑(a / b) = a / b
                            instance WithZero.instPowInt {α : Type u_1} [One α] [Pow α ] :
                            Equations
                              @[simp]
                              theorem WithZero.coe_zpow {α : Type u_1} [One α] [Pow α ] (a : α) (n : ) :
                              ↑(a ^ n) = a ^ n

                              If α is a group then WithZero α is a group with zero.

                              Equations

                                Any group is isomorphic to the units of itself adjoined with 0.

                                Equations
                                  Instances For
                                    def WithZero.withZeroUnitsEquiv {G : Type u_4} [GroupWithZero G] [DecidablePred fun (a : G) => a = 0] :

                                    Any group with zero is isomorphic to adjoining 0 to the units of itself.

                                    Equations
                                      Instances For
                                        noncomputable def MulEquiv.withZero {α : Type u_1} {β : Type u_2} [Group α] [Group β] (e : α ≃* β) :

                                        A version of Equiv.optionCongr for WithZero.

                                        Equations
                                          Instances For
                                            noncomputable def MulEquiv.unzero {α : Type u_1} {β : Type u_2} [Group α] [Group β] (e : WithZero α ≃* WithZero β) :
                                            α ≃* β

                                            The inverse of MulEquiv.withZero.

                                            Equations
                                              Instances For