3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-26 06:07:01 +00:00
This commit is contained in:
Nikolaj Bjorner 2015-12-11 08:37:55 -08:00
commit aa415f3d58
5 changed files with 176 additions and 182 deletions

4
mk-2013.cmd Normal file
View file

@ -0,0 +1,4 @@
@echo off
rem Ocaml is VS2013, so need VS2013 command prompt for it to work!
python scripts/mk_make.py -b bld_dbg_2013 --java --ml --debug --vs --parallel=12

View file

@ -2021,7 +2021,7 @@ namespace z3 {
return expr(a.ctx(), Z3_mk_interpolant(a.ctx(), a)); return expr(a.ctx(), Z3_mk_interpolant(a.ctx(), a));
} }
check_result context::compute_interpolant(expr const& pat, params const& p, expr_vector& i, model& m) { inline check_result context::compute_interpolant(expr const& pat, params const& p, expr_vector& i, model& m) {
Z3_ast_vector interp = 0; Z3_ast_vector interp = 0;
Z3_model mdl = 0; Z3_model mdl = 0;
Z3_lbool r = Z3_compute_interpolant(*this, pat, p, &interp, &mdl); Z3_lbool r = Z3_compute_interpolant(*this, pat, p, &interp, &mdl);
@ -2038,7 +2038,7 @@ namespace z3 {
return to_check_result(r); return to_check_result(r);
} }
expr_vector context::get_interpolant(expr const& proof, expr const& pat, params const& p) { inline expr_vector context::get_interpolant(expr const& proof, expr const& pat, params const& p) {
return expr_vector(*this, Z3_get_interpolant(*this, proof, pat, p)); return expr_vector(*this, Z3_get_interpolant(*this, proof, pat, p));
} }

View file

@ -337,11 +337,7 @@ namespace Microsoft.Z3
/// </summary> /// </summary>
public bool IsInt public bool IsInt
{ {
get get { return Native.Z3_get_sort_kind(Context.nCtx, Native.Z3_get_sort(Context.nCtx, NativeObject)) == (uint)Z3_sort_kind.Z3_INT_SORT; }
{
return (Native.Z3_is_numeral_ast(Context.nCtx, NativeObject) != 0 &&
Native.Z3_get_sort_kind(Context.nCtx, Native.Z3_get_sort(Context.nCtx, NativeObject)) == (uint)Z3_sort_kind.Z3_INT_SORT);
}
} }
/// <summary> /// <summary>

View file

@ -415,10 +415,7 @@ public class Expr extends AST
**/ **/
public boolean isInt() public boolean isInt()
{ {
return (Native.isNumeralAst(getContext().nCtx(), getNativeObject()) && Native return Native.getSortKind(getContext().nCtx(), Native.getSort(getContext().nCtx(), getNativeObject())) == Z3_sort_kind.Z3_INT_SORT.toInt();
.getSortKind(getContext().nCtx(),
Native.getSort(getContext().nCtx(), getNativeObject())) == Z3_sort_kind.Z3_INT_SORT
.toInt());
} }
/** /**
@ -428,9 +425,7 @@ public class Expr extends AST
**/ **/
public boolean isReal() public boolean isReal()
{ {
return Native.getSortKind(getContext().nCtx(), return Native.getSortKind(getContext().nCtx(), Native.getSort(getContext().nCtx(), getNativeObject())) == Z3_sort_kind.Z3_REAL_SORT.toInt();
Native.getSort(getContext().nCtx(), getNativeObject())) == Z3_sort_kind.Z3_REAL_SORT
.toInt();
} }
/** /**

View file

@ -1545,7 +1545,6 @@ end
module Arithmetic = module Arithmetic =
struct struct
let is_int ( x : expr ) = let is_int ( x : expr ) =
(Z3native.is_numeral_ast (Expr.gnc x) (Expr.gno x)) &&
((sort_kind_of_int (Z3native.get_sort_kind (Expr.gnc x) (Z3native.get_sort (Expr.gnc x) (Expr.gno x)))) == INT_SORT) ((sort_kind_of_int (Z3native.get_sort_kind (Expr.gnc x) (Z3native.get_sort (Expr.gnc x) (Expr.gno x)))) == INT_SORT)
let is_arithmetic_numeral ( x : expr ) = (AST.is_app (Expr.ast_of_expr x)) && (FuncDecl.get_decl_kind (Expr.get_func_decl x) == OP_ANUM) let is_arithmetic_numeral ( x : expr ) = (AST.is_app (Expr.ast_of_expr x)) && (FuncDecl.get_decl_kind (Expr.get_func_decl x) == OP_ANUM)