Magnitude bounds and polynomial-time certificates for the integer lift tables #
Complexity/Computability/Circuit/Rational/Runtime/Lift/Defs.lean defines the list-level programs
coeffRow, testRows,
liftTable, and liftRows that materialize the integer Taylor test matrices and integer lift
tables at a grid point. This file bounds the magnitude and bit length of every value those programs
compute: each coefficient, each shift-and-add intermediate, each power, each partial product and
term, every prefix sum, and every entry. For n + 1 matrices, M residues and grid coordinates at
most H, all of them have at most Rational.liftBits n M H bits, which at the generator's
parameters is Rational.PolynomialBounds.logarithmic n s + 2. Using these bounds, it certifies that
coeffRows, testRows, liftTable, and liftRows are computable in polynomial time on
multi-tape Turing machines.
Main definitions #
Cslib.Circuits.Rational.liftBits: the bit-length budget of the lift program.Cslib.Circuits.Rational.coeffEntryBound,Cslib.Circuits.Rational.coeffRowBound: encoded length bounds on intermediate coefficient rows.
Main results #
Cslib.Circuits.Rational.intBits_coeffRow_le,Cslib.Circuits.Rational.intBits_test_le,Cslib.Circuits.Rational.intBits_lift_le,Cslib.Circuits.Rational.intBits_le_of_mem_liftRows: the bit-length bounds.Cslib.Circuits.Rational.intBits_le_of_mem_liftRows_parameters: at the generator's parameters, every entry has at mostlogConstant * (n + s + 1) ^ 22 + 2bits.Cslib.Circuits.Rational.length_encList_coeffRow_le: encoded length bound on intermediate coefficient rows.Cslib.Circuits.Rational.computableInPolyTime_coeffRow,Cslib.Circuits.Rational.computableInPolyTime_testRows,Cslib.Circuits.Rational.computableInPolyTime_liftTable,Cslib.Circuits.Rational.computableInPolyTime_liftRows,Cslib.Circuits.Rational.liftRows_polytime: polynomial-time certificates for the coefficient rows, the Taylor test matrix and the integer lift tables.
References #
Magnitude bounds #
Every prefix sum of an inner sum of a lift entry.
Bit lengths #
The bit-length budget of the lift program, for n + 1 matrices, M residues and grid
coordinates at most H. At the generator's parameters it is
PolynomialBounds.logarithmic n s + 2 (liftBits_parameters).
Instances For
At the generator's parameters, the bit-length budget is polynomial in n + s + 1.
The bit lengths of the values computed for the Taylor test matrix testRows M N a t: the
products of coefficients, the terms, every prefix sum of the terms of an entry, and the
entries.
The bit lengths of the values computed for the integer lift with the Taylor test matrix
testRows M N a t: the partial products and the terms, every prefix sum of an inner sum and of
the outer sum, the entries and the entries of the lift table.
Every entry of every integer lift table at a grid point with coordinates at most H has
at most liftBits n M H bits.
At the generator's parameters, every entry of every integer lift table at a grid point has
at most logConstant * (n + s + 1) ^ 22 + 2 bits.
Polynomial-time certificates #
Upper bound on the bit length of any entry of coeffRow c i for i ≤ k, where L is the
encoded length of c.
Instances For
Upper bound on the encoded length of coeffRow c i for i ≤ k, where L is the encoded
length of c.
Instances For
Every intermediate coefficient row up to stage k has encoded length bounded by
coeffRowBound.
One shift-and-add step of the coefficient recurrence is polynomial-time.
Computing the coefficient row coeffRow c k is polynomial-time for a binary integer c and a
unary degree k.
Computing the table of coefficient rows coeffRows c M is polynomial-time.
Computing one summand of a Taylor test matrix entry is polynomial-time.
Computing the list of summands of a Taylor test matrix entry is polynomial-time.
Computing one entry of the integer Taylor test matrix is polynomial-time.
Computing the integer Taylor test matrix testRows M N a t is polynomial-time.
Computing the signed cyclotomic regular-representation coefficient is polynomial-time.
Computing one summand of an integer lift entry is polynomial-time.
Computing the inner list of summands of an integer lift entry is polynomial-time.
Computing the list of inner sums of an integer lift entry is polynomial-time.
Computing one entry of the integer lift matrix is polynomial-time.
Computing the integer lift matrix liftTable M Dg T p r is polynomial-time.
Computing all n + 1 integer lift tables liftRows n N M Dg t p r at a grid point is
polynomial-time from unary parameters and coordinates.
Standalone polynomial-time certificate for liftRows on a 7-tuple of unary naturals.