aboutsummaryrefslogtreecommitdiffstats
path: root/src/extraction/sat_checker.mli
diff options
context:
space:
mode:
authorChantal Keller <Chantal.Keller@inria.fr>2015-01-12 16:28:10 +0100
committerChantal Keller <Chantal.Keller@inria.fr>2015-01-12 16:28:10 +0100
commitcfb4587e26623318f432c7e3e21711afc2b966e7 (patch)
treea90c6f372633458aa0766510bcfdc4682eaa8f6a /src/extraction/sat_checker.mli
parent1e10dcc783b82269cc3fe3bb7419b9c1cc9e0fa7 (diff)
downloadsmtcoq-cfb4587e26623318f432c7e3e21711afc2b966e7.tar.gz
smtcoq-cfb4587e26623318f432c7e3e21711afc2b966e7.zip
Initial import of SMTCoq v1.2
Diffstat (limited to 'src/extraction/sat_checker.mli')
-rw-r--r--src/extraction/sat_checker.mli169
1 files changed, 169 insertions, 0 deletions
diff --git a/src/extraction/sat_checker.mli b/src/extraction/sat_checker.mli
new file mode 100644
index 0000000..5fa2757
--- /dev/null
+++ b/src/extraction/sat_checker.mli
@@ -0,0 +1,169 @@
+val negb : bool -> bool
+
+type 'a list =
+| Nil
+| Cons of 'a * 'a list
+
+val existsb : ('a1 -> bool) -> 'a1 list -> bool
+
+type int = ExtrNative.uint
+
+val lsl0 : int -> int -> int
+
+val lsr0 : int -> int -> int
+
+val land0 : int -> int -> int
+
+val lxor0 : int -> int -> int
+
+val sub : int -> int -> int
+
+val eqb : int -> int -> bool
+
+val foldi_cont :
+ (int -> ('a1 -> 'a2) -> 'a1 -> 'a2) -> int -> int -> ('a1 -> 'a2) -> 'a1 ->
+ 'a2
+
+val foldi_down_cont :
+ (int -> ('a1 -> 'a2) -> 'a1 -> 'a2) -> int -> int -> ('a1 -> 'a2) -> 'a1 ->
+ 'a2
+
+val is_zero : int -> bool
+
+val is_even : int -> bool
+
+val compare : int -> int -> ExtrNative.comparison
+
+val foldi : (int -> 'a1 -> 'a1) -> int -> int -> 'a1 -> 'a1
+
+val foldi_down : (int -> 'a1 -> 'a1) -> int -> int -> 'a1 -> 'a1
+
+type 'a array = 'a ExtrNative.parray
+
+val make : int -> 'a1 -> 'a1 array
+
+val get : 'a1 array -> int -> 'a1
+
+val set : 'a1 array -> int -> 'a1 -> 'a1 array
+
+val length : 'a1 array -> int
+
+val to_list : 'a1 array -> 'a1 list
+
+val fold_left : ('a1 -> 'a2 -> 'a1) -> 'a1 -> 'a2 array -> 'a1
+
+val foldi_right : (int -> 'a1 -> 'a2 -> 'a2) -> 'a1 array -> 'a2 -> 'a2
+
+module Valuation :
+ sig
+ type t = int -> bool
+ end
+
+module Var :
+ sig
+ val _true : int
+
+ val _false : int
+
+ val interp : Valuation.t -> int -> bool
+ end
+
+module Lit :
+ sig
+ val is_pos : int -> bool
+
+ val blit : int -> int
+
+ val lit : int -> int
+
+ val neg : int -> int
+
+ val nlit : int -> int
+
+ val _true : int
+
+ val _false : int
+
+ val eqb : int -> int -> bool
+
+ val interp : Valuation.t -> int -> bool
+ end
+
+module C :
+ sig
+ type t = int list
+
+ val interp : Valuation.t -> t -> bool
+
+ val _true : t
+
+ val is_false : t -> bool
+
+ val or_aux : (t -> t -> t) -> int -> t -> t -> int list
+
+ val coq_or : t -> t -> t
+
+ val resolve_aux : (t -> t -> t) -> int -> t -> t -> t
+
+ val resolve : t -> t -> t
+ end
+
+module S :
+ sig
+ type t = C.t array
+
+ val get : t -> int -> C.t
+
+ val internal_set : t -> int -> C.t -> t
+
+ val make : int -> t
+
+ val insert : int -> int list -> int list
+
+ val sort_uniq : int list -> int list
+
+ val set_clause : t -> int -> C.t -> t
+
+ val set_resolve : t -> int -> int array -> t
+ end
+
+val afold_left :
+ 'a1 -> ('a1 -> 'a1 -> 'a1) -> ('a2 -> 'a1) -> 'a2 array -> 'a1
+
+type 'step _trace_ = 'step array array
+
+val _checker_ :
+ (S.t -> 'a1 -> S.t) -> (C.t -> bool) -> S.t -> 'a1 _trace_ -> int -> bool
+
+module Sat_Checker :
+ sig
+ type step =
+ | Res of int * int array
+
+ val step_rect : (int -> int array -> 'a1) -> step -> 'a1
+
+ val step_rec : (int -> int array -> 'a1) -> step -> 'a1
+
+ val resolution_checker :
+ (C.t -> bool) -> S.t -> step _trace_ -> int -> bool
+
+ type dimacs = int array array
+
+ val coq_C_interp_or : Valuation.t -> int array -> bool
+
+ val valid : Valuation.t -> dimacs -> bool
+
+ type certif =
+ | Certif of int * step _trace_ * int
+
+ val certif_rect : (int -> step _trace_ -> int -> 'a1) -> certif -> 'a1
+
+ val certif_rec : (int -> step _trace_ -> int -> 'a1) -> certif -> 'a1
+
+ val add_roots : S.t -> dimacs -> S.t
+
+ val checker : dimacs -> certif -> bool
+
+ val interp_var : (int -> bool) -> int -> bool
+ end
+