\documentclass[11pt,reqno]{amsart} \usepackage[T1]{fontenc} \usepackage{amsmath,amssymb,amsthm,mathtools} \usepackage{dsfont} \usepackage[margin=1in]{geometry} \usepackage{microtype} \usepackage[colorlinks=true,allcolors=blue,backref=page]{hyperref} \numberwithin{equation}{section} \newtheorem{theorem}{Theorem}[section] \newtheorem{lemma}[theorem]{Lemma} \newtheorem{proposition}[theorem]{Proposition} \newtheorem{corollary}[theorem]{Corollary} \theoremstyle{definition}\newtheorem{definition}[theorem]{Definition} \theoremstyle{remark}\newtheorem{remark}[theorem]{Remark} \newcommand{\poly}{\operatorname{poly}} \newcommand{\Prob}{\mathbb P} \DeclareMathOperator{\Bin}{Bin} \allowdisplaybreaks[2] \renewcommand{\le}{\leqslant} \renewcommand{\ge}{\geqslant} \setlength{\emergencystretch}{1.5em} \setcounter{tocdepth}{1} \title{The Exponential Time Hypothesis is False} \author{OpenAI} \date{17 October 2026, revised 25 October 2026} \hypersetup{pdftitle={ETH is False}, pdfauthor={OpenAI}, pdfsubject={Exact counting, sparse parity tests, and polynomial interpolation}} \begin{document} \begin{abstract} We give a deterministic algorithm for exactly counting the satisfying assignments of an arbitrary $k$-CNF formula. For every fixed $k\ge2$, on a formula with $n$ variables and $m$ clauses, our algorithm uses $\poly_k(n,m)$ space and runs in time $(n+m)^{O_k(1)}2^{\,n/(\log n)^{\frac12+o(1)}}$. Our algorithm refutes the Exponential Time Hypothesis (ETH), which postulates that deciding $3$-SAT on $n$ variables requires $2^{\Omega(n)}$ time in the worst case. \end{abstract} \maketitle \tableofcontents \vspace{-\baselineskip} \section{Introduction} For every fixed $k\ge3$, $k$-SAT is the canonical NP-complete problem~\cite{Cook71}, and its exponential-time complexity underlies the Exponential Time Hypothesis (ETH) and the Strong Exponential Time Hypothesis (SETH)~\cite{IP01,IPZ}. In this paper, we refute ETH by giving, for every fixed $k\ge2$, a deterministic algorithm that counts the satisfying assignments of a $k$-CNF in subexponential time and polynomial space. Write the input $k$-CNF on $n$ declared variables with $m$ input clauses as \[ F(x_1,\ldots,x_n)=\bigwedge_{e=1}^m \bigl[(x_{i_{e,1}}\oplus b_{e,1})\vee\cdots\vee (x_{i_{e,k}}\oplus b_{e,k})\bigr], \] where $i_{e,j}\in\{1,\ldots,n\}$ and $b_{e,j}\in\{0,1\}$ are the variable index and negation bit of the $j$th literal in clause $e$, and $\oplus$ denotes addition modulo two. Repeating a literal permits clauses with fewer than $k$ literals. The indices $i_{e,j}$ and bits $b_{e,j}$ are fixed by $F$; only $x_1,\ldots,x_n$ vary over assignments. Our aim is to compute the quantity \begin{equation}\label{eq:solution-count} \#F=\bigl|\{x\in\{0,1\}^n:F(x)=1\}\bigr|. \end{equation} Testing $\#F>0$ also decides satisfiability. We keep $k$ fixed as $n$ grows. Throughout, $\log$ denotes the natural logarithm. \begin{theorem}\label{thm:main} For each fixed $k\ge2$, there exists a deterministic algorithm that, given a $k$-CNF $F$ on $n\ge20$ declared variables with $m$ clauses, computes $\#F$ as defined in \eqref{eq:solution-count} in \[ (n+m)^{O_k(1)}2^{O_k(n\log\log n/\sqrt{\log n})} \] bit operations and $(n+m)^{O_k(1)}$ bits of space. For each fixed $D>0$, its running time on inputs with $m\le Dn$ is \[ (n+m)^{O_{k,D}(1)}2^{O_{k,D}(n/\sqrt{\log n})}. \] \end{theorem} The rational interpolation argument in Section~\ref{subsec:general-reduction} gives the weaker exponent $O_k(\rho(n))$, where \[ \rho(n)=\frac{n(\log\log n)^2}{\sqrt{\log n}} =\frac{n}{(\log n)^{\frac12+o(1)}}. \] Appendix~\ref{app:quantitative} proves both bounds in Theorem~\ref{thm:main} by tensor contraction. When $\#F>0$, the standard self-reduction finds a satisfying assignment by fixing one variable at a time and checking that the remaining count is positive. Choosing each bit according to the two conditional counts instead gives an exactly uniform random satisfying assignment, with $\poly_k(n,m)$ expected overhead~\cite[Theorem~3.3(1)]{JVV86}. The theorem also yields arbitrarily accurate subexponential-time approximation algorithms for Max-$k$-SAT. The Unique Games Theorem~\cite[Section~8.1]{OpenAIUGC26} implies NP-hardness bounds for Max-$k$-SAT that match, up to arbitrarily small error in the approximation ratio, the guarantees of the semidefinite-programming algorithm of~\cite{Rag08}. Write $\operatorname{OPT}(F)$ for the maximum number of clauses of $F$ simultaneously satisfied by an assignment. \begin{corollary}\label{cor:max-sat-approximation} For every fixed $k\ge2$ and $\varepsilon>0$, there exists a randomized algorithm that, given a $k$-CNF $F$ on $n\ge20$ variables with $m$ clauses, finds an assignment satisfying at least $\operatorname{OPT}(F)-\varepsilon m$ clauses with probability $1-2^{-\Omega(n)}$, in \[ (n+m)^{O_{k,\varepsilon}(1)}2^{O_{k,\varepsilon}(\rho(n))} \] time and $(n+m)^{O_{k,\varepsilon}(1)}$ space. \end{corollary} \begin{proof} We may assume $m>0$. Let $f(x)$ be the fraction of clauses satisfied by $x$, and let $\widehat f(x)$ be that fraction in a sample of $O(n/\varepsilon^2)$ clauses chosen independently and uniformly with replacement. Hoeffding's inequality and a union bound over all $2^n$ assignments give, with probability $1-2^{-\Omega(n)}$, \[ |\widehat f(x)-f(x)|\le\varepsilon/2 \qquad\text{for every }x\in\{0,1\}^n. \] Thus, if $\widehat x$ maximizes $\widehat f$, then $f(\widehat x)\ge\max_x f(x)-\varepsilon$. Given an integer threshold $b$, a Boolean circuit with at most two inputs per gate and size $O_{k,\varepsilon}(n)$ tests whether an assignment satisfies at least $b$ sampled clauses. The standard circuit-to-$3$-CNF reduction~\cite[Lemmas~15.9--15.10]{Bar23} produces a formula with $O_{k,\varepsilon}(n)$ variables and clauses that is satisfiable exactly when this threshold can be attained. Theorem~\ref{thm:main}, binary search on the threshold, and self-reduction then find an exact sample optimizer within the stated bounds. Truncating rejection sampling after $O(n+\log(n/\varepsilon^2))$ trials per sample gives worst-case $\poly(n,m,\varepsilon^{-1})$ sampling time and adds at most $2^{-\Omega(n)}$ to the failure probability. \end{proof} Note that runtime bounds of the form $2^{o(n)}$ do not transfer under general polynomial-time reductions ($2^{n^{o(1)}}$ would be needed for this), so our result does not imply that general NP problems admit subexponential time algorithms. However we do obtain subexponential time algorithms for counting graph colorings and perfect matchings. \begin{corollary}\label{cor:graph-counting} On simple graphs with $v$ vertices and $e$ edges, the number of independent sets and, for each fixed $q\ge2$, the number of proper $q$-colorings can be computed deterministically in $2^{o(v)}$ time and $\poly_q(v,e)$ space. The number of perfect matchings can be computed deterministically in $2^{o(v+e)}$ time and $\poly(v,e)$ space. \end{corollary} \begin{proof} For $G=(V,E)$, introduce a Boolean variable $x_u$ for each $u\in V$. Satisfying assignments of \[ \bigwedge_{\{u,w\}\in E}(\neg x_u\vee\neg x_w) \] correspond bijectively to the independent sets $\{u\in V:x_u=1\}$. For proper $q$-colorings, use one Boolean variable per vertex and color, require exactly one color at each vertex, and forbid equal colors at adjacent vertices. This gives a counting-preserving $q$-CNF encoding with $qv$ variables and $O_q(v+e)$ clauses. For perfect matchings, use one Boolean variable per edge and a linear-size circuit checking that exactly one selected edge meets each vertex. The standard circuit-to-$3$-CNF reduction~\cite[Lemmas~15.9--15.10]{Bar23} gives $O(v+e)$ variables and clauses. The gate variables have unique values once the edge bits are fixed, so this encoding also preserves the count. Theorem~\ref{thm:main} gives the stated time and space bounds. \end{proof} The fixed-density case of Theorem~\ref{thm:main} gives a circuit lower bound for $\mathrm E^{\mathrm{NP}}$, the class of languages decidable in deterministic time $2^{O(n)}$ with an NP oracle. \begin{corollary}\label{cor:quantitative-circuits} Let $C_L(n)$ be the minimum number of noninput gates in a circuit computing $L$ on $\{0,1\}^n$, allowing arbitrary Boolean gates of fan-in at most two and unrestricted fan-out. There exist a language $L\in\mathrm E^{\mathrm{NP}}$ and a constant $c>0$ such that \begin{equation}\label{eq:quantitative-circuit-lower-bound} C_L(n)>c\,n\sqrt{\log n}\qquad\text{for infinitely many }n. \end{equation} \end{corollary} Appendix~\ref{subsec:circuit-lower-bounds} proves the corollary. Appendix~\ref{subsec:local-inversion} gives algorithms for inversion and exact preimage counting of Boolean maps with constant output locality. \subsection{Related work}\label{sec:related} We first discuss earlier SAT and counting algorithms and the complexity hypotheses contradicted by Theorem~\ref{thm:main}. We then compare our approach with earlier algebraic algorithms and identify the existing constructions used in our proof, whose roles are developed in the roadmap in Section~\ref{sec:technical-overview}. \subsubsection{SAT algorithms and the exponential-time hypotheses}\label{subsec:related-sat} Sch\"oning's local-search algorithm and PPSZ are landmarks in the development of exponential-time algorithms for $k$-SAT~\cite{Schon99,PPSZ05}. Sch\"oning's randomized algorithm starts from a random assignment and repeatedly flips a uniformly chosen variable in an unsatisfied clause. Its bounded-error decision time is \[ (n+m)^{O(1)}(2-2/k)^n \] for each fixed $k\ge3$~\cite[Section~2]{Schon99}. In particular, this gives $(n+m)^{O(1)}(4/3)^n$ time for $3$-SAT. The PPSZ algorithm~\cite{PPSZ05} uses a different mechanism: bounded resolution derives additional clauses, after which variables are assigned in a random order, taking forced values when available and guessing otherwise. For $k=3,4$, its original analysis gave stronger bounds for uniquely satisfiable formulas than for general ones. The unique-SAT guarantees were later extended to general $3$-SAT and $4$-SAT; for $3$-SAT this gave a randomized $O(1.308^n)$ bound~\cite{Hertli14}. Hansen, Kaplan, Zamir, and Zwick improved the PPSZ bound for every fixed $k\ge3$ by biasing the algorithm's guesses~\cite{HKZZ19}. Scheder obtained an improvement for the same range of $k$ by sharpening the analysis of the original PPSZ algorithm~\cite[Theorem~1.5]{Scheder24}. For general $3$-SAT, a preprint by Jiang and Cai gives a randomized $O^*(1.307031578^n)$ bound~\cite[Corollary~1.2]{JC26}, where $O^*$ suppresses factors polynomial in the input size. Liu's deterministic algorithm combines branching with derandomized local search and solves $3$-SAT in $O(1.32793^n)$ time~\cite[Theorem~21]{Liu18}. Randomized local search has also produced effective heuristics. The WalkSAT heuristic chooses an unsatisfied clause and flips one of its variables, combining random choices with greedy moves~\cite{SKC94}. Experiments on formulas from circuit synthesis and diagnosis demonstrated the practical value of this approach~\cite[pp.~340--342, Tables~4--5]{SKC94}. Among uniformly random $k$-CNFs, instances at the satisfiability threshold were conjectured to be the hardest for deciding satisfiability~\cite[Section~1]{VW21}; for fixed $k\ge3$ and lower clause densities $m/n\le 2^k/k^C$, where $C$ is a universal constant, polynomial-time almost-uniform sampling of satisfying assignments is known with high probability over the formula~\cite[Theorem~1.2]{CLWYY25}. For a uniformly random formula with polynomially many clauses, conditioned on satisfiability, Vyas and Williams~\cite[Theorem~3]{VW21} give a PPZ-based algorithm that finds a solution in $2^{n(1-\Omega(\log k/k))}$ time with high probability over both the formula and the algorithm's random choices. The Exponential Time Hypothesis (ETH) asserted that $3$-SAT requires $2^{\Omega(n)}$ deterministic time in the worst case, and hence so does $k$-SAT for every fixed $k\ge3$~\cite[Theorem~1]{IP01}. The Strong Exponential Time Hypothesis (SETH) made the sharper prediction that $k$-SAT requires $2^{n(1-o_k(1))}$ time as $k$ grows. Precisely, for every $\varepsilon\in(0,1)$, there is a fixed $k$ for which no deterministic algorithm solves $k$-SAT in $2^{(1-\varepsilon)n}(n+m)^{O(1)}$ time. The running-time bounds for Sch\"oning's algorithm and PPSZ helped motivate this prediction: their improvements over exhaustive search diminish as $k$ grows~\cite[Open Problems, item~2]{IP01}. The Gap Exponential Time Hypothesis (Gap-ETH) strengthens ETH by postulating constants $\delta,\gamma>0$ for which no $O(2^{\gamma n})$-time algorithm can distinguish a satisfiable $3$-CNF from one in which every assignment violates at least a $\delta$ fraction of the clauses, even when $m=O(n)$~\cite{Din16,MR17}. The randomized version rules out an algorithm with the same running time that distinguishes the two cases with probability at least $2/3$ on every promised input~\cite[Conjecture~2.5]{CCK20}. It has been used to prove hardness of approximating Label Cover~\cite{Din16} and dense constraint satisfaction problems~\cite{MR17}. It also rules out nontrivial fixed-parameter approximations for Clique and Dominating Set. For Clique, the excluded ratios are $o(\mathrm{OPT})$, where $\mathrm{OPT}$ is the maximum clique size~\cite[Corollaries~5.3 and~5.6]{CCK20}. The Nondeterministic Strong Exponential Time Hypothesis (NSETH) asserts that, for every $\varepsilon>0$, some fixed $k$ admits no nondeterministic $2^{(1-\varepsilon)n}(n+m)^{O(1)}$-time algorithm for deciding whether a $k$-CNF is \emph{unsatisfiable}, or equivalently whether a $k$-DNF is a tautology~\cite{CGIMPS16}. NSETH has been used to establish barriers to deterministic fine-grained reductions from SAT to problems such as 3SUM and All-Pairs Shortest Paths~\cite{CGIMPS16}, and to delineate SETH-based lower bounds for approximating directed graph diameter~\cite{Li21}. Theorem~\ref{thm:main} refutes ETH, SETH, Gap-ETH, and NSETH. Indeed, testing whether the exact count is positive or zero decides both satisfiability and unsatisfiability in deterministic $2^{o(n)}(n+m)^{O_k(1)}$ time for every fixed $k$; deciding satisfiability also solves the Gap-ETH promise problem. The deterministic algorithm also refutes the bounded-error randomized versions of ETH~\cite[Section~1]{DHMTW} and SETH~\cite[Definition~2.1]{CDL16}, and of Gap-ETH. It does not conflict with unconditional exponential lower bounds for restricted proof systems such as regular resolution~\cite{BeckImp13}. In 2016, Ryan Williams refuted the Merlin--Arthur version of SETH (MA-SETH) by giving a protocol that certifies $k$-CNF unsatisfiability in $2^{n/2}\poly(n,m)$ time~\cite[Theorem~3.3]{Wil16}. \subsubsection{Exact counting and counting complexity}\label{subsec:related-counting} In Valiant's framework, $\#\mathrm{SAT}$ and $\#3$-SAT are $\#\mathrm P$-complete under parsimonious reductions~\cite[Section~3, Facts~1--2]{Val79}. For fixed $k\ge3$, previous exact-counting algorithms achieve $\poly_k(n,m)2^{n-\Omega(n/k)}$ time, with a Las Vegas expected-time bound in~\cite[Lemma~3.5]{IMP12} and a deterministic bound in~\cite[Theorem~1.6]{CW21}. For $\#2$-SAT, Wahlstr\"om's algorithm counts satisfying assignments in $O^*(1.2377^n)$ time~\cite{Wahlstrom08}. For $\#3$-SAT, Kutzkov uses complementary branching to count satisfying assignments in $O^*(1.637^n)$ time~\cite{Kutzkov26}. Both algorithms are deterministic. The counting Exponential Time Hypothesis ($\#\mathrm{ETH}$) asserted that exactly counting the satisfying assignments of a $3$-CNF requires $2^{\Omega(n)}$ deterministic time~\cite[Section~1]{DHMTW}. Under $\#\mathrm{ETH}$, Curticapean~\cite{Cur18} rules out deterministic $2^{o(v)}$-time algorithms for counting perfect matchings even in unweighted bipartite graphs with $v$ vertices and $O(v)$ edges. The perfect-matching algorithm in Corollary~\ref{cor:graph-counting} applies in particular to these graphs. Our algorithm (Theorem~\ref{thm:main}) solves $\#3$-SAT deterministically in $2^{o(n)}\poly(n,m)$ time and therefore refutes $\#\mathrm{ETH}$. \subsubsection{Implications for fine-grained complexity}\label{subsec:related-consequences} ETH and SETH became standard assumptions for parameterized and fine-grained complexity~\cite{IPZ,VW19}. ETH-based reductions yielded lower bounds for the dependence on solution size in Clique~\cite{CHKX06}, and on treewidth in constraint satisfaction and partitioned subgraph isomorphism~\cite{Marx10}. SETH supported sharp exponential bounds for Hitting Set and Set Splitting~\cite{CDL16}, and for Independent Set and Dominating Set parameterized by treewidth~\cite{LMS18}. It also gave bounds on possible speedups of pseudopolynomial algorithms for Subset Sum and Bicriteria Path~\cite{ABHS19}. For problems in $\mathrm P$, SETH was used to rule out polynomial-factor speedups over quadratic running times for edit distance~\cite{BackursIndyk18}, longest common subsequence and dynamic time warping~\cite{BK15}, Fr\'echet distance~\cite{Bri14}, and regular-expression matching~\cite{BI16}. Other applications concerned approximating graph diameter~\cite{RV13} and maintaining reachability counts or the size of the largest strongly connected component under graph updates~\cite{AW14}. Together these results made SETH a common basis for explaining the apparent optimality of algorithms across quite different problems. Our refutation of ETH and SETH removes one basis for the hardness claims above. Some of the same lower bounds follow from weaker hypotheses that may still hold. For example, the lower bounds for longest common subsequence and regular-expression matching follow from the Orthogonal Vectors Conjecture (OVC)~\cite{BK15,BI16}. OVC asserts that for every fixed $\varepsilon>0$, no $O(N^{2-\varepsilon}\poly(d))$-time algorithm can decide whether two sets of $N$ Boolean vectors of dimension $d$ contain an orthogonal pair, one vector from each set. The reduction from SAT to Orthogonal Vectors shows that SETH implies OVC~\cite{Wil05,VW19}. The lower bounds for Fr\'echet distance, graph diameter approximation, and the treewidth dependence of Independent Set and Dominating Set also follow from the hypothesis that unrestricted CNF-SAT admits no $2^{(1-\delta)n}\poly(n,m)$-time algorithm for any constant $\delta>0$~\cite{Bri14,RV13,LMS18}. Theorem~\ref{thm:main} gives a running-time guarantee for each fixed clause width $k$, while this hypothesis allows the width to grow with $n$. To obtain a faster algorithm for a target problem from our SAT algorithm, we need a reduction in the other direction, from that problem to fixed-width SAT, that controls the number of variables. Set Splitting with sets of size at most $k$ has such a reduction~\cite[Observation~3.6]{CDL16}: use one Boolean variable per element to specify its side of the split. For each set, one clause requires at least one of its variables to be true, and a second requires at least one to be false. The resulting $k$-CNF has one variable per universe element, so for fixed $k$ Theorem~\ref{thm:main} gives subexponential time in the universe size, up to a polynomial input-size factor. \subsubsection{Prior work on algebraic algorithms for combinatorial problems}\label{subsec:related-algebraic} Our algorithm is algebraic, based on polynomial interpolation of carefully chosen auxiliary variables. Below we discuss prior work on using algebraic methods to design algorithm for combinatorial problems. For broader background, see the surveys of Koutis and Williams~\cite{KW16} on algebraic fingerprints, Williams~\cite{Wil14} on the polynomial method in algorithm design, and Husfeldt~\cite{Hus11} on algorithmic inclusion--exclusion. Williams's split-and-list algorithm~\cite{Wil05} partitions the variables of a $2$-CSP into three groups, enumerates partial assignments, and combines them using fast matrix multiplication. Koivisto~\cite{Koi06} gives a direct sum--product formulation. The algorithm of Sections~\ref{sec:counting}--\ref{sec:hashes} likewise enumerates assignments within groups. Fixing the shared measurements $\vec y$ makes their contributions multiply independently. Scott and Sorkin~\cite[Section~6]{SS09} extend split-and-list to polynomial-valued weights and arbitrary rings. Our summation routine similarly uses truncated polynomial rings to retain several coefficients in one computation. Bj\"orklund~\cite[Sections~2--3]{Bjo16} uses inclusion--exclusion and polynomial interpolation to reduce permanent and directed Hamiltonian-cycle counting to a weighted sum over smaller instances. He adds the weights of identical instances in a table, then solves each distinct instance with nonzero total weight once. Bj\"orklund, Kaski, and Williams~\cite{BKW19} use low-degree curves and generalized Kakeya sets to recover polynomial values from evaluations on a small structured set, yielding faster algorithms for fermionants, including the permanent of integer matrices whose entries are bounded in absolute value by a fixed constant. Our polynomial replacements serve a similar purpose: they connect the desired count to structured evaluations from which it can be reconstructed. Here the useful structure is separation into groups after fixing a few shared measurements. Bhargava, Ghosh, Kumar, and Mohapatra~\cite[Sections~3.1--3.2]{BGKM23} evaluate multivariate polynomials over finite fields along low-degree curves, using Hasse derivatives and Hermite interpolation when values alone do not suffice. For a univariate restriction $g$, the order-$j$ Hasse derivative at $t$ is the coefficient of $z^j$ in $g(t+z)$. We use the same recovery principle: compute several Taylor coefficients at each point admitting fast summation, then recover the original count by Hermite interpolation. Woodruff and Yekhanin~\cite{WY07} use values and first derivatives along a line to recover a target value in private information retrieval. Kopparty, Saraf, and Yekhanin~\cite{KSY14} use higher-order Hasse derivatives for local correction of multiplicity codes, extending the line-based recovery of Reed--Muller codes. In our algorithm, the matrix construction supplies low-degree replacement forms that let us compute the Taylor coefficients at the interpolation points by fast summation after fixing a few shared measurements. \subsubsection{Antecedents of the matrix construction}\label{subsec:related-spectral} Our counting algorithm evaluates sums of products of polynomials over Boolean assignments. The polynomials share variables, so these sums do not factor into independent smaller sums. We introduce linear substitutions, depending polynomially on an interpolation parameter, that make such a factorization possible after fixing a few integer linear measurements. An auxiliary square rational matrix $M_0$ underlies these substitutions: a bound on $\operatorname{rank}(I-M_0)$ limits the number of measurements, while restrictions on the nonzero entries of $M_0$ keep the substitution degrees small. Section~\ref{subsec:preview-auxiliary} explains this connection. Related interpolation methods have been used to obtain low-rank approximations to structured matrices. In~\cite[Section~3]{AW17}, a low-degree polynomial matches $(-1)^j$ on an interval of integer inner products $j$, using the interpolation lemma of~\cite[Lemma~3.1]{AW15}. This gives low-rank matrices agreeing with Walsh--Hadamard matrices in most entries, a result in the study of matrix rigidity~\cite{Val77}. Related interpolation gives rigidity bounds for Kronecker powers in~\cite[Theorem~6.1]{AGP23}. Dvir and Liu~\cite[Claim~2.20 and Lemmas~3.3--3.4]{DL20} use a spectral approach: sparse changes to a function invariant under permutations of its coordinates make many Fourier coefficients vanish, reducing the rank of its group-circulant matrix. Our construction also interpolates $(-1)^j$ on a short interval, now to obtain a polynomial in commuting permutation matrices. The same polynomial gives both the rank bound for $I-M_0$ and the restrictions on the nonzero entries of $M_0$. We prove these properties and their quantitative bounds directly in Section~\ref{sec:construction}. \subsubsection{Sparsification and parity tests}\label{subsec:related-reductions} We use the counting-preserving version~\cite[Appendix~A]{DHMTW} of the sparsification lemma~\cite{IPZ}, with quantitative bounds from~\cite[Section~6]{CIP} and \cite[Lemma~5.14 and equation~(5.4)]{CalabroThesis}. This partitions the satisfying assignments among sparse formulas on the same Boolean variables. Appendix~\ref{app:sparsify} records the disjoint branching argument and the bounds needed when its parameter varies with the input size. The initial parity tests are the constraints of a Tanner code \cite[Section~II]{Tanner81}, applied to the binary vector recording which clauses an assignment violates. We use the edge-based expander-code construction of~\cite[Sections~IV and~VI]{SS96}: each graph edge carries one bit, and each vertex requires its incident bits to belong to a fixed binary linear code. The local code's minimum distance, together with graph expansion, forces every nonzero vector satisfying all these constraints to have large support. This construction and distance argument are standard. Lemma~\ref{lem:sparse-checks} supplies the parameter choices needed here, including the bounds on the number and support size of the tests, and constructs the graph and local code by deterministic exhaustive searches. The graph is the bipartite double cover of a Cayley multigraph. The shifts defining that multigraph nearly balance every nonconstant parity on the base group: this is the small-bias condition~\cite{NN93,AR94}, stated explicitly in \eqref{eq:hash-walsh}. Fixing unused edge bits to zero gives a code on exactly $m$ coordinates. Additional parity tests exclude the remaining nonzero violation vectors. We choose these tests by the averaging principle underlying the method of conditional expectations~\cite{Raghavan88}, using exact counts to evaluate each candidate. Section~\ref{sec:hashes} gives the constructions and quantitative bounds needed here. Theorem~\ref{thm:main} invites a renewed search for algorithms for problems whose known hardness results relied on ETH or SETH. The examples in Section~\ref{subsec:related-consequences} suggest both immediate consequences and problems for which new algorithmic ideas are needed. \subsection{Notation}\label{subsec:notation} For an integer $s\ge0$, write $[s]=\{1,\ldots,s\}$, with $[0]=\varnothing$. For a condition $E$, the scalar $\mathds{1}_{\{E\}}$ equals one if $E$ holds and zero otherwise. We use natural logarithms, writing $\log_2$ when the base is two. For complexity bounds, $\poly(t_1,\ldots,t_s)$ denotes a bound of the form $(1+t_1+\cdots+t_s)^{O(1)}$, with absolute implicit constants. Subscripts, as in $\poly_{k,c}(t_1,\ldots,t_s)$, allow those constants to depend on the indicated fixed parameters. Integers are stored in signed binary notation, so an integer $z$ uses $O(\log(|z|+2))$ bits. Rational numbers are stored as an integer numerator and a positive integer denominator; stated bit-length bounds apply to each of them. Space is measured in bits. Arithmetic-operation counts are distinguished from bit-operation counts. For a finite set $S$, vectors in $\mathbb Q^S$ have coordinates indexed by $S$ and are column vectors unless indicated otherwise. For $U\subseteq S$, the indicator vector $\mathbf1_U\in\{0,1\}^S$ has entries $(\mathbf1_U)_v=\mathds{1}_{\{v\in U\}}$ for $v\in S$. We write $\vec{0}$ for the zero vector. For $v\in S$, the row $\delta_v\in\mathbb Q^{1\times S}$ selects coordinate $v$, so $\delta_vx=x_v$. A vector indexed by $U\subseteq S$ is extended to $S$ by putting zero in each coordinate of $S\setminus U$. We write $\vec{X}=(X_1,\ldots,X_n)$ for the vector of formal variables and use arrows for polynomial coefficient vectors such as $\vec{P}_{f,v}(T)$. For a coefficient row $\vec{p}=(p_i)_{i\in S}$ and a vector $z=(z_i)_{i\in S}$, we write their scalar pairing as $\langle\vec{p},z\rangle=\sum_{i\in S}p_i z_i$. In particular, $\langle\vec{P}_{f,v}(T),\vec{X}\rangle$ is a scalar linear form in the variables $X_i$. For a polynomial $P(\vec{X},z)$ in the variables $\vec{X}$ and a variable $z$, $[z^j]P$ denotes the coefficient of $z^j$, viewed as a polynomial in $\vec{X}$, and $\deg_{\vec{X}} P$ denotes total degree in $\vec{X}$. The degree of a row of polynomials is the largest degree of any entry. Unless otherwise specified, polynomial coefficients are rational and matrix kernels are taken over $\mathbb Q$. \section{Technique overview}\label{sec:technical-overview} We first count satisfying assignments of a $3$-CNF in which each variable occurs in at most three clauses. The product of its clause polynomials has degree at most $3n$, so we can use interpolation to recover the exact count from sums over small groups of variables. Section~\ref{subsec:preview-general-sat} then uses disjoint sparsification and variable copying to count the satisfying assignments of an arbitrary $k$-CNF in $(n+m)^{O_k(1)}2^{o(n)}$ time for every fixed $k\ge2$. Taking $k=3$ already refutes ETH. Section~\ref{subsec:preview-full-case} explains how counting on the original variables gives the exponent $O_k(\rho(n))$ of Proposition~\ref{prop:interpolation-bound}. \subsection{The bounded-occurrence setting}\label{subsec:preview-setting} Let $F$ have $n$ declared Boolean variables. Each clause contains at most three literals, and each variable appears in at most three clauses, counting positive and negative occurrences together. Our task is to count the satisfying assignments of $F$ exactly. We remove tautological clauses and repeated literals within a clause. An empty clause gives count zero immediately. These operations preserve the occurrence bound. For each remaining clause $e$, let $I_e\subseteq[n]$ be its variable set. For each variable that occurs in no clause, add a factor equal to one with scope $\{v\}$. Such a factor leaves the count unchanged and ensures that every variable has an assigned position in the construction. We call these constant-one terms \emph{dummy clauses}. Let $\mathcal F$ index all clauses, including the dummy clauses. Then \begin{equation}\label{eq:overview-incidences} |I_e|\le3,\qquad \#\{e\in\mathcal F:v\in I_e\}\le3,\qquad n\le M:=\sum_{e\in\mathcal F}|I_e|\le3n. \end{equation} All sums below still range over the original $n$ Boolean variables. \subsection{A direct polynomial for the count}\label{subsec:preview-encoding} Write $L_{e,v}(X_v)=X_v$ for a positive literal and $L_{e,v}(X_v)=1-X_v$ for a negative literal. The satisfaction polynomial of clause $e$ is \[ \Phi_e((X_v)_{v\in I_e}) =1-\prod_{v\in I_e}(1-L_{e,v}(X_v)). \] For example, $x_a\vee\neg x_b\vee x_c$ gives \[ \Phi_e(X_a,X_b,X_c)=1-(1-X_a)X_b(1-X_c). \] On Boolean inputs this polynomial is one when the clause is satisfied and zero otherwise. For a dummy clause $e$, put $\Phi_e=1$. Therefore \begin{equation}\label{eq:overview-direct-count} \#F=\sum_{x\in\{0,1\}^n}\prod_{e\in\mathcal F} \Phi_e((x_v)_{v\in I_e}). \end{equation} The product has total degree at most $M\le3n$. This linear degree bound is the useful consequence of the three-occurrence assumption. Equation~\eqref{eq:overview-direct-count} is an exact expression for the count, but evaluating its $2^n$ summands would be exhaustive search. To motivate the algorithm, suppose we were given a partition of the variables into $r$ groups $S_1,\ldots,S_r$ satisfying both of the following conditions: \begin{enumerate} \item Each group contains at most $2n/r$ variables. \item For every clause, all of its variables belong to a single group. \end{enumerate} This is a hypothetical, very restrictive assumption; we do not assume that the input formula admits such a partition. Under this assumption, we could count satisfying assignments in each group independently. Let $N_g$ be the number of assignments to the variables in $S_g$ that satisfy all clauses in that group. Any such assignment can be combined with any satisfying assignments in the other groups, because no clause connects different groups. Every global satisfying assignment arises in exactly one such way. Consequently, \[ \#F=\prod_{g=1}^r N_g. \] Computing each $N_g$ by exhaustive search within its group examines a total of at most \[ \sum_{g=1}^r 2^{|S_g|}\le r\,2^{2n/r} \] local assignments, with polynomial work per assignment. For large $r$, this is much faster than enumerating all $2^n$ global assignments. We will replace the clause inputs so that different groups interact only through a small collection of shared linear summaries. Once the values of those summaries are fixed, we can again sum over each group separately. \subsection{A polynomial family with easier evaluation points} \label{subsec:preview-deformation} We introduce a parameter $T$. At $T=0$, the replacements must restore the original clause inputs. At selected nonzero points $T=1,\ldots,Q$, they should let us separate the groups by fixing shared linear summaries. Here $Q$ is the number of selected points, and $R$ will bound the degree of the replacement coefficients. We choose both parameters later. Write $\vec{X}=(X_1,\ldots,X_n)$ for the vector of formal variables. For each occurrence $v\in I_e$, use the polynomial coefficient vector $\vec{P}_{e,v}(T)=(p_{e,v,1}(T),\ldots,p_{e,v,n}(T))$ to replace $X_v$ in clause $e$ by the scalar inner product \[ \langle \vec{P}_{e,v}(T),\vec{X}\rangle =\sum_{i=1}^n p_{e,v,i}(T)X_i. \] We call this expression the \emph{replacement linear form} for the occurrence of variable $v$ in clause $e$. It replaces the input $X_v$ in the clause polynomial $\Phi_e$. We require \[ \langle \vec{P}_{e,v}(0),\vec{X}\rangle=X_v, \qquad \deg \vec{P}_{e,v}\le R. \] Different clauses may use different replacement linear forms for the same variable. Define \begin{equation}\label{eq:simple-counting-polynomial} H(T)=\sum_{x\in\{0,1\}^n}\prod_{e\in\mathcal F} \Phi_e\bigl((\langle \vec{P}_{e,v}(T), x\rangle)_{v\in I_e}\bigr) \in\mathbb Q[T]. \end{equation} At zero every replacement restores the original variable, while the degree of each clause polynomial grows by at most a factor of $R$. Hence \begin{equation}\label{eq:overview-value-degree} H(0)=\#F,\qquad \deg H\le MR\le3nR. \end{equation} We will recover $H(0)$ from Taylor coefficients at $t=1,\ldots,Q$. The degree bound means that $O(1+nR/Q)$ coefficients per point suffice, as Section~\ref{subsec:preview-interpolation} explains. Our goal is therefore to make $R$ small relative to $Q$: many points with low-degree replacements require fewer coefficients at each point. At a nonzero $t$, the value $\langle\vec{P}_{e,v}(t),x\rangle$ of a replacement linear form need not lie in $\{0,1\}$, even when $x$ is Boolean. The transformed clause polynomials therefore need not act as satisfaction indicators. \subsection{Separating the sum by fixing measurements} \label{subsec:preview-separation} Fix $t\in[Q]$. We are given the coefficient vectors $\vec{P}_{e,v}(t)$, whose entries are now constants. We explain what structure lets us compute $H(t)$ quickly, and how to use it. Throughout this subsection, write $S_g=S_{t,g}$ and $C_g=C_{t,g}$. \begin{definition}[$(r,\tau,D)$-design] \label{def:overview-measurement-structure} For the given coefficient vectors $\vec{P}_{e,v}(t)$, an \emph{$(r,\tau,D)$-design at $t$} consists of groups $S_g$, clause assignments $\sigma_e(t)$, and measurement matrices $C_g$ satisfying the following four conditions: \begin{enumerate} \item \emph{Small groups.} Partition the variables into disjoint groups $[n]=S_1\sqcup\cdots\sqcup S_r$, with $|S_g|\le2n/r$. \item \emph{One assigned group per clause.} Assign each clause $e$ to one group $\sigma_e(t)\in[r]$. Condition~4 must hold with this same group for every replacement linear form of clause $e$. \item \emph{Few bounded measurements.} Each group $g$ has an integer matrix $C_g$ with columns indexed by $S_g$ and $c_g$ rows. Each row specifies one linear measurement of the variables in $S_g$. There are at most $2\tau n$ rows in total, and the sum of absolute values of the coefficients in each row is at most $D$. For an assignment $x$, write \[ x_g=x|_{S_g},\qquad y_g=C_gx_g,\qquad \vec{y}=(y_1,\ldots,y_r). \] \item \emph{Dependence on other groups only through measurements.} Suppose clause $e$ is assigned to group $g=\sigma_e(t)$. Each replacement linear form of this clause may depend freely on the variables in $S_g$. Its dependence on any other group $S_h$ must be a linear combination of that group's measurements $y_h$. Precisely, for every $v\in I_e$, there must be coefficient vectors $\vec{\lambda}_{e,v,h}\in\mathbb Q^{c_h}$, for $h\ne g$, such that, for every $x\in\mathbb Q^n$, \begin{equation}\label{eq:outline-separation} \langle\vec{P}_{e,v}(t),x\rangle =\langle\vec{P}_{e,v}(t)|_{S_g},x_g\rangle +\sum_{h\ne g}\langle\vec{\lambda}_{e,v,h},y_h\rangle. \end{equation} Equivalently, $\vec{P}_{e,v}(t)|_{S_h}$ lies in the row space of $C_h$ for every $h\ne g$. \end{enumerate} \end{definition} The matrices $C_h$ are shared by all clauses. A clause's assigned group need not contain its original variables. Once $\vec{y}$ is fixed, however, the entire transformed clause polynomial depends only on the variables in its assigned group. \smallskip\noindent \textbf{The algorithm.} Given an $(r,\tau,D)$-design at $t$, first find the coefficient vectors $\vec{\lambda}_{e,v,h}$ by solving the linear systems guaranteed by condition~4. For fixed $\vec{y}$, let $\mathcal X_{t,g}(y_g)$ be the assignments to the variables in $S_g$ whose measurements equal $y_g$: \[ \mathcal X_{t,g}(y_g) =\{u\in\{0,1\}^{S_g}:C_gu=y_g\}. \] For such an assignment $u$, compute the contribution of group $g$ as follows. For each clause $e$ assigned to $g$, first use \eqref{eq:outline-separation} to compute the values of its replacement linear forms from $u$ and the fixed measurements. Next evaluate the clause polynomial $\Phi_e$ on these values. Finally, multiply the values obtained from all clauses assigned to $g$. Denote this product by $A_{t,g}(u;\vec{y})$. No assignments to the other groups are needed for this calculation. Each measurement of a Boolean assignment is an integer in $[-D,D]$. Initialize $Z=0$ and perform the following steps: \begin{enumerate} \item Try every measurement tuple $\vec{y}\in\mathcal Y:=\prod_{g=1}^r\{-D,\ldots,D\}^{c_g}$. For each tuple, perform steps~2 and~3. \item For each group $g$, try every Boolean assignment $u$ to its variables. Keep it only if $C_gu=y_g$. Add the corresponding products $A_{t,g}(u;\vec{y})$ to obtain the group sum \[ B_{t,g}(\vec{y})= \sum_{u\in\mathcal X_{t,g}(y_g)}A_{t,g}(u;\vec{y}). \] If no assignment satisfies $C_gu=y_g$, set $B_{t,g}(\vec{y})=0$. \item Multiply the group sums and add the result $\prod_{g=1}^r B_{t,g}(\vec{y})$ to $Z$. \end{enumerate} After all measurement tuples have been processed, return $Z$. To see why this returns $H(t)$, fix $\vec{y}$ and choose one assignment from each set $\mathcal X_{t,g}(y_g)$. Since the groups contain disjoint sets of variables, these choices combine into one full assignment. Every full assignment with measurements $\vec{y}$ arises in exactly one such way. Its product of clause polynomials is the product of the group contributions $A_{t,g}$. Multiplying out the group sums and then summing over $\vec{y}$ therefore gives \begin{equation}\label{eq:outline-separated-sum} H(t)=\sum_{\vec{y}\in\mathcal Y}\prod_{g=1}^r \left(\sum_{u\in\mathcal X_{t,g}(y_g)} A_{t,g}(u;\vec{y})\right). \end{equation} Every Boolean assignment has exactly one measurement tuple, so this sum counts each assignment's contribution exactly once. There are at most $(2D+1)^{2\tau n}$ measurement tuples. For each tuple, the algorithm tries at most $\sum_g2^{|S_g|}\le r2^{2n/r}$ assignments to individual groups. Consequently, the running time is \[ (2D+1)^{2\tau n}2^{2n/r} \] up to polynomial factors. The first factor bounds the number of measurement tuples; the second bounds the number of assignments within one group. The algorithm scans one group at a time and keeps only the current measurement tuple, the current assignment, and running sums and products; see Lemma~\ref{lem:measurement-separation}. For the parameter choices in Section~\ref{subsec:preview-parameters}, we can construct replacement forms of degree at most $R$ that restore the original variables at zero and admit an $(r,\tau,D)$-design at every $t\in[Q]$. Section~\ref{subsec:preview-auxiliary} gives the construction. We first explain how these properties let us recover the count efficiently. \subsection{Recovering the count from Taylor coefficients} \label{subsec:preview-interpolation} Our goal is to recover $H(0)=\#F$ from information at the points $t=1,\ldots,Q$. Since $\deg H\le3nR$, the $Q$ values $H(t)$ alone may not determine $H$. We instead compute several Taylor coefficients at each point. Choose \[ q=\left\lfloor\frac{3nR}{Q}\right\rfloor,\qquad J=q+1. \] Suppose we know the coefficients of $z^0,\ldots,z^q$ in $H(t+z)$ for every $t\in[Q]$. These data determine $H$ uniquely: if two polynomials of degree at most $3nR$ have the same data, their difference is divisible by $(T-t)^J$ for every $t\in[Q]$, hence by $\prod_{t=1}^Q(T-t)^J$. This product has degree $QJ>3nR$, so the difference must be zero. Each Taylor coefficient gives a linear equation in the coefficients of $H$. Solving this rational linear system recovers $H$, and its constant coefficient is the desired count $H(0)$. It remains to compute these Taylor coefficients. Fix $t\in[Q]$; we want $H(t+z)$ through degree $q$ in $z$. The design controls the replacement forms at $t$, but need not control their changes from $t$ to $t+z$. We first give those changes a separate input, so that fixing this input preserves the separation of groups. \smallskip\noindent \textbf{Keeping the shifted inputs separate.} Write \[ \Delta\vec P_{e,v}(z)=\vec P_{e,v}(t+z)-\vec P_{e,v}(t). \] Keep $x$ as the Boolean assignment being summed over, and introduce a separate formal vector $\vec X$ for the changes. Define \begin{equation}\label{eq:outline-taylor-product} \mathcal G_x(\vec X,z)= \prod_{e\in\mathcal F}\Phi_e\bigl( (\langle\vec P_{e,v}(t),x\rangle+ \langle\Delta\vec P_{e,v}(z),\vec X\rangle)_{v\in I_e}\bigr). \end{equation} Here $x$ indexes the polynomial, while $\vec X$ and $z$ are its formal variables. Setting $\vec X=x$ restores each shifted input $\langle\vec P_{e,v}(t+z),x\rangle$, so \[ H(t+z)=\sum_{x\in\{0,1\}^n}\mathcal G_x(x,z). \] On the other hand, fixing $\vec X=\mathbf1_U$ for some $U\subseteq[n]$ makes every correction $\langle\Delta\vec P_{e,v}(z),\mathbf1_U\rangle$ independent of $x$. All dependence on $x$ then remains through $\langle\vec P_{e,v}(t),x\rangle$, where the design applies. Our task is therefore to recover the sum with $\vec X=x$ from sums with $\vec X$ fixed. The degree bound makes this possible with few fixed substitutions. Every entry of $\Delta\vec P_{e,v}(z)$ is divisible by $z$, so each occurrence of an $X_i$ in an expanded term contributes at least one factor of $z$. Thus \[ \deg_{\vec X}([z^j]\mathcal G_x(\vec X,z))\le j. \] Thus, after discarding powers of $z$ above $q$, every monomial involves at most $q$ distinct variables from $\vec X$. \smallskip\noindent \textbf{Recovering the shifted sum by inclusion--exclusion.} Work modulo $z^J$, so that only the coefficients through $z^q$ are retained. Replace every positive power of $X_i$ in $\mathcal G_x$ by $X_i$. This preserves its values on Boolean inputs. The degree bound above gives, for Boolean $\vec X$, \[ \mathcal G_x(\vec X,z)\equiv \sum_{\substack{E\subseteq[n]\\|E|\le q}} a_E(x,z)\prod_{i\in E}X_i\pmod{z^J}, \] where $a_E(x,z)$ is the coefficient of the indicated monomial after this replacement. Evaluating at $\mathbf1_U$, the vector with ones precisely in $U$, sums the coefficients indexed by subsets of $U$. Inclusion--exclusion extracts each one: \[ a_E(x,z)\equiv \sum_{U\subseteq E}(-1)^{|E|-|U|} \mathcal G_x(\mathbf1_U,z)\pmod{z^J}. \] When we set $\vec X=x$, the monomial $\prod_{i\in E}x_i$ equals one exactly when all the bits in $E$ are one. Its contribution to the sum over $x$ is therefore $\sum_{x:\,x_i=1\ (i\in E)}a_E(x,z)$, with $x$ Boolean. Substituting the coefficient formula above reduces this to sums with the formal input fixed. \smallskip\noindent \textbf{Computing the restricted sums.} For $U\subseteq E\subseteq[n]$ with $|E|\le q$, define \begin{equation}\label{eq:outline-restricted-taylor-sum} \mathcal Z_{t,E,U}(z)= \sum_{\substack{x\in\{0,1\}^n\\x_i=1\ (i\in E)}} \mathcal G_x(\mathbf1_U,z) \quad\text{in }\mathbb Q[z]/(z^J). \end{equation} Here $U$ fixes the formal input $\vec X=\mathbf1_U$, while $E$ fixes bits of the summation variable $x$ to one. Summing the monomial contributions gives \begin{equation}\label{eq:outline-taylor-recovery} H(t+z)\equiv \sum_{\substack{E\subseteq[n]\\|E|\le q}} \sum_{U\subseteq E}(-1)^{|E|-|U|} \mathcal Z_{t,E,U}(z)\pmod{z^J}. \end{equation} This recovers all $J=q+1$ Taylor coefficients together. Lemma~\ref{lem:boolean-differences} states the general identity used here. Each sum $\mathcal Z_{t,E,U}$ can be evaluated by the algorithm of Section~\ref{subsec:preview-separation}. With $\vec X=\mathbf1_U$ fixed, each correction $\langle\Delta\vec P_{e,v}(z),\mathbf1_U\rangle$ is independent of $x$. All dependence on $x$ comes through the forms $\langle\vec P_{e,v}(t),x\rangle$, so fixing $\vec y$ still separates the clause polynomials. The restrictions $x_i=1$ are local to each group. The separation identity uses only addition, multiplication, and distributivity, so it also applies to these truncated polynomial values. Each clause is evaluated after substituting $\vec X=\mathbf1_U$, using only univariate polynomials in $z$ of degree less than $J$ and discarding higher powers after each multiplication. The multivariate expansion and its coefficients $a_E(x,z)$ are used only to justify the identity; the algorithm never constructs them. Repeating this calculation at $t=1,\ldots,Q$ provides all the Taylor coefficients needed for the interpolation above, and therefore recovers $H(0)=\#F$. \subsection{The three costs and the running time} \label{subsec:preview-parameters} Jumping ahead, Section~\ref{subsec:preview-auxiliary} will construct replacement forms that restore the original variables at zero, have degree at most $R$, and admit an $(r,\tau,D)$-design at every $t\in[Q]$. For sufficiently large $n$, the construction takes polynomial time and achieves the following parameter bounds: \begin{equation}\label{eq:overview-parameter-bounds} \begin{aligned} r&=\Theta\!\left(\frac{\sqrt{\log n}}{(\log\log n)^2}\right), &Q&=\Theta\!\left(\frac{\log n}{\log\log n}\right),\\ R&=\Theta(\sqrt{\log n}), &\tau&=\Theta\!\left(\frac1{r\log n}\right),\qquad D=r^{2Q}\le(2n)^{1/128}. \end{aligned} \end{equation} We first show how these bounds give a fast counting algorithm; the next subsection will justify that they can all be achieved simultaneously. Recall that $q=J-1=\lfloor3nR/Q\rfloor$. For each evaluation point $t$, Section~\ref{subsec:preview-interpolation} computes one restricted sum for each pair $U\subseteq E$ with $|E|\le q$. There are $\binom nj$ choices of an $E$ of size $j$, and then $2^j$ choices of $U$. Each restricted sum enumerates measurement tuples and assignments within individual groups. Thus the three costs multiply to give, up to polynomial factors, \begin{equation}\label{eq:overview-three-costs} \underbrace{\sum_{j=0}^{\min(q,n)}2^j\binom nj}_{\text{Taylor data}} \ \cdot\ \underbrace{(2D+1)^{2\tau n}}_{\text{measurements}} \ \cdot\ \underbrace{2^{2n/r}}_{\text{one group}}. \end{equation} To bound the first cost, note that $1\le q\le n/2$ for sufficiently large $n$, since $R/Q\to0$. Using $\binom nj\le(en/j)^j$ and the fact that $(2en/j)^j$ increases for $1\le j\le n$, we obtain \[ \sum_{j=0}^q2^j\binom nj \le(q+1)\left(\frac{2en}{q}\right)^q. \] Since $q=\Theta(nR/Q)$, the logarithm of this cost is $O(n(R/Q)\log(2Q/R))$. Taking logarithms of all three costs in \eqref{eq:overview-three-costs} therefore gives \[ O\!\left(n\left[ \frac RQ\log\frac{2Q}{R} +\tau\log(2D+1)+\frac1r\right]\right). \] Each term is small under \eqref{eq:overview-parameter-bounds}: \[ \begin{aligned} \frac RQ\log\frac{2Q}{R} &=O\!\left(\frac{\log\log n}{\sqrt{\log n}} \cdot\log\log n\right),\\ \tau\log(2D+1)&=O\!\left(\frac1{r\log n}\cdot\log n\right) =O(1/r),\\ \frac1r&=O\!\left(\frac{(\log\log n)^2}{\sqrt{\log n}}\right). \end{aligned} \] Thus the bounded-occurrence instance can be counted in \begin{equation}\label{eq:overview-bounded-time} n^{O(1)}2^{O(n(\log\log n)^2/\sqrt{\log n})} \end{equation} bit operations and polynomial space. The finitely many smaller inputs are handled by exhaustive search. The number of points $Q$, the number of groups $r$, and the truncation order $J=O(1+nR/Q)$ are polynomial in $n$. Hence the loops over points and groups, arithmetic on polynomials of degree less than $J$, and the final interpolation add only polynomially many operations per iteration of the three enumerations above. For the bit-complexity and space bounds, see Appendix~\ref{subsec:overview-arithmetic}. \subsection{Constructing the low-degree replacement linear forms} \label{subsec:preview-auxiliary} Consider one occurrence of $X_v$ in a clause. At $T=0$ its replacement must equal $X_v$. At each $t=1,\ldots,Q$, the clause must be able to evaluate that same replacement using only its assigned group and a few shared measurements. Choosing a different linear form at each point and interpolating would generally cost degree $Q$. To keep Taylor recovery cheap, we need degree $R$ much smaller than $Q$. Suppose a term in the replacement uses a variable outside the clause's assigned group only at $t=2$. Multiplying the term by $1-T/2$ leaves it unchanged at zero and removes it at $t=2$. At every other evaluation point the clause can read the variable from its own group. The same trick works for several such points: one factor per point, at a cost of one degree each. The challenge is therefore to write each input as a sum in which the shared measurements determine one part, and each remaining term uses a variable outside the assigned group at only a few points. We first construct such a decomposition on auxiliary coordinates that record the group choices, then substitute the variables of the formula. \medskip\noindent \textbf{Step 1: Set up the auxiliary coordinates.}\par\nobreak \smallskip\noindent At each evaluation point, an occurrence $(e,v)$ has two group choices: the group containing variable $v$, and the group assigned to clause $e$. Across the $Q$ points, these choices form a sequence of $Q$ pairs. We therefore use the coordinate set \[ \mathcal B=([r]\times[r])^Q,\qquad D=|\mathcal B|=r^{2Q}. \] Write an index as \[ u=\bigl((a_u(1),d_u(1)),\ldots,(a_u(Q),d_u(Q))\bigr). \] We will construct one replacement row for every such index, so it will be available whatever group choices we later make for the formula. Let $\vec\zeta=(\zeta_w)_{w\in\mathcal B}$ be formal placeholders for the original variables that we will insert in Step~4. At point $t$, coordinate $\zeta_w$ belongs to group $a_w(t)$, whereas the replacement for $\zeta_u$ is assigned to group $d_u(t)$. Thus the coordinates that this replacement may use freely are \[ \mathcal S_{t,d_u(t)},\qquad \mathcal S_{t,g}:=\{w\in\mathcal B:a_w(t)=g\}. \] In particular, $\zeta_w$ belongs to the assigned group exactly when $a_w(t)=d_u(t)$. The sets $\mathcal S_{t,g}$ partition $\mathcal B$, with $D/r$ coordinates in each group. Our auxiliary goal is to construct coefficient rows $\vec P_u(T)\in\mathbb Q[T]^D$ and one matrix \[ C\in\{0,1,-1\}^{c\times D},\qquad c\le\frac{D\tau}{3r}, \] such that \[ \langle\vec P_u(0),\vec\zeta\rangle=\zeta_u, \qquad \deg\vec P_u\le R-1, \] and, at every $t\in[Q]$, the replacement linear form $\langle\vec P_u(t),\vec\zeta\rangle$ is a linear combination of the available data \begin{equation}\label{eq:overview-auxiliary-requirement} \vec\zeta|_{\mathcal S_{t,d_u(t)}}\quad\text{and}\quad C\vec\zeta. \end{equation} The same measurements $C\vec\zeta$ serve every row and every evaluation point. This is the auxiliary counterpart of the dependence condition in the design from Section~\ref{subsec:preview-separation}. \medskip\noindent \textbf{Step 2: Construct the constant matrix.}\par\nobreak \smallskip\noindent We start from the identity \[ \zeta_u=((I_D-M_0)\vec\zeta)_u+ \sum_{w\in\mathcal B}M_0[u,w]\zeta_w. \] We want the first term to be determined by $C\vec\zeta$. In the sum, each nonzero coefficient should connect incompatible groups at only a few points, so that a low-degree polynomial can remove those dependencies. Define these points by \[ E_{u,w}=\{t\in[Q]:a_w(t)\ne d_u(t)\}. \] The two requirements on $M_0\in\mathbb Q^{D\times D}$ are \begin{equation}\label{eq:outline-matrix-conditions} \begin{gathered} M_0\vec\xi=\vec\xi\quad\text{for every }\vec\xi\in\ker C,\\ M_0[u,w]\ne0\quad\Longrightarrow\quad |E_{u,w}|\le R-1. \end{gathered} \end{equation} The first says that $I_D-M_0$ vanishes on $\ker C$. Equivalently, each of its rows lies in the row space of $C$, so $(I_D-M_0)\vec\zeta$ is a linear function of the measurements $C\vec\zeta$. The second will bound the degrees of the polynomials used in Step~3. \smallskip\noindent \emph{Restricting the support by keeping $f$ low-degree.} Let $\Pi_s$ be the permutation matrix that swaps the two entries of pair $s$ in every index, leaving all other pairs unchanged. These matrices commute and satisfy $\Pi_s^2=I_D$. Put \[ V_0=\prod_{s=1}^Q\Pi_s,\qquad W_0=\frac12\sum_{s=1}^Q(I_D-\Pi_s),\qquad M_0=V_0f(W_0), \] where we will choose a polynomial $f$ of degree at most $R-1$. The complete swap $V_0$ already respects every group: its nonzero entry in row $u$ is at the column $w$ satisfying \[ (a_w(s),d_w(s))=(d_u(s),a_u(s))\quad\text{for every }s. \] In particular, $E_{u,w}$ is empty. Multiplying by $f(W_0)$ can undo swaps, but the degree of $f$ limits how many. Expanding $f(W_0)$ gives products of at most $R-1$ swaps. Repeated swaps cancel because $\Pi_s^2=I_D$. Multiplying by $V_0$ therefore gives \begin{equation}\label{eq:overview-partial-swaps} M_0=\sum_{\substack{S\subseteq[Q]\\|S|\le R-1}} \gamma_S\prod_{s\notin S}\Pi_s \qquad\text{for some }\gamma_S\in\mathbb Q. \end{equation} The permutation in the summand indexed by $S$ swaps every pair outside $S$. Its nonzero entries therefore satisfy $a_w(s)=d_u(s)$ for every $s\notin S$, so $E_{u,w}\subseteq S$. Every summand is zero whenever $|E_{u,w}|>R-1$, and hence so is their sum. This proves the second condition in \eqref{eq:outline-matrix-conditions} for any polynomial $f$ of degree at most $R-1$. \smallskip\noindent \emph{Choosing $f$ to fix most basis directions.} We now choose $f$ so that $M_0$ fixes most basis directions. First consider one position, with coordinates indexed by $[r]\times[r]$. Let $\vec e_{ab}$ be the vector that is one at $(a,b)$ and zero elsewhere. Swapping the pair has the orthogonal eigenbasis \[ \begin{array}{ll} \vec e_{aa}\quad(a\in[r]),\quad \vec e_{ab}+\vec e_{ba}\quad(an$. A short test can easily miss a single violated clause, but all assignments that violate only that clause give identical answers. Thus there are only $m_G$ singleton patterns to catch. Use $8n$ independent tests. For each, draw $L=2B\lceil\log_2(2m_G)\rceil$ clauses uniformly with replacement. For each draw, independently add its violation bit to the parity sum with probability $1/2$; two included copies cancel. Since $m_G\le Bn$, each clause is drawn at least logarithmically often in expectation overall. For a fixed set of $w\ge1$ violated clauses, let $u=Lw/m_G$ be the expected number of hits per test. If the sample hits the set, the coin on the first hit makes the parity odd with probability $1/2$, even with all other coins fixed. Thus the rejection probability is \[ p_w=\tfrac12\bigl(1-(1-w/m_G)^L\bigr)\ge\tfrac12(1-e^{-u}). \] We count \emph{sets} for few violations and \emph{assignments} for many: \begin{itemize} \item If $u\le1$, then $p_w\ge u/4$. There are at most $m_G^w$ sets of size $w$, so the chance that at least one escapes all tests is at most $m_G^w e^{-8np_w}\le m_G^w e^{-2nLw/m_G}\le16^{-w}$. Summing over $w\ge1$ gives failure probability at most $1/15$. \item If $u>1$, then $p_w>1/4$. A union bound over the $2^n$ assignments bounds the chance that any assignment in this case escapes by $2^n(3/4)^{8n}<1/4$. \end{itemize} Thus with probability greater than $2/3$, the common zeros are exactly the satisfying assignments of $G$. Each $v_e$ is a product of at most $k$ factors of the form $x_j$ or $1+x_j$, so each test has degree at most $k$ and at most $2^kL$ monomials, polylogarithmic in $n$. Section~\ref{sec:hashes} constructs short tests with the same solution set deterministically. We first use parity checks from an expander code to ensure that any nonsatisfying assignment still passing must violate many clauses. A random short test then catches each such assignment with probability at least $1/4$. For each candidate test, we count the assignments that pass both that test and all tests chosen so far. We append a candidate that minimizes this count: every satisfying assignment passes every candidate, so this eliminates at least a quarter of the remaining nonsatisfying assignments. \medskip\noindent \textbf{Counting the common zeros.} Recall from Section~\ref{subsec:preview-encoding} that $\Phi_e(x)$ is $1$ if $x$ satisfies clause $e$ and $0$ otherwise. What should replace this factor when we test a whole set $S_i$ of clauses at once? First count how many clauses in \emph{this test} are violated, using ordinary integer addition: \[ L_i(x)=\sum_{e\in S_i}v_e(x)=\sum_{e\in S_i}\bigl(1-\Phi_e(x)\bigr). \] The test passes exactly when $L_i(x)$ is even. Choose $\ell=n+1$, so that a count of at most $2^n$ is determined by its residue modulo $2^\ell$. The complemented Beigel--Tarui polynomial $p_\ell$ (Lemma~\ref{lem:rational-idempotent}) is $1$ modulo $2^\ell$ on even integers and $0$ on odd integers. For example, violating two clauses in $S_i$ still passes the test: $p_\ell(2)\equiv1\pmod{2^\ell}$. Writing $m_{\mathrm{test}}$ for the number of tests, our counting expression becomes \[ \underbrace{\sum_x\prod_{e\in G}\Phi_e(x)}_{\text{one factor per clause}} \qquad\longrightarrow\qquad \underbrace{\sum_x\prod_{i=1}^{m_{\mathrm{test}}} p_\ell(L_i(x))}_{\text{one factor per test}}. \] The left side is $\#G$. The least nonnegative residue of the right side modulo $2^\ell$ is the number of assignments passing every test. When the tests catch every nonsatisfying assignment, this is exactly $\#G$. The same encoding works for any sparse polynomial equation $P_i(x)=0$ over $\mathbb F_2$: take $L_i(x)$ to be the integer sum of its listed monomials. Again the equation holds exactly when this sum is even. To reuse the Taylor step, we need a product of input degree $O(n)$. Multiplying the $m_{\mathrm{test}}$ test factors directly gives only the bound $O(km_{\mathrm{test}}\ell)$, potentially quadratic in $n$. The key is to truncate the product \emph{across all tests together}. Section~\ref{subsec:rational-lift} writes $p_\ell(y)$ as a sum of terms $e_j(y)h(y)^j$, where $e_j$ has degree at most one and $h(y)=y(y-1)$ is even at every integer. A product term containing $\ell$ or more copies of $h$ is therefore zero modulo $2^\ell$ on Boolean assignments, even if those copies come from different tests. We keep just the terms with fewer than $\ell$ copies in total, tracking that number as we multiply. Each retained term has at most $m_{\mathrm{test}}$ linear factors and $\ell-1$ quadratic factors in the $L_i$'s. Since $\deg L_i\le k$, its input degree is at most $k(m_{\mathrm{test}}+2(\ell-1))=O(n)$. For the replacement forms, what matters is which variables each factor reads. Where Section~\ref{subsec:preview-deformation} used one form for each variable in a clause, we now use one for each variable in a test, reusing it throughout that test. Each sparse equation reads only polylogarithmically many variables. Branching on the values of the $O(n/\sqrt{\log n})$ most frequent variables leaves each remaining variable in only polylogarithmically many tests, as required by Section~\ref{sec:construction}. On each branch, fixing the shared measurements again lets us sum one group at a time. Because the truncated product has input degree $O(n)$, the degree-$R$ replacements give $\deg_T H=O(nR)$: the same $O(1+nR/Q)$ Taylor coefficients per point recover the contributions at $T=0$ with $0,1,\ldots,\ell-1$ copies of $h$. Their sum modulo $2^\ell$, taken as the least nonnegative residue, is the exact branch count. Adding the branch counts gives the number of common zeros. \begin{theorem}[Counting common zeros of sparse polynomials] \label{thm:overview-sparse-polynomials} Fix integers $k\ge2$ and $c\ge1$. Let $P_1,\ldots,P_{m_{\mathrm{test}}}$ be polynomials over $\mathbb F_2$ in $n\ge20$ Boolean variables, with $m_{\mathrm{test}}\le cn$. Each $P_i$ is given as a list of at most $(\log n)^c$ monomials of degree at most $k$. The exact number of common zeros in $\{0,1\}^n$ can be computed deterministically in $2^{O_{k,c}(n(\log\log n)^2/\sqrt{\log n})}$ bit operations and $n^{O_{k,c}(1)}$ space. \end{theorem} Sections~\ref{sec:counting} and~\ref{sec:construction} supply the counting routine and the replacement forms; Section~\ref{sec:setup} uses them to prove the theorem directly for polynomial equations. For the final system constructed for $G$, the number of common zeros is $\#G$. Section~\ref{sec:hashes} uses only $2^{(\log n)^{O_k(1)}}$ calls to the counter per leaf, which preserves the running-time exponent in Theorem~\ref{thm:overview-sparse-polynomials}. Finally, choosing $\sigma$ of order $(\log\log n)^2/\sqrt{\log n}$ in Section~\ref{subsec:general-reduction} keeps $B$ polylogarithmic and the number of leaves within $2^{O_k(n(\log\log n)^2/\sqrt{\log n})}$. Their satisfying assignments are disjoint, so adding their counts gives the bound in Proposition~\ref{prop:interpolation-bound}. \section{A fast counting algorithm via shared linear summaries}\label{sec:counting} Sections~\ref{sec:counting}--\ref{sec:setup} prove Theorem~\ref{thm:overview-sparse-polynomials}. We begin with the sum from Section~\ref{subsec:preview-encoding}: for each Boolean assignment, multiply the factors, then add the products over all assignments. Here the factors can be any rational polynomials. We show how to compute the sum when the replacement forms and measurements are given. Section~\ref{sec:construction} constructs them using only the variables read by each factor. Section~\ref{sec:setup} supplies one factor per sparse polynomial equation. \subsection{Polynomial factors and the value to recover} \label{subsec:product-interface} Let $\mathcal F$ index the factors, and let $I_f\subseteq[n]$ be the variables read by $\Phi_f$. With rational coefficients our target is \begin{equation}\label{eq:general-product-sum} Z=\sum_{x\in\{0,1\}^n}\prod_{f\in\mathcal F}\Phi_f((x_v)_{v\in I_f}). \end{equation} For clause satisfaction indicators, $Z$ is the number of satisfying assignments. The proof also works with coefficients in any commutative $\mathbb Q$-algebra $\mathcal A$: sums and products then take place in $\mathcal A$, and interpolation uses only rational scalars. Readers may take $\mathcal A=\mathbb Q$ throughout this section. Different factors may use different replacements for the same variable. Give each incidence $(f,v)$ its own indeterminate $Y_{f,v}$ and suppose \begin{equation}\label{eq:general-product-degree} \deg_{\{Y_{f,v}\}}\! \left(\prod_{f\in\mathcal F}\Phi_f((Y_{f,v})_{v\in I_f})\right)\le d . \end{equation} This is the degree of the whole product computed over $\mathcal A$. Choose replacement rows $\vec P_{f,v}(T)$ of degree at most $R$ with $\vec P_{f,v}(0)=\delta_v$, and form \begin{equation}\label{eq:general-count-polynomial} H(T)=\sum_{x\in\{0,1\}^n}\prod_{f\in\mathcal F} \Phi_f\bigl((\langle\vec P_{f,v}(T),x\rangle)_{v\in I_f}\bigr) \in\mathcal A[T]. \end{equation} The replacements restore the inputs at zero and multiply the degree by at most $R$. Thus $H(0)=Z$ and $\deg_T H\le d_H:=dR$. Our application will have $d=O(n)$, as in the bounded-occurrence example. \subsection{The required rows, partitions, and measurements} \label{subsec:layout-interface} We use the same design as in Section~\ref{subsec:preview-separation}, with a group assignment for each factor in place of each clause. The final condition below records the coefficient bound needed for exact arithmetic. Here $\widetilde\xi$ denotes extension by zero from a group to all $n$ coordinates. \begin{definition}\label{def:layout} For the factor scopes $(I_f)_{f\in\mathcal F}$, let $r\ge2$, $D\ge1$, and $1\le Rd_H$, it suffices to compute \begin{equation}\label{eq:taylor-truncation} \mathcal H_t(z)=\sum_{j=0}^{J-1}([z^j]H(t+z))z^j \qquad(t\in[Q]). \end{equation} Hermite interpolation recovers $H$, and hence $Z=H(0)$, from these $QJ$ coefficients in $\mathcal A$. Indeed, the rational Hermite matrix for polynomials of degree less than $QJ$ is invertible over $\mathbb Q$. Its inverse acts on elements of $\mathcal A$ by rational linear combinations. Fix $t$. The replacement forms at $t+z$ need not respect the design at $t$. Write \[ \Delta\vec P_{f,v}(z)=\vec P_{f,v}(t+z)-\vec P_{f,v}(t). \] Every entry is divisible by $z$. For fixed $x\in\mathbb Q^n$, introduce independent indeterminates $\vec X$ and replace each input by \begin{equation}\label{eq:jet-substitution} \langle\vec P_{f,v}(t),x\rangle +\langle\Delta\vec P_{f,v}(z),\vec X\rangle. \end{equation} Let \begin{equation}\label{eq:auxiliary-polynomial} \mathcal G_x(\vec X,z)=\prod_{f\in\mathcal F} \Phi_f\!\left( (\langle\vec P_{f,v}(t),x\rangle+ \langle\Delta\vec P_{f,v}(z),\vec X\rangle)_{v\in I_f}\right). \end{equation} Setting $\vec X=x$ gives $\sum_x\mathcal G_x(x,z)=H(t+z)$. Holding $\vec X$ fixed instead makes every correction independent of $x$, so the design at $t$ still separates the factors. Moreover, each occurrence of $\vec X$ carries a factor of $z$, giving \begin{equation}\label{eq:degree-cost} \deg_{\vec X}([z^j]\mathcal G_x(\vec X,z))\le j. \end{equation} The next identity recovers the substitution $\vec X=x$ from fixed Boolean substitutions and restrictions on the assignments being summed. \begin{lemma}\label{lem:boolean-differences} Let $q\ge0$ be an integer and let $\mathcal A$ be a commutative ring with identity. For each $x\in\{0,1\}^n$, let $p_x(X_1,\ldots,X_n)$ be a polynomial over $\mathcal A$ of degree at most $q$. Then \begin{align} \sum_{x\in\{0,1\}^n}p_x(x) &=\sum_{\substack{E\subseteq[n]\\|E|\le q}} \sum_{U\subseteq E}(-1)^{|E|-|U|} \sum_{\substack{x\in\{0,1\}^n\\x_i=1\ (i\in E)}} p_x(\mathbf1_U). \label{eq:boolean-differences} \end{align} Here $\mathbf1_U$ is the indicator vector of $U$. \end{lemma} \begin{proof} For fixed $x$, we replace every positive power of $X_i$ by $X_i$. This leaves Boolean evaluations unchanged and does not increase the degree. By M\"obius inversion on subsets, the resulting multilinear polynomial has the expansion \[ \widetilde p_x(\vec{X})=\sum_{E\subseteq[n]}c_{x,E}\prod_{i\in E}X_i, \qquad c_{x,E}=\sum_{U\subseteq E}(-1)^{|E|-|U|}p_x(\mathbf1_U). \] The degree bound gives $c_{x,E}=0$ whenever $|E|>q$. Setting $\vec{X}=x$ and summing over $x$ now gives the claimed identity: the monomial $\prod_{i\in E}x_i$ selects exactly the assignments with $x_i=1$ for every $i\in E$. \end{proof} Apply Lemma~\ref{lem:boolean-differences} to $[z^j]\mathcal G_x$ over $\mathcal A$ for each $j0$, the condition \begin{equation}\label{eq:incidence-tail} \Pr\!\left[\operatorname{Bin}\!\left(Q,\frac{r-1}{2r}\right) \notin\mathcal I\right]\le\epsilon \end{equation} thus gives $c_{\mathcal B}\le\epsilon D$. After placing the factor inputs, we will use $\epsilon=\tau/(rb)$. We next prove the other requirement on $M_0$. \begin{lemma}\label{lem:swaps-support} For all $u,y\in\mathcal B$, if $M_0[u,y]\ne0$, then \[ \bigl|\{s\in[Q]:a_y(s)\ne d_u(s)\}\bigr|\le R-1. \] \end{lemma} \begin{proof} Expand $f_{\mathcal I}(W_0)$ in the commuting matrices $\Pi_s$. Since $\deg f_{\mathcal I}\le R-1$ and $\Pi_s^2=I$, each resulting monomial is a scalar multiple of $\prod_{s\in J}\Pi_s$ for some $J\subseteq[Q]$ with $|J|\le R-1$. Multiplication by $V_0$ gives \[ V_0\prod_{s\in J}\Pi_s=\prod_{s\notin J}\Pi_s. \] A nonzero $(u,y)$ entry of this permutation matrix requires $a_y(s)=d_u(s)$ for every $s\notin J$. There are at most $R-1$ other positions. If more than $R-1$ positions disagree, every summand has zero $(u,y)$ entry, so $M_0[u,y]=0$ as well. \end{proof} \subsection{The polynomial rows} We now use $M_0$ to construct the auxiliary rows $\vec{P}_u(T)$ sought in Section~\ref{subsec:incidence-layout}. Lemma~\ref{lem:swaps-matrix} makes $(I-M_0)\zeta$ a function of $C^{\mathcal B}\zeta$. Lemma~\ref{lem:swaps-support} bounds the number of points at which a nonzero term $M_0[u,y]\zeta_y$ uses a coordinate outside $S^{\mathcal B}_{t,d_u(t)}$. We now multiply that term by a polynomial vanishing at those points and equal to one at zero. For $M_0[u,y]\ne0$, define \begin{equation}\label{eq:coefficient-correction} E_{u,y}=\{s\in[Q]:a_y(s)\ne d_u(s)\},\qquad \varphi_{u,y}(T)=\prod_{s\in E_{u,y}}\left(1-\frac Ts\right). \end{equation} The empty product is one. Then $\deg\varphi_{u,y}\le R-1$, $\varphi_{u,y}(0)=1$, and $\varphi_{u,y}(t)=0$ whenever $a_y(t)\ne d_u(t)$. Define \begin{equation}\label{eq:swaps-row} \vec{P}_u(T)=\delta_u(I-M_0)+ \sum_{\substack{y\in\mathcal B\\M_0[u,y]\ne0}} M_0[u,y]\varphi_{u,y}(T)\delta_y. \end{equation} This row acts as a linear form in $\zeta$, with coefficients that are polynomials in the single parameter $T$. \begin{lemma}\label{lem:swaps-forms} The rows in \eqref{eq:swaps-row} have degree at most $R-1$ and satisfy $\vec{P}_u(0)=\delta_u$ for every $u\in\mathcal B$. For $t\in[Q]$ and $g\in[r]$, let $C^{\mathcal B}_{t,g}$ be the restriction of $C^{\mathcal B}$ to the columns $S^{\mathcal B}_{t,g}$. For every $u,t,g$ with $g\ne d_u(t)$ and every $\xi\in\mathbb Q^{S^{\mathcal B}_{t,g}}$, its extension $\widetilde\xi$ by zero to $\mathcal B$ satisfies \[ C^{\mathcal B}_{t,g}\xi=\vec{0} \quad\Longrightarrow\quad \langle \vec{P}_u(t), \widetilde\xi\rangle=0. \] More generally, $\langle \vec{P}_u(t), \zeta\rangle$ is determined by $\zeta|_{S^{\mathcal B}_{t,d_u(t)}}$ and $C^{\mathcal B}\zeta$. \end{lemma} \begin{proof} The degree bound follows from that of $\varphi_{u,y}$. At zero, \[ \vec{P}_u(0)=\delta_u(I-M_0)+\delta_uM_0=\delta_u. \] Applying \eqref{eq:swaps-row} to $\zeta$ gives \begin{equation}\label{eq:swaps-form-decomposition} \langle \vec{P}_u(T), \zeta\rangle=((I-M_0)\zeta)_u+ \sum_{\substack{y\in\mathcal B\\M_0[u,y]\ne0}} M_0[u,y]\varphi_{u,y}(T)\zeta_y. \end{equation} At $T=t$, all summands with $a_y(t)\ne d_u(t)$ vanish. If $\widetilde\xi$ is supported on $S^{\mathcal B}_{t,g}$ with $g\ne d_u(t)$, each remaining summand is zero on $\widetilde\xi$. The hypothesis $C^{\mathcal B}_{t,g}\xi=\vec{0}$ also gives $C^{\mathcal B}\widetilde\xi=\vec{0}$, so $(I-M_0)\widetilde\xi=\vec{0}$ by Lemma~\ref{lem:swaps-matrix}. This proves the implication. For the final assertion, two vectors with the same measurements under $C^{\mathcal B}$ differ by an element of its kernel. Thus $(I-M_0)\zeta$ is determined by $C^{\mathcal B}\zeta$. The remaining terms in \eqref{eq:swaps-form-decomposition} at $T=t$ use only $\zeta|_{S^{\mathcal B}_{t,d_u(t)}}$. \end{proof} Fix $t$ and write $\zeta_g=\zeta|_{S^{\mathcal B}_{t,g}}$. The restrictions of $C^{\mathcal B}$ satisfy \begin{equation}\label{eq:auxiliary-measurements} C^{\mathcal B}\zeta=\sum_{g=1}^r C^{\mathcal B}_{t,g}\zeta_g. \end{equation} Fixing each vector $C^{\mathcal B}_{t,g}\zeta_g$ therefore fixes $C^{\mathcal B}\zeta$ while imposing separate conditions on the $r$ auxiliary coordinate groups. When all vectors $C^{\mathcal B}_{t,g}\zeta_g$ are fixed, $\langle \vec{P}_u(t), \zeta\rangle$ is determined by $\zeta|_{S^{\mathcal B}_{t,d_u(t)}}$. We will obtain the corresponding separation on the actual Boolean variables by placing $(f,v)$ at a coordinate labeled $(a_v,d_f)$. \begin{remark} We illustrate how \eqref{eq:swaps-row} confines dependence outside the assigned group to one linear measurement. Take $Q=R=2$, outside the regime $R2^{\lambda-1}$. The first follows from the same comparison. Put \[ \mu=\frac{Q(r-1)}{2r},\qquad A_0=\left\lfloor\mu-\frac{R-1}{2}\right\rfloor, \qquad \mathcal I=\{A_0,\ldots,A_0+R-1\}. \] Here $Q/4\le\mu\le Q/2$. Since $R\le Q/6$, the interval lies in $\{0,\ldots,Q\}$. Its center differs from $\mu$ by less than one, and $R\ge32$ ensures that it contains every integer within $R/4$ of $\mu$. For $W\sim\operatorname{Bin}(Q,(r-1)/(2r))$, Hoeffding's inequality gives \[ \Pr[W\notin\mathcal I] \le2e^{-R^2/(8Q)} \le2e^{-16(\beta+3)^2\nu} \le2^{-(\beta+2)\nu} \le\lambda^{-(\beta+2)} \le\frac1{br^2\lambda}. \] The last inequality uses $b\le\lambda^\beta$ and $r^2\le\lambda$. This proves \eqref{eq:incidence-tail} with $\epsilon=\tau/(rb)$. Also $0<\tau\le1/2$ once $r\ge2$. Finally, \[ \frac RQ=O_\beta(\nu/\sqrt\lambda),\qquad \log(2Q/R)=O(\nu),\qquad \tau\log(2D+1)=O(1/r). \] Together with $1/r=O(\nu^2/\sqrt\lambda)$, these prove \eqref{eq:balanced-cost}. We finish by showing that the parameters in \eqref{eq:parameter-QR} can be constructed exactly within the stated bit bound. The algorithm finds $\lambda=\lceil\log_2 n\rceil$ as the least integer with $n\le2^\lambda$, and then finds $\nu=\lceil\log_2\lambda\rceil$ in the same way. It obtains $r$ as the largest integer satisfying $r^2\nu^4\le\lambda$, computes $Q$ by integer division, and finds $\lceil\sqrt\lambda\rceil$ by an integer square-root search to obtain $R$. If $r<2$ or $Q\le R$, the algorithm reports failure at this stage. Otherwise it constructs $\tau,\epsilon,D$ and the endpoints of $\mathcal I$ using integer or rational arithmetic. It then checks $\mathcal I\subseteq\{0,\ldots,Q\}$, the two balance inequalities, $R\ge32$, and $6R\le Q$. The tail probability in \eqref{eq:incidence-tail} has denominator $(2r)^Q$, so its required bound can also be checked by integer arithmetic. These computations take $\poly_\beta(\log n)$ bit operations. The preceding estimates show that all checks pass for sufficiently large $n$. \end{proof} \section{Counting common zeros of sparse polynomial equations}\label{sec:setup} We now prove Theorem~\ref{thm:overview-sparse-polynomials}. The input is a system $\mathcal P$ of $m_{\mathrm{test}}\le cn$ polynomial equations $P_i(x)=0$ over $\mathbb F_2$ in $n$ Boolean variables. Each $P_i$ is a list of at most $(\log n)^c$ monomials of degree at most $k$, for fixed $k,c$. Our target is the integer \begin{equation}\label{eq:common-zero-count} N(\mathcal P)=\#\{x\in\{0,1\}^n:P_i(x)=0\text{ for every }i\}. \end{equation} First we build a product with one factor per equation whose value on the Boolean cube records the common-zero indicator. The difficulty is keeping its total input degree linear in $n$. Next we construct the replacement forms for these factors and use Section~\ref{sec:counting} to sum the product. Section~\ref{sec:hashes} uses the resulting algorithm for arbitrary supplied systems, including systems that still accept nonsatisfying assignments of a formula. \subsection{An integer polynomial for one equation}\label{subsec:rational-lift} On Boolean inputs we may replace each positive power $x_v^j$ by $x_v$. Combine duplicate monomials modulo two. If $\mathcal M_i$ is the resulting list of variable sets for $P_i$, define its integer lift by \[ L_i(\vec X)=\sum_{M\in\mathcal M_i}\prod_{v\in M}X_v . \] The empty monomial is $1$ and the empty sum is $0$. The value $L_i(x)$ counts the monomials equal to one, so $P_i(x)=0$ precisely when $L_i(x)$ is even. Write $I_i=\bigcup_{M\in\mathcal M_i}M$. Although $L_i$ can read $k(\log n)^c$ variables, it still has degree at most $k$. Set $\ell=n+1$. Since $0\le N(\mathcal P)\le2^n<2^\ell$, it suffices to obtain its residue modulo $2^\ell$. We first represent the evenness indicator by an integer polynomial modulo this power of two. Multiplying $m_{\mathrm{test}}$ such indicators directly would give only a quadratic degree bound; the form of the next lemma will let us control the degree across all equations together. Put $h(Y)=Y(Y-1)$. Its value is even at every integer $Y$. Writing the indicator in powers of $h$ exposes one factor of two for each copy of $h$ in the product. \begin{lemma}\label{lem:rational-idempotent} For every integer $\ell\ge1$, one can construct polynomials $e_0,\ldots,e_{\ell-1}\in\mathbb Z[Y]$, each of degree at most one, such that \begin{equation}\label{eq:idempotent-expansion} p_\ell(Y)=\sum_{j=0}^{\ell-1}e_j(Y)h(Y)^j, \qquad p_\ell(y)\equiv\mathds{1}_{\{2\mid y\}}\pmod{2^\ell} \quad(y\in\mathbb Z). \end{equation} The coefficients of the $e_j$ have $\poly(\ell)$ bits, and the construction uses $\poly(\ell)$ bit operations and $\poly(\ell)$ bits of space. \end{lemma} \begin{proof} Let $F_\ell$ be the modulus-amplifying polynomial of Beigel and Tarui~\cite[Section~2.3]{BT94}. Chan and Williams apply $F_\ell$ to sums of clause-violation indicators to count satisfying assignments deterministically~\cite[Theorem~2.5 and proof of Theorem~1.6]{CW21}. We need the indicator of even parity, so we take its complement: \begin{equation}\label{eq:binary-indicator} p_\ell(Y)=1-F_\ell(Y)=(1-Y)^\ell \sum_{j=0}^{\ell-1}\binom{\ell+j-1}{j}Y^j. \end{equation} The finite sum is the inverse of $(1-Y)^\ell$ modulo $Y^\ell$. Indeed, the coefficient of $Y^j$ in $(1+Y+Y^2+\cdots)^\ell$ counts weak compositions of $j$ into $\ell$ parts and equals $\binom{\ell+j-1}{j}$. Therefore \[ p_\ell(Y)\equiv1\pmod{Y^\ell}, \qquad p_\ell(Y)\equiv0\pmod{(1-Y)^\ell}. \] For even $y$, the first congruence gives $p_\ell(y)\equiv1\pmod{2^\ell}$. For odd $y$, the second gives $p_\ell(y)\equiv0\pmod{2^\ell}$. The polynomial $p_\ell$ has integer coefficients and degree less than $2\ell$. Successive division by the monic quadratic $h=Y^2-Y$ writes it uniquely as $\sum_{j<\ell}e_jh^j$, with integer remainders $e_j$ of degree less than two. Lemma~\ref{lem:rational-lift-height} in Appendix~\ref{app:arithmetic} bounds their coefficients and proves the $\poly(\ell)$ bit-operation bound for this construction. \end{proof} \subsection{Keeping the product degree linear} The full product $\prod_{i=1}^{m_{\mathrm{test}}} p_\ell(L_i(\vec{X}))$ has degree at most $km_{\mathrm{test}}(2\ell-1)$. Each factor $h(y)$ contributes a factor of two at integer arguments, so a term containing at least $\ell$ such factors can be discarded modulo $2^\ell$. This lets us retain only terms whose total power of $h$ is less than $\ell$, across all equations together. Introduce a formal variable $V$ to record that power, using the same $V$ for every equation. Its exponent records a guaranteed power of two dividing the corresponding term at integer arguments. It is not an additional Boolean variable to be summed over. This is where we choose the coefficient algebra of Section~\ref{subsec:product-interface}: \[ \mathcal A_\ell=\mathbb Q[V]/(V^\ell). \] In this algebra every multiplication discards powers $V^s$ with $s\ge\ell$. Once the product is formed, we add its retained coefficients using the linear map \[ \mathcal S_\ell\!\left(\sum_{s=0}^{\ell-1}b_sV^s\right) =\sum_{s=0}^{\ell-1}b_s . \] This map need not preserve products, so it is applied only after the factors have been multiplied. We use the same notation for polynomial coefficients $b_s$. \begin{lemma}\label{lem:total-order} Let $m_{\mathrm{test}}\ge0$ and $\ell\ge1$ be integers. For integers $y_1,\ldots,y_{m_{\mathrm{test}}}$, put \[ B_i(V)=\sum_{j=0}^{\ell-1}e_j(y_i)h(y_i)^jV^j. \] Then \[ \mathcal S_\ell\!\Bigl(\prod_{i=1}^{m_{\mathrm{test}}} B_i(V)\bmod V^\ell\Bigr) \equiv\prod_{i=1}^{m_{\mathrm{test}}}\mathds{1}_{\{2\mid y_i\}}\pmod{2^\ell}. \] For any nonnegative integer $d_*$, if the $y_i$ are instead polynomials over $\mathbb Q$ of total degree at most $d_*$, then each retained coefficient of $V^s$, and hence their sum, has total input degree at most $d_*(m_{\mathrm{test}}+2(\ell-1))$. \end{lemma} \begin{proof} Before truncation, a term contributing to the coefficient of $V^s$ has the form \[ \prod_{i=1}^{m_{\mathrm{test}}} e_{j_i}(y_i)h(y_i)^{j_i}, \qquad \sum_{i=1}^{m_{\mathrm{test}}} j_i=s. \] At integer arguments it is divisible by $2^s$. Dropping every coefficient with $s\ge\ell$ therefore leaves the sum of coefficients unchanged modulo $2^\ell$. Without truncation, that sum is $\prod_i p_\ell(y_i)$, which has the required congruence by Lemma~\ref{lem:rational-idempotent}. For polynomial arguments, every retained term has $\sum_i j_i\le\ell-1$. Since $\deg e_{j_i}\le1$ and $\deg h=2$, its degree is at most \[ \sum_{i=1}^{m_{\mathrm{test}}} d_*(1+2j_i) \le d_*(m_{\mathrm{test}}+2(\ell-1)). \] The bound holds coefficient by coefficient, as well as for their sum. \end{proof} To see why the truncation uses the total order across all equations, take $\ell=2$. Then \[ p_2(Y)=1-3Y^2+2Y^3=(1-Y)+(2Y-1)h(Y). \] For two equations, multiplication modulo $V^2$, followed by $\mathcal S_2$, retains \[ (1-y_1)(1-y_2) +(2y_1-1)h(y_1)(1-y_2) +(1-y_1)(2y_2-1)h(y_2). \] Its degree is at most four. The omitted term $(2y_1-1)(2y_2-1)h(y_1)h(y_2)$ has degree six, but is divisible by four at integer inputs. \subsection{Counting with supplied replacement forms}\label{subsec:count-polynomial} For equation $i$ supply Section~\ref{sec:counting} with the factor \begin{equation}\label{eq:lifted-factor} \mathcal B_i((X_v)_{v\in I_i},V) =\sum_{j=0}^{\ell-1}e_j(L_i(\vec X))h(L_i(\vec X))^j V^j \quad\text{in }\mathcal A_\ell[(X_v)_{v\in I_i}]. \end{equation} Within a factor, every occurrence of $X_v$ uses the same replacement form; different factors may use different forms for $X_v$. Even if each factor receives its own independent inputs, $L_i$ has degree at most $k$ in those inputs. Lemma~\ref{lem:total-order} bounds the input degree of the product \emph{in $\mathcal A_\ell$} by $d=k(m_{\mathrm{test}}+2(\ell-1))$. Thus the product satisfies precisely the degree hypothesis \eqref{eq:general-product-degree} of the common routine. Adding factors equal to one with scope $\{v\}$ ensures that all declared variables occur in the construction. Let $H(T)\in\mathcal A_\ell[T]$ be \eqref{eq:general-count-polynomial} for these factors. Its $V$-coefficients at $T=0$ are integers because all replacements restore their Boolean inputs at zero. By the same lemma, summing their values gives \begin{equation}\label{eq:origin-residue} \deg_T H\le d_H:=kR(m_{\mathrm{test}}+2(\ell-1)),\qquad \mathcal S_\ell(H(0))\equiv N(\mathcal P)\pmod{2^\ell}. \end{equation} Consequently the least nonnegative residue of $\mathcal S_\ell(H(0))$ is the exact count. Interpolation takes place over the rationals; the congruence is needed only on Boolean inputs at $T=0$. \subsection{Cost of evaluating the factors}\label{subsec:one-query-cost} \begin{proposition}\label{prop:count} Let a list of degree-at-most-$k$ polynomial equations on $n$ variables and a design satisfying Definition~\ref{def:layout} for their factors be given. Let $S\ge1$ bound the total length of the monomial lists and factor scopes, and use any $\ell$ with $2^\ell>2^n$. With $d_H$ from \eqref{eq:origin-residue} and $q,J$ from \eqref{eq:hasse-order}, $N(\mathcal P)$ can be computed deterministically in \[ \poly(n,m_{\mathrm{test}},\ell,D,Q,R,J,r,k,S)\, C_q(2D+1)^{2\tau n}2^{2n/r} \] bit operations and $\poly(n,m_{\mathrm{test}},\ell,D,Q,R,J,r,k,S)$ bits of working space. \end{proposition} \begin{proof} Apply Proposition~\ref{prop:general-count} with coefficients in $\mathcal A_\ell$. At an evaluation point $t$, the routine uses $\mathcal A_\ell[z]/(z^J)$, so a stored element has just $J\ell$ rational coefficients. To evaluate factor $i$ at a fixed Boolean substitution $\vec X=\mathbf1_U$ in \eqref{eq:jet-substitution}, first evaluate each listed monomial by multiplying its at most $k$ substituted inputs, then add the results to get $L_i$. Use this value in \eqref{eq:lifted-factor}, successively multiplying by $h(L_i)$ to obtain its powers. This takes polynomially many rational operations in the displayed parameters and never enumerates assignments to the entire scope $I_i$. The polynomials $e_j$ are computed once by Lemma~\ref{lem:rational-idempotent}. For bit complexity, the rows have common denominator $d_{\mathrm{den}}=(R-1)!Q!$. Each substituted monomial has denominator dividing $\Delta=d_{\mathrm{den}}^k$, every lifted factor has denominator dividing $\Gamma=\Delta^{2\ell-1}$, and their product has denominator dividing $\Omega=\Gamma^{m_{\mathrm{test}}}$. Thus exponentially many summands can be accumulated over one denominator. Appendix~\ref{app:arithmetic} bounds the bit lengths in these sums by \begin{equation}\label{eq:sum-bit-bound} B_{\mathrm{sum}}=\poly(n,m_{\mathrm{test}},\ell,k,Q,\log(D+2),\log(S+2)). \end{equation} For each $0\le s<\ell$ we interpolate the rational polynomial $[V^s]H(T)$ from its $QJ$ Taylor coefficients. The appendix verifies polynomial bit cost for this interpolation and the final integer remainder in \eqref{eq:origin-residue}. The $O(QJ\ell)$ stored coefficients, the design and the sequential enumerations in Proposition~\ref{prop:general-count} give the stated space bound. \end{proof} \subsection{Constructing the forms and completing the proof}\label{subsec:sparse-queries} Each sparse polynomial reads few variables, but one variable might occur in many equations. We first fix the values of the few variables with the largest numbers of occurrences. On each resulting branch we can construct the design required by Proposition~\ref{prop:count}. \begin{proof}[Proof of Theorem~\ref{thm:overview-sparse-polynomials}] Let $\mathcal P$ be the supplied polynomial system. An empty list of equations gives $2^n$ common zeros; a constant equation $1=0$ gives none. Discard equations $0=0$. Include a neutral factor equal to one with scope $\{v\}$ for each declared variable $v$, and write \[ M=\sum_{f\in\mathcal F}|I_f| \] for the total number of factor--variable incidences. The input bounds imply $M=n(\log n)^{O_{k,c}(1)}$, and every scope has $(\log n)^{O_{k,c}(1)}$ variables. A particular variable, however, may occur in many of these scopes. Put $\lambda=\lceil\log_2 n\rceil$ and \[ b_0=\left\lceil\frac Mn\right\rceil\lceil\sqrt\lambda\rceil. \] Let $S\subseteq[n]$ be the variables belonging to more than $b_0$ scopes. For each $b\in\{0,1\}^S$, we fix $x|_S=b$ and count the completions on $[n]\setminus S$; we call this restricted problem a branch. Since $|S|\le M/b_0\le n/\sqrt\lambda$, there are at most $2^{n/\sqrt\lambda}$ branches. Each branch has the same number $n'$ of free variables, with \[ n'\ge n-\frac n{\sqrt\lambda}\ge\frac n2 \qquad(n\ge20). \] Substitute the fixed bits in every $P_i$ over $\mathbb F_2$ and combine duplicate monomials modulo two before forming its integer lift. Neither degree nor the number of monomials increases. A constant equation can again be handled immediately. The branches partition the Boolean cube, so their common-zero counts add to $N(\mathcal P)$. To apply Section~\ref{sec:construction}, remove the fixed variables from the scopes and relabel the free variables by $[n']$. Write $I'_f\subseteq[n']$ for the restricted scopes and $M'=\sum_f|I'_f|$ for their total incidence count. Let $b$ be the maximum factor incidence of a free variable and let $w=\max_f|I'_f|$. Then $b\le b_0$, and both $b$ and $w$ are bounded by a fixed power of $\log n'$. The remaining neutral factors ensure $M'\ge n'$. Set \[ \lambda'=\lceil\log_2 n'\rceil,\qquad \nu'=\lceil\log_2\lambda'\rceil, \] and choose the smallest integer $\beta\ge1$ with $b,w\le(\lambda')^\beta$. For fixed $k,c$, the possible values of $\beta$ are bounded by a constant for all sufficiently large $n$. We apply Lemma~\ref{lem:incidence-parameters} to the restricted scopes $(I'_f)$ on $[n']$, with incidence count $M'$, using \[ r=\left\lfloor\frac{\sqrt{\lambda'}}{(\nu')^2}\right\rfloor, \qquad Q=\left\lfloor\frac{\lambda'}{128\nu'}\right\rfloor, \qquad R=(\beta+3)\lceil\sqrt{\lambda'}\rceil. \] If $r<2$ or $Q\le R$, use the exhaustive-search fallback below before forming $\tau$, $\epsilon$, or the parity interpolation interval $\mathcal I$. Otherwise set \[ \tau=\frac1{r\lambda'},\qquad \epsilon=\frac1{br^2\lambda'},\qquad D=r^{2Q}, \] and carry out the remaining feasibility checks from that lemma. For all sufficiently large $n$, Lemma~\ref{lem:layout} supplies the required rows and measurement matrices, with \[ r=\Theta\!\left(\frac{\sqrt{\log n'}}{(\log\log n')^2}\right), \qquad Q=\Theta\!\left(\frac{\log n'}{\log\log n'}\right), \qquad R=O_{k,c}(\sqrt{\log n'}), \qquad D\le(2n')^{1/128}. \] On every branch we may use the original precision $\ell=n+1$, since even the unrestricted count is smaller than $2^\ell$. As $n'\ge n/2$, both $\ell$ and $m_{\mathrm{test}}$ are $O_c(n')$. Thus $d_H=O_{k,c}(n'R)$, $J=O_{k,c}(n'R/Q)+1$, and \eqref{eq:three-costs}, in dimension $n'$, has exponent \[ O_{k,c}\!\left(\frac{n'(\log\log n')^2}{\sqrt{\log n'}}\right) =O_{k,c}\!\left(\frac{n(\log\log n)^2}{\sqrt{\log n}}\right). \] All substitution data, coefficient arrays, and interpolation systems have total representation length $n^{O_{k,c}(1)}$ bits. Multiplying the per-branch running time by at most $2^{n/\sqrt\lambda}$ leaves the displayed exponential bound unchanged, so summing the branch answers gives the required running time. To implement the construction for every input size, the algorithm checks its numerical hypotheses using integer arithmetic. In addition to the preliminary guards above, it checks $2(b+w)D^2\le M'$ and $2Qr^2\le n'$ from Lemma~\ref{lem:incidence-labels}, the endpoints of $\mathcal I$, $R\ge32$, $6R\le Q$, and the binomial tail bound in \eqref{eq:incidence-tail}, which can be tested exactly. If any check fails, the algorithm abandons the branched computation and checks the original equations directly on all $2^n$ assignments. For fixed $k,c$, the bounds just proved and Lemma~\ref{lem:incidence-parameters} show that a failure can occur only for finitely many $n$. This fallback is therefore absorbed in the theorem's constants. To combine the branch counts within the stated space bound, we process the branches one at a time. We initialize an integer accumulator $Z=0$ and add each branch's answer to it. The construction and Proposition~\ref{prop:count} use $n^{O_{k,c}(1)}$ bits of space on each branch. Disjointness gives $0\le Z\le2^n$ throughout, and the final value is $N(\mathcal P)$, as claimed. \end{proof} \section{Reducing \texorpdfstring{$\#k$-SAT}{\#k-SAT} to counting common zeros}\label{sec:hashes}\label{subsec:sparse-hashes} Given a sparse $k$-CNF $F$ with at most $Bn$ clauses, where $B$ is polylogarithmic in $n$, we construct $O(n)$ sparse polynomial equations on its original $n$ variables whose common zeros are exactly its satisfying assignments. One equation per clause could require $Bn$ equations. Instead, each equation will test the parity of the violations of a short list of clauses. We use Theorem~\ref{thm:overview-sparse-polynomials} both to choose these equations and to obtain the final count. Let $m$ be the number of indexed clauses and $v_e(x)$ the violation bit of clause $e$. As a polynomial over $\mathbb F_2$, $v_e$ is a product of the factors $1+x_v$ for positive literals and $x_v$ for negative literals. A tautological clause has $v_e=0$ and an empty clause has $v_e=1$. After removing repeated literals, $\deg v_e\le k$ and $v_e$ expands to at most $2^k$ monomials. Put $v(x)=(v_1(x),\ldots,v_m(x))$. For a binary matrix $A$ with $m$ columns, row $i$ specifies the equation \begin{equation}\label{eq:hash-query} P_i(x):=\sum_{e:A_{ie}=1} v_e(x)=0\qquad\text{over }\mathbb F_2. \end{equation} Write $\mathcal P_A$ for this system and $N(A)=N(\mathcal P_A)$ for its number of common zeros. Every satisfying assignment passes every row. Hence $N(A)=\#F+D(A)$, where $D(A)$ counts the nonsatisfying assignments still passing. We do not know $\#F$, but it is the same for every candidate next row: the row minimizing $N$ also minimizes $D$. We represent a test row by a list of pairs $(e,c)$ with $e\in[m]$ and $c\in\{0,1\}$, summing coefficients modulo $2$ if a clause index is repeated. The length of this list counts all pairs, including repeated indices and pairs with coefficient zero. A row of list length $s$ thus reads at most $ks$ variables before cancellation. \subsection{Initial tests that exclude small violation sets} If an assignment violates only one of many clauses, a test sampling a short list of clauses is unlikely to notice it. We therefore first construct a matrix $A^{(0)}$ that rejects every nonzero violation vector with small support. Every nonsatisfying assignment that passes these initial tests must violate many clauses. A further test that samples a short list of clauses can then reject each such assignment with constant probability. We use the standard edge-based Tanner code: bits are assigned to the edges of an expander, and the bits incident to each vertex must form a word of a prescribed local linear code (see Tanner~\cite[Section~II]{Tanner81} for the local constraints and Sipser and Spielman~\cite[Sections~IV and~VI]{SS96} for the expander construction). The usual local-distance and expansion argument gives the needed lower bound on the weight of a nonzero codeword. The proof below constructs the graph and local code deterministically, with parameters that meet our bounds on the number and length of the tests. \begin{lemma}\label{lem:sparse-checks} Let $n,m,B$ be positive integers with $m\le Bn$, and put \[ \mu=\lfloor\log_2 m\rfloor+1,\qquad P=20000B^2\mu^2,\qquad D_0=320000B^2\mu^3. \] There is a deterministic construction of a binary matrix $A^{(0)}$ with $m$ columns and at most $3n$ rows such that every row has at most $D_0$ nonzero entries and \[ z\in\{0,1\}^m\setminus\{\vec{0}\},\quad A^{(0)}z=\vec{0}\pmod2 \quad\Longrightarrow\quad |\operatorname{supp}z|\ge m/P. \] The construction uses $\exp(\poly(B,\log(m+2)))$ bit operations and $\poly(n,m,B)$ bits of working space. \end{lemma} \begin{proof} We construct a bipartite graph with between $m$ and $2m$ edges, using its edges as temporary binary coordinates. Checks at each vertex will force every vertex touched by a nonzero edge to have many nonzero incident edges; a mixing bound will then force large total weight. At the end, we keep $m$ edge coordinates and fix the rest to zero. Let \[ d_G=\min(m,D_0), \qquad q_G=\min\{2^a:a\in\mathbb Z_{\ge0},\ 2^a d_G\ge m\}. \] Then $m\le q_Gd_G<2m$. Write $q_G=2^{\ell_G}$ and take two copies of $\{0,1\}^{\ell_G}$ as the vertex sets. For each left vertex $u$ and each port $j\in[d_G]$, put an edge from $u$ to $u\oplus s_j$, where $\oplus$ denotes bitwise addition modulo $2$ and the shifts $s_1,\ldots,s_{d_G}\in\{0,1\}^{\ell_G}$ will be chosen below. Edges are indexed by the pairs $(u,j)$; parallel edges remain distinct. Every vertex on either side has one incident edge at each port $j$, so the graph is $d_G$-regular. To obtain the mixing estimate \eqref{eq:hash-mixing}, we choose the shifts so that every parity of a nonempty set of coordinates is nearly balanced. For a nonzero vector $b\in\{0,1\}^{\ell_G}$, the bit $b\cdot s_j\bmod2$ is the parity of those coordinates of $s_j$ where $b$ equals $1$. With $\varepsilon=1/(200B\mu)$, we require \begin{equation}\label{eq:hash-walsh} \Bigl|\sum_{j=1}^{d_G}(-1)^{b\cdot s_j}\Bigr| \le\varepsilon d_G \qquad \bigl(b\in\{0,1\}^{\ell_G}\setminus\{\vec{0}\}\bigr). \end{equation} The sum in \eqref{eq:hash-walsh} is the number of indices $j$ with even parity minus the number with odd parity. Thus, for every nonzero $b$, each parity occurs at a fraction of indices between $(1-\varepsilon)/2$ and $(1+\varepsilon)/2$. A list of shifts with this property is called $\varepsilon$-biased~\cite[Definitions~2.1--2.2]{NN93}. If $q_G=1$, there is no condition to check. Otherwise $d_G=D_0$. To show that suitable shifts exist, we choose them independently and uniformly at random. For each fixed nonzero $b$, the signs $(-1)^{b\cdot s_j}$ are independent and uniform in $\{-1,1\}$. Hoeffding's inequality bounds the probability of violating \eqref{eq:hash-walsh} for this $b$ by $2\exp(-\varepsilon^2d_G/2)$. A union bound over $b$ gives total failure probability at most \[ 2q_G\exp(-\varepsilon^2d_G/2) =2q_G\exp(-4\mu)<1, \] where $q_G<2m<2^{\mu+1}$. Exhaustively enumerating the shift tuples and checking \eqref{eq:hash-walsh} therefore finds a valid tuple in $\exp(O(d_G\log(m+2)))$ time. We next derive the mixing estimate from \eqref{eq:hash-walsh}. Let $\mathsf A_G$ be the $q_G\times q_G$ matrix with $\mathsf A_G[u,v]=|\{j\in[d_G]:u\oplus s_j=v\}|$; its entries count edges from left vertices $u$ to right vertices $v$. Both sides have the same index set $\{0,1\}^{\ell_G}$, on which the functions $\chi_b(u)=(-1)^{b\cdot u}$ form an orthogonal basis. For every $b,u\in\{0,1\}^{\ell_G}$, \[ (\mathsf A_G\chi_b)(u) =\sum_{j=1}^{d_G}\chi_b(u\oplus s_j) =\chi_b(u)\sum_{j=1}^{d_G}(-1)^{b\cdot s_j}. \] Thus each $\chi_b$ is an eigenvector: the constant function $\chi_{\vec{0}}$ has eigenvalue $d_G$, while \eqref{eq:hash-walsh} bounds all other eigenvalues in absolute value by $\varepsilon d_G$. For sets $U$ of left vertices and $V$ of right vertices, let $e_G(U,V)$ count the edges between them, including multiplicity. Decomposing the indicator vectors of $U,V$ into their constant and orthogonal parts and applying Cauchy--Schwarz gives \begin{equation}\label{eq:hash-mixing} e_G(U,V)\le \frac{d_G|U||V|}{q_G} +\varepsilon d_G\sqrt{|U||V|}. \end{equation} To specify the local code, we put \[ c_G=\left\lceil\frac{d_G}{8B}\right\rceil, \qquad \delta=\frac1{100B\mu}. \] We need a binary matrix $A_{\mathrm{loc}}$ with $c_G$ rows and $d_G$ columns such that every nonzero word in its kernel modulo $2$ has weight at least $\delta d_G$. To prove that such a matrix exists, we consider a matrix whose entries are independent uniform bits. For each fixed nonzero word, one of its nonzero coordinates makes the parity in each row uniform; independence of the rows therefore gives probability $2^{-c_G}$ that the word lies in the kernel. Set $h=\lceil\delta d_G\rceil-1$. If $h=0$, there are no nonzero words of weight less than $\delta d_G$. Otherwise their number is at most \[ \sum_{j=1}^{h}\binom{d_G}{j} \le(h+1)(2d_G)^h \le(2d_G)^{2h} <2^{d_G/(25B)}. \] For the last inequality, use $h<\delta d_G$, $d_G\le m<2^\mu$, and $\mu+1\le2\mu$. Since $c_G\ge d_G/(8B)$, a union bound shows that a suitable $A_{\mathrm{loc}}$ exists. Enumerating the $2^{c_Gd_G}$ binary matrices and testing all words of weight less than $\delta d_G$ finds one in $\exp(\poly(B,\log(m+2)))$ bit operations. At every vertex on both sides, impose the $c_G$ rows of $A_{\mathrm{loc}}$ on its incident edge coordinates, ordered by their ports. These constraints define a Tanner code with local code $C_{\mathrm{loc}}=\ker_{\mathbb F_2}A_{\mathrm{loc}}$. Its incidence graph has one bit node for every edge of our graph and one local-code node for every vertex; each bit participates in the constraints at its two endpoints. Consider a nonzero edge word accepted by all these checks. Let $U,V$ be the vertices touched by its nonzero edges on the two sides, and let $h'$ be its weight. Each vertex in $U\cup V$ is incident to at least $\delta d_G$ nonzero edges, so $h'\ge\delta d_G\max(|U|,|V|)$. Therefore \[ \delta d_G\sqrt{|U||V|} \le h'\le e_G(U,V) \le\frac{d_G|U||V|}{q_G} +\varepsilon d_G\sqrt{|U||V|}. \] Both $U$ and $V$ are nonempty. Dividing by $d_G\sqrt{|U||V|}$ yields $\sqrt{|U||V|}\ge(\delta-\varepsilon)q_G$, and hence \[ h'\ge\delta(\delta-\varepsilon)q_Gd_G =\frac{q_Gd_G}{20000B^2\mu^2}\ge\frac mP. \] Shorten this Tanner code by keeping any $m$ of the $q_Gd_G$ edge coordinates, identifying them with $[m]$, and setting the remaining coordinates to zero. Restricting all the vertex checks to the retained coordinates gives $A^{(0)}$. Any word accepted by $A^{(0)}$ extends by zeros to an accepted edge word, so it has the required weight. Every row has at most $d_G\le D_0$ nonzero entries. There are $2q_Gc_G$ rows. If $q_G=1$, then $d_G=m$ and \[ 2c_G\le\frac{m}{4B}+2\le\frac n4+2\le3n. \] If $q_G>1$, then $d_G=D_0\ge8B$, and \[ 2q_Gc_G\le\frac{q_Gd_G}{4B}+2q_G \le\frac{q_Gd_G}{2B}<\frac mB\le n. \] The searches over shifts, local matrices, and test words are sequential. Storing the current choices and the final rows uses $\poly(n,m,B)$ bits of working space. \end{proof} \subsection{Choosing additional equations by counting common zeros} After the initial checks, every nonsatisfying assignment still passing violates at least $m/P$ clauses. This lets a short random test catch each such assignment with constant probability. To make the choice deterministic we use the averaging principle underlying conditional expectations~\cite{Raghavan88}. \begin{lemma}\label{lem:greedy-hashes} With $P,D_0$ and $A^{(0)}$ from Lemma~\ref{lem:sparse-checks}, a deterministic procedure appends $3n$ rows of list length $P$ and obtains a matrix $A$ with $N(A)=\#F$. It uses at most $3n(2m)^P$ common-zero counts. Every candidate system has at most $6n$ equations, each involving at most $2^k\max(D_0,P)$ monomials of degree at most $k$. \end{lemma} \begin{proof} At a stage with current matrix $A$, enumerate the ordered lists \[ \gamma=((e_1,c_1),\ldots,(e_P,c_P)) \in\mathcal C:=([m]\times\{0,1\})^P. \] The list $\gamma$ represents the binary row $h_\gamma$ with \[ (h_\gamma)_e= \Bigl(\sum_{j:e_j=e}c_j\Bigr)\bmod2 \qquad(e\in[m]). \] There are $(2m)^P$ lists; distinct lists are still counted separately when they represent the same row. Write $A;h_\gamma$ for the matrix obtained by appending $h_\gamma$ to $A$. Fix a nonsatisfying assignment $x$ accepted by $A$. The initial rows remain in $A$, so $|\operatorname{supp}v(x)|\ge m/P$. For a uniform list $\gamma$, the probability that none of $e_1,\ldots,e_P$ belongs to this support is at most \[ (1-1/P)^P\le e^{-1}<1/2. \] Conditional on the indices hitting the support, choose one hit position $j$. After fixing every coefficient except $c_j$, the uniform bit $c_j$ makes $h_\gamma\cdot v(x)$ uniform modulo $2$. This remains true when some clause indices are repeated. Thus, for each such $x$, at least a quarter of the candidate lists give a row that rejects $x$. Summing this bound over the nonsatisfying assignments still passing, we find \[ \mathbb E_\gamma D(A;h_\gamma)\le\tfrac34 D(A). \] For every candidate, compute $N(A;h_\gamma)$ by counting the common zeros of its polynomial system. Append a candidate attaining the minimum, breaking ties by enumeration order. Since $N(A;h_\gamma)=\#F+D(A;h_\gamma)$ for every $\gamma$, the chosen row leaves at most $\tfrac34 D(A)$ nonsatisfying assignments. After $3n$ rounds at most $(3/4)^{3n}2^n=(27/32)^n<1$ remain; their number is an integer, so it is zero. The procedure runs for a fixed number of rounds and never needs to know $D(A)$ or $\#F$. The initial matrix has at most $3n$ rows, and every candidate is evaluated with at most $3n$ additional rows. A row listing $s$ clauses expands, by \eqref{eq:hash-query}, to at most $2^k s$ monomials on the original variables; duplicates cancel over $\mathbb F_2$. These observations give the claimed size and query bounds. \end{proof} \subsection{Counting one sparse formula}\label{subsec:count-sparse} Suppose $n\ge20$ and $1\le m\le Bn$, where $B$ is bounded by a fixed power of $\log n$ depending only on $k$. Construct the initial matrix by Lemma~\ref{lem:sparse-checks}. This uses $\exp((\log n)^{O_k(1)})$ bit operations and polynomial space. Both $P$ and $D_0$ are $(\log n)^{O_k(1)}$, so every candidate in Lemma~\ref{lem:greedy-hashes} is an instance of Theorem~\ref{thm:overview-sparse-polynomials} with a single fixed $c=c(k)$. This applies to discarded candidates as well as the final system: the counter requires only the number, degree and sparsity of the equations. Expanding each row and combining monomials costs polynomial time and space for fixed $k$. At most $3n(2m)^P+1=\exp((\log n)^{O_k(1)})$ calls suffice, including one final count. Each call takes $2^{O_k(n(\log\log n)^2/\sqrt{\log n})}$ bit operations. Since any fixed power of $\log n$ is $o(n(\log\log n)^2/\sqrt{\log n})$, the total time, including construction and candidate comparisons, is \begin{equation}\label{eq:sparse-formula-cost} (n+m)^{O_k(1)}2^{O_k(n(\log\log n)^2/\sqrt{\log n})}. \end{equation} The final count is $\#F$ by the greedy lemma. A formula with no clauses or containing an empty clause is handled directly. Candidates are examined sequentially; only the current rows, a candidate, the best row and its count need be kept in addition to the counter's polynomial working space. \subsection{Returning to a general formula}\label{subsec:general-reduction} We use disjoint sparsification to partition the satisfying assignments among sparse formulas on the same $n$ declared variables. The preceding algorithm counts each of these formulas. The parameter $\sigma$ controls a tradeoff: making it smaller reduces the number of formulas but increases their occurrence bound $B$. Our solver permits $B$ to grow as a fixed power of $\log n$, so we can let $\sigma$ tend to zero while keeping both the number of formulas and the cost per formula within the desired time bound. \begin{lemma}\label{lem:sparsify} Fix $k\ge2$. Given a $k$-CNF on $n$ declared variables with $m$ clauses and a rational $0<\sigma\le1$, a deterministic algorithm constructs a tree of $k$-CNFs on the same variables. Let $L_\sigma$ be the total binary encoding length of the supplied numerator and denominator of $\sigma$. An assignment satisfies the input exactly when it satisfies one leaf formula, and it cannot satisfy two distinct leaves. The tree has \[ \operatorname{poly}_k(n,\sigma^{-1})\,2^{\sigma n} \] nodes and depth $\poly_k(n,\sigma^{-1})$. In every leaf, each variable occurs at most $B$ times, where $B$ is an explicitly computed integer satisfying \[ B=O_k\!\Bigl(\bigl[\sigma^{-1}\log(2/\sigma)\bigr]^{k-1}\Bigr). \] Input normalization uses $\poly_k(n,m)$ bit operations. Constructing the numerical parameters uses $\poly_k(L_\sigma)$ bit operations. Thereafter, processing each node uses $\poly_k(n,\log(2/\sigma))$ bit operations. The input count is the sum of the leaf counts. \end{lemma} Appendix~\ref{app:sparsify} proves the lemma, including the disjointness that justifies adding the leaf counts. \begin{proposition}\label{prop:interpolation-bound} For each fixed $k\ge2$, the interpolation algorithm counts the satisfying assignments of a $k$-CNF on $n\ge20$ declared variables with $m$ clauses in $(n+m)^{O_k(1)}2^{O_k(\rho(n))}$ bit operations and $(n+m)^{O_k(1)}$ bits of space. \end{proposition} \begin{proof} We first normalize the input in $(n+m)^{O_k(1)}$ time by deleting repeated literals, tautological clauses, duplicate clauses, and clauses containing another clause. We retain all $n$ declared variables. An empty clause gives count zero, and a formula with no clauses gives count $2^n$. We handle $n<20$ by exhaustive search. For $n\ge20$, we next select the sparsification parameter. Define \[ \lambda_n=\lceil\log_2 n\rceil,\qquad \nu_n=\lceil\log_2\lambda_n\rceil,\qquad s=\left\lfloor\frac{\sqrt{\lambda_n}}{\nu_n^2}\right\rfloor. \] We compute $s$ by integer comparisons, taking the largest nonnegative integer satisfying $s^2\nu_n^4\le\lambda_n$. If $s<2$, we use exhaustive search; $\sqrt{\lambda_n}/\nu_n^2$ tends to infinity, so there are only finitely many such sizes. Otherwise we apply Lemma~\ref{lem:sparsify} with $\sigma=1/s$. The tree has at most $2^{n/s}\operatorname{poly}_k(n,s)$ nodes, and its leaves have occurrence bound \[ B=O_k\bigl((s\log s)^{k-1}\bigr)=(\log n)^{O_k(1)}. \] Each leaf uses the original $n$ variables and has at most $Bn$ nonempty clauses. We count each leaf by the sparse-formula algorithm of Section~\ref{subsec:count-sparse}, whose running time is given by \eqref{eq:sparse-formula-cost}. Leaves with no clauses or containing an empty clause are handled directly. The clause count in that application is the number of clauses in the leaf; $m$ in the final bound remains the input clause count. For $s\ge2$, the floor in its definition gives \[ \frac ns=O\!\left(\frac{n\nu_n^2}{\sqrt{\lambda_n}}\right) =O(\rho(n)). \] Thus both the number of leaves and the time to count each leaf have exponent $O_k(\rho(n))$. Their polynomial factors, together with normalization and the work at the tree nodes, are bounded by $(n+m)^{O_k(1)}$. The total number of bit operations is therefore \[ (n+m)^{O_k(1)}2^{O_k(\rho(n))}. \] The finite exhaustive-search cases are absorbed in the constants. All parameters, initial checks, and additional rows are computed by the deterministic procedures above; every counting query uses the common-zero algorithm of Theorem~\ref{thm:overview-sparse-polynomials}. To bound the space used by the full algorithm, we traverse the sparsification tree depth first and count one leaf at a time. The current path has $\poly_k(n,s)$ nodes, and each normalized formula has a $\poly_k(n)$-bit encoding. Since $s\le\sqrt{\lceil\log_2 n\rceil}$, storing this path and counting one leaf use $\poly_k(n,m)$ bits. Disjointness keeps the sum of the processed leaf counts between zero and $2^n$, so its accumulator uses at most $n+1$ bits. Thus the total space is $\poly_k(n,m)$ bits. \end{proof} \appendix \section{Partitioning the satisfying assignments}\label{app:sparsify} Fix $k\ge2$ and a rational $0<\sigma\le1$. We prove Lemma~\ref{lem:sparsify} by repeatedly splitting a formula into two cases. Both children use the same $n$ variables, and every satisfying assignment of the parent satisfies exactly one child. We follow the rule for choosing a shared set of literals and the insertion accounting of~\cite[Section~6]{CIP}. The refinement that makes the two cases disjoint is standard in exact counting~\cite[Appendix~A]{DHMTW}. Throughout this appendix, a clause is a set of literals and denotes their disjunction. Its \emph{width} is the number of literals it contains. We delete tautological clauses, repeated clauses, and clauses containing another clause. Thus the remaining clauses form an antichain under inclusion. We keep all $n$ declared variables and do not propagate unit clauses. An empty clause gives count zero, and the empty formula gives count $2^n$. \subsection{The branching rule} Fix an integer $M\ge2$. We will obtain an occurrence bound $B=O_k(M^{k-1})$ at every leaf, then choose $M$ so that the tree has at most $\poly_k(n,\sigma^{-1})2^{\sigma n}$ nodes. Put \[ \theta_j=M^j\qquad(0\le j2^n$, and a replacement design for its equation factors. Suppose the rows $\vec{P}_{f,v}$, partitions $S_{t,g}$, and matrices $C_{t,g}$ satisfy Definition~\ref{def:layout}, with parameters $Q,R,r,D,\tau$. Recall the degree bound for $H$ and the number of Taylor coefficients retained at each node: \[ d_H=kR\bigl(m_{\mathrm{test}}+2(\ell-1)\bigr),\qquad J=\left\lfloor\frac{d_H}{Q}\right\rfloor+1. \] All polynomials in the Taylor variable $z$ and the shared truncation marker $V$ are stored in their unique representative modulo $(z^J,V^\ell)$. Removing terms outside these degree ranges cannot increase the coefficient norm. The substitution rows have common denominator \[ d_{\mathrm{den}}=(R-1)!Q!. \] We use an integer $B_P\ge1$ such that every integer coefficient of every row $d_{\mathrm{den}}\vec{P}_{f,v}(T)$ has absolute value at most $2^{B_P}$. Definition~\ref{def:layout} gives $B_P=O(Q\log Q+\log D)$. At a fixed node $t\in[Q]$ and for a fixed correction set $U\subseteq[n]$, the input to factor $f$ at variable $v$ is \[ \theta_{f,v}(z;x)=\langle \vec{P}_{f,v}(t), x\rangle+ \bigl\langle \vec{P}_{f,v}(t+z)-\vec{P}_{f,v}(t),\mathbf1_U\bigr\rangle, \qquad x\in\{0,1\}^n. \] Let $L_i(z;x)$ be the sum of the listed monomials of equation $i$ after these substitutions. Each $d_{\mathrm{den}}\theta_{i,v}(z;x)$ is an integer polynomial of coefficient norm at most \[ B_0=d_{\mathrm{den}}+3n(R+1)2^{B_P}(Q+1)^R . \] Indeed, each of the three row evaluations in $\theta_{i,v}$ contributes at most $n(R+1)2^{B_P}(Q+1)^R$ after denominators are cleared. The bound holds also for the representatives in the group sums. Put $\Delta=d_{\mathrm{den}}^k$. For a monomial of degree $u\le k$, multiplying its substituted value by $\Delta$ gives an integer polynomial of norm at most $d_{\mathrm{den}}^{k-u}B_0^u\le B_0^k$, including the constant monomial. As $S$ bounds the total list length, \[ B=\max\{\Delta,SB_0^k\} \quad\text{satisfies}\quad \|\Delta L_i(z;x)\|_1\le B . \] Consequently $\log d_{\mathrm{den}}=O(Q\log(Q+2))$, $\log B_0=O(Q\log(Q+2)+\log(nD+2))$, and $\log B=O(k\log B_0+\log(S+2))$. The substituted factor of equation $i$ is \[ \mathcal B_i(z,V;x)=\sum_{j=0}^{\ell-1} e_j\bigl(L_i(z;x)\bigr)h\bigl(L_i(z;x)\bigr)^jV^j \pmod{(z^J,V^\ell)}. \] Since $e_j$ is integral and has degree at most one, its substitution has denominator dividing $\Delta$; the denominator of $h(L_i)^j$ divides $\Delta^{2j}$. Thus, with \[ \Gamma=\Delta^{2\ell-1}, \] every coefficient of $\Gamma\mathcal B_i(z,V;x)$ is an integer. To bound the resulting integer numerators, put \[ E_\ell=\max\{1,\|e_0\|_1,\ldots,\|e_{\ell-1}\|_1\},\qquad B_1=\ell E_\ell(B+\Delta+2)^{2\ell-1}. \] For $A_i=\Delta L_i$, the two substituted factors have integer numerators $\Delta e_j(L_i)$ and $A_i(A_i-\Delta)$, with norms at most $E_\ell(B+\Delta)$ and $B(B+\Delta)$, respectively. Padding each term to denominator $\Gamma$ therefore gives \[ \|\Gamma\mathcal B_i\|_1\le B_1,\qquad B_1\ge\Gamma, \qquad \log B_1=O\!\left(\ell^2+ \ell\log(B+\Delta+2)+\log(\ell+1)\right). \] We next apply these estimates to the actual group sums. Write $S_g=S_{t,g}$ and $C_g=C_{t,g}$, and let $c_g$ be the number of rows of $C_g$. Thus $c=\sum_g c_g\le2\tau n$, and every coordinate of a Boolean measurement $C_gx_g$ lies in $[-D,D]\cap\mathbb Z$. Let $m_{\mathrm{test},g}$ be the number of equation factors assigned to group $g$ at $t$, so $\sum_g m_{\mathrm{test},g}=m_{\mathrm{test}}$. Their product $A_{g,U}(x;z)$ from \eqref{eq:group-polynomial} is represented in $\mathbb Q[z,V]/(z^J,V^\ell)$. It has denominator dividing $\Gamma^{m_{\mathrm{test},g}}$ and numerator norm, over that denominator, at most $B_1^{m_{\mathrm{test},g}}$. The neutral constant-one factors do not affect this bound. For a pair $U\subseteq E\subseteq[n]$ with $|E|d_H$. In the monomial basis $1,T,\ldots,T^{M_H-1}$, the Hermite interpolation matrix is the integer matrix \[ \mathsf V_{(t,j),u}= \begin{cases}\binom uj t^{u-j},&u\ge j,\\0,&u