Module Micromega_plugin.Certificate
module Mc = Micromega
val use_simplex : bool Stdlib.ref
use_simplex
is bound to the Coq option Simplex. If set, use the Simplex method, otherwise use Fourier
type ('prf, 'model) res
=
|
Prf of 'prf
|
Model of 'model
|
Unknown
type zres
= (Mc.zArithProof, int * Mc.z list) res
type qres
= (Mc.q Mc.psatz, int * Mc.q list) res
val dump_file : string option Stdlib.ref
dump_file
is bound to the Coq option Dump Arith. If set to somefile
, arithmetic goals are dumped in filexxx.v
val q_cert_of_pos : Sos_types.positivstellensatz -> Mc.q Mc.psatz
q_cert_of_pos prf
converts a Sos proof into a rational Coq proof
val z_cert_of_pos : Sos_types.positivstellensatz -> Mc.z Mc.psatz
z_cert_of_pos prf
converts a Sos proof into an integer Coq proof
val lia : bool -> int -> (Mc.z Mc.pExpr * Mc.op1) list -> zres
lia enum depth sys
generates an unsat proof for the linear constraints insys
. If the Simplex option is set, any failure to find a proof should be considered as a bug.
val nlia : bool -> int -> (Mc.z Mc.pExpr * Mc.op1) list -> zres
nlia enum depth sys
generates an unsat proof for the non-linear constraints insys
. The solver is incomplete -- the problem is undecidable