Documentation

Mathlib.Algebra.GroupWithZero.Range

The range of a MonoidWithZeroHom #

Given a MonoidWithZeroHom f : A → B whose codomain B is a MonoidWithZero, we define the type MonoidWithZeroHom.valueMonoid as the submonoid of generated by the invertible elements in the range of f. For example, if A = ℕ, f is the natural cast to B where B is

MonoidWithZeroHom.valueMonoid₀ is the MonoidWithZero obtained by adjoining 0 to the previous type.

Likewise, MonoidWithZeroHom.valueGroup is the subgroup of generated by the invertible elements in range f and MonoidWithZeroHom.valueGroup₀ adds a 0 to the previous group.

When B is commutative, then both MonoidWithZeroHom.valueGroup f and MonoidWithZeroHom.valueGroup₀ f are also commutative and the former can be described more explicitly (see MonoidWithZeroHom.mem_valueGroup_iff_of_comm).

Main Results #

Implementation details #

MonoidWithZeroHom.valueMonoid is defined explicitly in terms of its carrier, by proving the required properties; that it coincides with the submonoid generated by the closure is proven in MonoidWithZeroHom.valueMonoid_eq_closure, but using the latter as definition yields to unwanted unfolding.

def MonoidWithZeroHom.valueMonoid {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] (f : F) [MonoidWithZero A] [MonoidWithZero B] [MonoidWithZeroHomClass F A B] :

For a morphism of monoids with zero f, this is a smallest submonoid of the invertible elements in the codomain containing the range of f.

Equations
    Instances For
      theorem MonoidWithZeroHom.one_mem_valueMonoid {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] (f : F) [MonoidWithZero A] [MonoidWithZero B] [MonoidWithZeroHomClass F A B] :
      theorem MonoidWithZeroHom.coe_one {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] (f : F) [MonoidWithZero A] [MonoidWithZero B] [MonoidWithZeroHomClass F A B] :
      1, = 1
      def MonoidWithZeroHom.valueGroup {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] (f : F) [MonoidWithZero A] [MonoidWithZero B] [MonoidWithZeroHomClass F A B] :

      For a morphism of monoids with zero f, this is the smallest subgroup of the invertible elements in the codomain containing the range of f.

      Equations
        Instances For
          @[reducible, inline]
          abbrev MonoidWithZeroHom.valueMonoid₀ {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] (f : F) [MonoidWithZero A] [MonoidWithZero B] [MonoidWithZeroHomClass F A B] :
          Type u_2

          For a morphism of monoids with zero f, this is the smallest submonoid with zero of the codomain containing the range of f.

          Equations
            Instances For
              @[reducible, inline]
              abbrev MonoidWithZeroHom.valueGroup₀ {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] (f : F) [MonoidWithZero A] [MonoidWithZero B] [MonoidWithZeroHomClass F A B] :
              Type u_2

              For a morphism of monoids with zero f, this is a smallest subgroup with zero of the codomain containing the range of f.

              Equations
                Instances For
                  theorem MonoidWithZeroHom.mem_valueMonoid {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] (f : F) [MonoidWithZero A] [MonoidWithZero B] [MonoidWithZeroHomClass F A B] {b : Bˣ} (hb : b Set.range f) :
                  theorem MonoidWithZeroHom.mem_valueGroup {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] (f : F) [MonoidWithZero A] [MonoidWithZero B] [MonoidWithZeroHomClass F A B] {b : Bˣ} (hb : b Set.range f) :
                  theorem MonoidWithZeroHom.inv_mem_valueGroup {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] (f : F) [MonoidWithZero A] [MonoidWithZero B] [MonoidWithZeroHomClass F A B] {b : Bˣ} (hb : b Set.range f) :
                  theorem MonoidWithZeroHom.valueMonoid_eq_valueGroup' {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] (f : F) [GroupWithZero A] [GroupWithZero B] [MonoidWithZeroHomClass F A B] :
                  (valueMonoid f) = (valueGroup f)
                  theorem MonoidWithZeroHom.valueGroup_eq_range {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] {f : F} [GroupWithZero A] [GroupWithZero B] [MonoidWithZeroHomClass F A B] :
                  theorem MonoidWithZeroHom.mem_valueGroup_iff_of_comm {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] (f : F) [MonoidWithZero A] [CommGroupWithZero B] [MonoidWithZeroHomClass F A B] {y : Bˣ} :
                  y valueGroup f ∃ (a : A), f a 0 ∃ (x : A), f a * y = f x
                  @[deprecated MonoidWithZeroHom.valueMonoid (since := "2025-07-02")]
                  def MonoidHomWithZero.valueMonoid {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] (f : F) [MonoidWithZero A] [MonoidWithZero B] [MonoidWithZeroHomClass F A B] :

                  Alias of MonoidWithZeroHom.valueMonoid.


                  For a morphism of monoids with zero f, this is a smallest submonoid of the invertible elements in the codomain containing the range of f.

                  Equations
                    Instances For
                      @[deprecated MonoidWithZeroHom.valueGroup (since := "2025-07-02")]
                      def MonoidHomWithZero.valueGroup {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] (f : F) [MonoidWithZero A] [MonoidWithZero B] [MonoidWithZeroHomClass F A B] :

                      Alias of MonoidWithZeroHom.valueGroup.


                      For a morphism of monoids with zero f, this is the smallest subgroup of the invertible elements in the codomain containing the range of f.

                      Equations
                        Instances For
                          @[deprecated MonoidWithZeroHom.valueMonoid₀ (since := "2025-07-02")]
                          def MonoidHomWithZero.valueMonoid₀ {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] (f : F) [MonoidWithZero A] [MonoidWithZero B] [MonoidWithZeroHomClass F A B] :
                          Type u_2

                          Alias of MonoidWithZeroHom.valueMonoid₀.


                          For a morphism of monoids with zero f, this is the smallest submonoid with zero of the codomain containing the range of f.

                          Equations
                            Instances For
                              @[deprecated MonoidWithZeroHom.valueGroup₀ (since := "2025-07-02")]
                              def MonoidHomWithZero.valueGroup₀ {A : Type u_1} {B : Type u_2} {F : Type u_3} [FunLike F A B] (f : F) [MonoidWithZero A] [MonoidWithZero B] [MonoidWithZeroHomClass F A B] :
                              Type u_2

                              Alias of MonoidWithZeroHom.valueGroup₀.


                              For a morphism of monoids with zero f, this is a smallest subgroup with zero of the codomain containing the range of f.

                              Equations
                                Instances For