An introduction to p-adic L-functions — Lean blueprint

9.3. Example: cyclotomic units🔗

The example that motivates everything is the family of cyclotomic units, which we shall see is directly linked to \zeta_p.

Let a \in \Z be prime to p. The cyclotomic units are c_n(a) := \frac{\xi_{p^n}^a - 1}{\xi_{p^n} - 1} \in \sU_n. This is a genuine unit, since both numerator and denominator are uniformisers of K_n (each \xi_{p^n}^a - 1 is, as a is prime to p).

Lean code for Definition9.3.12 declarations
  • defdefined in PadicLFunctions/Coleman/Map.lean
    complete
    def PadicLFunctions.Coleman.cycloUnit (p : ) [hp : Fact (Nat.Prime p)]
      (a n : ) : ℂ_[p]
    def PadicLFunctions.Coleman.cycloUnit (p : )
      [hp : Fact (Nat.Prime p)] (a n : ) :
      ℂ_[p]
    **RJW TeX 2573**: the cyclotomic unit `c_n(a) = (ξ_{p^n}^a − 1)/(ξ_{p^n} − 1)`
    of the local field `K_n`. (At level `0` it is the junk value `0/0 = 0`; the
    packaged tower `cyclo` overrides level `0` by `1`.) 
  • theoremdefined in PadicLFunctions/Coleman/Map.lean
    complete
    theorem PadicLFunctions.Coleman.norm_cycloUnit (p : ) [hp : Fact (Nat.Prime p)]
      {a : } (ha : ¬p  a) {n : } (hn : 1  n) :
      PadicLFunctions.Coleman.cycloUnit p a n = 1
    theorem PadicLFunctions.Coleman.norm_cycloUnit
      (p : ) [hp : Fact (Nat.Prime p)]
      {a : } (ha : ¬p  a) {n : }
      (hn : 1  n) :
      PadicLFunctions.Coleman.cycloUnit p a
            n =
        1
    `c_n(a)` has norm `1` (RJW TeX 2573): numerator and denominator are conjugate
    uniformisers of equal norm (`norm_zetaSys_pow_sub_one_eq`). 
Lemma9.3.2
uses 0
Used by 2
Reverse dependency previews
Preview
Proposition 9.3.3
Loading preview
Reverse dependency preview content is loaded from the Blueprint HTML cache.
L∃∀N

The system c(a) := (c_n(a))_n is norm-compatible, i.e. c(a) \in \sU_\infty. Its Coleman power series is the polynomial f_{c(a)}(T) = \frac{(1+T)^a - 1}{T}.

Lean code for Lemma9.3.22 declarations
  • defdefined in PadicLFunctions/Coleman/Map.lean
    complete
    def PadicLFunctions.Coleman.cyclo (p : ) [hp : Fact (Nat.Prime p)] {a : }
      (ha : ¬p  a) (hp2 : p  2) :
      PadicLFunctions.Coleman.NormCompatUnits p
    def PadicLFunctions.Coleman.cyclo (p : )
      [hp : Fact (Nat.Prime p)] {a : }
      (ha : ¬p  a) (hp2 : p  2) :
      PadicLFunctions.Coleman.NormCompatUnits
        p
    **RJW TeX 2577**: the packaged cyclotomic-unit tower `c(a) = (c_n(a))_n` as a
    norm-compatible system of units `NormCompatUnits`. Level `0` is set to `1` (the
    formal value `(1^a−1)/(1−1)` is not a unit, and `NormCompatUnits.compat` is only
    imposed for `n ≥ 1`); for `n ≥ 1` the unit is `c_n(a)` (norm `1`, in `𝒪_n`, with
    inverse in `𝒪_n`), and norm compatibility is `levelNorm_cycloUnit`. 
  • theoremdefined in PadicLFunctions/Coleman/Map.lean
    complete
    theorem PadicLFunctions.Coleman.levelNorm_cycloUnit (p : )
      [hp : Fact (Nat.Prime p)] {a : } (ha : ¬p  a) (hp2 : p  2) {n : }
      (hn : 1  n) :
      PadicLFunctions.Coleman.levelNorm p n
          (PadicLFunctions.Coleman.cycloUnit p a (n + 1)) =
        PadicLFunctions.Coleman.cycloUnit p a n
    theorem PadicLFunctions.Coleman.levelNorm_cycloUnit
      (p : ) [hp : Fact (Nat.Prime p)]
      {a : } (ha : ¬p  a) (hp2 : p  2)
      {n : } (hn : 1  n) :
      PadicLFunctions.Coleman.levelNorm p n
          (PadicLFunctions.Coleman.cycloUnit p
            a (n + 1)) =
        PadicLFunctions.Coleman.cycloUnit p a
          n
    **Norm compatibility of the cyclotomic units** (RJW TeX 2581–2585):
    `N_{n+1,n}(c_{n+1}(a)) = c_n(a)` for `n ≥ 1`. Apply the norm collapse
    `levelNorm_zetaSys_pow_sub_one` to the numerator (`b = a`) and to the denominator
    (`b = 1`, i.e. `levelNorm_pi`), then take the quotient. 
Proof for Lemma 9.3.2
Proof uses 2
Proof dependency previews
Preview
Theorem 9.2.2
Loading preview
Proof dependency preview content is loaded from the Blueprint HTML cache.

Norm-compatibility means N_{n,n-1}(c_n(a)) = c_{n-1}(a). The minimal polynomial of \xi_{p^n} over K_{n-1} is X^p - \xi_{p^{n-1}}, so its conjugates are \eta\,\xi_{p^n} for \eta \in \mu_p. Hence for any b prime to p, N_{n,n-1}(\xi_{p^n}^b - 1) = \prod_{\eta \in \mu_p}(\xi_{p^n}^b\eta - 1) = \xi_{p^n}^{bp} - 1 = \xi_{p^{n-1}}^b - 1, using X^p - 1 = \prod_{\eta \in \mu_p}(X\eta - 1). Taking b = a for the numerator and b = 1 for the denominator, multiplicativity of the norm gives the claim. Finally, evaluating f_{c(a)}(\pi_n) = ((1+\pi_n)^a - 1)/\pi_n = (\xi_{p^n}^a - 1)/(\xi_{p^n}-1) = c_n(a), so by uniqueness Theorem 9.2.2 this polynomial is the Coleman series of c(a) Definition 9.3.1.

Recall the operator \partial = (1+T)\tfrac{d}{dT} from the construction of \zeta_p, which corresponds to multiplication by x on measures.

Proposition9.3.3
uses 0
Used by 4
Reverse dependency previews
Preview
Lemma 9.3.4
Loading preview
Reverse dependency preview content is loaded from the Blueprint HTML cache.
L∃∀N

We have \partial \log f_{c(a)}(T) = a - 1 - F_a(T), where F_a(T) is the power series whose associated measure is \mu_a.

Lean code for Proposition9.3.33 theorems
  • theoremdefined in PadicLFunctions/Coleman/Map.lean
    complete
    theorem PadicLFunctions.Coleman.one_add_mul_derivative_log_geomSum (p : )
      [hp : Fact (Nat.Prime p)] {a : } (ha : ¬p  a) (_ha0 : a  0) :
      (1 + PowerSeries.X) * (PadicMeasure.geomSum p a).derivativeFun =
        (a - 1 - PadicMeasure.Fa p a) * PadicMeasure.geomSum p a
    theorem PadicLFunctions.Coleman.one_add_mul_derivative_log_geomSum
      (p : ) [hp : Fact (Nat.Prime p)]
      {a : } (ha : ¬p  a) (_ha0 : a  0) :
      (1 + PowerSeries.X) *
          (PadicMeasure.geomSum p
              a).derivativeFun =
        (a - 1 - PadicMeasure.Fa p a) *
          PadicMeasure.geomSum p a
    **RJW prop:coleman zetap (TeX 2595–2608)**, cleared form: the logarithmic
    derivative of `f_{c(a)} = geomSum a` is `(a−1) − F_a`, i.e.
    `(1+T)·(geomSum a)′ = ((a−1) − F_a)·geomSum a`.
    
    Proof (the §8 T704 template): differentiate `geomSum a · T = (1+T)^a − 1` to get
    `(geomSum a)′·T + geomSum a = ∂((1+T)^a)`; multiply by `(1+T)` and use
    `(1+T)·∂((1+T)^a) = a·(1+T)^a`; the target multiplied by `T` reduces, via
    `((1+T)^a−1)·F_a = geomSum a − a` and `geomSum a · T = (1+T)^a − 1`, to the same
    expression. Cancel the regular element `T`. 
  • theoremdefined in PadicLFunctions/Coleman/Map.lean
    complete
    theorem PadicLFunctions.Coleman.colemanSeries_cyclo (p : )
      [hp : Fact (Nat.Prime p)] {a : } (ha : ¬p  a) (hp2 : p  2) :
      PadicLFunctions.Coleman.colemanSeries p
          (PadicLFunctions.Coleman.cyclo p ha hp2) =
        PadicMeasure.geomSum p a
    theorem PadicLFunctions.Coleman.colemanSeries_cyclo
      (p : ) [hp : Fact (Nat.Prime p)]
      {a : } (ha : ¬p  a) (hp2 : p  2) :
      PadicLFunctions.Coleman.colemanSeries p
          (PadicLFunctions.Coleman.cyclo p ha
            hp2) =
        PadicMeasure.geomSum p a
    **RJW prop:coleman zetap (TeX 2589–2592)**: the Coleman power series of the
    cyclotomic-unit tower `c(a)` is `f_{c(a)} = geomSum a = ((1+T)^a − 1)/T`. (The source
    notes it "is even a polynomial".)
    
    Proof via the uniqueness of the Coleman series (`coleman_existsUnique`): `geomSum a`
    satisfies all three defining clauses of `colemanSeries (cyclo a)`:
    * `IsUnit (geomSum a)` (`isUnit_geomSum`, `a` coprime to `p`);
    * `𝒩`-invariance `normOp (geomSum a) = geomSum a`: both sides interpolate the
      norm-compatible tower `c(a)` (`evalPi_normOp` rewrites `(𝒩 geomSum)(π_n)` as
      `N_{n+1,n}(geomSum(π_{n+1})) = N_{n+1,n}(c_{n+1}(a)) = c_n(a) = geomSum(π_n)` via
      `evalPi_geomSum` + `levelNorm_cycloUnit`), so `evalPi_injective` gives equality;
    * interpolation `(geomSum a)(π_n) = c_n(a) = (cyclo a).elems n` for `n ≥ 1`
      (`evalPi_geomSum`; `(cyclo a).elems n = cycloUnit p a n` at `n ≥ 1`). 
  • theoremdefined in PadicLFunctions/Coleman/Map.lean
    complete
    theorem PadicLFunctions.Coleman.dlog_geomSum (p : ) [hp : Fact (Nat.Prime p)]
      {a : } (ha : ¬p  a) :
      PadicLFunctions.Coleman.dlog p (PadicMeasure.geomSum p a) =
        a - 1 - PadicMeasure.Fa p a
    theorem PadicLFunctions.Coleman.dlog_geomSum
      (p : ) [hp : Fact (Nat.Prime p)]
      {a : } (ha : ¬p  a) :
      PadicLFunctions.Coleman.dlog p
          (PadicMeasure.geomSum p a) =
        a - 1 - PadicMeasure.Fa p a
    `∂log (geomSum a) = (a−1) − F_a` (RJW prop:coleman zetap, TeX 2595–2608): the
    cleared identity `(1+T)·(geomSum a)′ = ((a−1)−F_a)·geomSum a`
    (`one_add_mul_derivative_log_geomSum`) becomes, on multiplying by `geomSum a⁻¹`
    (`Ring.mul_inverse_cancel`, `geomSum a` a unit), `∂log (geomSum a) = (a−1) − F_a`. 
Proof for Proposition 9.3.3

A direct computation using \partial \log g = (1+T)g'/g: \partial \log f_{c(a)} = \partial\log((1+T)^a - 1) - \partial\log T = \frac{a(1+T)^a}{(1+T)^a - 1} - \frac{T+1}{T}. Writing a(1+T)^a = a((1+T)^a - 1) + a in the first term and (T+1)/T = 1 + 1/T in the second gives = a - 1 - \frac1T + \frac{a}{(1+T)^a - 1} = a - 1 - F_a(T), which is exactly the defining expression for F_a Lemma 9.3.2.

Lemma9.3.4
uses 1used by 1L∃∀N

The restriction to \Zpx of the measure attached to \partial \log f_{c(a)} equals minus the restriction of \mu_a: \Res_{\Zpx}\big(\mu_{\partial \log f_{c(a)}}\big) = -\Res_{\Zpx}(\mu_a), where \mu_a Definition 4.1.4 is the measure used to build \zeta_p.

Lean code for Lemma9.3.41 theorem
  • theoremdefined in PadicLFunctions/Coleman/Map.lean
    complete
    theorem PadicLFunctions.Coleman.res_derivative_log_geomSum (p : )
      [hp : Fact (Nat.Prime p)] {a : } (_ha : ¬p  a) (_ha0 : a  0) :
      PadicMeasure.res p 
          ((PadicMeasure.mahlerLinearEquiv p).symm
            (a - 1 - PadicMeasure.Fa p a)) =
        -PadicMeasure.res p  (PadicMeasure.muA p a)
    theorem PadicLFunctions.Coleman.res_derivative_log_geomSum
      (p : ) [hp : Fact (Nat.Prime p)]
      {a : } (_ha : ¬p  a) (_ha0 : a  0) :
      PadicMeasure.res p 
          ((PadicMeasure.mahlerLinearEquiv
                p).symm
            (a - 1 - PadicMeasure.Fa p a)) =
        -PadicMeasure.res p 
            (PadicMeasure.muA p a)
    **RJW lem:relate cyclo to mua (TeX 2611–2624)**, series/measure-level form:
    `Res_{ℤ_p^×}(μ_{(a−1)−F_a}) = −Res_{ℤ_p^×}(μ_a)`, where `μ_{(a−1)−F_a}` is the
    measure with Mahler transform `(a−1) − F_a`. Linearity of `𝓐⁻¹` and of `Res`
    splits off the constant part `a−1`, whose residue vanishes (`res_units_symm_C`);
    the remaining `−𝓐⁻¹(F_a) = −μ_a`. 
Proof for Lemma 9.3.4

On power series, restriction of a measure to \Zpx is implemented by the operator 1 - \varphi\circ\psi. This operator annihilates constants, so it kills the term a - 1 in Proposition 9.3.3. Hence (1 - \varphi\circ\psi)\,\partial\log f_{c(a)} = -(1 - \varphi\circ\psi)F_a, which is the asserted identity of restricted measures.

This relation is the engine behind the new construction of \zeta_p via cyclotomic units carried out below.