Documentation

Mathlib.GroupTheory.Complement

Complements #

In this file we define the complement of a subgroup.

Main definitions #

Main results #

def Subgroup.IsComplement {G : Type u_1} [Group G] (S T : Set G) :

S and T are complements if (*) : S ร— T โ†’ G is a bijection. This notion generalizes left transversals, right transversals, and complementary subgroups.

If S and T are SetLikes such as Subgroups, see isComplement_iff_bijective for a more ergonomic way to unfold.

Equations
    Instances For
      def AddSubgroup.IsComplement {G : Type u_1} [AddGroup G] (S T : Set G) :

      S and T are complements if (+) : S ร— T โ†’ G is a bijection

      If S and T are SetLikes such as AddSubgroups, see isComplement_iff_bijective for a more ergonomic way to unfold.

      Equations
        Instances For
          @[reducible, inline]
          abbrev Subgroup.IsComplement' {G : Type u_1} [Group G] (H K : Subgroup G) :

          H and K are complements if (*) : H ร— K โ†’ G is a bijection

          Equations
            Instances For
              @[reducible, inline]
              abbrev AddSubgroup.IsComplement' {G : Type u_1} [AddGroup G] (H K : AddSubgroup G) :

              H and K are complements if (+) : H ร— K โ†’ G is a bijection

              Equations
                Instances For
                  theorem Subgroup.isComplement_iff_bijective {G : Type u_1} [Group G] {S : Type u_2} [SetLike S G] (s t : S) :
                  IsComplement โ†‘s โ†‘t โ†” Function.Bijective fun (x : โ†ฅs ร— โ†ฅt) => โ†‘x.1 * โ†‘x.2

                  The correct way to unfold IsComplement for SetLikes such as Subgroups

                  theorem AddSubgroup.isComplement_iff_bijective {G : Type u_1} [AddGroup G] {S : Type u_2} [SetLike S G] (s t : S) :
                  IsComplement โ†‘s โ†‘t โ†” Function.Bijective fun (x : โ†ฅs ร— โ†ฅt) => โ†‘x.1 + โ†‘x.2

                  The correct way to unfold IsComplement for SetLikes such as AddSubgroups

                  theorem Subgroup.isComplement_iff_existsUnique {G : Type u_1} [Group G] {S T : Set G} :
                  IsComplement S T โ†” โˆ€ (g : G), โˆƒ! x : โ†‘S ร— โ†‘T, โ†‘x.1 * โ†‘x.2 = g
                  theorem AddSubgroup.isComplement_iff_existsUnique {G : Type u_1} [AddGroup G] {S T : Set G} :
                  IsComplement S T โ†” โˆ€ (g : G), โˆƒ! x : โ†‘S ร— โ†‘T, โ†‘x.1 + โ†‘x.2 = g
                  theorem Subgroup.IsComplement.existsUnique {G : Type u_1} [Group G] {S T : Set G} (h : IsComplement S T) (g : G) :
                  โˆƒ! x : โ†‘S ร— โ†‘T, โ†‘x.1 * โ†‘x.2 = g
                  theorem AddSubgroup.IsComplement.existsUnique {G : Type u_1} [AddGroup G] {S T : Set G} (h : IsComplement S T) (g : G) :
                  โˆƒ! x : โ†‘S ร— โ†‘T, โ†‘x.1 + โ†‘x.2 = g
                  theorem Subgroup.IsComplement'.symm {G : Type u_1} [Group G] {H K : Subgroup G} (h : H.IsComplement' K) :
                  theorem Subgroup.IsComplement.card_mul_card {G : Type u_1} [Group G] {S T : Set G} (h : IsComplement S T) :
                  Nat.card โ†‘S * Nat.card โ†‘T = Nat.card G
                  theorem AddSubgroup.isComplement_iff_existsUnique_neg_add_mem {G : Type u_1} [AddGroup G] {S T : Set G} :
                  IsComplement S T โ†” โˆ€ (g : G), โˆƒ! s : โ†‘S, -โ†‘s + g โˆˆ T
                  theorem AddSubgroup.isComplement_iff_existsUnique_add_neg_mem {G : Type u_1} [AddGroup G] {S T : Set G} :
                  IsComplement S T โ†” โˆ€ (g : G), โˆƒ! t : โ†‘T, g + -โ†‘t โˆˆ S
                  theorem Subgroup.isComplement_subgroup_right_iff_existsUnique_quotientGroupMk {G : Type u_1} [Group G] {H : Subgroup G} {S : Set G} :
                  IsComplement S โ†‘H โ†” โˆ€ (q : G โงธ H), โˆƒ! s : โ†‘S, โ†‘โ†‘s = q
                  theorem Subgroup.IsComplement.card_left {G : Type u_1} [Group G] {H : Subgroup G} {S : Set G} (h : IsComplement S โ†‘H) :
                  Nat.card โ†‘S = H.index
                  theorem AddSubgroup.IsComplement.card_left {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {S : Set G} (h : IsComplement S โ†‘H) :
                  Nat.card โ†‘S = H.index
                  theorem Subgroup.IsComplement.ncard_left {G : Type u_1} [Group G] {H : Subgroup G} {S : Set G} (h : IsComplement S โ†‘H) :
                  theorem Subgroup.IsComplement.card_right {G : Type u_1} [Group G] {H : Subgroup G} {T : Set G} (h : IsComplement (โ†‘H) T) :
                  Nat.card โ†‘T = H.index
                  theorem AddSubgroup.IsComplement.card_right {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {T : Set G} (h : IsComplement (โ†‘H) T) :
                  Nat.card โ†‘T = H.index
                  theorem Subgroup.IsComplement.ncard_right {G : Type u_1} [Group G] {H : Subgroup G} {T : Set G} (h : IsComplement (โ†‘H) T) :
                  theorem Subgroup.isComplement_range_left {G : Type u_1} [Group G] {H : Subgroup G} {f : G โงธ H โ†’ G} (hf : โˆ€ (q : G โงธ H), โ†‘(f q) = q) :
                  IsComplement (Set.range f) โ†‘H
                  theorem AddSubgroup.isComplement_range_left {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {f : G โงธ H โ†’ G} (hf : โˆ€ (q : G โงธ H), โ†‘(f q) = q) :
                  IsComplement (Set.range f) โ†‘H
                  theorem Subgroup.isComplement_range_right {G : Type u_1} [Group G] {H : Subgroup G} {f : Quotient (QuotientGroup.rightRel H) โ†’ G} (hf : โˆ€ (q : Quotient (QuotientGroup.rightRel H)), Quotient.mk'' (f q) = q) :
                  IsComplement (โ†‘H) (Set.range f)
                  theorem Subgroup.exists_isComplement_left {G : Type u_1} [Group G] (H : Subgroup G) (g : G) :
                  โˆƒ (S : Set G), IsComplement S โ†‘H โˆง g โˆˆ S
                  theorem AddSubgroup.exists_isComplement_left {G : Type u_1} [AddGroup G] (H : AddSubgroup G) (g : G) :
                  โˆƒ (S : Set G), IsComplement S โ†‘H โˆง g โˆˆ S
                  theorem Subgroup.exists_isComplement_right {G : Type u_1} [Group G] (H : Subgroup G) (g : G) :
                  โˆƒ (T : Set G), IsComplement (โ†‘H) T โˆง g โˆˆ T
                  theorem AddSubgroup.exists_isComplement_right {G : Type u_1} [AddGroup G] (H : AddSubgroup G) (g : G) :
                  โˆƒ (T : Set G), IsComplement (โ†‘H) T โˆง g โˆˆ T
                  theorem Subgroup.exists_left_transversal_of_le {G : Type u_1} [Group G] {H' H : Subgroup G} (h : H' โ‰ค H) :
                  โˆƒ (S : Set G), S * โ†‘H' = โ†‘H โˆง Nat.card โ†‘S * Nat.card โ†ฅH' = Nat.card โ†ฅH

                  Given two subgroups H' โІ H, there exists a left transversal to H' inside H.

                  theorem AddSubgroup.exists_left_transversal_of_le {G : Type u_1} [AddGroup G] {H' H : AddSubgroup G} (h : H' โ‰ค H) :
                  โˆƒ (S : Set G), S + โ†‘H' = โ†‘H โˆง Nat.card โ†‘S * Nat.card โ†ฅH' = Nat.card โ†ฅH

                  Given two subgroups H' โІ H, there exists a transversal to H' inside H

                  theorem Subgroup.exists_right_transversal_of_le {G : Type u_1} [Group G] {H' H : Subgroup G} (h : H' โ‰ค H) :
                  โˆƒ (S : Set G), โ†‘H' * S = โ†‘H โˆง Nat.card โ†ฅH' * Nat.card โ†‘S = Nat.card โ†ฅH

                  Given two subgroups H' โІ H, there exists a right transversal to H' inside H.

                  theorem AddSubgroup.exists_right_transversal_of_le {G : Type u_1} [AddGroup G] {H' H : AddSubgroup G} (h : H' โ‰ค H) :
                  โˆƒ (S : Set G), โ†‘H' + S = โ†‘H โˆง Nat.card โ†ฅH' * Nat.card โ†‘S = Nat.card โ†ฅH

                  Given two subgroups H' โІ H, there exists a transversal to H' inside H

                  noncomputable def Subgroup.IsComplement.equiv {G : Type u_1} [Group G] {S T : Set G} (hST : IsComplement S T) :
                  G โ‰ƒ โ†‘S ร— โ†‘T

                  The equivalence G โ‰ƒ S ร— T, such that the inverse is (*) : S ร— T โ†’ G

                  Equations
                    Instances For
                      @[simp]
                      theorem Subgroup.IsComplement.equiv_symm_apply {G : Type u_1} [Group G] {S T : Set G} (hST : IsComplement S T) (x : โ†‘S ร— โ†‘T) :
                      hST.equiv.symm x = โ†‘x.1 * โ†‘x.2
                      @[simp]
                      theorem Subgroup.IsComplement.equiv_fst_mul_equiv_snd {G : Type u_1} [Group G] {S T : Set G} (hST : IsComplement S T) (g : G) :
                      โ†‘(hST.equiv g).1 * โ†‘(hST.equiv g).2 = g
                      theorem Subgroup.IsComplement.equiv_fst_eq_mul_inv {G : Type u_1} [Group G] {S T : Set G} (hST : IsComplement S T) (g : G) :
                      โ†‘(hST.equiv g).1 = g * (โ†‘(hST.equiv g).2)โปยน
                      theorem Subgroup.IsComplement.equiv_snd_eq_inv_mul {G : Type u_1} [Group G] {S T : Set G} (hST : IsComplement S T) (g : G) :
                      โ†‘(hST.equiv g).2 = (โ†‘(hST.equiv g).1)โปยน * g
                      theorem Subgroup.IsComplement.equiv_fst_eq_iff_leftCosetEquivalence {G : Type u_1} [Group G] {K : Subgroup G} {S : Set G} (hSK : IsComplement S โ†‘K) {gโ‚ gโ‚‚ : G} :
                      (hSK.equiv gโ‚).1 = (hSK.equiv gโ‚‚).1 โ†” LeftCosetEquivalence (โ†‘K) gโ‚ gโ‚‚
                      theorem Subgroup.IsComplement.equiv_snd_eq_iff_rightCosetEquivalence {G : Type u_1} [Group G] {H : Subgroup G} {T : Set G} (hHT : IsComplement (โ†‘H) T) {gโ‚ gโ‚‚ : G} :
                      (hHT.equiv gโ‚).2 = (hHT.equiv gโ‚‚).2 โ†” RightCosetEquivalence (โ†‘H) gโ‚ gโ‚‚
                      theorem Subgroup.IsComplement.leftCosetEquivalence_equiv_fst {G : Type u_1} [Group G] {K : Subgroup G} {S : Set G} (hSK : IsComplement S โ†‘K) (g : G) :
                      LeftCosetEquivalence (โ†‘K) g โ†‘(hSK.equiv g).1
                      theorem Subgroup.IsComplement.rightCosetEquivalence_equiv_snd {G : Type u_1} [Group G] {H : Subgroup G} {T : Set G} (hHT : IsComplement (โ†‘H) T) (g : G) :
                      RightCosetEquivalence (โ†‘H) g โ†‘(hHT.equiv g).2
                      theorem Subgroup.IsComplement.equiv_fst_eq_self_of_mem_of_one_mem {G : Type u_1} [Group G] {S T : Set G} (hST : IsComplement S T) {g : G} (h1 : 1 โˆˆ T) (hg : g โˆˆ S) :
                      (hST.equiv g).1 = โŸจg, hgโŸฉ
                      theorem Subgroup.IsComplement.equiv_snd_eq_self_of_mem_of_one_mem {G : Type u_1} [Group G] {S T : Set G} (hST : IsComplement S T) {g : G} (h1 : 1 โˆˆ S) (hg : g โˆˆ T) :
                      (hST.equiv g).2 = โŸจg, hgโŸฉ
                      theorem Subgroup.IsComplement.equiv_snd_eq_one_of_mem_of_one_mem {G : Type u_1} [Group G] {S T : Set G} (hST : IsComplement S T) {g : G} (h1 : 1 โˆˆ T) (hg : g โˆˆ S) :
                      (hST.equiv g).2 = โŸจ1, h1โŸฉ
                      theorem Subgroup.IsComplement.equiv_fst_eq_one_of_mem_of_one_mem {G : Type u_1} [Group G] {S T : Set G} (hST : IsComplement S T) {g : G} (h1 : 1 โˆˆ S) (hg : g โˆˆ T) :
                      (hST.equiv g).1 = โŸจ1, h1โŸฉ
                      theorem Subgroup.IsComplement.equiv_mul_right {G : Type u_1} [Group G] {K : Subgroup G} {S : Set G} (hSK : IsComplement S โ†‘K) (g : G) (k : โ†ฅK) :
                      hSK.equiv (g * โ†‘k) = ((hSK.equiv g).1, (hSK.equiv g).2 * k)
                      theorem Subgroup.IsComplement.equiv_mul_right_of_mem {G : Type u_1} [Group G] {K : Subgroup G} {S : Set G} (hSK : IsComplement S โ†‘K) {g k : G} (h : k โˆˆ K) :
                      hSK.equiv (g * k) = ((hSK.equiv g).1, (hSK.equiv g).2 * โŸจk, hโŸฉ)
                      theorem Subgroup.IsComplement.equiv_mul_left {G : Type u_1} [Group G] {H : Subgroup G} {T : Set G} (hHT : IsComplement (โ†‘H) T) (h : โ†ฅH) (g : G) :
                      hHT.equiv (โ†‘h * g) = (h * (hHT.equiv g).1, (hHT.equiv g).2)
                      theorem Subgroup.IsComplement.equiv_mul_left_of_mem {G : Type u_1} [Group G] {H : Subgroup G} {T : Set G} (hHT : IsComplement (โ†‘H) T) {h g : G} (hh : h โˆˆ H) :
                      hHT.equiv (h * g) = (โŸจh, hhโŸฉ * (hHT.equiv g).1, (hHT.equiv g).2)
                      theorem Subgroup.IsComplement.equiv_one {G : Type u_1} [Group G] {S T : Set G} (hST : IsComplement S T) (hs1 : 1 โˆˆ S) (ht1 : 1 โˆˆ T) :
                      theorem Subgroup.IsComplement.equiv_fst_eq_self_iff_mem {G : Type u_1} [Group G] {S T : Set G} (hST : IsComplement S T) {g : G} (h1 : 1 โˆˆ T) :
                      โ†‘(hST.equiv g).1 = g โ†” g โˆˆ S
                      theorem Subgroup.IsComplement.equiv_snd_eq_self_iff_mem {G : Type u_1} [Group G] {S T : Set G} (hST : IsComplement S T) {g : G} (h1 : 1 โˆˆ S) :
                      โ†‘(hST.equiv g).2 = g โ†” g โˆˆ T
                      theorem Subgroup.IsComplement.coe_equiv_fst_eq_one_iff_mem {G : Type u_1} [Group G] {S T : Set G} (hST : IsComplement S T) {g : G} (h1 : 1 โˆˆ S) :
                      โ†‘(hST.equiv g).1 = 1 โ†” g โˆˆ T
                      theorem Subgroup.IsComplement.coe_equiv_snd_eq_one_iff_mem {G : Type u_1} [Group G] {S T : Set G} (hST : IsComplement S T) {g : G} (h1 : 1 โˆˆ T) :
                      โ†‘(hST.equiv g).2 = 1 โ†” g โˆˆ S
                      noncomputable def Subgroup.IsComplement.leftQuotientEquiv {G : Type u_1} [Group G] {H : Subgroup G} {S : Set G} (hS : IsComplement S โ†‘H) :
                      G โงธ H โ‰ƒ โ†‘S

                      A left transversal is in bijection with left cosets.

                      Equations
                        Instances For
                          noncomputable def AddSubgroup.IsComplement.leftQuotientEquiv {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {S : Set G} (hS : IsComplement S โ†‘H) :
                          G โงธ H โ‰ƒ โ†‘S

                          A left transversal is in bijection with left cosets.

                          Equations
                            Instances For
                              theorem Subgroup.IsComplement.finite_left_iff {G : Type u_1} [Group G] {H : Subgroup G} {S : Set G} (h : IsComplement S โ†‘H) :

                              A left transversal is finite iff the subgroup has finite index.

                              theorem AddSubgroup.IsComplement.finite_left_iff {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {S : Set G} (h : IsComplement S โ†‘H) :

                              A left transversal is finite iff the subgroup has finite index.

                              theorem Subgroup.IsComplement.finite_left {G : Type u_1} [Group G] {H : Subgroup G} {S : Set G} [H.FiniteIndex] (hS : IsComplement S โ†‘H) :
                              theorem Subgroup.IsComplement.leftQuotientEquiv_apply {G : Type u_1} [Group G] {H : Subgroup G} {f : G โงธ H โ†’ G} (hf : โˆ€ (q : G โงธ H), โ†‘(f q) = q) (q : G โงธ H) :
                              โ†‘(โ‹ฏ.leftQuotientEquiv q) = f q
                              theorem AddSubgroup.IsComplement.leftQuotientEquiv_apply {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {f : G โงธ H โ†’ G} (hf : โˆ€ (q : G โงธ H), โ†‘(f q) = q) (q : G โงธ H) :
                              โ†‘(โ‹ฏ.leftQuotientEquiv q) = f q
                              noncomputable def Subgroup.IsComplement.toLeftFun {G : Type u_1} [Group G] {H : Subgroup G} {S : Set G} (hS : IsComplement S โ†‘H) :
                              G โ†’ โ†‘S

                              A left transversal can be viewed as a function mapping each element of the group to the chosen representative from that left coset.

                              Equations
                                Instances For
                                  noncomputable def AddSubgroup.IsComplement.toLeftFun {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {S : Set G} (hS : IsComplement S โ†‘H) :
                                  G โ†’ โ†‘S

                                  A left transversal can be viewed as a function mapping each element of the group to the chosen representative from that left coset.

                                  Equations
                                    Instances For
                                      theorem Subgroup.IsComplement.inv_toLeftFun_mul_mem {G : Type u_1} [Group G] {H : Subgroup G} {S : Set G} (hS : IsComplement S โ†‘H) (g : G) :
                                      (โ†‘(hS.toLeftFun g))โปยน * g โˆˆ H
                                      theorem AddSubgroup.IsComplement.neg_toLeftFun_add_mem {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {S : Set G} (hS : IsComplement S โ†‘H) (g : G) :
                                      -โ†‘(hS.toLeftFun g) + g โˆˆ H
                                      theorem Subgroup.IsComplement.inv_mul_toLeftFun_mem {G : Type u_1} [Group G] {H : Subgroup G} {S : Set G} (hS : IsComplement S โ†‘H) (g : G) :
                                      theorem AddSubgroup.IsComplement.neg_add_toLeftFun_mem {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {S : Set G} (hS : IsComplement S โ†‘H) (g : G) :
                                      -g + โ†‘(hS.toLeftFun g) โˆˆ H
                                      noncomputable def Subgroup.IsComplement.rightQuotientEquiv {G : Type u_1} [Group G] {H : Subgroup G} {T : Set G} (hT : IsComplement (โ†‘H) T) :

                                      A right transversal is in bijection with right cosets.

                                      Equations
                                        Instances For
                                          noncomputable def AddSubgroup.IsComplement.rightQuotientEquiv {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {T : Set G} (hT : IsComplement (โ†‘H) T) :

                                          A right transversal is in bijection with right cosets.

                                          Equations
                                            Instances For
                                              theorem Subgroup.IsComplement.finite_right_iff {G : Type u_1} [Group G] {H : Subgroup G} {T : Set G} (h : IsComplement (โ†‘H) T) :

                                              A right transversal is finite iff the subgroup has finite index.

                                              theorem AddSubgroup.IsComplement.finite_right_iff {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {T : Set G} (h : IsComplement (โ†‘H) T) :

                                              A right transversal is finite iff the subgroup has finite index.

                                              theorem Subgroup.IsComplement.finite_right {G : Type u_1} [Group G] {H : Subgroup G} {T : Set G} [H.FiniteIndex] (hT : IsComplement (โ†‘H) T) :
                                              noncomputable def Subgroup.IsComplement.toRightFun {G : Type u_1} [Group G] {H : Subgroup G} {T : Set G} (hT : IsComplement (โ†‘H) T) :
                                              G โ†’ โ†‘T

                                              A right transversal can be viewed as a function mapping each element of the group to the chosen representative from that right coset.

                                              Equations
                                                Instances For
                                                  noncomputable def AddSubgroup.IsComplement.toRightFun {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {T : Set G} (hT : IsComplement (โ†‘H) T) :
                                                  G โ†’ โ†‘T

                                                  A right transversal can be viewed as a function mapping each element of the group to the chosen representative from that right coset.

                                                  Equations
                                                    Instances For
                                                      theorem Subgroup.IsComplement.mul_inv_toRightFun_mem {G : Type u_1} [Group G] {H : Subgroup G} {T : Set G} (hT : IsComplement (โ†‘H) T) (g : G) :
                                                      g * (โ†‘(hT.toRightFun g))โปยน โˆˆ H
                                                      theorem AddSubgroup.IsComplement.add_neg_toRightFun_mem {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {T : Set G} (hT : IsComplement (โ†‘H) T) (g : G) :
                                                      g + -โ†‘(hT.toRightFun g) โˆˆ H
                                                      theorem Subgroup.IsComplement.toRightFun_mul_inv_mem {G : Type u_1} [Group G] {H : Subgroup G} {T : Set G} (hT : IsComplement (โ†‘H) T) (g : G) :
                                                      theorem AddSubgroup.IsComplement.toRightFun_add_neg_mem {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {T : Set G} (hT : IsComplement (โ†‘H) T) (g : G) :
                                                      โ†‘(hT.toRightFun g) + -g โˆˆ H
                                                      theorem Subgroup.IsComplement.encard_left {G : Type u_1} [Group G] {H : Subgroup G} {S : Set G} [H.FiniteIndex] (h : IsComplement S โ†‘H) :
                                                      S.encard = โ†‘H.index
                                                      theorem AddSubgroup.IsComplement.encard_left {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {S : Set G} [H.FiniteIndex] (h : IsComplement S โ†‘H) :
                                                      S.encard = โ†‘H.index
                                                      theorem Subgroup.IsComplement.encard_right {G : Type u_1} [Group G] {H : Subgroup G} {T : Set G} [H.FiniteIndex] (h : IsComplement (โ†‘H) T) :
                                                      T.encard = โ†‘H.index
                                                      theorem AddSubgroup.IsComplement.encard_right {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {T : Set G} [H.FiniteIndex] (h : IsComplement (โ†‘H) T) :
                                                      T.encard = โ†‘H.index
                                                      @[reducible, inline]
                                                      abbrev Subgroup.LeftTransversal {G : Type u_1} [Group G] (H : Subgroup G) :
                                                      Type u_1

                                                      The collection of left transversals of a subgroup

                                                      Equations
                                                        Instances For
                                                          @[reducible, inline]
                                                          abbrev AddSubgroup.LeftTransversal {G : Type u_1} [AddGroup G] (H : AddSubgroup G) :
                                                          Type u_1

                                                          The collection of left transversals of a subgroup.

                                                          Equations
                                                            Instances For
                                                              @[reducible, inline]
                                                              abbrev Subgroup.RightTransversal {G : Type u_1} [Group G] (H : Subgroup G) :
                                                              Type u_1

                                                              The collection of right transversals of a subgroup

                                                              Equations
                                                                Instances For
                                                                  @[reducible, inline]
                                                                  abbrev AddSubgroup.RightTransversal {G : Type u_1} [AddGroup G] (H : AddSubgroup G) :
                                                                  Type u_1

                                                                  The collection of right transversals of a subgroup.

                                                                  Equations
                                                                    Instances For
                                                                      theorem Subgroup.smul_toLeftFun {G : Type u_1} [Group G] {H : Subgroup G} {F : Type u_2} [Group F] [MulAction F G] [MulAction.QuotientAction F H] (f : F) (S : H.LeftTransversal) (g : G) :
                                                                      f โ€ข โ†‘(โ‹ฏ.toLeftFun g) = โ†‘(โ‹ฏ.toLeftFun (f โ€ข g))
                                                                      theorem AddSubgroup.vadd_toLeftFun {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {F : Type u_2} [AddGroup F] [AddAction F G] [AddAction.QuotientAction F H] (f : F) (S : H.LeftTransversal) (g : G) :
                                                                      f +แตฅ โ†‘(โ‹ฏ.toLeftFun g) = โ†‘(โ‹ฏ.toLeftFun (f +แตฅ g))
                                                                      theorem Subgroup.smul_leftQuotientEquiv {G : Type u_1} [Group G] {H : Subgroup G} {F : Type u_2} [Group F] [MulAction F G] [MulAction.QuotientAction F H] (f : F) (S : H.LeftTransversal) (q : G โงธ H) :
                                                                      f โ€ข โ†‘(โ‹ฏ.leftQuotientEquiv q) = โ†‘(โ‹ฏ.leftQuotientEquiv (f โ€ข q))
                                                                      theorem AddSubgroup.vadd_leftQuotientEquiv {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {F : Type u_2} [AddGroup F] [AddAction F G] [AddAction.QuotientAction F H] (f : F) (S : H.LeftTransversal) (q : G โงธ H) :
                                                                      f +แตฅ โ†‘(โ‹ฏ.leftQuotientEquiv q) = โ†‘(โ‹ฏ.leftQuotientEquiv (f +แตฅ q))
                                                                      theorem Subgroup.smul_apply_eq_smul_apply_inv_smul {G : Type u_1} [Group G] {H : Subgroup G} {F : Type u_2} [Group F] [MulAction F G] [MulAction.QuotientAction F H] (f : F) (S : H.LeftTransversal) (q : G โงธ H) :
                                                                      โ†‘(โ‹ฏ.leftQuotientEquiv q) = f โ€ข โ†‘(โ‹ฏ.leftQuotientEquiv (fโปยน โ€ข q))
                                                                      theorem AddSubgroup.vadd_apply_eq_vadd_apply_neg_vadd {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {F : Type u_2} [AddGroup F] [AddAction F G] [AddAction.QuotientAction F H] (f : F) (S : H.LeftTransversal) (q : G โงธ H) :
                                                                      โ†‘(โ‹ฏ.leftQuotientEquiv q) = f +แตฅ โ†‘(โ‹ฏ.leftQuotientEquiv (-f +แตฅ q))
                                                                      noncomputable def Subgroup.IsComplement'.QuotientMulEquiv {G : Type u_1} [Group G] {H K : Subgroup G} [K.Normal] (h : H.IsComplement' K) :
                                                                      G โงธ K โ‰ƒ* โ†ฅH

                                                                      If H and K are complementary with K normal, then G โงธ K is isomorphic to H.

                                                                      Equations
                                                                        Instances For
                                                                          @[simp]
                                                                          theorem Subgroup.IsComplement'.QuotientMulEquiv_symm_apply {G : Type u_1} [Group G] {H K : Subgroup G} [K.Normal] (h : H.IsComplement' K) (aโœ : โ†ฅH) :
                                                                          theorem Subgroup.IsComplement.card_mul {G : Type u_1} [Group G] {S T : Set G} (h : IsComplement S T) :
                                                                          Nat.card โ†‘S * Nat.card โ†‘T = Nat.card G
                                                                          theorem Subgroup.IsComplement'.card_mul {G : Type u_1} [Group G] {H K : Subgroup G} (h : H.IsComplement' K) :
                                                                          Nat.card โ†ฅH * Nat.card โ†ฅK = Nat.card G
                                                                          theorem Subgroup.isComplement'_of_disjoint_and_mul_eq_univ {G : Type u_1} [Group G] {H K : Subgroup G} (h1 : Disjoint H K) (h2 : โ†‘H * โ†‘K = Set.univ) :
                                                                          theorem Subgroup.isComplement'_of_card_mul_and_disjoint {G : Type u_1} [Group G] {H K : Subgroup G} [Finite G] (h1 : Nat.card โ†ฅH * Nat.card โ†ฅK = Nat.card G) (h2 : Disjoint H K) :
                                                                          theorem Subgroup.isComplement'_of_coprime {G : Type u_1} [Group G] {H K : Subgroup G} [Finite G] (h1 : Nat.card โ†ฅH * Nat.card โ†ฅK = Nat.card G) (h2 : (Nat.card โ†ฅH).Coprime (Nat.card โ†ฅK)) :
                                                                          theorem Subgroup.isComplement'_stabilizer {G : Type u_1} [Group G] {H : Subgroup G} {ฮฑ : Type u_2} [MulAction G ฮฑ] (a : ฮฑ) (h1 : โˆ€ (h : โ†ฅH), h โ€ข a = a โ†’ h = 1) (h2 : โˆ€ (g : G), โˆƒ (h : โ†ฅH), h โ€ข g โ€ข a = a) :