Rational hitting lists, nonzeroness, and admissibility #
A noncommutative rational formula is nonzero if it has a defined nonzero value at some
substitution of square rational matrices of positive dimension, and admissible if it is defined
at some such substitution. For all n and s there is an explicit, executable list of
substitutions of rational matrices, of dimension and encoding length polynomial in n + s, at
which every admissible nonzero formula in n variables with at most s nodes takes an invertible
value somewhere (hittingList_hits). The construction is OpenAI's.
The list yields executable tests for nonzeroness and admissibility, by exact rational matrix
evaluation. The admissibility test needs a list for two extra syntax nodes: if f has a defined
value, either f or f + 1 has a nonzero value. The correctness theorems do not assert
polynomial bit complexity of formula evaluation. The tests are deductions from the source result,
without a claim of new priority. The generator's running time is bounded in
Complexity.Computability.Circuit.Rational.Runtime: Cslib.Circuits.Rational.hittingList_polytime
computes the encoding encodeOutput (hittingList n s) tidily in polynomial time from unary
(n, s).
Main definitions #
Cslib.Circuits.Rational.hittingList: the list of matrix substitutions fornvariables andsnodes.Cslib.Circuits.Rational.Formula.admissible?,Cslib.Circuits.Rational.Formula.nonzero?: the executable tests.
Main results #
Cslib.Circuits.Rational.hittingList_hits: the list hits every admissible nonzero formula with at mostsnodes; fors = 0this isCslib.Circuits.Rational.hits_zero.Cslib.Circuits.Rational.hittingList_dimension_le,Cslib.Circuits.Rational.hittingList_encoding_length_le: polynomial bounds on the dimension and on the length of the binary encoding.Cslib.Circuits.Rational.admissible_inv_iff_nonzero: the inverse of a formula is admissible exactly when the formula is nonzero.Cslib.Circuits.Rational.Admissible.exists_dimension_le: an admissible formula has a witness of polynomially bounded dimension.Cslib.Circuits.Rational.Formula.admissible?_eq_true_iff,Cslib.Circuits.Rational.Formula.nonzero?_eq_true_iff: the tests are correct, so admissibility and nonzeroness are decidable.
References #
The explicit, executable list of rational matrix substitutions.
Instances For
Every list hits the formulas with at most 0 nodes, since every formula has a node.
The generated list hits every admissible nonzero formula with at most s nodes at an invertible
value. This holds for all n and s; for s = 0 it is hits_zero.
The generated matrices have polynomially bounded dimension.
The complete reduced-rational binary encoding has polynomial length, for all n and s,
including n = 0. The constant PolynomialBounds.outputConstant differs from the source's, which
assumes 1 ≤ n: covering n = 0 raises the grid-size coefficient from 24577 to 49153.
Some matrix evaluation of the inverse is defined exactly when the formula is nonzero.
Test whether the formula has a defined positive-dimensional rational matrix evaluation, by
exact evaluation on the hitting list for f.nodeCount + 2 nodes: the two extra nodes cover
f + 1, which is nonzero wherever f is defined and zero.
Instances For
Test whether the formula has a defined nonzero rational matrix evaluation, by searching the
hitting list for f.nodeCount + 2 nodes for an invertible value. A list for f.nodeCount nodes
would suffice for this test; the same list as for Formula.admissible? is used.
Instances For
The generated finite domain test is correct, with no promise on the formula. It uses that the
list hits formulas with f.nodeCount + 2 nodes.
Computed decidability of the existence of a defined matrix evaluation.