pith. machine review for the scientific record. sign in
theorem

liouville_prime_pow

proved
show as:
view math explainer →
module
IndisputableMonolith.NumberTheory.Primes.ArithmeticFunctions
domain
NumberTheory
line
310 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.NumberTheory.Primes.ArithmeticFunctions on GitHub at line 310.

browse module

All declarations in this module, on Recognition.

explainer page

Tracked in the explainer inventory; generation is lazy so crawlers do not trigger LLM jobs.

open explainer

depends on

formal source

 307  norm_num
 308
 309/-- λ(p^k) = (-1)^k for prime p. -/
 310theorem liouville_prime_pow {p k : ℕ} (hp : Prime p) :
 311    liouville (p ^ k) = (-1) ^ k := by
 312  have hp' : Nat.Prime p := (prime_iff p).1 hp
 313  cases k with
 314  | zero => simp [liouville_one]
 315  | succ k =>
 316    have hpk : p ^ (k + 1) ≠ 0 := pow_ne_zero (k + 1) hp'.ne_zero
 317    simp only [liouville, hpk, ↓reduceIte, bigOmega]
 318    -- Ω(p^k) = k for prime p
 319    have hOmega : ArithmeticFunction.cardFactors (p ^ (k + 1)) = k + 1 :=
 320      ArithmeticFunction.cardFactors_apply_prime_pow hp'
 321    rw [hOmega]
 322
 323/-- λ(mn) = λ(m) * λ(n) for nonzero m, n (complete multiplicativity). -/
 324theorem liouville_mul {m n : ℕ} (hm : m ≠ 0) (hn : n ≠ 0) :
 325    liouville (m * n) = liouville m * liouville n := by
 326  have hmn : m * n ≠ 0 := mul_ne_zero hm hn
 327  simp only [liouville, hm, hn, hmn, ↓reduceIte]
 328  rw [bigOmega_mul hm hn, pow_add]
 329
 330/-! ### Identity function (for Dirichlet algebra) -/
 331
 332/-- The identity arithmetic function id(n) = n. -/
 333abbrev arithId : ArithmeticFunction ℕ := ArithmeticFunction.id
 334
 335@[simp] theorem arithId_def : arithId = ArithmeticFunction.id := rfl
 336
 337/-- id(n) = n. -/
 338theorem arithId_apply {n : ℕ} : arithId n = n := by
 339  simp [arithId]
 340