by_cases Izero : I = 0
n p✝ : ℕ
inst✝⁴ : Fact p✝.Prime
A : Type u_1
inst✝³ : CommRing A
inst✝² : IsDedekindDomain A
inst✝¹ : Fintype (ClassGroup A)
p : ℕ
inst✝ : Fact p.Prime
H : p.Coprime (Fintype.card (ClassGroup A))
I : Ideal A
hI : Submodule.IsPrincipal (I ^ p)
⊢ Submodule.IsPrincipal I
case pos
n p✝ : ℕ
inst✝⁴ : Fact p✝.Prime
A : Type u_1
inst✝³ : CommRing A
inst✝² : IsDedekindDomain A
inst✝¹ : Fintype (ClassGroup A)
p : ℕ
inst✝ : Fact p.Prime
H : p.Coprime (Fintype.card (ClassGroup A))
I : Ideal A
hI : Submodule.IsPrincipal (I ^ p)
Izero : I = 0
⊢ Submodule.IsPrincipal I

case neg
n p✝ : ℕ
inst✝⁴ : Fact p✝.Prime
A : Type u_1
inst✝³ : CommRing A
inst✝² : IsDedekindDomain A
inst✝¹ : Fintype (ClassGroup A)
p : ℕ
inst✝ : Fact p.Prime
H : p.Coprime (Fintype.card (ClassGroup A))
I : Ideal A
hI : Submodule.IsPrincipal (I ^ p)
Izero : ¬I = 0
⊢ Submodule.IsPrincipal I