Exact matrix evaluation and consequences of hitting lists #
These deductions use OpenAI's rational-formula semantics. Inverse is partial: every evaluated inverse node must have a genuine two-sided inverse.
A hitting list detects nonzeroness by an invertible value. With two extra syntax nodes in the
node-count bound, it also detects admissibility, including for identically zero formulas: at a
defined point, either f or f + 1 is nonzero. The executable tests here have correctness
proofs; no polynomial bound for their rational arithmetic is asserted.
Main results #
Cslib.Circuits.Rational.Formula.evalMatrix?_eq_some_iff: the executable evaluation returns exactly the values of the evaluation relation.Cslib.Circuits.Rational.admissible_nonzero_or_add_one: at a defined point,forf + 1is nonzero.Cslib.Circuits.Rational.Hits.nonzero_iff,Cslib.Circuits.Rational.Hits.admissible_iff,Cslib.Circuits.Rational.Hits.admissible_inv_iff_nonzero: a hitting list detects nonzeroness and admissibility.Cslib.Circuits.Rational.Hits.admissibilityTest_eq_true_iff,Cslib.Circuits.Rational.Hits.nonzeroTest_eq_true_iff: the finite tests decide admissibility and nonzeroness.
References #
A nonzero evaluation already supplies a point in the formula's domain.
theorem Cslib.Circuits.Rational.admissible_nonzero_or_add_one {n : ℕ} (f : Formula n) (hf : Admissible f) :
At any defined point, either the value of f or the value of f + 1 is nonzero.