File: Mathlib/GroupTheory/SchurZassenhaus.lean

full_name: Subgroup.QuotientDiff
code: /-- The quotient of the transversals of an abelian normal `N` by the `diff` relation. -/
def QuotientDiff 
goal: Type u_1

full_name: Subgroup.instInhabitedQuotientDiff
code: instance : Inhabited H.QuotientDiff 
goal: Inhabited H.QuotientDiff

full_name: Subgroup.smul_diff_smul'
code: theorem smul_diff_smul' [hH : Normal H] (g : Gᵐᵒᵖ) :
    diff (MonoidHom.id H) (g • α) (g • β) =
      ⟨g.unop⁻¹ * (diff (MonoidHom.id H) α β : H) * g.unop,
        hH.mem_comm ((congr_arg (· ∈ H) (mul_inv_cancel_left _ _)).mpr (SetLike.coe_mem _))⟩ 
goal: Subgroup.leftTransversals.diff (MonoidHom.id ↥H) (g • α) (g • β) =
  ⟨(MulOpposite.unop g)⁻¹ * ↑(Subgroup.leftTransversals.diff (MonoidHom.id ↥H) α β) * MulOpposite.unop g, ⋯⟩

full_name: Subgroup.instMulActionQuotientDiff
code: noncomputable instance : MulAction G H.QuotientDiff 
goal: MulAction G H.QuotientDiff

full_name: Subgroup.smul_diff'
code: theorem smul_diff' (h : H) :
    diff (MonoidHom.id H) α (op (h : G) • β) = diff (MonoidHom.id H) α β * h ^ H.index 
goal: Subgroup.leftTransversals.diff (MonoidHom.id ↥H) α (MulOpposite.op ↑h • β) =
  Subgroup.leftTransversals.diff (MonoidHom.id ↥H) α β * h ^ H.index

full_name: Subgroup.eq_one_of_smul_eq_one
code: theorem eq_one_of_smul_eq_one (hH : Nat.Coprime (Nat.card H) H.index) (α : H.QuotientDiff)
    (h : H) : h • α = α → h = 1 
goal: h • α = α → h = 1

full_name: Subgroup.exists_smul_eq
code: theorem exists_smul_eq (hH : Nat.Coprime (Nat.card H) H.index) (α β : H.QuotientDiff) :
    ∃ h : H, h • α = β 
goal: ∃ h, h • α = β

full_name: Subgroup.isComplement'_stabilizer_of_coprime
code: theorem isComplement'_stabilizer_of_coprime {α : H.QuotientDiff}
    (hH : Nat.Coprime (Nat.card H) H.index) : IsComplement' H (stabilizer G α) 
goal: H.IsComplement' (MulAction.stabilizer G α)

full_name: _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.exists_right_complement'_of_coprime_aux
code: /-- Do not use this lemma: It is made obsolete by `exists_right_complement'_of_coprime` -/
private theorem exists_right_complement'_of_coprime_aux (hH : Nat.Coprime (Nat.card H) H.index) :
    ∃ K : Subgroup G, IsComplement' H K 
goal: ∃ K, H.IsComplement' K

full_name: _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.SchurZassenhausInduction.step0
code: /-- Do not use this lemma: It is made obsolete by `exists_right_complement'_of_coprime` -/
private theorem step0 : N ≠ ⊥ 
goal: N ≠ ⊥

full_name: _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.SchurZassenhausInduction.step1
code: /-- Do not use this lemma: It is made obsolete by `exists_right_complement'_of_coprime` -/
private theorem step1 (K : Subgroup G) (hK : K ⊔ N = ⊤) : K = ⊤ 
goal: K = ⊤

full_name: _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.SchurZassenhausInduction.step2
code: /-- Do not use this lemma: It is made obsolete by `exists_right_complement'_of_coprime` -/
private theorem step2 (K : Subgroup G) [K.Normal] (hK : K ≤ N) : K = ⊥ ∨ K = N 
goal: K = ⊥ ∨ K = N

full_name: _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.SchurZassenhausInduction.step3
code: /-- Do not use this lemma: It is made obsolete by `exists_right_complement'_of_coprime` -/
private theorem step3 (K : Subgroup N) [(K.map N.subtype).Normal] : K = ⊥ ∨ K = ⊤ 
goal: K = ⊥ ∨ K = ⊤

full_name: _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.SchurZassenhausInduction.step4
code: /-- Do not use this lemma: It is made obsolete by `exists_right_complement'_of_coprime` -/
private theorem step4 : (Nat.card N).minFac.Prime 
goal: Nat.Prime (Nat.card ↥N).minFac

full_name: _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.SchurZassenhausInduction.step5
code: /-- Do not use this lemma: It is made obsolete by `exists_right_complement'_of_coprime` -/
private theorem step5 {P : Sylow (Nat.card N).minFac N} : P.1 ≠ ⊥ 
goal: ↑P ≠ ⊥

full_name: _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.SchurZassenhausInduction.step6
code: /-- Do not use this lemma: It is made obsolete by `exists_right_complement'_of_coprime` -/
private theorem step6 : IsPGroup (Nat.card N).minFac N 
goal: IsPGroup (Nat.card ↥N).minFac ↥N

full_name: Subgroup.SchurZassenhausInduction.step7
code: /-- Do not use this lemma: It is made obsolete by `exists_right_complement'_of_coprime` -/
theorem step7 : IsCommutative N 
goal: N.IsCommutative

full_name: _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.exists_right_complement'_of_coprime_aux'
code: /-- Do not use this lemma: It is made obsolete by `exists_right_complement'_of_coprime` -/
private theorem exists_right_complement'_of_coprime_aux' [Finite G] (hG : Nat.card G = n)
    {N : Subgroup G} [N.Normal] (hN : Nat.Coprime (Nat.card N) N.index) :
    ∃ H : Subgroup G, IsComplement' N H 
goal: ∃ H, N.IsComplement' H

full_name: Subgroup.exists_right_complement'_of_coprime
code: /-- **Schur-Zassenhaus** for normal subgroups:
  If `H : Subgroup G` is normal, and has order coprime to its index, then there exists a
  subgroup `K` which is a (right) complement of `H`. -/
theorem exists_right_complement'_of_coprime {N : Subgroup G} [N.Normal]
    (hN : Nat.Coprime (Nat.card N) N.index) : ∃ H : Subgroup G, IsComplement' N H 
goal: ∃ H, N.IsComplement' H

full_name: Subgroup.exists_left_complement'_of_coprime
code: /-- **Schur-Zassenhaus** for normal subgroups:
  If `H : Subgroup G` is normal, and has order coprime to its index, then there exists a
  subgroup `K` which is a (left) complement of `H`. -/
theorem exists_left_complement'_of_coprime {N : Subgroup G} [N.Normal]
    (hN : Nat.Coprime (Nat.card N) N.index) : ∃ H : Subgroup G, IsComplement' H N 
goal: ∃ H, H.IsComplement' N