Documentation

Mathlib.Algebra.Group.Submonoid.Support

Supports of submonoids #

Let G be an (additive) group, and let M be a submonoid of G. The support of M is M ∩ -M, the largest subgroup of G contained in M. A submonoid C is pointed, or a positive cone, if it has zero support. A submonoid C is spanning if the subgroup it generates is G itself.

The names for these concepts are taken from the theory of convex cones.

Main definitions #

def Submonoid.mulSupport {G : Type u_1} [Group G] (M : Submonoid G) :

The support of a submonoid M of a group G is M ∩ M⁻¹, the largest subgroup of G contained in M.

Equations
Instances For

    The support of a submonoid M of a group G is M ∩ -M, the largest subgroup of G contained in M.

    Equations
    • M.support = { toAddSubmonoid := M-M, neg_mem' := }
    Instances For
      @[simp]
      theorem AddSubmonoid.coe_support {G : Type u_1} [AddGroup G] (M : AddSubmonoid G) :
      M.support = M -M
      @[simp]
      theorem Submonoid.coe_mulSupport {G : Type u_1} [Group G] (M : Submonoid G) :
      M.mulSupport = M (↑M)⁻¹
      @[simp]
      theorem Submonoid.mem_mulSupport {G : Type u_1} [Group G] {M : Submonoid G} {x : G} :
      @[simp]
      theorem AddSubmonoid.mem_support {G : Type u_1} [AddGroup G] {M : AddSubmonoid G} {x : G} :
      x M.support x M -x M
      def Submonoid.IsMulPointed {G : Type u_1} [Group G] (M : Submonoid G) :

      A submonoid is pointed if it has zero support.

      Equations
      Instances For

        A submonoid is pointed if it has zero support.

        Equations
        Instances For
          theorem Submonoid.IsMulPointed.mk {G : Type u_1} [Group G] {M : Submonoid G} (h : xM, x⁻¹ Mx = 1) :
          theorem AddSubmonoid.IsPointed.mk {G : Type u_1} [AddGroup G] {M : AddSubmonoid G} (h : xM, -x Mx = 0) :
          theorem Submonoid.IsMulPointed.eq_one_of_mem_of_inv_mem {G : Type u_1} [Group G] {M : Submonoid G} (hM : M.IsMulPointed) {x : G} (hx₁ : x M) (hx₂ : x⁻¹ M) :
          x = 1
          theorem AddSubmonoid.IsPointed.eq_zero_of_mem_of_neg_mem {G : Type u_1} [AddGroup G] {M : AddSubmonoid G} (hM : M.IsPointed) {x : G} (hx₁ : x M) (hx₂ : -x M) :
          x = 0
          theorem Submonoid.IsMulPointed.eq_one_of_mem_of_inv_mem₂ {G : Type u_1} [Group G] {M : Submonoid G} (hM : M.IsMulPointed) {x : G} (hx₁ : x M) (hx₂ : x⁻¹ M) :
          x = 1

          Alias of Submonoid.IsMulPointed.eq_one_of_mem_of_inv_mem.

          theorem AddSubmonoid.IsPointed.eq_zero_of_mem_of_neg_mem₂ {G : Type u_1} [AddGroup G] {M : AddSubmonoid G} (hM : M.IsPointed) {x : G} (hx₁ : x M) (hx₂ : -x M) :
          x = 0
          @[simp]

          Alias of the forward direction of isMulPointed_iff_mulSupport_eq_bot.

          def Submonoid.IsMulSpanning {G : Type u_1} [Group G] (M : Submonoid G) :

          A submonoid M of a group G is spanning if M generates G as a subgroup.

          Equations
          Instances For

            A submonoid M of a group G is spanning if M generates G as a subgroup.

            Equations
            Instances For
              theorem Submonoid.IsMulSpanning.mk {G : Type u_1} [Group G] {M : Submonoid G} (h : ∀ (a : G), a M a⁻¹ M) :
              theorem AddSubmonoid.IsSpanning.mk {G : Type u_1} [AddGroup G] {M : AddSubmonoid G} (h : ∀ (a : G), a M -a M) :
              theorem Submonoid.IsMulSpanning.mem_or_inv_mem {G : Type u_1} [Group G] {M : Submonoid G} (hM : M.IsMulSpanning) (a : G) :
              a M a⁻¹ M
              theorem AddSubmonoid.IsSpanning.mem_or_neg_mem {G : Type u_1} [AddGroup G] {M : AddSubmonoid G} (hM : M.IsSpanning) (a : G) :
              a M -a M
              theorem Submonoid.IsMulSpanning.of_le {G : Type u_1} [Group G] {M N : Submonoid G} (hM : M.IsMulSpanning) (h : M N) :
              theorem AddSubmonoid.IsSpanning.of_le {G : Type u_1} [AddGroup G] {M N : AddSubmonoid G} (hM : M.IsSpanning) (h : M N) :