Module Micromega_plugin.Polynomial

val max_nb_cstr : int Stdlib.ref
type var = int
module Monomial : sig ... end
module MonMap : sig ... end
module Poly : sig ... end

Representation of polonomial with rational coefficient. a1.m1 + ... + c where

type cstr = {
coeffs : Vect.t;
op : op;
cst : Micromega_core_plugin.NumCompat.Q.t;
}
and op =
| Eq
| Ge
| Gt
val compare_op : op -> op -> int
val opAdd : op -> op -> op
val is_strict : cstr -> bool

is_strict c

  • returns

    whether the constraint is strict i.e. c.op = Gt

exception Strict
module LinPoly : sig ... end

Linear(ised) polynomials represented as a Vect.t i.e a sorted association list. The constant is the coefficient of the variable 0

module ProofFormat : sig ... end

Proof format used by the proof-generating procedures. It is fairly close to Coq format but a bit more liberal.

val output_cstr : Stdlib.out_channel -> cstr -> unit
module WithProof : sig ... end

module WithProof constructs polynomials packed with the proof that their sign is correct.

module BoundWithProof : sig ... end