File: Mathlib/Algebra/IsPrimePow.lean

full_name: IsPrimePow
code: /-- `n` is a prime power if there is a prime `p` and a positive natural `k` such that `n` can be
written as `p^k`. -/
def IsPrimePow : Prop 
goal: Prop

full_name: isPrimePow_def
code: theorem isPrimePow_def : IsPrimePow n ↔ ∃ (p : R) (k : ℕ), Prime p ∧ 0 < k ∧ p ^ k = n 
goal: IsPrimePow n ↔ ∃ p k, Prime p ∧ 0 < k ∧ p ^ k = n

full_name: isPrimePow_iff_pow_succ
code: /-- An equivalent definition for prime powers: `n` is a prime power iff there is a prime `p` and a
natural `k` such that `n` can be written as `p^(k+1)`. -/
theorem isPrimePow_iff_pow_succ : IsPrimePow n ↔ ∃ (p : R) (k : ℕ), Prime p ∧ p ^ (k + 1) = n 
goal: IsPrimePow n ↔ ∃ p k, Prime p ∧ p ^ (k + 1) = n

full_name: not_isPrimePow_zero
code: theorem not_isPrimePow_zero [NoZeroDivisors R] : ¬IsPrimePow (0 : R) 
goal: ¬IsPrimePow 0

full_name: IsPrimePow.not_unit
code: theorem IsPrimePow.not_unit {n : R} (h : IsPrimePow n) : ¬IsUnit n 
goal: ¬IsUnit n

full_name: IsUnit.not_isPrimePow
code: theorem IsUnit.not_isPrimePow {n : R} (h : IsUnit n) : ¬IsPrimePow n 
goal: ¬IsPrimePow n

full_name: not_isPrimePow_one
code: theorem not_isPrimePow_one : ¬IsPrimePow (1 : R) 
goal: ¬IsPrimePow 1

full_name: Prime.isPrimePow
code: theorem Prime.isPrimePow {p : R} (hp : Prime p) : IsPrimePow p 
goal: IsPrimePow p

full_name: IsPrimePow.pow
code: theorem IsPrimePow.pow {n : R} (hn : IsPrimePow n) {k : ℕ} (hk : k ≠ 0) : IsPrimePow (n ^ k) 
goal: IsPrimePow (n ^ k)

full_name: IsPrimePow.ne_zero
code: theorem IsPrimePow.ne_zero [NoZeroDivisors R] {n : R} (h : IsPrimePow n) : n ≠ 0 
goal: n ≠ 0

full_name: IsPrimePow.ne_one
code: theorem IsPrimePow.ne_one {n : R} (h : IsPrimePow n) : n ≠ 1 
goal: n ≠ 1

full_name: isPrimePow_nat_iff
code: theorem isPrimePow_nat_iff (n : ℕ) : IsPrimePow n ↔ ∃ p k : ℕ, Nat.Prime p ∧ 0 < k ∧ p ^ k = n 
goal: IsPrimePow n ↔ ∃ p k, Nat.Prime p ∧ 0 < k ∧ p ^ k = n

full_name: Nat.Prime.isPrimePow
code: theorem Nat.Prime.isPrimePow {p : ℕ} (hp : p.Prime) : IsPrimePow p 
goal: IsPrimePow p

full_name: isPrimePow_nat_iff_bounded
code: theorem isPrimePow_nat_iff_bounded (n : ℕ) :
    IsPrimePow n ↔ ∃ p : ℕ, p ≤ n ∧ ∃ k : ℕ, k ≤ n ∧ p.Prime ∧ 0 < k ∧ p ^ k = n 
goal: IsPrimePow n ↔ ∃ p ≤ n, ∃ k ≤ n, Nat.Prime p ∧ 0 < k ∧ p ^ k = n

full_name: instDecidableIsPrimePowNat
code: instance {n : ℕ} : Decidable (IsPrimePow n) 
goal: Decidable (IsPrimePow n)

full_name: IsPrimePow.dvd
code: theorem IsPrimePow.dvd {n m : ℕ} (hn : IsPrimePow n) (hm : m ∣ n) (hm₁ : m ≠ 1) : IsPrimePow m 
goal: IsPrimePow m

full_name: Nat.disjoint_divisors_filter_isPrimePow
code: theorem Nat.disjoint_divisors_filter_isPrimePow {a b : ℕ} (hab : a.Coprime b) :
    Disjoint (a.divisors.filter IsPrimePow) (b.divisors.filter IsPrimePow) 
goal: Disjoint (Finset.filter IsPrimePow a.divisors) (Finset.filter IsPrimePow b.divisors)

full_name: IsPrimePow.two_le
code: theorem IsPrimePow.two_le : ∀ {n : ℕ}, IsPrimePow n → 2 ≤ n
  
goal: IsPrimePow n → 2 ≤ n

full_name: IsPrimePow.pos
code: theorem IsPrimePow.pos {n : ℕ} (hn : IsPrimePow n) : 0 < n 
goal: 0 < n

full_name: IsPrimePow.one_lt
code: theorem IsPrimePow.one_lt {n : ℕ} (h : IsPrimePow n) : 1 < n 
goal: 1 < n