mathlib documentation

group_theory.complement

Complements #

In this file we define the complement of a subgroup.

Main definitions #

Main results #

def add_subgroup.is_complement {G : Type u_1} [add_group G] (S T : set G) :
Prop

S and T are complements if (*) : S × T → G is a bijection

Equations
def subgroup.is_complement {G : Type u_1} [group G] (S T : set G) :
Prop

S and T are complements if (*) : S × T → G is a bijection. This notion generalizes left transversals, right transversals, and complementary subgroups.

Equations
def add_subgroup.is_complement' {G : Type u_1} [add_group G] (H K : add_subgroup G) :
Prop

H and K are complements if (*) : H × K → G is a bijection

def subgroup.is_complement' {G : Type u_1} [group G] (H K : subgroup G) :
Prop

H and K are complements if (*) : H × K → G is a bijection

def add_subgroup.left_transversals {G : Type u_1} [add_group G] (T : set G) :
set (set G)

The set of left-complements of T : set G

Equations
def subgroup.left_transversals {G : Type u_1} [group G] (T : set G) :
set (set G)

The set of left-complements of T : set G

Equations
def subgroup.right_transversals {G : Type u_1} [group G] (S : set G) :
set (set G)

The set of right-complements of S : set G

Equations
def add_subgroup.right_transversals {G : Type u_1} [add_group G] (S : set G) :
set (set G)

The set of right-complements of S : set G

Equations
theorem add_subgroup.is_complement_iff_exists_unique {G : Type u_1} [add_group G] {S T : set G} :
add_subgroup.is_complement S T ∀ (g : G), ∃! (x : S × T), x.fst.val + x.snd.val = g
theorem subgroup.is_complement_iff_exists_unique {G : Type u_1} [group G] {S T : set G} :
subgroup.is_complement S T ∀ (g : G), ∃! (x : S × T), (x.fst.val) * x.snd.val = g
theorem subgroup.is_complement.exists_unique {G : Type u_1} [group G] {S T : set G} (h : subgroup.is_complement S T) (g : G) :
∃! (x : S × T), (x.fst.val) * x.snd.val = g
theorem add_subgroup.is_complement.exists_unique {G : Type u_1} [add_group G] {S T : set G} (h : add_subgroup.is_complement S T) (g : G) :
∃! (x : S × T), x.fst.val + x.snd.val = g
theorem subgroup.is_complement'.symm {G : Type u_1} [group G] {H K : subgroup G} (h : H.is_complement' K) :
theorem add_subgroup.is_complement'.symm {G : Type u_1} [add_group G] {H K : add_subgroup G} (h : H.is_complement' K) :
theorem subgroup.is_complement'_comm {G : Type u_1} [group G] {H K : subgroup G} :
theorem subgroup.is_complement_top_singleton {G : Type u_1} [group G] {g : G} :
theorem subgroup.is_complement_singleton_top {G : Type u_1} [group G] {g : G} :
theorem subgroup.is_complement_singleton_left {G : Type u_1} [group G] {S : set G} {g : G} :
theorem add_subgroup.is_complement_singleton_left {G : Type u_1} [add_group G] {S : set G} {g : G} :
theorem add_subgroup.is_complement_singleton_right {G : Type u_1} [add_group G] {S : set G} {g : G} :
theorem subgroup.is_complement_singleton_right {G : Type u_1} [group G] {S : set G} {g : G} :
theorem add_subgroup.is_complement_top_left {G : Type u_1} [add_group G] {S : set G} :
add_subgroup.is_complement S ∃ (g : G), S = {g}
theorem subgroup.is_complement_top_left {G : Type u_1} [group G] {S : set G} :
subgroup.is_complement S ∃ (g : G), S = {g}
theorem add_subgroup.is_complement_top_right {G : Type u_1} [add_group G] {S : set G} :
add_subgroup.is_complement S ∃ (g : G), S = {g}
theorem subgroup.is_complement_top_right {G : Type u_1} [group G] {S : set G} :
subgroup.is_complement S ∃ (g : G), S = {g}
@[simp]
theorem subgroup.is_complement'_bot_left {G : Type u_1} [group G] {H : subgroup G} :
@[simp]
@[simp]
@[simp]
theorem subgroup.is_complement'_bot_right {G : Type u_1} [group G] {H : subgroup G} :
@[simp]
theorem subgroup.is_complement'_top_left {G : Type u_1} [group G] {H : subgroup G} :
@[simp]
@[simp]
theorem subgroup.is_complement'_top_right {G : Type u_1} [group G] {H : subgroup G} :
@[simp]
theorem subgroup.mem_left_transversals_iff_exists_unique_inv_mul_mem {G : Type u_1} [group G] {S T : set G} :
S subgroup.left_transversals T ∀ (g : G), ∃! (s : S), (s)⁻¹ * g T
theorem add_subgroup.mem_left_transversals_iff_exists_unique_neg_add_mem {G : Type u_1} [add_group G] {S T : set G} :
S add_subgroup.left_transversals T ∀ (g : G), ∃! (s : S), -s + g T
theorem subgroup.mem_right_transversals_iff_exists_unique_mul_inv_mem {G : Type u_1} [group G] {S T : set G} :
S subgroup.right_transversals T ∀ (g : G), ∃! (s : S), g * (s)⁻¹ T
theorem subgroup.is_complement'.is_compl {G : Type u_1} [group G] {H K : subgroup G} (h : H.is_complement' K) :
theorem subgroup.is_complement'.sup_eq_top {G : Type u_1} [group G] {H K : subgroup G} (h : H.is_complement' K) :
H K =
theorem subgroup.is_complement'.disjoint {G : Type u_1} [group G] {H K : subgroup G} (h : H.is_complement' K) :