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 #
AddSubmonoid.support: the support of a submonoid.AddSubmonoid.IsPointed: typeclass for submonoids with zero support.AddSubmonoid.IsSpanning: typeclass for submonoids generating the whole group.
The support of a submonoid M of a group G is M ∩ -M,
the largest subgroup of G contained in M.
Instances For
@[simp]
@[simp]
@[simp]
@[simp]
theorem
AddSubmonoid.IsPointed.mk
{G : Type u_1}
[AddGroup G]
{M : AddSubmonoid G}
(h : ∀ x ∈ M, -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)
:
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)
:
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)
:
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)
:
@[simp]
theorem
Submonoid.IsMulPointed.mulSupport_eq_bot
{G : Type u_1}
[Group G]
{M : Submonoid G}
:
M.IsMulPointed → M.mulSupport = ⊥
Alias of the forward direction of isMulPointed_iff_mulSupport_eq_bot.
@[simp]
theorem
Submonoid.IsMulPointed.of_mulSupport_eq_bot
{G : Type u_1}
[Group G]
{M : Submonoid G}
:
M.mulSupport = ⊥ → M.IsMulPointed
Alias of the reverse direction of isMulPointed_iff_mulSupport_eq_bot.
A submonoid M of a group G is spanning if M generates G as a subgroup.
Instances For
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)
:
theorem
AddSubmonoid.IsSpanning.mem_or_neg_mem
{G : Type u_1}
[AddGroup G]
{M : AddSubmonoid G}
(hM : M.IsSpanning)
(a : G)
:
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)
:
theorem
Submonoid.IsMulSpanning.maximal_isMulPointed
{G : Type u_1}
[Group G]
{M : Submonoid G}
(hMp : M.IsMulPointed)
(hMs : M.IsMulSpanning)
:
theorem
AddSubmonoid.IsSpanning.maximal_isPointed
{G : Type u_1}
[AddGroup G]
{M : AddSubmonoid G}
(hMp : M.IsPointed)
(hMs : M.IsSpanning)
: