Dense truncated bivariate jet arrays in polynomial time #
Appendix B.2 of OpenAI, The Exponential Time Hypothesis is False represents
elements of the truncated bivariate polynomial ring ℤ[V]/(V^ℓ)[z]/(z^J) as dense J × ℓ
tables of integer coefficients, stored in their unique representative modulo (z^J, V^ℓ).
Building on the rectangular integer table primitives (Cslib.IsTableShape, Cslib.rowEntry,
Cslib.tabulateTable) in Complexity/Computability/PolyTime/Int/Table.lean, this module provides
executable truncated jet operations on List (List ℤ) (Cslib.JetRows), proves exact coefficient
formulas and commutative-ring laws on (J, ℓ)-shaped arrays, establishes ℓ₁ coefficient-norm and
binary bit-length bounds for truncated 2D convolution, and certifies that every operation is
computable in polynomial time on multi-tape Turing machines
(Turing.MultiTapeTM.ComputableInPolyTime) with dimensions (J, ℓ) in unary and coefficient
tables in encList (encList encIntBin).
Main definitions #
Cslib.JetRows: aliasList (List ℤ)for denseJ × ℓcoefficient tables.Cslib.zeroJet,Cslib.constJet,Cslib.zJet,Cslib.vJet: zero, constant, and generator jet arrays.Cslib.addJet,Cslib.negJet,Cslib.subJet,Cslib.smulJet: linear operations onJ × ℓjet arrays.Cslib.shiftZJet,Cslib.shiftVJet: multiplication byzmoduloz^Jand byVmoduloV^ℓ.Cslib.convEntry,Cslib.convJet: truncated 2D Cauchy product inO(J^2 ℓ^2)integer operations.Cslib.jetL1Norm: theℓ₁coefficient norm∑ |c_{j, u}|of a list of rows.
Main results #
Cslib.rowEntry_zeroJet,Cslib.rowEntry_constJet,Cslib.rowEntry_addJet,Cslib.rowEntry_negJet,Cslib.rowEntry_subJet,Cslib.rowEntry_smulJet,Cslib.rowEntry_shiftZJet,Cslib.rowEntry_shiftVJet,Cslib.rowEntry_convJet: exact in-bounds coefficient formulas.Cslib.addJet_comm,Cslib.addJet_assoc,Cslib.convJet_comm,Cslib.convJet_assoc,Cslib.convJet_addJet,Cslib.addJet_convJet,Cslib.constJet_one_convJet,Cslib.convJet_constJet_one: commutative-ring identities on(J, ℓ)-shaped arrays.Cslib.jetL1Norm_addJet_le,Cslib.jetL1Norm_convJet_le: subadditivity and submultiplicativity of theℓ₁coefficient norm under truncated addition and 2D convolution.Cslib.size_natAbs_rowEntry_convJet_le,Cslib.length_encIntBin_mem_convJet_le: binary magnitude and encoded bit-length bounds on entries ofconvJet.Cslib.computableInPolyTime_zeroJet,Cslib.computableInPolyTime_constJet,Cslib.computableInPolyTime_addJet,Cslib.computableInPolyTime_negJet,Cslib.computableInPolyTime_subJet,Cslib.computableInPolyTime_smulJet,Cslib.computableInPolyTime_shiftZJet,Cslib.computableInPolyTime_shiftVJet,Cslib.computableInPolyTime_convJet: plainComputableInPolyTimecomposition rules and direct certificates (zeroJet_polytime, …,convJet_polytime).
References #
Dense list-of-rows representation of truncated bivariate jets in ℤ[V]/(V^ℓ)[z]/(z^J).
Instances For
Executable jet operations #
Coefficient (j, u) of the 2D Cauchy product of A and B, computed over List.range.
Instances For
Output shape and exact coefficient semantics #
Algebraic identities on (J, ℓ)-shaped jet arrays #
ℓ₁ coefficient norm and binary bit-length bounds #
Truncating any list of rows to (J, ℓ) cannot increase its ℓ₁ coefficient norm.
On a (J, ℓ)-shaped jet array, jetL1Norm equals the sum of in-bounds |rowEntry A j u|.
Submultiplicativity of the ℓ₁ coefficient norm under truncated 2D convolution
(OpenAI, The Exponential Time Hypothesis is False, Appendix B.2):
‖A * B mod (z^J, V^ℓ)‖₁ ≤ ‖A‖₁ · ‖B‖₁.
Entrywise max-magnitude bound for convJet: if entries of A and B have magnitudes at most
MA and MB, then every coefficient of convJet J ℓ A B has magnitude at most
J * ℓ * (MA * MB).
Binary magnitude-size bound for convJet: if stored entries of A and B have binary
magnitude size at most bA and bB, then every coefficient of convJet J ℓ A B has binary
magnitude size at most bA + bB + (J * ℓ).size.
Encoded bit-length bound for every stored entry of convJet: if stored entries of A and B
have encIntBin length at most bA + 1 and bB + 1, then every stored entry of
convJet J ℓ A B has encIntBin length at most bA + bB + (J * ℓ).size + 1.
Plain polynomial-time certificates #
zeroJet is computable in polynomial time for unary (J, ℓ).
constJet is computable in polynomial time for unary (J, ℓ) and binary c.
zJet is computable in polynomial time for unary (J, ℓ).
vJet is computable in polynomial time for unary (J, ℓ).
addJet is computable in polynomial time.
negJet is computable in polynomial time.
subJet is computable in polynomial time.
smulJet is computable in polynomial time.
shiftZJet is computable in polynomial time.
shiftVJet is computable in polynomial time.
Computing a single truncated 2D convolution coefficient convEntry is polynomial-time.
Truncated 2D convolution convJet is computable in polynomial time for unary (J, ℓ) and
dense List (List ℤ) arrays over encIntBin.
Direct polynomial-time certificate for zeroJet.
Direct polynomial-time certificate for constJet.
Direct polynomial-time certificate for addJet.
Direct polynomial-time certificate for negJet.
Direct polynomial-time certificate for subJet.
Direct polynomial-time certificate for smulJet.
Direct polynomial-time certificate for shiftZJet.
Direct polynomial-time certificate for shiftVJet.
Direct polynomial-time certificate for convJet.