3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-15 13:28:47 +00:00

Merge branch 'unstable' of https://github.com/Z3Prover/z3 into unstable

This commit is contained in:
Nikolaj Bjorner 2015-08-18 19:10:44 -07:00
commit 7c87096237
2 changed files with 21 additions and 29 deletions

View file

@ -2879,8 +2879,8 @@ struct
let mk_opt (ctx : context) = let mk_opt (ctx : context) =
let res : opt = { m_ctx = ctx; let res : opt = { m_ctx = ctx;
m_n_obj = null ; m_n_obj = null ;
inc_ref = Z3native.optimzie_inc_ref ; inc_ref = Z3native.optimize_inc_ref ;
dec_ref = Z3native.optimzie_dec_ref } in dec_ref = Z3native.optimize_dec_ref } in
(z3obj_sno res ctx (Z3native.mk_optimize (context_gno ctx))) ; (z3obj_sno res ctx (Z3native.mk_optimize (context_gno ctx))) ;
(z3obj_create res) ; (z3obj_create res) ;
res res
@ -2896,27 +2896,27 @@ struct
Params.ParamDescrs.param_descrs_of_ptr (z3obj_gc x) (Z3native.optimize_get_param_descrs (z3obj_gnc x) (z3obj_gno x)) Params.ParamDescrs.param_descrs_of_ptr (z3obj_gc x) (Z3native.optimize_get_param_descrs (z3obj_gnc x) (z3obj_gno x))
let add ( x : opt ) ( constraints : expr list ) = let add ( x : opt ) ( constraints : expr list ) =
let f e = (Z3native.optimize_add (z3obj_gnc x) (z3obj_gno x) (Expr.gno e)) in let f e = (Z3native.optimize_assert (z3obj_gnc x) (z3obj_gno x) (Expr.gno e)) in
List.iter f constraints List.iter f constraints
let add_soft ( x : opt) ( e : Expr.expr) ( w : int) ( s : string ) = let add_soft ( x : opt ) ( e : Expr.expr) ( w : string ) ( s : Symbol.symbol ) =
mk_handle x (Z3native.optimize_add_soft (z3obj_gnc x) (z3obj_gno x) (Expr.gno e) w s) mk_handle x (Z3native.optimize_assert_soft (z3obj_gnc x) (z3obj_gno x) (Expr.gno e) w (Symbol.gno s))
let maximize ( x : opt) ( e : Expr.expr ) = let maximize ( x : opt ) ( e : Expr.expr ) =
mk_handle x (Z3native.optimize_maximize (z3obj_gnc x) (z3obj_gno x) (Expr.gno e)) mk_handle x (Z3native.optimize_maximize (z3obj_gnc x) (z3obj_gno x) (Expr.gno e))
let minimize ( x : opt) ( e : Expr.expr ) = let minimize ( x : opt ) ( e : Expr.expr ) =
mk_handle x (Z3native.optimize_minimize (z3obj_gnc x) (z3obj_gno x) (Expr.gno e)) mk_handle x (Z3native.optimize_minimize (z3obj_gnc x) (z3obj_gno x) (Expr.gno e))
let check ( x : opt ) = let check ( x : opt ) =
let r = lbool_of_int (Z3native.optimize_check_sat (z3obj_gnc x) (z3obj_gno x) in let r = lbool_of_int (Z3native.optimize_check (z3obj_gnc x) (z3obj_gno x)) in
match r with match r with
| L_TRUE -> SATISFIABLE | L_TRUE -> Solver.SATISFIABLE
| L_FALSE -> UNSATISFIABLE | L_FALSE -> Solver.UNSATISFIABLE
| _ -> UNKNOWN | _ -> Solver.UNKNOWN
let get_model ( x : opt ) = let get_model ( x : opt ) =
@ -2926,17 +2926,13 @@ struct
else else
Some (Model.create (z3obj_gc x) q) Some (Model.create (z3obj_gc x) q)
let get_lower ( x : handle ) = let get_lower ( x : handle ) ( idx : int ) =
expr_of_ptr (z3obj_gnc x.opt) (Z3native.optimize_get_lower (z3obj_gnc x) (z3obj_gno x) h.h) expr_of_ptr (z3obj_gc x.opt) (Z3native.optimize_get_lower (z3obj_gnc x.opt) (z3obj_gno x.opt) idx)
let get_upper ( x : handle ) = let get_upper ( x : handle ) ( idx : int ) =
expr_of_ptr (z3obj_gnc x.opt) (Z3native.optimize_get_upper (z3obj_gnc x) (z3obj_gno x) h.h) expr_of_ptr (z3obj_gc x.opt) (Z3native.optimize_get_upper (z3obj_gnc x.opt) (z3obj_gno x.opt) idx)
let push ( x : opt ) = Z3native.optimize_push (z3obj_gnc x) (z3obj_gno x)
let get_value ( x : handle ) =
expr_of_ptr (z3obj_gnc x.opt) (Z3native.optimize_get_value (z3obj_gnc x) (z3obj_gno x) h.h)
let push ( x : opt ) = Z3native.optimize_push (z3obj_gnc x) (z3obj_gno x) n
let pop ( x : opt ) = Z3native.optimize_pop (z3obj_gnc x) (z3obj_gno x) let pop ( x : opt ) = Z3native.optimize_pop (z3obj_gnc x) (z3obj_gno x)

View file

@ -3257,7 +3257,7 @@ sig
Supply integer weight and string that identifies a group Supply integer weight and string that identifies a group
of soft constraints. of soft constraints.
*) *)
val add_soft : optimize -> Expr.expr -> int -> string -> handle val add_soft : optimize -> Expr.expr -> string -> Symbol.symbol -> handle
(** Add maximization objective. (** Add maximization objective.
@ -3275,19 +3275,15 @@ sig
(** Retrieve model from satisfiable context *) (** Retrieve model from satisfiable context *)
val get_model : optimize -> Model.model val get_model : optimize -> Model.model option
(** Retrieve lower bound in current model for handle *) (** Retrieve lower bound in current model for handle *)
val get_lower : handle -> Expr.expr val get_lower : handle -> int -> Expr.expr
(** Retrieve upper bound in current model for handle *) (** Retrieve upper bound in current model for handle *)
val get_upper : handle -> Expr.expr val get_upper : handle -> int -> Expr.expr
(** Retrieve value in current model for handle *)
val get_value : handle -> Expr.expr
(** Creates a backtracking point. (** Creates a backtracking point.