Theorem: _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.SchurZassenhausInduction.step6
File: Mathlib/GroupTheory/SchurZassenhaus.lean

Proof steps:
state_before: G : Type u
inst✝² : Group G
inst✝¹ : Finite G
N : Subgroup G
inst✝ : N.Normal
h1 : (Nat.card ↥N).Coprime N.index
h2 :
  ∀ (G' : Type u) [inst : Group G'] [inst_1 : Finite G'],
    Nat.card G' < Nat.card G →
      ∀ {N' : Subgroup G'} [inst_2 : N'.Normal], (Nat.card ↥N').Coprime N'.index → ∃ H', N'.IsComplement' H'
h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H
⊢ IsPGroup (Nat.card ↥N).minFac ↥N
state_after: G : Type u
inst✝² : Group G
inst✝¹ : Finite G
N : Subgroup G
inst✝ : N.Normal
h1 : (Nat.card ↥N).Coprime N.index
h2 :
  ∀ (G' : Type u) [inst : Group G'] [inst_1 : Finite G'],
    Nat.card G' < Nat.card G →
      ∀ {N' : Subgroup G'} [inst_2 : N'.Normal], (Nat.card ↥N').Coprime N'.index → ∃ H', N'.IsComplement' H'
h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H
this : Fact (Nat.Prime (Nat.card ↥N).minFac)
⊢ IsPGroup (Nat.card ↥N).minFac ↥N
tactic: haveI : Fact (Nat.card N).minFac.Prime := ⟨step4 h1 h3⟩
state_before: G : Type u
inst✝² : Group G
inst✝¹ : Finite G
N : Subgroup G
inst✝ : N.Normal
h1 : (Nat.card ↥N).Coprime N.index
h2 :
  ∀ (G' : Type u) [inst : Group G'] [inst_1 : Finite G'],
    Nat.card G' < Nat.card G →
      ∀ {N' : Subgroup G'} [inst_2 : N'.Normal], (Nat.card ↥N').Coprime N'.index → ∃ H', N'.IsComplement' H'
h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H
this : Fact (Nat.Prime (Nat.card ↥N).minFac)
⊢ IsPGroup (Nat.card ↥N).minFac ↥N
state_after: G : Type u
inst✝² : Group G
inst✝¹ : Finite G
N : Subgroup G
inst✝ : N.Normal
h1 : (Nat.card ↥N).Coprime N.index
h2 :
  ∀ (G' : Type u) [inst : Group G'] [inst_1 : Finite G'],
    Nat.card G' < Nat.card G →
      ∀ {N' : Subgroup G'} [inst_2 : N'.Normal], (Nat.card ↥N').Coprime N'.index → ∃ H', N'.IsComplement' H'
h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H
this : Fact (Nat.Prime (Nat.card ↥N).minFac)
P : Sylow (Nat.card ↥N).minFac ↥N
⊢ Function.Surjective ⇑(↑P).subtype
tactic: refine Sylow.nonempty.elim fun P => P.2.of_surjective P.1.subtype ?_
state_before: G : Type u
inst✝² : Group G
inst✝¹ : Finite G
N : Subgroup G
inst✝ : N.Normal
h1 : (Nat.card ↥N).Coprime N.index
h2 :
  ∀ (G' : Type u) [inst : Group G'] [inst_1 : Finite G'],
    Nat.card G' < Nat.card G →
      ∀ {N' : Subgroup G'} [inst_2 : N'.Normal], (Nat.card ↥N').Coprime N'.index → ∃ H', N'.IsComplement' H'
h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H
this : Fact (Nat.Prime (Nat.card ↥N).minFac)
P : Sylow (Nat.card ↥N).minFac ↥N
⊢ Function.Surjective ⇑(↑P).subtype
state_after: G : Type u
inst✝² : Group G
inst✝¹ : Finite G
N : Subgroup G
inst✝ : N.Normal
h1 : (Nat.card ↥N).Coprime N.index
h2 :
  ∀ (G' : Type u) [inst : Group G'] [inst_1 : Finite G'],
    Nat.card G' < Nat.card G →
      ∀ {N' : Subgroup G'} [inst_2 : N'.Normal], (Nat.card ↥N').Coprime N'.index → ∃ H', N'.IsComplement' H'
h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H
this : Fact (Nat.Prime (Nat.card ↥N).minFac)
P : Sylow (Nat.card ↥N).minFac ↥N
⊢ ↑P = ⊤
tactic: rw [← MonoidHom.range_top_iff_surjective, subtype_range]
state_before: G : Type u
inst✝² : Group G
inst✝¹ : Finite G
N : Subgroup G
inst✝ : N.Normal
h1 : (Nat.card ↥N).Coprime N.index
h2 :
  ∀ (G' : Type u) [inst : Group G'] [inst_1 : Finite G'],
    Nat.card G' < Nat.card G →
      ∀ {N' : Subgroup G'} [inst_2 : N'.Normal], (Nat.card ↥N').Coprime N'.index → ∃ H', N'.IsComplement' H'
h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H
this : Fact (Nat.Prime (Nat.card ↥N).minFac)
P : Sylow (Nat.card ↥N).minFac ↥N
⊢ ↑P = ⊤
state_after: G : Type u
inst✝² : Group G
inst✝¹ : Finite G
N : Subgroup G
inst✝ : N.Normal
h1 : (Nat.card ↥N).Coprime N.index
h2 :
  ∀ (G' : Type u) [inst : Group G'] [inst_1 : Finite G'],
    Nat.card G' < Nat.card G →
      ∀ {N' : Subgroup G'} [inst_2 : N'.Normal], (Nat.card ↥N').Coprime N'.index → ∃ H', N'.IsComplement' H'
h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H
this✝ : Fact (Nat.Prime (Nat.card ↥N).minFac)
P : Sylow (Nat.card ↥N).minFac ↥N
this : (map N.subtype ↑P).Normal
⊢ ↑P = ⊤
tactic: haveI : (P.1.map N.subtype).Normal :=
    normalizer_eq_top.mp (step1 h1 h2 h3 (P.1.map N.subtype).normalizer P.normalizer_sup_eq_top)
state_before: G : Type u
inst✝² : Group G
inst✝¹ : Finite G
N : Subgroup G
inst✝ : N.Normal
h1 : (Nat.card ↥N).Coprime N.index
h2 :
  ∀ (G' : Type u) [inst : Group G'] [inst_1 : Finite G'],
    Nat.card G' < Nat.card G →
      ∀ {N' : Subgroup G'} [inst_2 : N'.Normal], (Nat.card ↥N').Coprime N'.index → ∃ H', N'.IsComplement' H'
h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H
this✝ : Fact (Nat.Prime (Nat.card ↥N).minFac)
P : Sylow (Nat.card ↥N).minFac ↥N
this : (map N.subtype ↑P).Normal
⊢ ↑P = ⊤
state_after: no goals
tactic: exact (step3 h1 h2 h3 P.1).resolve_left (step5 h1 h3)