Theorem: not_isCyclic_iff_exponent_eq_prime
File: Mathlib/GroupTheory/SpecificGroups/Cyclic.lean

Proof steps:
state_before: α : Type u
a : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
⊢ ¬IsCyclic α ↔ exponent α = p
state_after: α : Type u
a : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
_inst : Fintype α := Fintype.ofFinite α
⊢ ¬IsCyclic α ↔ exponent α = p
tactic: let _inst : Fintype α := @Fintype.ofFinite α <| Nat.finite_of_card_ne_zero <| by aesop
state_before: α : Type u
a : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
_inst : Fintype α := Fintype.ofFinite α
⊢ ¬IsCyclic α ↔ exponent α = p
state_after: α : Type u
a : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
_inst : Fintype α := Fintype.ofFinite α
hα' : Fintype.card α = p ^ 2
⊢ ¬IsCyclic α ↔ exponent α = p
tactic: have hα' : Fintype.card α = p ^ 2 := by simpa using hα
state_before: α : Type u
a : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
_inst : Fintype α := Fintype.ofFinite α
hα' : Fintype.card α = p ^ 2
⊢ ¬IsCyclic α ↔ exponent α = p
state_after: α : Type u
a : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
_inst : Fintype α := Fintype.ofFinite α
hα' : Fintype.card α = p ^ 2
this : Nontrivial α
⊢ ¬IsCyclic α ↔ exponent α = p
tactic: have := (Fintype.one_lt_card_iff_nontrivial (α := α)).mp <|
    hα' ▸ one_lt_pow hp.one_lt two_ne_zero
state_before: α : Type u
a : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
_inst : Fintype α := Fintype.ofFinite α
hα' : Fintype.card α = p ^ 2
this : Nontrivial α
h_cyc : ¬IsCyclic α
g : α
hg : g ≠ 1
⊢ orderOf g = p
state_after: α : Type u
a : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
_inst : Fintype α := Fintype.ofFinite α
hα' : Fintype.card α = p ^ 2
this✝ : Nontrivial α
h_cyc : ¬IsCyclic α
g : α
hg : g ≠ 1
this : orderOf g ∈ (p ^ 2).divisors
⊢ orderOf g = p
tactic: have := (Nat.mem_divisors (m := p ^ 2)).mpr ⟨hα' ▸ orderOf_dvd_card (x := g), by aesop⟩
state_before: α : Type u
a : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
_inst : Fintype α := Fintype.ofFinite α
hα' : Fintype.card α = p ^ 2
this✝ : Nontrivial α
h_cyc : ¬IsCyclic α
g : α
hg : g ≠ 1
this : orderOf g ∈ (p ^ 2).divisors
⊢ orderOf g = p
state_after: α : Type u
a : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
_inst : Fintype α := Fintype.ofFinite α
hα' : Fintype.card α = p ^ 2
this✝ : Nontrivial α
h_cyc : ¬IsCyclic α
g : α
hg : g ≠ 1
this : ∃ a < 3, p ^ a = orderOf g
⊢ orderOf g = p
tactic: simp? [Nat.divisors_prime_pow hp 2] at this says
    simp only [Nat.divisors_prime_pow hp 2, Nat.reduceAdd, Finset.mem_map, Finset.mem_range,
      Function.Embedding.coeFn_mk] at this
state_before: α : Type u
a : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
_inst : Fintype α := Fintype.ofFinite α
hα' : Fintype.card α = p ^ 2
this✝ : Nontrivial α
h_cyc : ¬IsCyclic α
g : α
hg : g ≠ 1
this : ∃ a < 3, p ^ a = orderOf g
⊢ orderOf g = p
state_after: case intro.intro
α : Type u
a✝ : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
_inst : Fintype α := Fintype.ofFinite α
hα' : Fintype.card α = p ^ 2
this : Nontrivial α
h_cyc : ¬IsCyclic α
g : α
hg : g ≠ 1
a : ℕ
ha : a < 3
ha' : p ^ a = orderOf g
⊢ orderOf g = p
tactic: obtain ⟨a, ha, ha'⟩ := this
state_before: case intro.intro
α : Type u
a✝ : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
_inst : Fintype α := Fintype.ofFinite α
hα' : Fintype.card α = p ^ 2
this : Nontrivial α
h_cyc : ¬IsCyclic α
g : α
hg : g ≠ 1
a : ℕ
ha : a < 3
ha' : p ^ a = orderOf g
⊢ orderOf g = p
state_after: case intro.intro.«0»
α : Type u
a✝ : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
_inst : Fintype α := Fintype.ofFinite α
hα' : Fintype.card α = p ^ 2
this : Nontrivial α
h_cyc : ¬IsCyclic α
g : α
hg : g ≠ 1
a : ℕ
ha : 0 < 3
ha' : p ^ 0 = orderOf g
⊢ orderOf g = p

case intro.intro.«1»
α : Type u
a✝ : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
_inst : Fintype α := Fintype.ofFinite α
hα' : Fintype.card α = p ^ 2
this : Nontrivial α
h_cyc : ¬IsCyclic α
g : α
hg : g ≠ 1
a : ℕ
ha : 1 < 3
ha' : p ^ 1 = orderOf g
⊢ orderOf g = p

case intro.intro.«2»
α : Type u
a✝ : α
inst✝ : Group α
p : ℕ
hp : Nat.Prime p
hα : Nat.card α = p ^ 2
_inst : Fintype α := Fintype.ofFinite α
hα' : Fintype.card α = p ^ 2
this : Nontrivial α
h_cyc : ¬IsCyclic α
g : α
hg : g ≠ 1
a : ℕ
ha : 2 < 3
ha' : p ^ 2 = orderOf g
⊢ orderOf g = p
tactic: interval_cases a