Theorem: Sylow.exists_subgroup_card_pow_prime_of_le_card
File: Mathlib/GroupTheory/Sylow.lean

tactic: have : Fact p.Prime := ⟨hp⟩
state_before: G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
hn : p ^ n ≤ Nat.card G
⊢ ∃ H, Nat.card ↥H = p ^ n
state_after: G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
hn : p ^ n ≤ Nat.card G
this : Fact (Nat.Prime p)
⊢ ∃ H, Nat.card ↥H = p ^ n

tactic: have : Finite G := Nat.finite_of_card_ne_zero <| by linarith [Nat.one_le_pow n p hp.pos]
state_before: G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
hn : p ^ n ≤ Nat.card G
this : Fact (Nat.Prime p)
⊢ ∃ H, Nat.card ↥H = p ^ n
state_after: G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
hn : p ^ n ≤ Nat.card G
this✝ : Fact (Nat.Prime p)
this : Finite G
⊢ ∃ H, Nat.card ↥H = p ^ n

tactic: cases nonempty_fintype G
state_before: G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
hn : p ^ n ≤ Nat.card G
this✝ : Fact (Nat.Prime p)
this : Finite G
⊢ ∃ H, Nat.card ↥H = p ^ n
state_after: case intro
G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
hn : p ^ n ≤ Nat.card G
this✝ : Fact (Nat.Prime p)
this : Finite G
val✝ : Fintype G
⊢ ∃ H, Nat.card ↥H = p ^ n

tactic: obtain ⟨m, hm⟩ := h.exists_card_eq
state_before: case intro
G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
hn : p ^ n ≤ Nat.card G
this✝ : Fact (Nat.Prime p)
this : Finite G
val✝ : Fintype G
⊢ ∃ H, Nat.card ↥H = p ^ n
state_after: case intro.intro
G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
hn : p ^ n ≤ Nat.card G
this✝ : Fact (Nat.Prime p)
this : Finite G
val✝ : Fintype G
m : ℕ
hm : Fintype.card G = p ^ m
⊢ ∃ H, Nat.card ↥H = p ^ n

tactic: simp_rw [Nat.card_eq_fintype_card] at hm hn ⊢
state_before: case intro.intro
G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
hn : p ^ n ≤ Nat.card G
this✝ : Fact (Nat.Prime p)
this : Finite G
val✝ : Fintype G
m : ℕ
hm : Fintype.card G = p ^ m
⊢ ∃ H, Nat.card ↥H = p ^ n
state_after: case intro.intro
G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
this✝ : Fact (Nat.Prime p)
this : Finite G
val✝ : Fintype G
m : ℕ
hm : Fintype.card G = p ^ m
hn : p ^ n ≤ Fintype.card G
⊢ ∃ H, Fintype.card ↥H = p ^ n

tactic: refine exists_subgroup_card_pow_prime _ ?_
state_before: case intro.intro
G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
this✝ : Fact (Nat.Prime p)
this : Finite G
val✝ : Fintype G
m : ℕ
hm : Fintype.card G = p ^ m
hn : p ^ n ≤ Fintype.card G
⊢ ∃ H, Fintype.card ↥H = p ^ n
state_after: case intro.intro
G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
this✝ : Fact (Nat.Prime p)
this : Finite G
val✝ : Fintype G
m : ℕ
hm : Fintype.card G = p ^ m
hn : p ^ n ≤ Fintype.card G
⊢ p ^ n ∣ Fintype.card G

tactic: rw [hm] at hn ⊢
state_before: case intro.intro
G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
this✝ : Fact (Nat.Prime p)
this : Finite G
val✝ : Fintype G
m : ℕ
hm : Fintype.card G = p ^ m
hn : p ^ n ≤ Fintype.card G
⊢ p ^ n ∣ Fintype.card G
state_after: case intro.intro
G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
this✝ : Fact (Nat.Prime p)
this : Finite G
val✝ : Fintype G
m : ℕ
hm : Fintype.card G = p ^ m
hn : p ^ n ≤ p ^ m
⊢ p ^ n ∣ p ^ m

tactic: exact pow_dvd_pow _ <| (pow_le_pow_iff_right hp.one_lt).1 hn
state_before: case intro.intro
G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
this✝ : Fact (Nat.Prime p)
this : Finite G
val✝ : Fintype G
m : ℕ
hm : Fintype.card G = p ^ m
hn : p ^ n ≤ p ^ m
⊢ p ^ n ∣ p ^ m
state_after: no goals

tactic: linarith [Nat.one_le_pow n p hp.pos]
state_before: G : Type u
α : Type v
β : Type w
inst✝ : Group G
n p : ℕ
hp : Nat.Prime p
h : IsPGroup p G
hn : p ^ n ≤ Nat.card G
this : Fact (Nat.Prime p)
⊢ Nat.card G ≠ 0
state_after: no goals