Documentation

Mathlib.Algebra.Group.WithOne.Basic

More operations on WithOne and WithZero #

This file defines various bundled morphisms on WithOne and WithZero that were not available in Algebra/Group/WithOne/Defs.

Main definitions #

def WithOne.coeMulHom {α : Type u} [Mul α] :

WithOne.coe as a bundled morphism

Equations
    Instances For
      def WithZero.coeAddHom {α : Type u} [Add α] :

      WithZero.coe as a bundled morphism

      Equations
        Instances For
          @[simp]
          theorem WithZero.coeAddHom_apply {α : Type u} [Add α] (a✝ : α) :
          coeAddHom a✝ = a✝
          @[simp]
          theorem WithOne.coeMulHom_apply {α : Type u} [Mul α] (a✝ : α) :
          coeMulHom a✝ = a✝
          def WithOne.lift {α : Type u} {β : Type v} [Mul α] [MulOneClass β] :
          (α →ₙ* β) (WithOne α →* β)

          Lift a semigroup homomorphism f to a bundled monoid homomorphism.

          Equations
            Instances For
              def WithZero.lift {α : Type u} {β : Type v} [Add α] [AddZeroClass β] :
              (α →ₙ+ β) (WithZero α →+ β)

              Lift an add semigroup homomorphism f to a bundled add monoid homomorphism.

              Equations
                Instances For
                  @[simp]
                  theorem WithOne.lift_coe {α : Type u} {β : Type v} [Mul α] [MulOneClass β] (f : α →ₙ* β) (x : α) :
                  (lift f) x = f x
                  @[simp]
                  theorem WithZero.lift_coe {α : Type u} {β : Type v} [Add α] [AddZeroClass β] (f : α →ₙ+ β) (x : α) :
                  (lift f) x = f x
                  @[simp]
                  theorem WithOne.lift_one {α : Type u} {β : Type v} [Mul α] [MulOneClass β] (f : α →ₙ* β) :
                  (lift f) 1 = 1
                  @[simp]
                  theorem WithZero.lift_zero {α : Type u} {β : Type v} [Add α] [AddZeroClass β] (f : α →ₙ+ β) :
                  (lift f) 0 = 0
                  theorem WithOne.lift_unique {α : Type u} {β : Type v} [Mul α] [MulOneClass β] (f : WithOne α →* β) :
                  f = lift ((↑f).comp coeMulHom)
                  theorem WithZero.lift_unique {α : Type u} {β : Type v} [Add α] [AddZeroClass β] (f : WithZero α →+ β) :
                  f = lift ((↑f).comp coeAddHom)
                  def WithOne.map {α : Type u} {β : Type v} [Mul α] [Mul β] (f : α →ₙ* β) :

                  Given a multiplicative map from α → β returns a monoid homomorphism from WithOne α to WithOne β

                  Equations
                    Instances For
                      def WithZero.map {α : Type u} {β : Type v} [Add α] [Add β] (f : α →ₙ+ β) :

                      Given an additive map from α → β returns an add monoid homomorphism from WithZero α to WithZero β

                      Equations
                        Instances For
                          @[simp]
                          theorem WithOne.map_coe {α : Type u} {β : Type v} [Mul α] [Mul β] (f : α →ₙ* β) (a : α) :
                          (map f) a = (f a)
                          @[simp]
                          theorem WithZero.map_coe {α : Type u} {β : Type v} [Add α] [Add β] (f : α →ₙ+ β) (a : α) :
                          (map f) a = (f a)
                          @[simp]
                          theorem WithOne.map_id {α : Type u} [Mul α] :
                          @[simp]
                          theorem WithZero.map_id {α : Type u} [Add α] :
                          theorem WithOne.map_injective {α : Type u} {β : Type v} [Mul α] [Mul β] {f : α →ₙ* β} (hf : Function.Injective f) :
                          theorem WithZero.map_injective {α : Type u} {β : Type v} [Add α] [Add β] {f : α →ₙ+ β} (hf : Function.Injective f) :
                          theorem WithOne.map_injective' {α : Type u} {β : Type v} [Mul α] [Mul β] :
                          theorem WithZero.map_injective' {α : Type u} {β : Type v} [Add α] [Add β] :
                          @[simp]
                          theorem WithOne.map_inj {α : Type u} {β : Type v} [Mul α] [Mul β] {f g : α →ₙ* β} :
                          map f = map g f = g
                          @[simp]
                          theorem WithZero.map_inj {α : Type u} {β : Type v} [Add α] [Add β] {f g : α →ₙ+ β} :
                          map f = map g f = g
                          theorem WithOne.map_map {α : Type u} {β : Type v} {γ : Type w} [Mul α] [Mul β] [Mul γ] (f : α →ₙ* β) (g : β →ₙ* γ) (x : WithOne α) :
                          (map g) ((map f) x) = (map (g.comp f)) x
                          theorem WithZero.map_map {α : Type u} {β : Type v} {γ : Type w} [Add α] [Add β] [Add γ] (f : α →ₙ+ β) (g : β →ₙ+ γ) (x : WithZero α) :
                          (map g) ((map f) x) = (map (g.comp f)) x
                          @[simp]
                          theorem WithOne.map_comp {α : Type u} {β : Type v} {γ : Type w} [Mul α] [Mul β] [Mul γ] (f : α →ₙ* β) (g : β →ₙ* γ) :
                          map (g.comp f) = (map g).comp (map f)
                          @[simp]
                          theorem WithZero.map_comp {α : Type u} {β : Type v} {γ : Type w} [Add α] [Add β] [Add γ] (f : α →ₙ+ β) (g : β →ₙ+ γ) :
                          map (g.comp f) = (map g).comp (map f)
                          def MulEquiv.withOneCongr {α : Type u} {β : Type v} [Mul α] [Mul β] (e : α ≃* β) :

                          A version of Equiv.optionCongr for WithOne.

                          Equations
                            Instances For
                              def AddEquiv.withZeroCongr {α : Type u} {β : Type v} [Add α] [Add β] (e : α ≃+ β) :

                              A version of Equiv.optionCongr for WithZero.

                              Equations
                                Instances For
                                  @[simp]
                                  theorem AddEquiv.withZeroCongr_apply {α : Type u} {β : Type v} [Add α] [Add β] (e : α ≃+ β) (a : WithZero α) :
                                  @[simp]
                                  theorem MulEquiv.withOneCongr_apply {α : Type u} {β : Type v} [Mul α] [Mul β] (e : α ≃* β) (a : WithOne α) :
                                  @[simp]
                                  @[simp]
                                  @[simp]
                                  theorem MulEquiv.withOneCongr_symm {α : Type u} {β : Type v} [Mul α] [Mul β] (e : α ≃* β) :
                                  @[simp]
                                  theorem AddEquiv.withZeroCongr_symm {α : Type u} {β : Type v} [Add α] [Add β] (e : α ≃+ β) :
                                  @[simp]
                                  theorem MulEquiv.withOneCongr_trans {α : Type u} {β : Type v} {γ : Type w} [Mul α] [Mul β] [Mul γ] (e₁ : α ≃* β) (e₂ : β ≃* γ) :
                                  @[simp]
                                  theorem AddEquiv.withZeroCongr_trans {α : Type u} {β : Type v} {γ : Type w} [Add α] [Add β] [Add γ] (e₁ : α ≃+ β) (e₂ : β ≃+ γ) :