Sparse exact polynomial certificate #
This module implements a computable dense representation of trivariate
integer polynomials. Its proved evaluator is used to kernel-check every
coefficient in the four Bellman charts without materializing enormous
ring_nf goals.
A dense polynomial represented by its coefficient list, in increasing degree order.
- coeffs : List R
Coefficients in increasing degree order; trailing zero coefficients are permitted.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
The dense representation of a constant polynomial.
Instances For
Coefficientwise addition, extending the shorter list by zeros.
Equations
- FD1D.BellmanCertificate.DPoly.addCoeffs [] x✝ = x✝
- FD1D.BellmanCertificate.DPoly.addCoeffs x✝ [] = x✝
- FD1D.BellmanCertificate.DPoly.addCoeffs (a :: p) (b :: q) = (a + b) :: FD1D.BellmanCertificate.DPoly.addCoeffs p q
Instances For
Convolution of coefficient lists for polynomial multiplication.
Equations
- FD1D.BellmanCertificate.DPoly.mulCoeffs [] x✝ = []
- FD1D.BellmanCertificate.DPoly.mulCoeffs (a :: p) x✝ = FD1D.BellmanCertificate.DPoly.addCoeffs (List.map (fun (x : R) => a * x) x✝) (0 :: FD1D.BellmanCertificate.DPoly.mulCoeffs p x✝)
Instances For
Equations
Equations
Equations
Equations
- FD1D.BellmanCertificate.DPoly.instSubOfNegOfAdd = { sub := fun (p q : FD1D.BellmanCertificate.DPoly R) => p + -q }
Equations
Horner evaluation of a coefficient list after applying the coefficient map.
Equations
- FD1D.BellmanCertificate.DPoly.evalCoeffs f x [] = 0
- FD1D.BellmanCertificate.DPoly.evalCoeffs f x (a :: p) = f a + x * FD1D.BellmanCertificate.DPoly.evalCoeffs f x p
Instances For
Integer polynomials in three variables, represented by nested dense polynomials.
Equations
Instances For
The outermost variable of a three-variable polynomial.
Instances For
The middle variable of a three-variable polynomial.
Equations
Instances For
The innermost variable of a three-variable polynomial.
Equations
Instances For
Real evaluation of an integer polynomial at its single argument.
Equations
- FD1D.BellmanCertificate.eval1 p z = FD1D.BellmanCertificate.DPoly.eval (fun (c : ℤ) => ↑c) z p
Instances For
Real evaluation of a nested polynomial at the middle and innermost variables.
Equations
- FD1D.BellmanCertificate.eval2 p v z = FD1D.BellmanCertificate.DPoly.eval (fun (q : FD1D.BellmanCertificate.DPoly ℤ) => FD1D.BellmanCertificate.eval1 q z) v p
Instances For
Real evaluation of a three-variable integer polynomial.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Polynomial numerator used to certify the Bellman inequality in affine coordinates.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Homogenized Bellman polynomial for a rational coordinate with the given denominator.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Real-valued expression corresponding to the affine Bellman polynomial.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Real-valued expression corresponding to the homogenized Bellman polynomial.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Bellman certificate in the positive projective chart.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Bellman certificate after the first negative-coordinate chart substitution.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Bellman certificate after the second negative-coordinate chart substitution.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Bellman certificate after the third negative-coordinate chart substitution.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Projective Bellman certificate at the endpoint coordinate 1 / 2.
Equations
Instances For
Decidable check of nonnegativity of every coefficient in two variables.
Equations
Instances For
Decidable check of nonnegativity of every coefficient in three variables.
Equations
Instances For
Number of nonzero coefficients in a dense polynomial.
Equations
- FD1D.BellmanCertificate.nonzeroCount1 p = List.countP (fun (x : ℤ) => decide (x ≠ 0)) p.coeffs
Instances For
Number of nonzero integer coefficients in a two-variable polynomial.
Equations
Instances For
Number of nonzero integer coefficients in a three-variable polynomial.