1 of 18

Efficiently computing Igusa's local-zeta function

Nitin Saxena (CSE@IIT Kanpur, India)‏

(ANTS-XIV'20 ; with Ashish Dwivedi)

Indo-European Maths Conference

Jan 2026, SPPU & IISER Pune

2 of 18

Contents

  • Zeta functions
  • Igusa's local-zeta fn

  • Algorithmic questions
  • Root finding mod pk

  • Root counting mod pk
  • Compute Poincaré Series

  • Conclusion

3 of 18

Zeta functions

  • For function Nk there's generating-function G(t):= ∑k≥0 Nk tk .
    • This carries comprehensive information about Nk .
    • Eg. the growth of Nk decides how the power-series converges.

  • Riemann zeta-fn: ζ(s) = ∑k≥1 1/ks .
    • What's it encoding?

  • Inspired many other zeta functions:
    • Selberg zeta fn of a manifold
    • Ruelle zeta fn of a dynamical system
    • Ihara zeta fn of a graph

  • Local-zeta functions (based on a prime p):
    • Hasse-Weil zeta fn
    • Igusa local-zeta fn

Riemann 1826-66

To count points

Galois field vs ring Z/pkZ

E.g. Ramanujan tau-function t·∏m≥1(1-tm)24

PRIMES

Geodesics, Orbits, Cycles

4 of 18

Contents

  • Zeta functions
  • Igusa's local-zeta fn

  • Algorithmic questions
  • Root finding mod pk

  • Root counting mod pk
  • Compute Poincaré Series

  • Conclusion

5 of 18

Igusa's local-zeta function

  • Let Zp denote p-adic integers.
    • Elements are i≥0 ai pi (ai ∊ [0,p-1]) .
  • Let f = f(x1,...,xn) be n-variate integral polynomial.

  • Defn.1: Igusa's local-zeta fn Zf,p(s) = ∫(Z_p)^n |f(x)|ps ·|dx|.
    • Integrate using p-adic metric and Haar measure.

  • This converges to a rational function in Q(ps).
    • (Igusa'74) by resolving singularities.
    • (Denef'84) by p-adic cell decomposition.

  • Counts roots f(x) mod pk & `multiplies' by p-ks.

  • So, we can give an easier definition:

Igusa 1924-2013

infinite sum

For all k

6 of 18

Igusa's local-zeta function

  • Define Nk(f) := # roots of f(x) mod pk .

  • Defn.2: Poincaré Series Pf,p(t) = ∑k≥0 Nk(f)/pnk ·tk .
    • Eg. P0,p(t) = ∑k≥0 tk = 1/(1-t) .
    • (Igusa'74) connected them at t=p-s : P(t)·(1-t) = 1 - t·Z(s) .

  • (Igusa'74) Pf,p(t) converges to a rational function in Q(t).

  • This means that Nk(f) is rather special !
    • Generally, power-series don't converge in Q(t).
    • Eg. k≥0 (1/k!) ·tk is irrational !

  • Convergence proofs are quite non-explicit.
    • What do we learn about Nk(f) , for small k ?

Two Defns: Analytic vs Discrete

7 of 18

Contents

  • Zeta functions
  • Igusa's local-zeta fn

  • Algorithmic questions
  • Root finding mod pk

  • Root counting mod pk
  • Compute Poincaré Series

  • Conclusion

8 of 18

Algorithmic questions

  • Qn: Could Nk(f) be computed efficiently?

  • Trivially, in pkn time.
    • Much faster unlikely.
    • It's NP-hard; even Permanent-hard !

  • Could Nk(f) be computed efficiently, for univariate f(x)?
    • Qn: In poly(deg(f), log pk) time?

  • Or, try to compute the analytic-integral defining Zf,p(s).

  • (Chistov'87) gave a randomized algorithm to factor f(x) over Zp.
    • Using this one could factor f into roots,
    • and attempt the integration ...?

  • Qn: But, a deterministic poly-time algorithm for Nk(f) ?

In p-adic extensions

9 of 18

Contents

  • Zeta functions
  • Igusa's local-zeta fn

  • Algorithmic questions
  • Root finding mod pk

  • Root counting mod pk
  • Compute Poincaré Series

  • Conclusion

10 of 18

Root-finding mod pk

  • Instead of integration, we take the route of roots mod pk.

  • Let f mod pk be degree d univariate polynomial.

  • (Berthomieu,Lecerf,Quintin'13) Roots of f mod pk arrange as representative-roots:
    • a =: ∑0≤i<ℓ ai pi + *p(ai ∊ [0,p-1] , * ∊ Z) .
    • a is minimal & f(a) = 0 mod pk .
    • At most d rep.roots.

  • Proof is inductive, based on the transformation:
    • g(x) := f(0≤i<m ai pi + x·pm) / pv mod pk-v .
    • Root of g(x) mod p gives am .
    • Continue with 0≤i≤m ai ·pi .

Reduces char pk to p

Why are rep.roots a few?

Many am’s ⇒ slower growth of m.

11 of 18

Root-finding mod pk

  • Rep.roots are few, but roots may be exponentially many!
    • Eg. f := px mod p2 has p roots,
    • but just one rep.root a =: 0 + *p !

  • (BLQ'13) yields fast randomized algorithm to find roots mod pk.
    • Counting is easy, as rep.root a means pk-ℓ roots.
    • a = ∑0≤i<ℓ ai ·pi + *p.
    • Summing up over rep.roots, gives all roots.

  • How to make it deterministic poly-time?

  • Rep.roots yield Nk(f) = ∑i pk - _i .
    • What does it say about Poincaré series Pf,p(t) ?

i depends on i, k

12 of 18

Root-finding mod pk

  • (Dwivedi,Mittal,S '19) gave fast deterministic algorithm to implicitly find roots mod pk.

  • Idea: Store rep.roots a = ∑0≤i< ai ·pi + *p in maximal split ideals.
    • I = <h0(x0) , h1(x0,x1) ,..., hℓ-1(x0,...,xℓ-1)> .
    • Each zero of I in Fp defines a rep.root.
    • Essentially, run (BLQ'13) mod I (without randomization!).
    • Keep `growing' I.

  • (DMS'19) yields fast deterministic algorithm to count roots f mod pk.

Yet Nk(f) remains a mystery !

13 of 18

Contents

  • Zeta functions
  • Igusa's local-zeta fn

  • Algorithmic questions
  • Root finding mod pk

  • Root counting mod pk
  • Compute Poincaré Series

  • Conclusion

14 of 18

Root-counting mod pk

  • Intuitively, Nk(f) = ∑i pk - ℓ_i should behave better for large k .
    • Since, large k is like studying roots in Zp .

  • We show, for large k : ℓi is linear in k.

Details:

  • k > k0 := deg(f) · valp(disc( rad(f) )) .

  • i = ⌈ ( k – valp(fii)) ) / mult(αi).
    • Where, αi are all p-adic integer roots of f(x) .

Roots uniquely

lift as

k grows.

Constant (k-ℓi)/k =: ui

Curiously, squarefree f & large k ⇨ Nk(f) independent of k .

15 of 18

Contents

  • Zeta functions
  • Igusa's local-zeta fn

  • Algorithmic questions
  • Root finding mod pk

  • Root counting mod pk
  • Compute Poincaré Series

  • Conclusion

16 of 18

Compute Poincaré Series

  • Got : Nk(f) = ∑i pk·u_i for k > k0 .

  • So, P(t) = ∑k≥0 Nk(f)/pk ·tk ,

=: P0(t) + ∑k≥k_0 Nk(f)/pk ·tk ,

= P0(t) + ∑k≥k_0 i pk·(u_i-1) ·tk .

  • The infinite sum converges to a rational, in Q(t).

  • Thus, P(t) is a rational function.

  • Our algorithm computes Nk(f) function;

hence, both P0(t) and the infinite sum are known.

    • In poly(|f|, log p) time.

17 of 18

Contents

  • Zeta functions
  • Igusa's local-zeta fn

  • Algorithmic questions
  • Root finding mod pk

  • Root counting mod pk
  • Compute Poincaré Series

  • Conclusion

18 of 18

At the end …

  • Det.poly-time algorithm for Igusa's local-zeta function.
    • For univariate polynomial f.

  • Could we do this for bivariate polynomial f(x1, x2) ?

  • Relevant Questions:

  1. Estimating the count Nk(f(x1, x2)) = ? (Chakrabarti, S., ISSAC'23)

  1. Counting factors of f(x) mod pk ?
    • Irreducibility-testing of f(x) mod p5 ? (Mahapatra, S., WIP)
    • GCD of f(x), g(x) mod p5 ?

  1. Hasse-Weil Zeta fn of a variety mod p? (S., Madhavan V., WIP)

Thank you!