Research · Papers · Adders, counters and the heap law · MF-115

Exact Kummer endpoint valuation and boundary-alias count for FullAdd

MC(FullAdd(K,n)) = v_2((KB_n)! / (B_n!)^K) for K,n ≥ 1, B_n = 2^n - 1; eventual gap is (r-1)K - 2^r + 2 for r = ⌈log_2 K⌉

Published 2026-09-04

For everyone

Plain summary

Multi-operand addition sums several binary numbers at once. In digital logic, multiplicative complexity measures how many AND gates a circuit needs when XOR gates are free.

This paper gives an exact formula for the multiplicative complexity of adding K numbers of bit-width n. The count matches a 2-adic valuation tied directly to Kummer's theorem on base-2 addition carries. It also proves an exact formula for the boundary-alias count, yielding an eventual gap of (r - 1)K - 2^r + 2, where r is ceil(log_2 K). When K is 3, this gap equals 1.

One core caveat applies: while proved for the standard FullAdd construction and product-floor structure under the current evidence tier, whether unrestricted circuit designs can achieve a lower cost remains an open question.

Result

For integers K, n ≥ 1, let B_n = 2^n - 1. The multiplicative complexity of FullAdd(K,n) in the GF(2) XOR-free model is:

MC(FullAdd(K,n)) = v_2((KB_n)! / (B_n!)^K)

where v_2(x) is the 2-adic valuation of x.

Let h_j = K - 1 - floor((K - 1) / 2^j). The boundary-alias count and partition sums satisfy:

P(K,n) = sum_{j=1}^{n-1} min(h_j, 2^(n-j) - 1)

and

T - P = sum_j (h_j - (2^(n-j) - 1))_+

where (x)_+ = max(0, x).

The eventual gap is:

(r - 1)K - 2^r + 2

where r = ceil(log_2 K). For K = 3, the eventual gap is 1. Unrestricted equality across all possible circuit topologies remains open.

Setting and definitions

The multiplicative complexity MC(f) of a Boolean function or multi-output circuit f over GF(2) is the minimum number of AND gates in an XOR-AND graph (XAG) computing f.

FullAdd(K,n) is the multi-operand addition operator computing the sum of K unsigned n-bit integers. The constant B_n = 2^n - 1 is the maximum n-bit integer. The function v_2(m) gives the highest power of 2 dividing m, corresponding to Kummer's carry count. The terms h_j, P(K,n), and T - P track carry propagation and boundary aliases across bit columns.

Method

The result is established by formal proof and computational verification (Evidence tier: P + FC for FullAdd and the existing product-floor formula). Verification scripts were executed on AX162 paths:

  • zkgolf-decomp/council-hardy-scratch/carry_calculus.py
  • zkgolf-decomp/council-hardy-scratch/residual_hankel.py

Derivations and audit logs appear in:

  • zkgolf-decomp/reports/COUNCIL-HARDY.md
  • zkgolf-decomp/reports/COUNCIL-MINE.md
  • zkgolf-decomp/reports/STATE-OF-PROGRAM-V2.md

Discussion

The closed-form 2-adic expression settles the complexity of multi-operand addition in terms of factorial valuations. The arithmetic alias identified in this valuation is not labelled gate-forcing.

The register notes that unrestricted equality remains open: circuits outside this structural family might theoretically require fewer AND gates. Source reports record no SHA-256 digests for carry_calculus.py and residual_hankel.py, so none are provided.

For everyone — the takeaway

What this means

Adding multiple binary numbers is a core routine in arithmetic circuits and zero-knowledge proof systems. Because nonlinear multiplication gates dominate circuit costs, finding their absolute minimum matters for circuit optimization. This result ties the complexity of standard multi-operand adders directly to classical base-2 carry theory, establishing tight benchmarks even as the possibility of non-standard optimizations remains open.

Register references

  • Register entry: MF-115
  • Reports:
  • zkgolf-decomp/reports/COUNCIL-HARDY.md
  • zkgolf-decomp/reports/COUNCIL-MINE.md
  • zkgolf-decomp/reports/STATE-OF-PROGRAM-V2.md
  • Code artifacts:
  • zkgolf-decomp/council-hardy-scratch/carry_calculus.py
  • zkgolf-decomp/council-hardy-scratch/residual_hankel.py

Every artifact named above is bundled in, or hashed by, this paper's evidence pack below.

Evidence pack

Everything needed to check this entry against its receipts: the register text, a manifest with a SHA-256 hash for every named receipt, and 3 of 5 receipt files bundled (35 KB). Anything not bundled is still hashed in the manifest and lives in the compute-box working trees.

Download evidence.zip

Changelog

Last reviewed 2026-09-04

  • 2026-09-04Published on this site.

Related in this programme