26
26
let (major, minor, build, revision) = Z3native. get_version ()
27
27
28
28
let full_version : string = Z3native. get_full_version()
29
-
29
+
30
30
let to_string =
31
31
string_of_int major ^ " ." ^
32
32
string_of_int minor ^ " ." ^
@@ -45,12 +45,12 @@ let mk_list f n =
45
45
46
46
let check_int32 v = v = Int32. to_int (Int32. of_int v)
47
47
48
- let mk_int_expr ctx v ty =
48
+ let mk_int_expr ctx v ty =
49
49
if not (check_int32 v) then
50
50
Z3native. mk_numeral ctx (string_of_int v) ty
51
51
else
52
52
Z3native. mk_int ctx v ty
53
-
53
+
54
54
let mk_context (settings :(string * string) list ) =
55
55
let cfg = Z3native. mk_config () in
56
56
let f e = Z3native. set_param_value cfg (fst e) (snd e) in
@@ -62,6 +62,9 @@ let mk_context (settings:(string * string) list) =
62
62
Z3native. enable_concurrent_dec_ref res;
63
63
res
64
64
65
+ let interrupt (ctx :context ) =
66
+ Z3native. interrupt ctx
67
+
65
68
module Symbol =
66
69
struct
67
70
type symbol = Z3native .symbol
@@ -721,7 +724,7 @@ struct
721
724
let mk_exists = _internal_mk_quantifier ~universal: false
722
725
let mk_exists_const = _internal_mk_quantifier_const ~universal: false
723
726
let mk_lambda_const ctx bound body = Z3native. mk_lambda_const ctx (List. length bound) bound body
724
- let mk_lambda ctx bound body =
727
+ let mk_lambda ctx bound body =
725
728
let names = List. map (fun (x ,_ ) -> x) bound in
726
729
let sorts = List. map (fun (_ ,y ) -> y) bound in
727
730
Z3native. mk_lambda ctx (List. length bound) sorts names body
@@ -917,10 +920,10 @@ struct
917
920
918
921
let mk_sort_s (ctx :context ) (name :string ) (constructors :Constructor.constructor list ) =
919
922
mk_sort ctx (Symbol. mk_string ctx name) constructors
920
-
923
+
921
924
let mk_sort_ref (ctx : context ) (name :Symbol.symbol ) =
922
925
Z3native. mk_datatype_sort ctx name
923
-
926
+
924
927
let mk_sort_ref_s (ctx : context ) (name : string ) =
925
928
mk_sort_ref ctx (Symbol. mk_string ctx name)
926
929
@@ -1249,7 +1252,7 @@ end
1249
1252
module Seq =
1250
1253
struct
1251
1254
let mk_seq_sort = Z3native. mk_seq_sort
1252
- let is_seq_sort = Z3native. is_seq_sort
1255
+ let is_seq_sort = Z3native. is_seq_sort
1253
1256
let mk_re_sort = Z3native. mk_re_sort
1254
1257
let is_re_sort = Z3native. is_re_sort
1255
1258
let mk_string_sort = Z3native. mk_string_sort
@@ -1264,7 +1267,7 @@ struct
1264
1267
let mk_seq_concat ctx args = Z3native. mk_seq_concat ctx (List. length args) args
1265
1268
let mk_seq_prefix = Z3native. mk_seq_prefix
1266
1269
let mk_seq_suffix = Z3native. mk_seq_suffix
1267
- let mk_seq_contains = Z3native. mk_seq_contains
1270
+ let mk_seq_contains = Z3native. mk_seq_contains
1268
1271
let mk_seq_extract = Z3native. mk_seq_extract
1269
1272
let mk_seq_replace = Z3native. mk_seq_replace
1270
1273
let mk_seq_at = Z3native. mk_seq_at
@@ -1889,9 +1892,9 @@ struct
1889
1892
| _ -> UNKNOWN
1890
1893
1891
1894
let get_model x =
1892
- try
1895
+ try
1893
1896
let q = Z3native. solver_get_model (gc x) x in
1894
- if Z3native. is_null_model q then None else Some q
1897
+ if Z3native. is_null_model q then None else Some q
1895
1898
with | _ -> None
1896
1899
1897
1900
let get_proof x =
@@ -1916,6 +1919,9 @@ struct
1916
1919
let add_simplifier = Z3native. solver_add_simplifier
1917
1920
let translate x = Z3native. solver_translate (gc x) x
1918
1921
let to_string x = Z3native. solver_to_string (gc x) x
1922
+
1923
+ let interrupt (ctx :context ) (s :solver ) =
1924
+ Z3native. solver_interrupt ctx s
1919
1925
end
1920
1926
1921
1927
0 commit comments