Micromega_plugin.Micromega
val compOpp : comparison -> comparison
val nth : nat -> 'a1 list -> 'a1 -> 'a1
module Pos : sig ... end
module Coq_Pos : sig ... end
module N : sig ... end
val pow_pos : ( 'a1 -> 'a1 -> 'a1 ) -> 'a1 -> positive -> 'a1
module Z : sig ... end
val p0 : 'a1 -> 'a1 pol
val p1 : 'a1 -> 'a1 pol
val mkX : 'a1 -> 'a1 -> 'a1 pol
type ('tA, 'tX, 'aA, 'aF) gFormula =
| TT of kind |
| FF of kind |
| X of kind * 'tX |
| A of kind * 'tA * 'aA |
| AND of kind * ( 'tA, 'tX, 'aA, 'aF ) gFormula * ( 'tA, 'tX, 'aA, 'aF ) gFormula |
| OR of kind * ( 'tA, 'tX, 'aA, 'aF ) gFormula * ( 'tA, 'tX, 'aA, 'aF ) gFormula |
| NOT of kind * ( 'tA, 'tX, 'aA, 'aF ) gFormula |
| IMPL of kind
* ( 'tA, 'tX, 'aA, 'aF ) gFormula
* 'aF option
* ( 'tA, 'tX, 'aA, 'aF ) gFormula |
| IFF of kind * ( 'tA, 'tX, 'aA, 'aF ) gFormula * ( 'tA, 'tX, 'aA, 'aF ) gFormula |
| EQ of ( 'tA, 'tX, 'aA, 'aF ) gFormula * ( 'tA, 'tX, 'aA, 'aF ) gFormula |
type rtyp = __
type eKind = __
type ('x, 'annot) cnf = ( 'x, 'annot ) clause list
val cnf_tt : ( 'a1, 'a2 ) cnf
val cnf_ff : ( 'a1, 'a2 ) cnf
type ('term, 'annot, 'tX, 'aF) tFormula = ( 'term, 'tX, 'annot, 'aF ) gFormula
val is_cnf_tt : ( 'a1, 'a2 ) cnf -> bool
val is_cnf_ff : ( 'a1, 'a2 ) cnf -> bool
type ('term, 'annot, 'tX) to_constrT = {
mkTT : kind -> 'tX; |
mkFF : kind -> 'tX; |
mkA : kind -> 'term -> 'annot -> 'tX; |
mkAND : kind -> 'tX -> 'tX -> 'tX; |
mkOR : kind -> 'tX -> 'tX -> 'tX; |
mkIMPL : kind -> 'tX -> 'tX -> 'tX; |
mkIFF : kind -> 'tX -> 'tX -> 'tX; |
mkNOT : kind -> 'tX -> 'tX; |
mkEQ : 'tX -> 'tX -> 'tX; |
}
val aformula :
( 'a1, 'a2, 'a3 ) to_constrT ->
kind ->
( 'a1, 'a2, 'a3, 'a4 ) tFormula ->
'a3
val abst_simpl :
( 'a1, 'a2, 'a3 ) to_constrT ->
( 'a2 -> bool ) ->
kind ->
( 'a1, 'a2, 'a3, 'a4 ) tFormula ->
( 'a1, 'a2, 'a3, 'a4 ) tFormula
val abst_form :
( 'a1, 'a2, 'a3 ) to_constrT ->
( 'a2 -> bool ) ->
bool ->
kind ->
( 'a1, 'a2, 'a3, 'a4 ) tFormula ->
( 'a1, 'a2, 'a3, 'a4 ) tFormula
val cnf_checker :
( ('a1 * 'a2) list -> 'a3 -> bool ) ->
( 'a1, 'a2 ) cnf ->
'a3 list ->
bool
type 'c polC = 'c pol
val check_inconsistent :
'a1 ->
( 'a1 -> 'a1 -> bool ) ->
( 'a1 -> 'a1 -> bool ) ->
'a1 nFormula ->
bool
type zArithProof =
| DoneProof |
| RatProof of zWitness * zArithProof |
| CutProof of zWitness * zArithProof |
| SplitProof of z polC * zArithProof * zArithProof |
| EnumProof of zWitness * zWitness * zArithProof list |
| ExProof of positive * zArithProof |
val valid_cut_sign : op1 -> bool
val zChecker : z nFormula list -> zArithProof -> bool
val zTautoChecker : z formula bFormula -> zArithProof list -> bool