Module Micromega_plugin.Certificate
module Mc = Micromega
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 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 : int -> (Mc.z Mc.pExpr * Mc.op1) list -> zres
lia depth sys
generates an unsat proof for the linear constraints insys
.
val nlia : int -> (Mc.z Mc.pExpr * Mc.op1) list -> zres
nlia depth sys
generates an unsat proof for the non-linear constraints insys
. The solver is incomplete -- the problem is undecidable