Module Polynomial.WithProof
module WithProof constructs polynomials packed with the proof that their sign is correct.
type t= (LinPoly.t * op) * ProofFormat.prf_rule
val compare : t -> t -> intval annot : string -> t -> tval of_cstr : (cstr * ProofFormat.prf_rule) -> tval output : Stdlib.out_channel -> t -> unitout_channel chan cpretty-prints the constraintcover the channelchan
val output_sys : Stdlib.out_channel -> t list -> unitval zero : tzerorepresents the tautology (0=0)
val const : NumCompat.Q.t -> tconst nrepresents the tautology (n>=0)
val mult : LinPoly.t -> t -> tmult p q- returns
the polynomial p*q with its sign and proof.
- raises InvalidProof
if p is not a constant and p is not an equality
val cutting_plane : t -> t optioncutting_plane pdoes integer reasoning and adjust the constant to be integral
val linear_pivot : t list -> t -> Vect.var -> t -> t optionlinear_pivot sys p x q- returns
the polynomial
qwherexis eliminated using the polynomialpThe pivoting operation is only defined if- p is linear in x i.e p = a.x+b and x neither occurs in a and b
- The pivoting also requires some sign conditions for
a