Module

ZModPrimeKernel.lean

Nyll.GaloisCohomology.ProfiniteIntegers.ZModPrimeKernel
6 declarations indexed from sourceView source ↗

The prime-order kernel of successive prime-power reduction

Declarations

ZMod.mulPowPrime

Multiplication by p^n identifies residues modulo p with the last kernel layer.

Source context 1 command

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ZMod
def mulPowPrime (p n : ℕ) : ZMod p →+ ZMod (p ^ (n + 1))
ZMod.mulPowPrime_intCast
Source context 1 command

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ZMod
theorem mulPowPrime_intCast (p n : ℕ) (a : ℤ) :
    mulPowPrime p n (a : ZMod p) = (p ^ n : ZMod (p ^ (n + 1))) * a
ZMod.mulPowPrime_injective
Source context 1 command

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ZMod
theorem mulPowPrime_injective {p : ℕ} (hp : p ≠ 0) (n : ℕ) :
    Function.Injective (mulPowPrime p n)
ZMod.exists_mulPowPrime_eq_of_castHom_eq_zero

Every element killed by reduction modulo p^n is a multiple of p^n.

Source context 1 command

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ZMod
theorem exists_mulPowPrime_eq_of_castHom_eq_zero (p n : ℕ)
    (z : ZMod (p ^ (n + 1)))
    (hz : ZMod.castHom (pow_dvd_pow p (Nat.le_succ n)) (ZMod (p ^ n)) z = 0) :
    ∃ a : ZMod p, mulPowPrime p n a = z
ZMod.castHom_mulPowPrime
Source context 1 command

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ZMod
theorem castHom_mulPowPrime (p n : ℕ) (a : ZMod p) :
    ZMod.castHom (pow_dvd_pow p (Nat.le_succ n)) (ZMod (p ^ n))
      (mulPowPrime p n a) = 0
ZMod.mulPowPrime_mul_castHom
Source context 1 command

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ZMod
theorem mulPowPrime_mul_castHom (p n : ℕ) (a : ZMod (p ^ (n + 1))) (b : ZMod p) :
    mulPowPrime p n (ZMod.castHom (dvd_pow_self p (Nat.succ_ne_zero n)) (ZMod p) a * b) =
      a * mulPowPrime p n b