mirror of
https://github.com/Z3Prover/z3
synced 2025-04-06 17:44:08 +00:00
Merge branch 'working' of https://z3-1/gw/git/z3 into working
This commit is contained in:
commit
9ad4b5bc0f
|
@ -350,7 +350,7 @@ uninstall:
|
|||
@rm -f $(PREFIX)/include/z3_macros.h
|
||||
@rm -f $(PREFIX)/include/z3++.h
|
||||
|
||||
install-python: $(BIN_DIR)/lib$(Z3).@SO_EXT@
|
||||
install-z3py: $(BIN_DIR)/lib$(Z3).@SO_EXT@
|
||||
@if test $(HAS_PYTHON) -eq 0; then echo "Python is not available in your system."; exit 1; fi
|
||||
@echo "Installing Python bindings at $(PYTHON_PACKAGE_DIR)."
|
||||
@$(PYTHON) python/example.py > /dev/null
|
||||
|
@ -361,8 +361,9 @@ install-python: $(BIN_DIR)/lib$(Z3).@SO_EXT@
|
|||
@cp python/z3tactics.pyc $(PYTHON_PACKAGE_DIR)
|
||||
@cp python/z3printer.pyc $(PYTHON_PACKAGE_DIR)
|
||||
@cp $(BIN_DIR)/lib$(Z3).@SO_EXT@ $(PYTHON_PACKAGE_DIR)
|
||||
@if python python/z3test.py; then echo "Z3Py was successfully installed."; else echo "Failed to execute Z3Py regressions..."; exit 1; fi
|
||||
|
||||
uninstall-python:
|
||||
uninstall-z3py:
|
||||
@if test $(HAS_PYTHON) -eq 0; then echo "Python is not available in your system."; exit 1; fi
|
||||
@echo "Uninstalling Python bindings from $(PYTHON_PACKAGE_DIR)."
|
||||
@rm -f $(PYTHON_PACKAGE_DIR)/z3.pyc
|
||||
|
|
|
@ -50,7 +50,7 @@ namespace Microsoft.Z3
|
|||
Contract.Requires(settings != null);
|
||||
|
||||
IntPtr cfg = Native.Z3_mk_config();
|
||||
foreach(KeyValuePair<string,string> kv in settings)
|
||||
foreach (KeyValuePair<string, string> kv in settings)
|
||||
Native.Z3_set_param_value(cfg, kv.Key, kv.Value);
|
||||
m_ctx = Native.Z3_mk_context_rc(cfg);
|
||||
Native.Z3_del_config(cfg);
|
||||
|
@ -88,7 +88,7 @@ namespace Microsoft.Z3
|
|||
/// </summary>
|
||||
internal Symbol[] MkSymbols(string[] names)
|
||||
{
|
||||
Contract.Ensures(names == null || Contract.Result<Symbol[]>() != null);
|
||||
Contract.Ensures(names == null || Contract.Result<Symbol[]>() != null);
|
||||
Contract.Ensures(names != null || Contract.Result<Symbol[]>() == null);
|
||||
Contract.Ensures(Contract.Result<Symbol[]>() == null || Contract.Result<Symbol[]>().Length == names.Length);
|
||||
Contract.Ensures(Contract.Result<Symbol[]>() == null || Contract.ForAll(Contract.Result<Symbol[]>(), s => s != null));
|
||||
|
@ -129,7 +129,7 @@ namespace Microsoft.Z3
|
|||
if (m_intSort == null) m_intSort = new IntSort(this); return m_intSort;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves the Real sort of the context.
|
||||
|
@ -204,7 +204,7 @@ namespace Microsoft.Z3
|
|||
Contract.Requires(domain != null);
|
||||
Contract.Requires(range != null);
|
||||
Contract.Ensures(Contract.Result<ArraySort>() != null);
|
||||
|
||||
|
||||
CheckContextMatch(domain);
|
||||
CheckContextMatch(range);
|
||||
return new ArraySort(this, domain, range);
|
||||
|
@ -392,9 +392,9 @@ namespace Microsoft.Z3
|
|||
Contract.Assume(Contract.ForAll(constructor, arr => arr != null), "Clousot does not support yet quantified formula on multidimensional arrays");
|
||||
CheckContextMatch(constructor);
|
||||
cla[i] = new ConstructorList(this, constructor);
|
||||
n_constr[i] = cla[i].NativeObject;
|
||||
n_constr[i] = cla[i].NativeObject;
|
||||
}
|
||||
IntPtr[] n_res = new IntPtr[n];
|
||||
IntPtr[] n_res = new IntPtr[n];
|
||||
Native.Z3_mk_datatypes(nCtx, n, Symbol.ArrayToNative(names), n_res, n_constr);
|
||||
DatatypeSort[] res = new DatatypeSort[n];
|
||||
for (uint i = 0; i < n; i++)
|
||||
|
@ -526,7 +526,7 @@ namespace Microsoft.Z3
|
|||
|
||||
CheckContextMatch(range);
|
||||
return new FuncDecl(this, MkSymbol(name), null, range);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a fresh constant function declaration with a name prefixed with <paramref name="prefix"/>.
|
||||
|
@ -728,7 +728,7 @@ namespace Microsoft.Z3
|
|||
CheckContextMatch(f);
|
||||
CheckContextMatch(args);
|
||||
return Expr.Create(this, f, args);
|
||||
}
|
||||
}
|
||||
|
||||
#region Propositional
|
||||
/// <summary>
|
||||
|
@ -800,7 +800,7 @@ namespace Microsoft.Z3
|
|||
CheckContextMatch(a);
|
||||
return new BoolExpr(this, Native.Z3_mk_not(nCtx, a.NativeObject));
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Create an expression representing an if-then-else: <c>ite(t1, t2, t3)</c>.
|
||||
/// </summary>
|
||||
|
@ -895,7 +895,7 @@ namespace Microsoft.Z3
|
|||
/// </summary>
|
||||
public ArithExpr MkAdd(params ArithExpr[] t)
|
||||
{
|
||||
Contract.Requires(t != null);
|
||||
Contract.Requires(t != null);
|
||||
Contract.Requires(Contract.ForAll(t, a => a != null));
|
||||
Contract.Ensures(Contract.Result<ArithExpr>() != null);
|
||||
|
||||
|
@ -1167,7 +1167,7 @@ namespace Microsoft.Z3
|
|||
Contract.Requires(t1 != null);
|
||||
Contract.Requires(t2 != null);
|
||||
Contract.Ensures(Contract.Result<BitVecExpr>() != null);
|
||||
|
||||
|
||||
CheckContextMatch(t1);
|
||||
CheckContextMatch(t2);
|
||||
return new BitVecExpr(this, Native.Z3_mk_bvor(nCtx, t1.NativeObject, t2.NativeObject));
|
||||
|
@ -1634,8 +1634,8 @@ namespace Microsoft.Z3
|
|||
{
|
||||
Contract.Requires(t1 != null);
|
||||
Contract.Requires(t2 != null);
|
||||
Contract.Ensures(Contract.Result<BitVecExpr>() != null);
|
||||
|
||||
Contract.Ensures(Contract.Result<BitVecExpr>() != null);
|
||||
|
||||
CheckContextMatch(t1);
|
||||
CheckContextMatch(t2);
|
||||
return new BitVecExpr(this, Native.Z3_mk_bvshl(nCtx, t1.NativeObject, t2.NativeObject));
|
||||
|
@ -1658,7 +1658,7 @@ namespace Microsoft.Z3
|
|||
Contract.Requires(t1 != null);
|
||||
Contract.Requires(t2 != null);
|
||||
Contract.Ensures(Contract.Result<BitVecExpr>() != null);
|
||||
|
||||
|
||||
CheckContextMatch(t1);
|
||||
CheckContextMatch(t2);
|
||||
return new BitVecExpr(this, Native.Z3_mk_bvlshr(nCtx, t1.NativeObject, t2.NativeObject));
|
||||
|
@ -1683,7 +1683,7 @@ namespace Microsoft.Z3
|
|||
Contract.Requires(t1 != null);
|
||||
Contract.Requires(t2 != null);
|
||||
Contract.Ensures(Contract.Result<BitVecExpr>() != null);
|
||||
|
||||
|
||||
CheckContextMatch(t1);
|
||||
CheckContextMatch(t2);
|
||||
return new BitVecExpr(this, Native.Z3_mk_bvashr(nCtx, t1.NativeObject, t2.NativeObject));
|
||||
|
@ -1700,7 +1700,7 @@ namespace Microsoft.Z3
|
|||
{
|
||||
Contract.Requires(t != null);
|
||||
Contract.Ensures(Contract.Result<BitVecExpr>() != null);
|
||||
|
||||
|
||||
CheckContextMatch(t);
|
||||
return new BitVecExpr(this, Native.Z3_mk_rotate_left(nCtx, i, t.NativeObject));
|
||||
}
|
||||
|
@ -2147,7 +2147,7 @@ namespace Microsoft.Z3
|
|||
{
|
||||
Contract.Requires(args != null);
|
||||
Contract.Requires(Contract.ForAll(args, a => a != null));
|
||||
|
||||
|
||||
CheckContextMatch(args);
|
||||
return Expr.Create(this, Native.Z3_mk_set_union(nCtx, (uint)args.Length, AST.ArrayToNative(args)));
|
||||
}
|
||||
|
@ -2213,7 +2213,7 @@ namespace Microsoft.Z3
|
|||
Contract.Requires(arg1 != null);
|
||||
Contract.Requires(arg2 != null);
|
||||
Contract.Ensures(Contract.Result<Expr>() != null);
|
||||
|
||||
|
||||
CheckContextMatch(arg1);
|
||||
CheckContextMatch(arg2);
|
||||
return Expr.Create(this, Native.Z3_mk_set_subset(nCtx, arg1.NativeObject, arg2.NativeObject));
|
||||
|
@ -2538,7 +2538,7 @@ namespace Microsoft.Z3
|
|||
Contract.Requires(Contract.ForAll(names, n => n != null));
|
||||
Contract.Requires(patterns == null || Contract.ForAll(patterns, p => p != null));
|
||||
Contract.Requires(noPatterns == null || Contract.ForAll(noPatterns, np => np != null));
|
||||
|
||||
|
||||
Contract.Ensures(Contract.Result<Quantifier>() != null);
|
||||
|
||||
return new Quantifier(this, true, sorts, names, body, weight, patterns, noPatterns, quantifierID, skolemID);
|
||||
|
@ -2607,7 +2607,7 @@ namespace Microsoft.Z3
|
|||
Contract.Requires(Contract.ForAll(names, n => n != null));
|
||||
Contract.Requires(patterns == null || Contract.ForAll(patterns, p => p != null));
|
||||
Contract.Requires(noPatterns == null || Contract.ForAll(noPatterns, np => np != null));
|
||||
|
||||
|
||||
Contract.Ensures(Contract.Result<Quantifier>() != null);
|
||||
|
||||
if (universal)
|
||||
|
@ -2626,7 +2626,7 @@ namespace Microsoft.Z3
|
|||
Contract.Requires(boundConstants == null || Contract.ForAll(boundConstants, n => n != null));
|
||||
Contract.Requires(patterns == null || Contract.ForAll(patterns, p => p != null));
|
||||
Contract.Requires(noPatterns == null || Contract.ForAll(noPatterns, np => np != null));
|
||||
|
||||
|
||||
Contract.Ensures(Contract.Result<Quantifier>() != null);
|
||||
|
||||
if (universal)
|
||||
|
@ -2702,10 +2702,10 @@ namespace Microsoft.Z3
|
|||
uint cdn = Symbol.ArrayLength(declNames);
|
||||
uint cd = AST.ArrayLength(decls);
|
||||
if (csn != cs || cdn != cd)
|
||||
throw new Z3Exception("Argument size mismatch");
|
||||
throw new Z3Exception("Argument size mismatch");
|
||||
Native.Z3_parse_smtlib_string(nCtx, str,
|
||||
AST.ArrayLength(sorts), Symbol.ArrayToNative(sortNames), AST.ArrayToNative(sorts),
|
||||
AST.ArrayLength(decls), Symbol.ArrayToNative(declNames), AST.ArrayToNative(decls));
|
||||
AST.ArrayLength(decls), Symbol.ArrayToNative(declNames), AST.ArrayToNative(decls));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -2722,7 +2722,7 @@ namespace Microsoft.Z3
|
|||
throw new Z3Exception("Argument size mismatch");
|
||||
Native.Z3_parse_smtlib_file(nCtx, fileName,
|
||||
AST.ArrayLength(sorts), Symbol.ArrayToNative(sortNames), AST.ArrayToNative(sorts),
|
||||
AST.ArrayLength(decls), Symbol.ArrayToNative(declNames), AST.ArrayToNative(decls));
|
||||
AST.ArrayLength(decls), Symbol.ArrayToNative(declNames), AST.ArrayToNative(decls));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -2811,7 +2811,7 @@ namespace Microsoft.Z3
|
|||
res[i] = Sort.Create(this, Native.Z3_get_smtlib_sort(nCtx, i));
|
||||
return res;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parse the given string using the SMT-LIB2 parser.
|
||||
|
@ -2965,7 +2965,7 @@ namespace Microsoft.Z3
|
|||
Contract.Requires(ts == null || Contract.ForAll(0, ts.Length, j => ts[j] != null));
|
||||
Contract.Ensures(Contract.Result<Tactic>() != null);
|
||||
|
||||
|
||||
|
||||
CheckContextMatch(t1);
|
||||
CheckContextMatch(t2);
|
||||
CheckContextMatch(ts);
|
||||
|
@ -2982,7 +2982,7 @@ namespace Microsoft.Z3
|
|||
last = Native.Z3_tactic_and_then(nCtx, t2.NativeObject, last);
|
||||
return new Tactic(this, Native.Z3_tactic_and_then(nCtx, t1.NativeObject, last));
|
||||
}
|
||||
else
|
||||
else
|
||||
return new Tactic(this, Native.Z3_tactic_and_then(nCtx, t1.NativeObject, t2.NativeObject));
|
||||
}
|
||||
|
||||
|
@ -3313,7 +3313,7 @@ namespace Microsoft.Z3
|
|||
Contract.Requires(p1 != null);
|
||||
Contract.Requires(p2 != null);
|
||||
Contract.Ensures(Contract.Result<Probe>() != null);
|
||||
|
||||
|
||||
CheckContextMatch(p1);
|
||||
CheckContextMatch(p2);
|
||||
return new Probe(this, Native.Z3_probe_eq(nCtx, p1.NativeObject, p2.NativeObject));
|
||||
|
@ -3328,7 +3328,7 @@ namespace Microsoft.Z3
|
|||
Contract.Requires(p1 != null);
|
||||
Contract.Requires(p2 != null);
|
||||
Contract.Ensures(Contract.Result<Probe>() != null);
|
||||
|
||||
|
||||
CheckContextMatch(p1);
|
||||
CheckContextMatch(p2);
|
||||
return new Probe(this, Native.Z3_probe_and(nCtx, p1.NativeObject, p2.NativeObject));
|
||||
|
@ -3343,7 +3343,7 @@ namespace Microsoft.Z3
|
|||
Contract.Requires(p1 != null);
|
||||
Contract.Requires(p2 != null);
|
||||
Contract.Ensures(Contract.Result<Probe>() != null);
|
||||
|
||||
|
||||
CheckContextMatch(p1);
|
||||
CheckContextMatch(p2);
|
||||
return new Probe(this, Native.Z3_probe_or(nCtx, p1.NativeObject, p2.NativeObject));
|
||||
|
@ -3423,7 +3423,7 @@ namespace Microsoft.Z3
|
|||
/// <summary>
|
||||
/// Create a Fixedpoint context.
|
||||
/// </summary>
|
||||
public Fixedpoint MkFixedpoint()
|
||||
public Fixedpoint MkFixedpoint()
|
||||
{
|
||||
Contract.Ensures(Contract.Result<Fixedpoint>() != null);
|
||||
|
||||
|
@ -3464,7 +3464,7 @@ namespace Microsoft.Z3
|
|||
{
|
||||
return a.NativeObject;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Return a string describing all available parameters to <c>Expr.Simplify</c>.
|
||||
/// </summary>
|
||||
|
@ -3478,14 +3478,10 @@ namespace Microsoft.Z3
|
|||
/// <summary>
|
||||
/// Retrieves parameter descriptions for simplifier.
|
||||
/// </summary>
|
||||
public ParamDescrs SimplifyParameterDescriptions
|
||||
{
|
||||
get
|
||||
{
|
||||
return new ParamDescrs(this, Native.Z3_simplify_get_param_descrs(nCtx));
|
||||
}
|
||||
}
|
||||
|
||||
public ParamDescrs SimplifyParameterDescriptions
|
||||
{
|
||||
get { return new ParamDescrs(this, Native.Z3_simplify_get_param_descrs(nCtx)); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Enable/disable printing of warning messages to the console.
|
||||
|
|
|
@ -34,10 +34,11 @@ namespace Microsoft.Z3
|
|||
/// </summary>
|
||||
public string Help
|
||||
{
|
||||
get {
|
||||
get
|
||||
{
|
||||
Contract.Ensures(Contract.Result<string>() != null);
|
||||
return Native.Z3_fixedpoint_get_help(Context.nCtx, NativeObject);
|
||||
}
|
||||
return Native.Z3_fixedpoint_get_help(Context.nCtx, NativeObject);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -56,13 +57,10 @@ namespace Microsoft.Z3
|
|||
/// <summary>
|
||||
/// Retrieves parameter descriptions for Fixedpoint solver.
|
||||
/// </summary>
|
||||
public ParamDescrs ParameterDescriptions
|
||||
{
|
||||
get
|
||||
{
|
||||
return new ParamDescrs(Context, Native.Z3_fixedpoint_get_param_descrs(Context.nCtx, NativeObject));
|
||||
}
|
||||
}
|
||||
public ParamDescrs ParameterDescriptions
|
||||
{
|
||||
get { return new ParamDescrs(Context, Native.Z3_fixedpoint_get_param_descrs(Context.nCtx, NativeObject)); }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
@ -146,7 +144,7 @@ namespace Microsoft.Z3
|
|||
Contract.Requires(Contract.ForAll(0, relations.Length, i => relations[i] != null));
|
||||
|
||||
Context.CheckContextMatch(relations);
|
||||
Z3_lbool r = (Z3_lbool)Native.Z3_fixedpoint_query_relations(Context.nCtx, NativeObject,
|
||||
Z3_lbool r = (Z3_lbool)Native.Z3_fixedpoint_query_relations(Context.nCtx, NativeObject,
|
||||
AST.ArrayLength(relations), AST.ArrayToNative(relations));
|
||||
switch (r)
|
||||
{
|
||||
|
@ -179,7 +177,7 @@ namespace Microsoft.Z3
|
|||
/// <summary>
|
||||
/// Update named rule into in the fixedpoint solver.
|
||||
/// </summary>
|
||||
public void UpdateRule(BoolExpr rule, Symbol name)
|
||||
public void UpdateRule(BoolExpr rule, Symbol name)
|
||||
{
|
||||
Contract.Requires(rule != null);
|
||||
|
||||
|
@ -210,18 +208,18 @@ namespace Microsoft.Z3
|
|||
/// <summary>
|
||||
/// Retrieve the number of levels explored for a given predicate.
|
||||
/// </summary>
|
||||
public uint GetNumLevels(FuncDecl predicate)
|
||||
{
|
||||
return Native.Z3_fixedpoint_get_num_levels(Context.nCtx, NativeObject, predicate.NativeObject);
|
||||
}
|
||||
public uint GetNumLevels(FuncDecl predicate)
|
||||
{
|
||||
return Native.Z3_fixedpoint_get_num_levels(Context.nCtx, NativeObject, predicate.NativeObject);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Retrieve the cover of a predicate.
|
||||
/// </summary>
|
||||
public Expr GetCoverDelta(int level, FuncDecl predicate)
|
||||
{
|
||||
IntPtr res = Native.Z3_fixedpoint_get_cover_delta(Context.nCtx, NativeObject, level, predicate.NativeObject);
|
||||
return (res == IntPtr.Zero) ? null : Expr.Create(Context, res);
|
||||
IntPtr res = Native.Z3_fixedpoint_get_cover_delta(Context.nCtx, NativeObject, level, predicate.NativeObject);
|
||||
return (res == IntPtr.Zero) ? null : Expr.Create(Context, res);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -230,7 +228,7 @@ namespace Microsoft.Z3
|
|||
/// </summary>
|
||||
public void AddCover(int level, FuncDecl predicate, Expr property)
|
||||
{
|
||||
Native.Z3_fixedpoint_add_cover(Context.nCtx, NativeObject, level, predicate.NativeObject, property.NativeObject);
|
||||
Native.Z3_fixedpoint_add_cover(Context.nCtx, NativeObject, level, predicate.NativeObject, property.NativeObject);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -259,7 +257,7 @@ namespace Microsoft.Z3
|
|||
public string ToString(BoolExpr[] queries)
|
||||
{
|
||||
|
||||
return Native.Z3_fixedpoint_to_string(Context.nCtx, NativeObject,
|
||||
return Native.Z3_fixedpoint_to_string(Context.nCtx, NativeObject,
|
||||
AST.ArrayLength(queries), AST.ArrayToNative(queries));
|
||||
}
|
||||
|
||||
|
|
|
@ -22,58 +22,58 @@ using System.Diagnostics.Contracts;
|
|||
|
||||
namespace Microsoft.Z3
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logging for Z3.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Note that this is a global, static log and if multiple Context
|
||||
/// objects are created, it logs the interaction with all of them.
|
||||
/// </remarks>
|
||||
/// <summary>
|
||||
/// Interaction logging for Z3.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Note that this is a global, static log and if multiple Context
|
||||
/// objects are created, it logs the interaction with all of them.
|
||||
/// </remarks>
|
||||
[ContractVerification(true)]
|
||||
public static class Log
|
||||
{
|
||||
private static bool m_is_open = false;
|
||||
|
||||
/// <summary>
|
||||
/// Open an interaction log file.
|
||||
/// </summary>
|
||||
/// <param name="filename">the name of the file to open</param>
|
||||
/// <returns>True if opening the log file succeeds, false otherwise.</returns>
|
||||
public static bool Open(string filename)
|
||||
{
|
||||
m_is_open = true;
|
||||
return Native.Z3_open_log(filename) == 1;
|
||||
}
|
||||
private static bool m_is_open = false;
|
||||
|
||||
/// <summary>
|
||||
/// Closes the interaction log.
|
||||
/// </summary>
|
||||
public static void Close()
|
||||
{
|
||||
m_is_open = false;
|
||||
Native.Z3_close_log();
|
||||
}
|
||||
/// <summary>
|
||||
/// Open an interaction log file.
|
||||
/// </summary>
|
||||
/// <param name="filename">the name of the file to open</param>
|
||||
/// <returns>True if opening the log file succeeds, false otherwise.</returns>
|
||||
public static bool Open(string filename)
|
||||
{
|
||||
m_is_open = true;
|
||||
return Native.Z3_open_log(filename) == 1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Appends the user-provided string <paramref name="s"/> to the interaction log.
|
||||
/// </summary>
|
||||
public static void Append(string s)
|
||||
{
|
||||
Contract.Requires(isOpen());
|
||||
/// <summary>
|
||||
/// Closes the interaction log.
|
||||
/// </summary>
|
||||
public static void Close()
|
||||
{
|
||||
m_is_open = false;
|
||||
Native.Z3_close_log();
|
||||
}
|
||||
|
||||
if (!m_is_open)
|
||||
throw new Z3Exception("Log cannot be closed.");
|
||||
Native.Z3_append_log(s);
|
||||
}
|
||||
/// <summary>
|
||||
/// Appends the user-provided string <paramref name="s"/> to the interaction log.
|
||||
/// </summary>
|
||||
public static void Append(string s)
|
||||
{
|
||||
Contract.Requires(isOpen());
|
||||
|
||||
/// <summary>
|
||||
/// Checks whether the interaction log is opened.
|
||||
/// </summary>
|
||||
/// <returns>True if the interaction log is open, false otherwise.</returns>
|
||||
if (!m_is_open)
|
||||
throw new Z3Exception("Log cannot be closed.");
|
||||
Native.Z3_append_log(s);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks whether the interaction log is opened.
|
||||
/// </summary>
|
||||
/// <returns>True if the interaction log is open, false otherwise.</returns>
|
||||
[Pure]
|
||||
public static bool isOpen()
|
||||
{
|
||||
return m_is_open;
|
||||
{
|
||||
return m_is_open;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -208,10 +208,11 @@
|
|||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SignAssembly>true</SignAssembly>
|
||||
<SignAssembly>false</SignAssembly>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<AssemblyOriginatorKeyFile>z3.snk</AssemblyOriginatorKeyFile>
|
||||
<AssemblyOriginatorKeyFile>
|
||||
</AssemblyOriginatorKeyFile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<DelaySign>false</DelaySign>
|
||||
|
@ -293,9 +294,6 @@
|
|||
<ItemGroup>
|
||||
<WCFMetadata Include="Service References\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="z3.snk" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>
|
||||
|
|
|
@ -1132,6 +1132,9 @@ namespace Microsoft.Z3
|
|||
[DllImport(Z3_DLL_NAME, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
|
||||
public extern static IntPtr Z3_param_descrs_get_name(Z3_context a0, Z3_param_descrs a1, uint a2);
|
||||
|
||||
[DllImport(Z3_DLL_NAME, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
|
||||
public extern static IntPtr Z3_param_descrs_to_string(Z3_context a0, Z3_param_descrs a1);
|
||||
|
||||
[DllImport(Z3_DLL_NAME, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
|
||||
public extern static void Z3_interrupt(Z3_context a0);
|
||||
|
||||
|
@ -4293,6 +4296,14 @@ namespace Microsoft.Z3
|
|||
return r;
|
||||
}
|
||||
|
||||
public static string Z3_param_descrs_to_string(Z3_context a0, Z3_param_descrs a1) {
|
||||
IntPtr r = LIB.Z3_param_descrs_to_string(a0, a1);
|
||||
Z3_error_code err = (Z3_error_code)LIB.Z3_get_error_code(a0);
|
||||
if (err != Z3_error_code.Z3_OK)
|
||||
throw new Z3Exception(Marshal.PtrToStringAnsi(LIB.Z3_get_error_msg_ex(a0, (uint)err)));
|
||||
return Marshal.PtrToStringAnsi(r);
|
||||
}
|
||||
|
||||
public static void Z3_interrupt(Z3_context a0) {
|
||||
LIB.Z3_interrupt(a0);
|
||||
Z3_error_code err = (Z3_error_code)LIB.Z3_get_error_code(a0);
|
||||
|
|
|
@ -23,7 +23,7 @@ using System.Diagnostics.Contracts;
|
|||
namespace Microsoft.Z3
|
||||
{
|
||||
/// <summary>
|
||||
/// A ParameterSet represents a configuration in the form of Symbol/value pairs.
|
||||
/// A ParamDescrs describes a set of parameters.
|
||||
/// </summary>
|
||||
[ContractVerification(true)]
|
||||
public class ParamDescrs : Z3Object
|
||||
|
@ -62,6 +62,22 @@ namespace Microsoft.Z3
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The size of the ParamDescrs.
|
||||
/// </summary>
|
||||
public uint Size
|
||||
{
|
||||
get { return Native.Z3_param_descrs_size(Context.nCtx, NativeObject); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves a string representation of the ParamDescrs.
|
||||
/// </summary>
|
||||
public override string ToString()
|
||||
{
|
||||
return Native.Z3_param_descrs_to_string(Context.nCtx, NativeObject);
|
||||
}
|
||||
|
||||
#region Internal
|
||||
internal ParamDescrs(Context ctx, IntPtr obj)
|
||||
: base(ctx, obj)
|
||||
|
|
|
@ -33,10 +33,12 @@ namespace Microsoft.Z3
|
|||
/// </summary>
|
||||
public string Help
|
||||
{
|
||||
get {
|
||||
get
|
||||
{
|
||||
Contract.Ensures(Contract.Result<string>() != null);
|
||||
|
||||
return Native.Z3_solver_get_help(Context.nCtx, NativeObject); }
|
||||
return Native.Z3_solver_get_help(Context.nCtx, NativeObject);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -56,13 +58,10 @@ namespace Microsoft.Z3
|
|||
/// <summary>
|
||||
/// Retrieves parameter descriptions for solver.
|
||||
/// </summary>
|
||||
ParamDescrs ParameterDescriptions
|
||||
{
|
||||
get
|
||||
{
|
||||
return new ParamDescrs(Context, Native.Z3_solver_get_param_descrs(Context.nCtx, NativeObject));
|
||||
}
|
||||
}
|
||||
public ParamDescrs ParameterDescriptions
|
||||
{
|
||||
get { return new ParamDescrs(Context, Native.Z3_solver_get_param_descrs(Context.nCtx, NativeObject)); }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
@ -250,10 +249,12 @@ namespace Microsoft.Z3
|
|||
/// </summary>
|
||||
public Statistics Statistics
|
||||
{
|
||||
get {
|
||||
get
|
||||
{
|
||||
Contract.Ensures(Contract.Result<Statistics>() != null);
|
||||
|
||||
return new Statistics(Context, Native.Z3_solver_get_statistics(Context.nCtx, NativeObject)); }
|
||||
return new Statistics(Context, Native.Z3_solver_get_statistics(Context.nCtx, NativeObject));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -282,7 +283,7 @@ namespace Microsoft.Z3
|
|||
{
|
||||
Native.Z3_solver_dec_ref(ctx.nCtx, obj);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
internal override void IncRef(IntPtr o)
|
||||
{
|
||||
|
|
|
@ -39,21 +39,19 @@ namespace Microsoft.Z3
|
|||
get
|
||||
{
|
||||
Contract.Ensures(Contract.Result<string>() != null);
|
||||
|
||||
return Native.Z3_tactic_get_help(Context.nCtx, NativeObject); }
|
||||
|
||||
return Native.Z3_tactic_get_help(Context.nCtx, NativeObject);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves parameter descriptions for Tactics.
|
||||
/// </summary>
|
||||
public ParamDescrs ParameterDescriptions
|
||||
{
|
||||
get
|
||||
{
|
||||
return new ParamDescrs(Context, Native.Z3_tactic_get_param_descrs(Context.nCtx, NativeObject));
|
||||
}
|
||||
}
|
||||
public ParamDescrs ParameterDescriptions
|
||||
{
|
||||
get { return new ParamDescrs(Context, Native.Z3_tactic_get_param_descrs(Context.nCtx, NativeObject)); }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
@ -83,7 +81,7 @@ namespace Microsoft.Z3
|
|||
{
|
||||
Contract.Requires(g != null);
|
||||
Contract.Ensures(Contract.Result<ApplyResult>() != null);
|
||||
|
||||
|
||||
return Apply(g);
|
||||
}
|
||||
}
|
||||
|
@ -103,11 +101,13 @@ namespace Microsoft.Z3
|
|||
}
|
||||
|
||||
#region Internal
|
||||
internal Tactic(Context ctx, IntPtr obj) : base(ctx, obj)
|
||||
internal Tactic(Context ctx, IntPtr obj)
|
||||
: base(ctx, obj)
|
||||
{
|
||||
Contract.Requires(ctx != null);
|
||||
}
|
||||
internal Tactic(Context ctx, string name) : base(ctx, Native.Z3_mk_tactic(ctx.nCtx, name))
|
||||
internal Tactic(Context ctx, string name)
|
||||
: base(ctx, Native.Z3_mk_tactic(ctx.nCtx, name))
|
||||
{
|
||||
Contract.Requires(ctx != null);
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ namespace Microsoft.Z3
|
|||
{
|
||||
Native.Z3_tactic_dec_ref(ctx.nCtx, obj);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
internal override void IncRef(IntPtr o)
|
||||
{
|
||||
|
|
Binary file not shown.
|
@ -25,10 +25,10 @@ using namespace System::Security::Permissions;
|
|||
[assembly:AssemblyVersionAttribute("4.2.0.0")];
|
||||
[assembly:AssemblyFileVersionAttribute("4.2.0.0")];
|
||||
|
||||
#ifdef DELAYSIGN
|
||||
[assembly:AssemblyKeyFile("35MSSharedLib1024.snk")];
|
||||
[assembly:AssemblyDelaySign(true)];
|
||||
#else
|
||||
[assembly:AssemblyKeyFile("z3.snk")];
|
||||
[assembly:AssemblyDelaySign(true)];
|
||||
#endif
|
||||
//#ifdef DELAYSIGN
|
||||
//[assembly:AssemblyKeyFile("35MSSharedLib1024.snk")];
|
||||
//[assembly:AssemblyDelaySign(true)];
|
||||
//#else
|
||||
//[assembly:AssemblyKeyFile("z3.snk")];
|
||||
//[assembly:AssemblyDelaySign(true)];
|
||||
//#endif
|
||||
|
|
|
@ -259,7 +259,8 @@
|
|||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>sn.exe -Ra "$(TargetPath)" "$(ProjectDir)z3.snk"</Command>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
|
@ -282,7 +283,8 @@
|
|||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>sn.exe -Ra "$(TargetPath)" "$(ProjectDir)z3.snk"</Command>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
|
@ -306,7 +308,8 @@
|
|||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>sn.exe -Ra "$(TargetPath)" "$(ProjectDir)z3.snk"</Command>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
|
@ -330,7 +333,8 @@
|
|||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>sn.exe -Ra "$(TargetPath)" "$(ProjectDir)z3.snk"</Command>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Trace|Win32'">
|
||||
|
@ -354,7 +358,8 @@
|
|||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>sn.exe -Ra "$(TargetPath)" "$(ProjectDir)z3.snk"</Command>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Trace|x64'">
|
||||
|
@ -377,7 +382,8 @@
|
|||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>sn.exe -Ra "$(TargetPath)" "$(ProjectDir)z3.snk"</Command>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_mt|Win32'">
|
||||
|
@ -401,7 +407,8 @@
|
|||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>sn.exe -Ra "$(TargetPath)" "$(ProjectDir)z3.snk"</Command>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='external|Win32'">
|
||||
|
@ -426,7 +433,8 @@
|
|||
<Profile>true</Profile>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>sn.exe -Ra "$(TargetPath)" "$(ProjectDir)z3.snk"</Command>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='commercial|Win32'">
|
||||
|
@ -450,7 +458,8 @@
|
|||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>sn.exe -Ra "$(TargetPath)" "$(ProjectDir)35MSSharedLib1024.snk"</Command>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='external|x64'">
|
||||
|
@ -475,7 +484,8 @@
|
|||
<Profile>true</Profile>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>sn.exe -Ra "$(TargetPath)" "$(ProjectDir)z3.snk"</Command>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='commercial|x64'">
|
||||
|
@ -499,14 +509,16 @@
|
|||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>sn.exe -Ra "$(TargetPath)" "$(ProjectDir)35MSSharedLib1024.snk"</Command>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_mt|x64'">
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release_mt|x64'">
|
||||
<PostBuildEvent>
|
||||
<Command>sn.exe -Ra "$(TargetPath)" "$(ProjectDir)z3.snk"</Command>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
|
Binary file not shown.
|
@ -1,5 +1,35 @@
|
|||
RELEASE NOTES
|
||||
|
||||
Version 4.2
|
||||
===========
|
||||
|
||||
- Now, Z3 automatically adds arithmetic coercions: to_real and to_int.
|
||||
Option (set-option :int-real-coercions false) disables this feature.
|
||||
If SMTLIB2_COMPLIANT=true in the command line, then :int-real-coercions is also set to false.
|
||||
|
||||
- SMTLIB2_COMPLIANT is false by default. Use command line option SMTLIB2_COMPLIANT=true to enable it back.
|
||||
|
||||
- Added "make install" and "make uninstall" to Makefile.in.
|
||||
|
||||
- Added "make install-z3py" and "make uninstall-z3py" to Makefile.in.
|
||||
|
||||
- Fixed crash/bug in the simplifier. The crash occurred when option ":sort-sums true" was used.
|
||||
|
||||
- Added "--with-python=<path>" option to configure script.
|
||||
|
||||
- Cleanned c++, maxsat, test_mapi examples.
|
||||
|
||||
- Move RELEASE_NOTES files to source code distribution.
|
||||
|
||||
- Removed unnecessary files from source code distribution.
|
||||
|
||||
- Removed unnecessary compilation modes from z3-prover.sln.
|
||||
|
||||
- Added Xor procedure to Z3Py.
|
||||
|
||||
- Z3 by default switches to an incremental solver when a Solver object is used to solve many queries.
|
||||
In the this version, we switch back to the tactic framework if the incremental solver returns "unknown".
|
||||
|
||||
First source code release (October 2, 2012)
|
||||
===========================================
|
||||
|
||||
|
|
|
@ -246,6 +246,7 @@ namespace z3 {
|
|||
ast(ast const & s):object(s), m_ast(s.m_ast) { Z3_inc_ref(ctx(), m_ast); }
|
||||
~ast() { if (m_ast) Z3_dec_ref(*m_ctx, m_ast); }
|
||||
operator Z3_ast() const { return m_ast; }
|
||||
operator bool() const { return m_ast != 0; }
|
||||
ast & operator=(ast const & s) { Z3_inc_ref(s.ctx(), s.m_ast); if (m_ast) Z3_dec_ref(ctx(), m_ast); m_ctx = s.m_ctx; m_ast = s.m_ast; return *this; }
|
||||
Z3_ast_kind kind() const { Z3_ast_kind r = Z3_get_ast_kind(ctx(), m_ast); check_error(); return r; }
|
||||
unsigned hash() const { unsigned r = Z3_get_ast_hash(ctx(), m_ast); check_error(); return r; }
|
||||
|
|
16
configure.in
16
configure.in
|
@ -47,7 +47,16 @@ AS_IF([test "$host_os" = "Darwin"], [
|
|||
SLIBFLAGS="-shared -fopenmp"
|
||||
COMP_VERSIONS=
|
||||
STATIC_FLAGS=-static
|
||||
], [
|
||||
], [test "${host_os:0:6}" = "CYGWIN"], [
|
||||
PLATFORM=win
|
||||
SO_EXT=dll
|
||||
LDFLAGS=
|
||||
SLIBFLAGS="-shared -fopenmp"
|
||||
COMP_VERSIONS=
|
||||
STATIC_FLAGS=-static
|
||||
CPPFLAGS+=" -D_CYGWIN"
|
||||
],
|
||||
[
|
||||
AC_MSG_ERROR([Unknown host platform: $host_os])
|
||||
])
|
||||
AC_SUBST(PLATFORM)
|
||||
|
@ -150,9 +159,10 @@ Z3 was configured with success.
|
|||
Host platform: $PLATFORM
|
||||
Arithmetic: $ARITH
|
||||
Python Support: $HAS_PYTHON_MSG
|
||||
Pyyhon: $PYTHON
|
||||
Python: $PYTHON
|
||||
Prefix: $prefix
|
||||
|
||||
Type 'make' to compile Z3.
|
||||
Type 'sudo make install' to install Z3.
|
||||
Type 'sudo make install-python' to install Z3 Python bindings.
|
||||
Type 'sudo make install-z3py' to install Z3 Python (Z3Py) bindings.
|
||||
EOF
|
||||
|
|
989
dll/z3.def
989
dll/z3.def
|
@ -25,497 +25,498 @@ EXPORTS
|
|||
Z3_param_descrs_get_kind @23
|
||||
Z3_param_descrs_size @24
|
||||
Z3_param_descrs_get_name @25
|
||||
Z3_mk_int_symbol @26
|
||||
Z3_mk_string_symbol @27
|
||||
Z3_mk_uninterpreted_sort @28
|
||||
Z3_mk_bool_sort @29
|
||||
Z3_mk_int_sort @30
|
||||
Z3_mk_real_sort @31
|
||||
Z3_mk_bv_sort @32
|
||||
Z3_mk_finite_domain_sort @33
|
||||
Z3_mk_array_sort @34
|
||||
Z3_mk_tuple_sort @35
|
||||
Z3_mk_enumeration_sort @36
|
||||
Z3_mk_list_sort @37
|
||||
Z3_mk_constructor @38
|
||||
Z3_del_constructor @39
|
||||
Z3_mk_datatype @40
|
||||
Z3_mk_constructor_list @41
|
||||
Z3_del_constructor_list @42
|
||||
Z3_mk_datatypes @43
|
||||
Z3_query_constructor @44
|
||||
Z3_mk_func_decl @45
|
||||
Z3_mk_app @46
|
||||
Z3_mk_const @47
|
||||
Z3_mk_fresh_func_decl @48
|
||||
Z3_mk_fresh_const @49
|
||||
Z3_mk_true @50
|
||||
Z3_mk_false @51
|
||||
Z3_mk_eq @52
|
||||
Z3_mk_distinct @53
|
||||
Z3_mk_not @54
|
||||
Z3_mk_ite @55
|
||||
Z3_mk_iff @56
|
||||
Z3_mk_implies @57
|
||||
Z3_mk_xor @58
|
||||
Z3_mk_and @59
|
||||
Z3_mk_or @60
|
||||
Z3_mk_add @61
|
||||
Z3_mk_mul @62
|
||||
Z3_mk_sub @63
|
||||
Z3_mk_unary_minus @64
|
||||
Z3_mk_div @65
|
||||
Z3_mk_mod @66
|
||||
Z3_mk_rem @67
|
||||
Z3_mk_power @68
|
||||
Z3_mk_lt @69
|
||||
Z3_mk_le @70
|
||||
Z3_mk_gt @71
|
||||
Z3_mk_ge @72
|
||||
Z3_mk_int2real @73
|
||||
Z3_mk_real2int @74
|
||||
Z3_mk_is_int @75
|
||||
Z3_mk_bvnot @76
|
||||
Z3_mk_bvredand @77
|
||||
Z3_mk_bvredor @78
|
||||
Z3_mk_bvand @79
|
||||
Z3_mk_bvor @80
|
||||
Z3_mk_bvxor @81
|
||||
Z3_mk_bvnand @82
|
||||
Z3_mk_bvnor @83
|
||||
Z3_mk_bvxnor @84
|
||||
Z3_mk_bvneg @85
|
||||
Z3_mk_bvadd @86
|
||||
Z3_mk_bvsub @87
|
||||
Z3_mk_bvmul @88
|
||||
Z3_mk_bvudiv @89
|
||||
Z3_mk_bvsdiv @90
|
||||
Z3_mk_bvurem @91
|
||||
Z3_mk_bvsrem @92
|
||||
Z3_mk_bvsmod @93
|
||||
Z3_mk_bvult @94
|
||||
Z3_mk_bvslt @95
|
||||
Z3_mk_bvule @96
|
||||
Z3_mk_bvsle @97
|
||||
Z3_mk_bvuge @98
|
||||
Z3_mk_bvsge @99
|
||||
Z3_mk_bvugt @100
|
||||
Z3_mk_bvsgt @101
|
||||
Z3_mk_concat @102
|
||||
Z3_mk_extract @103
|
||||
Z3_mk_sign_ext @104
|
||||
Z3_mk_zero_ext @105
|
||||
Z3_mk_repeat @106
|
||||
Z3_mk_bvshl @107
|
||||
Z3_mk_bvlshr @108
|
||||
Z3_mk_bvashr @109
|
||||
Z3_mk_rotate_left @110
|
||||
Z3_mk_rotate_right @111
|
||||
Z3_mk_ext_rotate_left @112
|
||||
Z3_mk_ext_rotate_right @113
|
||||
Z3_mk_int2bv @114
|
||||
Z3_mk_bv2int @115
|
||||
Z3_mk_bvadd_no_overflow @116
|
||||
Z3_mk_bvadd_no_underflow @117
|
||||
Z3_mk_bvsub_no_overflow @118
|
||||
Z3_mk_bvsub_no_underflow @119
|
||||
Z3_mk_bvsdiv_no_overflow @120
|
||||
Z3_mk_bvneg_no_overflow @121
|
||||
Z3_mk_bvmul_no_overflow @122
|
||||
Z3_mk_bvmul_no_underflow @123
|
||||
Z3_mk_select @124
|
||||
Z3_mk_store @125
|
||||
Z3_mk_const_array @126
|
||||
Z3_mk_map @127
|
||||
Z3_mk_array_default @128
|
||||
Z3_mk_set_sort @129
|
||||
Z3_mk_empty_set @130
|
||||
Z3_mk_full_set @131
|
||||
Z3_mk_set_add @132
|
||||
Z3_mk_set_del @133
|
||||
Z3_mk_set_union @134
|
||||
Z3_mk_set_intersect @135
|
||||
Z3_mk_set_difference @136
|
||||
Z3_mk_set_complement @137
|
||||
Z3_mk_set_member @138
|
||||
Z3_mk_set_subset @139
|
||||
Z3_mk_numeral @140
|
||||
Z3_mk_real @141
|
||||
Z3_mk_int @142
|
||||
Z3_mk_unsigned_int @143
|
||||
Z3_mk_int64 @144
|
||||
Z3_mk_unsigned_int64 @145
|
||||
Z3_mk_pattern @146
|
||||
Z3_mk_bound @147
|
||||
Z3_mk_forall @148
|
||||
Z3_mk_exists @149
|
||||
Z3_mk_quantifier @150
|
||||
Z3_mk_quantifier_ex @151
|
||||
Z3_mk_forall_const @152
|
||||
Z3_mk_exists_const @153
|
||||
Z3_mk_quantifier_const @154
|
||||
Z3_mk_quantifier_const_ex @155
|
||||
Z3_get_symbol_kind @156
|
||||
Z3_get_symbol_int @157
|
||||
Z3_get_symbol_string @158
|
||||
Z3_get_sort_name @159
|
||||
Z3_get_sort_id @160
|
||||
Z3_sort_to_ast @161
|
||||
Z3_is_eq_sort @162
|
||||
Z3_get_sort_kind @163
|
||||
Z3_get_bv_sort_size @164
|
||||
Z3_get_finite_domain_sort_size @165
|
||||
Z3_get_array_sort_domain @166
|
||||
Z3_get_array_sort_range @167
|
||||
Z3_get_tuple_sort_mk_decl @168
|
||||
Z3_get_tuple_sort_num_fields @169
|
||||
Z3_get_tuple_sort_field_decl @170
|
||||
Z3_get_datatype_sort_num_constructors @171
|
||||
Z3_get_datatype_sort_constructor @172
|
||||
Z3_get_datatype_sort_recognizer @173
|
||||
Z3_get_datatype_sort_constructor_accessor @174
|
||||
Z3_get_relation_arity @175
|
||||
Z3_get_relation_column @176
|
||||
Z3_func_decl_to_ast @177
|
||||
Z3_is_eq_func_decl @178
|
||||
Z3_get_func_decl_id @179
|
||||
Z3_get_decl_name @180
|
||||
Z3_get_decl_kind @181
|
||||
Z3_get_domain_size @182
|
||||
Z3_get_arity @183
|
||||
Z3_get_domain @184
|
||||
Z3_get_range @185
|
||||
Z3_get_decl_num_parameters @186
|
||||
Z3_get_decl_parameter_kind @187
|
||||
Z3_get_decl_int_parameter @188
|
||||
Z3_get_decl_double_parameter @189
|
||||
Z3_get_decl_symbol_parameter @190
|
||||
Z3_get_decl_sort_parameter @191
|
||||
Z3_get_decl_ast_parameter @192
|
||||
Z3_get_decl_func_decl_parameter @193
|
||||
Z3_get_decl_rational_parameter @194
|
||||
Z3_app_to_ast @195
|
||||
Z3_get_app_decl @196
|
||||
Z3_get_app_num_args @197
|
||||
Z3_get_app_arg @198
|
||||
Z3_is_eq_ast @199
|
||||
Z3_get_ast_id @200
|
||||
Z3_get_ast_hash @201
|
||||
Z3_get_sort @202
|
||||
Z3_is_well_sorted @203
|
||||
Z3_get_bool_value @204
|
||||
Z3_get_ast_kind @205
|
||||
Z3_is_app @206
|
||||
Z3_is_numeral_ast @207
|
||||
Z3_is_algebraic_number @208
|
||||
Z3_to_app @209
|
||||
Z3_to_func_decl @210
|
||||
Z3_get_numeral_string @211
|
||||
Z3_get_numeral_decimal_string @212
|
||||
Z3_get_numerator @213
|
||||
Z3_get_denominator @214
|
||||
Z3_get_numeral_small @215
|
||||
Z3_get_numeral_int @216
|
||||
Z3_get_numeral_uint @217
|
||||
Z3_get_numeral_uint64 @218
|
||||
Z3_get_numeral_int64 @219
|
||||
Z3_get_numeral_rational_int64 @220
|
||||
Z3_get_algebraic_number_lower @221
|
||||
Z3_get_algebraic_number_upper @222
|
||||
Z3_pattern_to_ast @223
|
||||
Z3_get_pattern_num_terms @224
|
||||
Z3_get_pattern @225
|
||||
Z3_get_index_value @226
|
||||
Z3_is_quantifier_forall @227
|
||||
Z3_get_quantifier_weight @228
|
||||
Z3_get_quantifier_num_patterns @229
|
||||
Z3_get_quantifier_pattern_ast @230
|
||||
Z3_get_quantifier_num_no_patterns @231
|
||||
Z3_get_quantifier_no_pattern_ast @232
|
||||
Z3_get_quantifier_bound_name @233
|
||||
Z3_get_quantifier_bound_sort @234
|
||||
Z3_get_quantifier_body @235
|
||||
Z3_get_quantifier_num_bound @236
|
||||
Z3_simplify @237
|
||||
Z3_simplify_ex @238
|
||||
Z3_simplify_get_help @239
|
||||
Z3_simplify_get_param_descrs @240
|
||||
Z3_update_term @241
|
||||
Z3_substitute @242
|
||||
Z3_substitute_vars @243
|
||||
Z3_translate @244
|
||||
Z3_model_inc_ref @245
|
||||
Z3_model_dec_ref @246
|
||||
Z3_model_eval @247
|
||||
Z3_model_get_const_interp @248
|
||||
Z3_model_get_func_interp @249
|
||||
Z3_model_get_num_consts @250
|
||||
Z3_model_get_const_decl @251
|
||||
Z3_model_get_num_funcs @252
|
||||
Z3_model_get_func_decl @253
|
||||
Z3_model_get_num_sorts @254
|
||||
Z3_model_get_sort @255
|
||||
Z3_model_get_sort_universe @256
|
||||
Z3_is_as_array @257
|
||||
Z3_get_as_array_func_decl @258
|
||||
Z3_func_interp_inc_ref @259
|
||||
Z3_func_interp_dec_ref @260
|
||||
Z3_func_interp_get_num_entries @261
|
||||
Z3_func_interp_get_entry @262
|
||||
Z3_func_interp_get_else @263
|
||||
Z3_func_interp_get_arity @264
|
||||
Z3_func_entry_inc_ref @265
|
||||
Z3_func_entry_dec_ref @266
|
||||
Z3_func_entry_get_value @267
|
||||
Z3_func_entry_get_num_args @268
|
||||
Z3_func_entry_get_arg @269
|
||||
Z3_open_log @270
|
||||
Z3_append_log @271
|
||||
Z3_close_log @272
|
||||
Z3_toggle_warning_messages @273
|
||||
Z3_set_ast_print_mode @274
|
||||
Z3_ast_to_string @275
|
||||
Z3_pattern_to_string @276
|
||||
Z3_sort_to_string @277
|
||||
Z3_func_decl_to_string @278
|
||||
Z3_model_to_string @279
|
||||
Z3_benchmark_to_smtlib_string @280
|
||||
Z3_parse_smtlib2_string @281
|
||||
Z3_parse_smtlib2_file @282
|
||||
Z3_parse_smtlib_string @283
|
||||
Z3_parse_smtlib_file @284
|
||||
Z3_get_smtlib_num_formulas @285
|
||||
Z3_get_smtlib_formula @286
|
||||
Z3_get_smtlib_num_assumptions @287
|
||||
Z3_get_smtlib_assumption @288
|
||||
Z3_get_smtlib_num_decls @289
|
||||
Z3_get_smtlib_decl @290
|
||||
Z3_get_smtlib_num_sorts @291
|
||||
Z3_get_smtlib_sort @292
|
||||
Z3_get_smtlib_error @293
|
||||
Z3_parse_z3_string @294
|
||||
Z3_parse_z3_file @295
|
||||
Z3_get_error_code @296
|
||||
Z3_set_error_handler @297
|
||||
Z3_set_error @298
|
||||
Z3_get_error_msg @299
|
||||
Z3_get_error_msg_ex @300
|
||||
Z3_get_version @301
|
||||
Z3_reset_memory @302
|
||||
Z3_mk_theory @303
|
||||
Z3_theory_get_ext_data @304
|
||||
Z3_theory_mk_sort @305
|
||||
Z3_theory_mk_value @306
|
||||
Z3_theory_mk_constant @307
|
||||
Z3_theory_mk_func_decl @308
|
||||
Z3_theory_get_context @309
|
||||
Z3_set_delete_callback @310
|
||||
Z3_set_reduce_app_callback @311
|
||||
Z3_set_reduce_eq_callback @312
|
||||
Z3_set_reduce_distinct_callback @313
|
||||
Z3_set_new_app_callback @314
|
||||
Z3_set_new_elem_callback @315
|
||||
Z3_set_init_search_callback @316
|
||||
Z3_set_push_callback @317
|
||||
Z3_set_pop_callback @318
|
||||
Z3_set_restart_callback @319
|
||||
Z3_set_reset_callback @320
|
||||
Z3_set_final_check_callback @321
|
||||
Z3_set_new_eq_callback @322
|
||||
Z3_set_new_diseq_callback @323
|
||||
Z3_set_new_assignment_callback @324
|
||||
Z3_set_new_relevant_callback @325
|
||||
Z3_theory_assert_axiom @326
|
||||
Z3_theory_assume_eq @327
|
||||
Z3_theory_enable_axiom_simplification @328
|
||||
Z3_theory_get_eqc_root @329
|
||||
Z3_theory_get_eqc_next @330
|
||||
Z3_theory_get_num_parents @331
|
||||
Z3_theory_get_parent @332
|
||||
Z3_theory_is_value @333
|
||||
Z3_theory_is_decl @334
|
||||
Z3_theory_get_num_elems @335
|
||||
Z3_theory_get_elem @336
|
||||
Z3_theory_get_num_apps @337
|
||||
Z3_theory_get_app @338
|
||||
Z3_mk_fixedpoint @339
|
||||
Z3_fixedpoint_inc_ref @340
|
||||
Z3_fixedpoint_dec_ref @341
|
||||
Z3_fixedpoint_add_rule @342
|
||||
Z3_fixedpoint_add_fact @343
|
||||
Z3_fixedpoint_assert @344
|
||||
Z3_fixedpoint_query @345
|
||||
Z3_fixedpoint_query_relations @346
|
||||
Z3_fixedpoint_get_answer @347
|
||||
Z3_fixedpoint_get_reason_unknown @348
|
||||
Z3_fixedpoint_update_rule @349
|
||||
Z3_fixedpoint_get_num_levels @350
|
||||
Z3_fixedpoint_get_cover_delta @351
|
||||
Z3_fixedpoint_add_cover @352
|
||||
Z3_fixedpoint_get_statistics @353
|
||||
Z3_fixedpoint_register_relation @354
|
||||
Z3_fixedpoint_set_predicate_representation @355
|
||||
Z3_fixedpoint_simplify_rules @356
|
||||
Z3_fixedpoint_set_params @357
|
||||
Z3_fixedpoint_get_help @358
|
||||
Z3_fixedpoint_get_param_descrs @359
|
||||
Z3_fixedpoint_to_string @360
|
||||
Z3_fixedpoint_push @361
|
||||
Z3_fixedpoint_pop @362
|
||||
Z3_fixedpoint_init @363
|
||||
Z3_fixedpoint_set_reduce_assign_callback @364
|
||||
Z3_fixedpoint_set_reduce_app_callback @365
|
||||
Z3_mk_ast_vector @366
|
||||
Z3_ast_vector_inc_ref @367
|
||||
Z3_ast_vector_dec_ref @368
|
||||
Z3_ast_vector_size @369
|
||||
Z3_ast_vector_get @370
|
||||
Z3_ast_vector_set @371
|
||||
Z3_ast_vector_resize @372
|
||||
Z3_ast_vector_push @373
|
||||
Z3_ast_vector_translate @374
|
||||
Z3_ast_vector_to_string @375
|
||||
Z3_mk_ast_map @376
|
||||
Z3_ast_map_inc_ref @377
|
||||
Z3_ast_map_dec_ref @378
|
||||
Z3_ast_map_contains @379
|
||||
Z3_ast_map_find @380
|
||||
Z3_ast_map_insert @381
|
||||
Z3_ast_map_erase @382
|
||||
Z3_ast_map_reset @383
|
||||
Z3_ast_map_size @384
|
||||
Z3_ast_map_keys @385
|
||||
Z3_ast_map_to_string @386
|
||||
Z3_mk_goal @387
|
||||
Z3_goal_inc_ref @388
|
||||
Z3_goal_dec_ref @389
|
||||
Z3_goal_precision @390
|
||||
Z3_goal_assert @391
|
||||
Z3_goal_inconsistent @392
|
||||
Z3_goal_depth @393
|
||||
Z3_goal_reset @394
|
||||
Z3_goal_size @395
|
||||
Z3_goal_formula @396
|
||||
Z3_goal_num_exprs @397
|
||||
Z3_goal_is_decided_sat @398
|
||||
Z3_goal_is_decided_unsat @399
|
||||
Z3_goal_translate @400
|
||||
Z3_goal_to_string @401
|
||||
Z3_mk_tactic @402
|
||||
Z3_tactic_inc_ref @403
|
||||
Z3_tactic_dec_ref @404
|
||||
Z3_mk_probe @405
|
||||
Z3_probe_inc_ref @406
|
||||
Z3_probe_dec_ref @407
|
||||
Z3_tactic_and_then @408
|
||||
Z3_tactic_or_else @409
|
||||
Z3_tactic_par_or @410
|
||||
Z3_tactic_par_and_then @411
|
||||
Z3_tactic_try_for @412
|
||||
Z3_tactic_when @413
|
||||
Z3_tactic_cond @414
|
||||
Z3_tactic_repeat @415
|
||||
Z3_tactic_skip @416
|
||||
Z3_tactic_fail @417
|
||||
Z3_tactic_fail_if @418
|
||||
Z3_tactic_fail_if_not_decided @419
|
||||
Z3_tactic_using_params @420
|
||||
Z3_probe_const @421
|
||||
Z3_probe_lt @422
|
||||
Z3_probe_gt @423
|
||||
Z3_probe_le @424
|
||||
Z3_probe_ge @425
|
||||
Z3_probe_eq @426
|
||||
Z3_probe_and @427
|
||||
Z3_probe_or @428
|
||||
Z3_probe_not @429
|
||||
Z3_get_num_tactics @430
|
||||
Z3_get_tactic_name @431
|
||||
Z3_get_num_probes @432
|
||||
Z3_get_probe_name @433
|
||||
Z3_tactic_get_help @434
|
||||
Z3_tactic_get_param_descrs @435
|
||||
Z3_tactic_get_descr @436
|
||||
Z3_probe_get_descr @437
|
||||
Z3_probe_apply @438
|
||||
Z3_tactic_apply @439
|
||||
Z3_tactic_apply_ex @440
|
||||
Z3_apply_result_inc_ref @441
|
||||
Z3_apply_result_dec_ref @442
|
||||
Z3_apply_result_to_string @443
|
||||
Z3_apply_result_get_num_subgoals @444
|
||||
Z3_apply_result_get_subgoal @445
|
||||
Z3_apply_result_convert_model @446
|
||||
Z3_mk_solver @447
|
||||
Z3_mk_simple_solver @448
|
||||
Z3_mk_solver_for_logic @449
|
||||
Z3_mk_solver_from_tactic @450
|
||||
Z3_solver_get_help @451
|
||||
Z3_solver_get_param_descrs @452
|
||||
Z3_solver_set_params @453
|
||||
Z3_solver_inc_ref @454
|
||||
Z3_solver_dec_ref @455
|
||||
Z3_solver_push @456
|
||||
Z3_solver_pop @457
|
||||
Z3_solver_reset @458
|
||||
Z3_solver_get_num_scopes @459
|
||||
Z3_solver_assert @460
|
||||
Z3_solver_get_assertions @461
|
||||
Z3_solver_check @462
|
||||
Z3_solver_check_assumptions @463
|
||||
Z3_solver_get_model @464
|
||||
Z3_solver_get_proof @465
|
||||
Z3_solver_get_unsat_core @466
|
||||
Z3_solver_get_reason_unknown @467
|
||||
Z3_solver_get_statistics @468
|
||||
Z3_solver_to_string @469
|
||||
Z3_stats_to_string @470
|
||||
Z3_stats_inc_ref @471
|
||||
Z3_stats_dec_ref @472
|
||||
Z3_stats_size @473
|
||||
Z3_stats_get_key @474
|
||||
Z3_stats_is_uint @475
|
||||
Z3_stats_is_double @476
|
||||
Z3_stats_get_uint_value @477
|
||||
Z3_stats_get_double_value @478
|
||||
Z3_mk_injective_function @479
|
||||
Z3_set_logic @480
|
||||
Z3_push @481
|
||||
Z3_pop @482
|
||||
Z3_get_num_scopes @483
|
||||
Z3_persist_ast @484
|
||||
Z3_assert_cnstr @485
|
||||
Z3_check_and_get_model @486
|
||||
Z3_check @487
|
||||
Z3_check_assumptions @488
|
||||
Z3_get_implied_equalities @489
|
||||
Z3_del_model @490
|
||||
Z3_soft_check_cancel @491
|
||||
Z3_get_search_failure @492
|
||||
Z3_mk_label @493
|
||||
Z3_get_relevant_labels @494
|
||||
Z3_get_relevant_literals @495
|
||||
Z3_get_guessed_literals @496
|
||||
Z3_del_literals @497
|
||||
Z3_get_num_literals @498
|
||||
Z3_get_label_symbol @499
|
||||
Z3_get_literal @500
|
||||
Z3_disable_literal @501
|
||||
Z3_block_literals @502
|
||||
Z3_get_model_num_constants @503
|
||||
Z3_get_model_constant @504
|
||||
Z3_get_model_num_funcs @505
|
||||
Z3_get_model_func_decl @506
|
||||
Z3_eval_func_decl @507
|
||||
Z3_is_array_value @508
|
||||
Z3_get_array_value @509
|
||||
Z3_get_model_func_else @510
|
||||
Z3_get_model_func_num_entries @511
|
||||
Z3_get_model_func_entry_num_args @512
|
||||
Z3_get_model_func_entry_arg @513
|
||||
Z3_get_model_func_entry_value @514
|
||||
Z3_eval @515
|
||||
Z3_eval_decl @516
|
||||
Z3_context_to_string @517
|
||||
Z3_statistics_to_string @518
|
||||
Z3_get_context_assignment @519
|
||||
Z3_param_descrs_to_string @26
|
||||
Z3_mk_int_symbol @27
|
||||
Z3_mk_string_symbol @28
|
||||
Z3_mk_uninterpreted_sort @29
|
||||
Z3_mk_bool_sort @30
|
||||
Z3_mk_int_sort @31
|
||||
Z3_mk_real_sort @32
|
||||
Z3_mk_bv_sort @33
|
||||
Z3_mk_finite_domain_sort @34
|
||||
Z3_mk_array_sort @35
|
||||
Z3_mk_tuple_sort @36
|
||||
Z3_mk_enumeration_sort @37
|
||||
Z3_mk_list_sort @38
|
||||
Z3_mk_constructor @39
|
||||
Z3_del_constructor @40
|
||||
Z3_mk_datatype @41
|
||||
Z3_mk_constructor_list @42
|
||||
Z3_del_constructor_list @43
|
||||
Z3_mk_datatypes @44
|
||||
Z3_query_constructor @45
|
||||
Z3_mk_func_decl @46
|
||||
Z3_mk_app @47
|
||||
Z3_mk_const @48
|
||||
Z3_mk_fresh_func_decl @49
|
||||
Z3_mk_fresh_const @50
|
||||
Z3_mk_true @51
|
||||
Z3_mk_false @52
|
||||
Z3_mk_eq @53
|
||||
Z3_mk_distinct @54
|
||||
Z3_mk_not @55
|
||||
Z3_mk_ite @56
|
||||
Z3_mk_iff @57
|
||||
Z3_mk_implies @58
|
||||
Z3_mk_xor @59
|
||||
Z3_mk_and @60
|
||||
Z3_mk_or @61
|
||||
Z3_mk_add @62
|
||||
Z3_mk_mul @63
|
||||
Z3_mk_sub @64
|
||||
Z3_mk_unary_minus @65
|
||||
Z3_mk_div @66
|
||||
Z3_mk_mod @67
|
||||
Z3_mk_rem @68
|
||||
Z3_mk_power @69
|
||||
Z3_mk_lt @70
|
||||
Z3_mk_le @71
|
||||
Z3_mk_gt @72
|
||||
Z3_mk_ge @73
|
||||
Z3_mk_int2real @74
|
||||
Z3_mk_real2int @75
|
||||
Z3_mk_is_int @76
|
||||
Z3_mk_bvnot @77
|
||||
Z3_mk_bvredand @78
|
||||
Z3_mk_bvredor @79
|
||||
Z3_mk_bvand @80
|
||||
Z3_mk_bvor @81
|
||||
Z3_mk_bvxor @82
|
||||
Z3_mk_bvnand @83
|
||||
Z3_mk_bvnor @84
|
||||
Z3_mk_bvxnor @85
|
||||
Z3_mk_bvneg @86
|
||||
Z3_mk_bvadd @87
|
||||
Z3_mk_bvsub @88
|
||||
Z3_mk_bvmul @89
|
||||
Z3_mk_bvudiv @90
|
||||
Z3_mk_bvsdiv @91
|
||||
Z3_mk_bvurem @92
|
||||
Z3_mk_bvsrem @93
|
||||
Z3_mk_bvsmod @94
|
||||
Z3_mk_bvult @95
|
||||
Z3_mk_bvslt @96
|
||||
Z3_mk_bvule @97
|
||||
Z3_mk_bvsle @98
|
||||
Z3_mk_bvuge @99
|
||||
Z3_mk_bvsge @100
|
||||
Z3_mk_bvugt @101
|
||||
Z3_mk_bvsgt @102
|
||||
Z3_mk_concat @103
|
||||
Z3_mk_extract @104
|
||||
Z3_mk_sign_ext @105
|
||||
Z3_mk_zero_ext @106
|
||||
Z3_mk_repeat @107
|
||||
Z3_mk_bvshl @108
|
||||
Z3_mk_bvlshr @109
|
||||
Z3_mk_bvashr @110
|
||||
Z3_mk_rotate_left @111
|
||||
Z3_mk_rotate_right @112
|
||||
Z3_mk_ext_rotate_left @113
|
||||
Z3_mk_ext_rotate_right @114
|
||||
Z3_mk_int2bv @115
|
||||
Z3_mk_bv2int @116
|
||||
Z3_mk_bvadd_no_overflow @117
|
||||
Z3_mk_bvadd_no_underflow @118
|
||||
Z3_mk_bvsub_no_overflow @119
|
||||
Z3_mk_bvsub_no_underflow @120
|
||||
Z3_mk_bvsdiv_no_overflow @121
|
||||
Z3_mk_bvneg_no_overflow @122
|
||||
Z3_mk_bvmul_no_overflow @123
|
||||
Z3_mk_bvmul_no_underflow @124
|
||||
Z3_mk_select @125
|
||||
Z3_mk_store @126
|
||||
Z3_mk_const_array @127
|
||||
Z3_mk_map @128
|
||||
Z3_mk_array_default @129
|
||||
Z3_mk_set_sort @130
|
||||
Z3_mk_empty_set @131
|
||||
Z3_mk_full_set @132
|
||||
Z3_mk_set_add @133
|
||||
Z3_mk_set_del @134
|
||||
Z3_mk_set_union @135
|
||||
Z3_mk_set_intersect @136
|
||||
Z3_mk_set_difference @137
|
||||
Z3_mk_set_complement @138
|
||||
Z3_mk_set_member @139
|
||||
Z3_mk_set_subset @140
|
||||
Z3_mk_numeral @141
|
||||
Z3_mk_real @142
|
||||
Z3_mk_int @143
|
||||
Z3_mk_unsigned_int @144
|
||||
Z3_mk_int64 @145
|
||||
Z3_mk_unsigned_int64 @146
|
||||
Z3_mk_pattern @147
|
||||
Z3_mk_bound @148
|
||||
Z3_mk_forall @149
|
||||
Z3_mk_exists @150
|
||||
Z3_mk_quantifier @151
|
||||
Z3_mk_quantifier_ex @152
|
||||
Z3_mk_forall_const @153
|
||||
Z3_mk_exists_const @154
|
||||
Z3_mk_quantifier_const @155
|
||||
Z3_mk_quantifier_const_ex @156
|
||||
Z3_get_symbol_kind @157
|
||||
Z3_get_symbol_int @158
|
||||
Z3_get_symbol_string @159
|
||||
Z3_get_sort_name @160
|
||||
Z3_get_sort_id @161
|
||||
Z3_sort_to_ast @162
|
||||
Z3_is_eq_sort @163
|
||||
Z3_get_sort_kind @164
|
||||
Z3_get_bv_sort_size @165
|
||||
Z3_get_finite_domain_sort_size @166
|
||||
Z3_get_array_sort_domain @167
|
||||
Z3_get_array_sort_range @168
|
||||
Z3_get_tuple_sort_mk_decl @169
|
||||
Z3_get_tuple_sort_num_fields @170
|
||||
Z3_get_tuple_sort_field_decl @171
|
||||
Z3_get_datatype_sort_num_constructors @172
|
||||
Z3_get_datatype_sort_constructor @173
|
||||
Z3_get_datatype_sort_recognizer @174
|
||||
Z3_get_datatype_sort_constructor_accessor @175
|
||||
Z3_get_relation_arity @176
|
||||
Z3_get_relation_column @177
|
||||
Z3_func_decl_to_ast @178
|
||||
Z3_is_eq_func_decl @179
|
||||
Z3_get_func_decl_id @180
|
||||
Z3_get_decl_name @181
|
||||
Z3_get_decl_kind @182
|
||||
Z3_get_domain_size @183
|
||||
Z3_get_arity @184
|
||||
Z3_get_domain @185
|
||||
Z3_get_range @186
|
||||
Z3_get_decl_num_parameters @187
|
||||
Z3_get_decl_parameter_kind @188
|
||||
Z3_get_decl_int_parameter @189
|
||||
Z3_get_decl_double_parameter @190
|
||||
Z3_get_decl_symbol_parameter @191
|
||||
Z3_get_decl_sort_parameter @192
|
||||
Z3_get_decl_ast_parameter @193
|
||||
Z3_get_decl_func_decl_parameter @194
|
||||
Z3_get_decl_rational_parameter @195
|
||||
Z3_app_to_ast @196
|
||||
Z3_get_app_decl @197
|
||||
Z3_get_app_num_args @198
|
||||
Z3_get_app_arg @199
|
||||
Z3_is_eq_ast @200
|
||||
Z3_get_ast_id @201
|
||||
Z3_get_ast_hash @202
|
||||
Z3_get_sort @203
|
||||
Z3_is_well_sorted @204
|
||||
Z3_get_bool_value @205
|
||||
Z3_get_ast_kind @206
|
||||
Z3_is_app @207
|
||||
Z3_is_numeral_ast @208
|
||||
Z3_is_algebraic_number @209
|
||||
Z3_to_app @210
|
||||
Z3_to_func_decl @211
|
||||
Z3_get_numeral_string @212
|
||||
Z3_get_numeral_decimal_string @213
|
||||
Z3_get_numerator @214
|
||||
Z3_get_denominator @215
|
||||
Z3_get_numeral_small @216
|
||||
Z3_get_numeral_int @217
|
||||
Z3_get_numeral_uint @218
|
||||
Z3_get_numeral_uint64 @219
|
||||
Z3_get_numeral_int64 @220
|
||||
Z3_get_numeral_rational_int64 @221
|
||||
Z3_get_algebraic_number_lower @222
|
||||
Z3_get_algebraic_number_upper @223
|
||||
Z3_pattern_to_ast @224
|
||||
Z3_get_pattern_num_terms @225
|
||||
Z3_get_pattern @226
|
||||
Z3_get_index_value @227
|
||||
Z3_is_quantifier_forall @228
|
||||
Z3_get_quantifier_weight @229
|
||||
Z3_get_quantifier_num_patterns @230
|
||||
Z3_get_quantifier_pattern_ast @231
|
||||
Z3_get_quantifier_num_no_patterns @232
|
||||
Z3_get_quantifier_no_pattern_ast @233
|
||||
Z3_get_quantifier_num_bound @234
|
||||
Z3_get_quantifier_bound_name @235
|
||||
Z3_get_quantifier_bound_sort @236
|
||||
Z3_get_quantifier_body @237
|
||||
Z3_simplify @238
|
||||
Z3_simplify_ex @239
|
||||
Z3_simplify_get_help @240
|
||||
Z3_simplify_get_param_descrs @241
|
||||
Z3_update_term @242
|
||||
Z3_substitute @243
|
||||
Z3_substitute_vars @244
|
||||
Z3_translate @245
|
||||
Z3_model_inc_ref @246
|
||||
Z3_model_dec_ref @247
|
||||
Z3_model_eval @248
|
||||
Z3_model_get_const_interp @249
|
||||
Z3_model_get_func_interp @250
|
||||
Z3_model_get_num_consts @251
|
||||
Z3_model_get_const_decl @252
|
||||
Z3_model_get_num_funcs @253
|
||||
Z3_model_get_func_decl @254
|
||||
Z3_model_get_num_sorts @255
|
||||
Z3_model_get_sort @256
|
||||
Z3_model_get_sort_universe @257
|
||||
Z3_is_as_array @258
|
||||
Z3_get_as_array_func_decl @259
|
||||
Z3_func_interp_inc_ref @260
|
||||
Z3_func_interp_dec_ref @261
|
||||
Z3_func_interp_get_num_entries @262
|
||||
Z3_func_interp_get_entry @263
|
||||
Z3_func_interp_get_else @264
|
||||
Z3_func_interp_get_arity @265
|
||||
Z3_func_entry_inc_ref @266
|
||||
Z3_func_entry_dec_ref @267
|
||||
Z3_func_entry_get_value @268
|
||||
Z3_func_entry_get_num_args @269
|
||||
Z3_func_entry_get_arg @270
|
||||
Z3_open_log @271
|
||||
Z3_append_log @272
|
||||
Z3_close_log @273
|
||||
Z3_toggle_warning_messages @274
|
||||
Z3_set_ast_print_mode @275
|
||||
Z3_ast_to_string @276
|
||||
Z3_pattern_to_string @277
|
||||
Z3_sort_to_string @278
|
||||
Z3_func_decl_to_string @279
|
||||
Z3_model_to_string @280
|
||||
Z3_benchmark_to_smtlib_string @281
|
||||
Z3_parse_smtlib2_string @282
|
||||
Z3_parse_smtlib2_file @283
|
||||
Z3_parse_smtlib_string @284
|
||||
Z3_parse_smtlib_file @285
|
||||
Z3_get_smtlib_num_formulas @286
|
||||
Z3_get_smtlib_formula @287
|
||||
Z3_get_smtlib_num_assumptions @288
|
||||
Z3_get_smtlib_assumption @289
|
||||
Z3_get_smtlib_num_decls @290
|
||||
Z3_get_smtlib_decl @291
|
||||
Z3_get_smtlib_num_sorts @292
|
||||
Z3_get_smtlib_sort @293
|
||||
Z3_get_smtlib_error @294
|
||||
Z3_parse_z3_string @295
|
||||
Z3_parse_z3_file @296
|
||||
Z3_get_error_code @297
|
||||
Z3_set_error_handler @298
|
||||
Z3_set_error @299
|
||||
Z3_get_error_msg @300
|
||||
Z3_get_error_msg_ex @301
|
||||
Z3_get_version @302
|
||||
Z3_reset_memory @303
|
||||
Z3_mk_theory @304
|
||||
Z3_theory_get_ext_data @305
|
||||
Z3_theory_mk_sort @306
|
||||
Z3_theory_mk_value @307
|
||||
Z3_theory_mk_constant @308
|
||||
Z3_theory_mk_func_decl @309
|
||||
Z3_theory_get_context @310
|
||||
Z3_set_delete_callback @311
|
||||
Z3_set_reduce_app_callback @312
|
||||
Z3_set_reduce_eq_callback @313
|
||||
Z3_set_reduce_distinct_callback @314
|
||||
Z3_set_new_app_callback @315
|
||||
Z3_set_new_elem_callback @316
|
||||
Z3_set_init_search_callback @317
|
||||
Z3_set_push_callback @318
|
||||
Z3_set_pop_callback @319
|
||||
Z3_set_restart_callback @320
|
||||
Z3_set_reset_callback @321
|
||||
Z3_set_final_check_callback @322
|
||||
Z3_set_new_eq_callback @323
|
||||
Z3_set_new_diseq_callback @324
|
||||
Z3_set_new_assignment_callback @325
|
||||
Z3_set_new_relevant_callback @326
|
||||
Z3_theory_assert_axiom @327
|
||||
Z3_theory_assume_eq @328
|
||||
Z3_theory_enable_axiom_simplification @329
|
||||
Z3_theory_get_eqc_root @330
|
||||
Z3_theory_get_eqc_next @331
|
||||
Z3_theory_get_num_parents @332
|
||||
Z3_theory_get_parent @333
|
||||
Z3_theory_is_value @334
|
||||
Z3_theory_is_decl @335
|
||||
Z3_theory_get_num_elems @336
|
||||
Z3_theory_get_elem @337
|
||||
Z3_theory_get_num_apps @338
|
||||
Z3_theory_get_app @339
|
||||
Z3_mk_fixedpoint @340
|
||||
Z3_fixedpoint_inc_ref @341
|
||||
Z3_fixedpoint_dec_ref @342
|
||||
Z3_fixedpoint_add_rule @343
|
||||
Z3_fixedpoint_add_fact @344
|
||||
Z3_fixedpoint_assert @345
|
||||
Z3_fixedpoint_query @346
|
||||
Z3_fixedpoint_query_relations @347
|
||||
Z3_fixedpoint_get_answer @348
|
||||
Z3_fixedpoint_get_reason_unknown @349
|
||||
Z3_fixedpoint_update_rule @350
|
||||
Z3_fixedpoint_get_num_levels @351
|
||||
Z3_fixedpoint_get_cover_delta @352
|
||||
Z3_fixedpoint_add_cover @353
|
||||
Z3_fixedpoint_get_statistics @354
|
||||
Z3_fixedpoint_register_relation @355
|
||||
Z3_fixedpoint_set_predicate_representation @356
|
||||
Z3_fixedpoint_simplify_rules @357
|
||||
Z3_fixedpoint_set_params @358
|
||||
Z3_fixedpoint_get_help @359
|
||||
Z3_fixedpoint_get_param_descrs @360
|
||||
Z3_fixedpoint_to_string @361
|
||||
Z3_fixedpoint_push @362
|
||||
Z3_fixedpoint_pop @363
|
||||
Z3_fixedpoint_init @364
|
||||
Z3_fixedpoint_set_reduce_assign_callback @365
|
||||
Z3_fixedpoint_set_reduce_app_callback @366
|
||||
Z3_mk_ast_vector @367
|
||||
Z3_ast_vector_inc_ref @368
|
||||
Z3_ast_vector_dec_ref @369
|
||||
Z3_ast_vector_size @370
|
||||
Z3_ast_vector_get @371
|
||||
Z3_ast_vector_set @372
|
||||
Z3_ast_vector_resize @373
|
||||
Z3_ast_vector_push @374
|
||||
Z3_ast_vector_translate @375
|
||||
Z3_ast_vector_to_string @376
|
||||
Z3_mk_ast_map @377
|
||||
Z3_ast_map_inc_ref @378
|
||||
Z3_ast_map_dec_ref @379
|
||||
Z3_ast_map_contains @380
|
||||
Z3_ast_map_find @381
|
||||
Z3_ast_map_insert @382
|
||||
Z3_ast_map_erase @383
|
||||
Z3_ast_map_reset @384
|
||||
Z3_ast_map_size @385
|
||||
Z3_ast_map_keys @386
|
||||
Z3_ast_map_to_string @387
|
||||
Z3_mk_goal @388
|
||||
Z3_goal_inc_ref @389
|
||||
Z3_goal_dec_ref @390
|
||||
Z3_goal_precision @391
|
||||
Z3_goal_assert @392
|
||||
Z3_goal_inconsistent @393
|
||||
Z3_goal_depth @394
|
||||
Z3_goal_reset @395
|
||||
Z3_goal_size @396
|
||||
Z3_goal_formula @397
|
||||
Z3_goal_num_exprs @398
|
||||
Z3_goal_is_decided_sat @399
|
||||
Z3_goal_is_decided_unsat @400
|
||||
Z3_goal_translate @401
|
||||
Z3_goal_to_string @402
|
||||
Z3_mk_tactic @403
|
||||
Z3_tactic_inc_ref @404
|
||||
Z3_tactic_dec_ref @405
|
||||
Z3_mk_probe @406
|
||||
Z3_probe_inc_ref @407
|
||||
Z3_probe_dec_ref @408
|
||||
Z3_tactic_and_then @409
|
||||
Z3_tactic_or_else @410
|
||||
Z3_tactic_par_or @411
|
||||
Z3_tactic_par_and_then @412
|
||||
Z3_tactic_try_for @413
|
||||
Z3_tactic_when @414
|
||||
Z3_tactic_cond @415
|
||||
Z3_tactic_repeat @416
|
||||
Z3_tactic_skip @417
|
||||
Z3_tactic_fail @418
|
||||
Z3_tactic_fail_if @419
|
||||
Z3_tactic_fail_if_not_decided @420
|
||||
Z3_tactic_using_params @421
|
||||
Z3_probe_const @422
|
||||
Z3_probe_lt @423
|
||||
Z3_probe_gt @424
|
||||
Z3_probe_le @425
|
||||
Z3_probe_ge @426
|
||||
Z3_probe_eq @427
|
||||
Z3_probe_and @428
|
||||
Z3_probe_or @429
|
||||
Z3_probe_not @430
|
||||
Z3_get_num_tactics @431
|
||||
Z3_get_tactic_name @432
|
||||
Z3_get_num_probes @433
|
||||
Z3_get_probe_name @434
|
||||
Z3_tactic_get_help @435
|
||||
Z3_tactic_get_param_descrs @436
|
||||
Z3_tactic_get_descr @437
|
||||
Z3_probe_get_descr @438
|
||||
Z3_probe_apply @439
|
||||
Z3_tactic_apply @440
|
||||
Z3_tactic_apply_ex @441
|
||||
Z3_apply_result_inc_ref @442
|
||||
Z3_apply_result_dec_ref @443
|
||||
Z3_apply_result_to_string @444
|
||||
Z3_apply_result_get_num_subgoals @445
|
||||
Z3_apply_result_get_subgoal @446
|
||||
Z3_apply_result_convert_model @447
|
||||
Z3_mk_solver @448
|
||||
Z3_mk_simple_solver @449
|
||||
Z3_mk_solver_for_logic @450
|
||||
Z3_mk_solver_from_tactic @451
|
||||
Z3_solver_get_help @452
|
||||
Z3_solver_get_param_descrs @453
|
||||
Z3_solver_set_params @454
|
||||
Z3_solver_inc_ref @455
|
||||
Z3_solver_dec_ref @456
|
||||
Z3_solver_push @457
|
||||
Z3_solver_pop @458
|
||||
Z3_solver_reset @459
|
||||
Z3_solver_get_num_scopes @460
|
||||
Z3_solver_assert @461
|
||||
Z3_solver_get_assertions @462
|
||||
Z3_solver_check @463
|
||||
Z3_solver_check_assumptions @464
|
||||
Z3_solver_get_model @465
|
||||
Z3_solver_get_proof @466
|
||||
Z3_solver_get_unsat_core @467
|
||||
Z3_solver_get_reason_unknown @468
|
||||
Z3_solver_get_statistics @469
|
||||
Z3_solver_to_string @470
|
||||
Z3_stats_to_string @471
|
||||
Z3_stats_inc_ref @472
|
||||
Z3_stats_dec_ref @473
|
||||
Z3_stats_size @474
|
||||
Z3_stats_get_key @475
|
||||
Z3_stats_is_uint @476
|
||||
Z3_stats_is_double @477
|
||||
Z3_stats_get_uint_value @478
|
||||
Z3_stats_get_double_value @479
|
||||
Z3_mk_injective_function @480
|
||||
Z3_set_logic @481
|
||||
Z3_push @482
|
||||
Z3_pop @483
|
||||
Z3_get_num_scopes @484
|
||||
Z3_persist_ast @485
|
||||
Z3_assert_cnstr @486
|
||||
Z3_check_and_get_model @487
|
||||
Z3_check @488
|
||||
Z3_check_assumptions @489
|
||||
Z3_get_implied_equalities @490
|
||||
Z3_del_model @491
|
||||
Z3_soft_check_cancel @492
|
||||
Z3_get_search_failure @493
|
||||
Z3_mk_label @494
|
||||
Z3_get_relevant_labels @495
|
||||
Z3_get_relevant_literals @496
|
||||
Z3_get_guessed_literals @497
|
||||
Z3_del_literals @498
|
||||
Z3_get_num_literals @499
|
||||
Z3_get_label_symbol @500
|
||||
Z3_get_literal @501
|
||||
Z3_disable_literal @502
|
||||
Z3_block_literals @503
|
||||
Z3_get_model_num_constants @504
|
||||
Z3_get_model_constant @505
|
||||
Z3_get_model_num_funcs @506
|
||||
Z3_get_model_func_decl @507
|
||||
Z3_eval_func_decl @508
|
||||
Z3_is_array_value @509
|
||||
Z3_get_array_value @510
|
||||
Z3_get_model_func_else @511
|
||||
Z3_get_model_func_num_entries @512
|
||||
Z3_get_model_func_entry_num_args @513
|
||||
Z3_get_model_func_entry_arg @514
|
||||
Z3_get_model_func_entry_value @515
|
||||
Z3_eval @516
|
||||
Z3_eval_decl @517
|
||||
Z3_context_to_string @518
|
||||
Z3_statistics_to_string @519
|
||||
Z3_get_context_assignment @520
|
||||
|
|
989
dll/z3_dbg.def
989
dll/z3_dbg.def
|
@ -25,497 +25,498 @@ EXPORTS
|
|||
Z3_param_descrs_get_kind @23
|
||||
Z3_param_descrs_size @24
|
||||
Z3_param_descrs_get_name @25
|
||||
Z3_mk_int_symbol @26
|
||||
Z3_mk_string_symbol @27
|
||||
Z3_mk_uninterpreted_sort @28
|
||||
Z3_mk_bool_sort @29
|
||||
Z3_mk_int_sort @30
|
||||
Z3_mk_real_sort @31
|
||||
Z3_mk_bv_sort @32
|
||||
Z3_mk_finite_domain_sort @33
|
||||
Z3_mk_array_sort @34
|
||||
Z3_mk_tuple_sort @35
|
||||
Z3_mk_enumeration_sort @36
|
||||
Z3_mk_list_sort @37
|
||||
Z3_mk_constructor @38
|
||||
Z3_del_constructor @39
|
||||
Z3_mk_datatype @40
|
||||
Z3_mk_constructor_list @41
|
||||
Z3_del_constructor_list @42
|
||||
Z3_mk_datatypes @43
|
||||
Z3_query_constructor @44
|
||||
Z3_mk_func_decl @45
|
||||
Z3_mk_app @46
|
||||
Z3_mk_const @47
|
||||
Z3_mk_fresh_func_decl @48
|
||||
Z3_mk_fresh_const @49
|
||||
Z3_mk_true @50
|
||||
Z3_mk_false @51
|
||||
Z3_mk_eq @52
|
||||
Z3_mk_distinct @53
|
||||
Z3_mk_not @54
|
||||
Z3_mk_ite @55
|
||||
Z3_mk_iff @56
|
||||
Z3_mk_implies @57
|
||||
Z3_mk_xor @58
|
||||
Z3_mk_and @59
|
||||
Z3_mk_or @60
|
||||
Z3_mk_add @61
|
||||
Z3_mk_mul @62
|
||||
Z3_mk_sub @63
|
||||
Z3_mk_unary_minus @64
|
||||
Z3_mk_div @65
|
||||
Z3_mk_mod @66
|
||||
Z3_mk_rem @67
|
||||
Z3_mk_power @68
|
||||
Z3_mk_lt @69
|
||||
Z3_mk_le @70
|
||||
Z3_mk_gt @71
|
||||
Z3_mk_ge @72
|
||||
Z3_mk_int2real @73
|
||||
Z3_mk_real2int @74
|
||||
Z3_mk_is_int @75
|
||||
Z3_mk_bvnot @76
|
||||
Z3_mk_bvredand @77
|
||||
Z3_mk_bvredor @78
|
||||
Z3_mk_bvand @79
|
||||
Z3_mk_bvor @80
|
||||
Z3_mk_bvxor @81
|
||||
Z3_mk_bvnand @82
|
||||
Z3_mk_bvnor @83
|
||||
Z3_mk_bvxnor @84
|
||||
Z3_mk_bvneg @85
|
||||
Z3_mk_bvadd @86
|
||||
Z3_mk_bvsub @87
|
||||
Z3_mk_bvmul @88
|
||||
Z3_mk_bvudiv @89
|
||||
Z3_mk_bvsdiv @90
|
||||
Z3_mk_bvurem @91
|
||||
Z3_mk_bvsrem @92
|
||||
Z3_mk_bvsmod @93
|
||||
Z3_mk_bvult @94
|
||||
Z3_mk_bvslt @95
|
||||
Z3_mk_bvule @96
|
||||
Z3_mk_bvsle @97
|
||||
Z3_mk_bvuge @98
|
||||
Z3_mk_bvsge @99
|
||||
Z3_mk_bvugt @100
|
||||
Z3_mk_bvsgt @101
|
||||
Z3_mk_concat @102
|
||||
Z3_mk_extract @103
|
||||
Z3_mk_sign_ext @104
|
||||
Z3_mk_zero_ext @105
|
||||
Z3_mk_repeat @106
|
||||
Z3_mk_bvshl @107
|
||||
Z3_mk_bvlshr @108
|
||||
Z3_mk_bvashr @109
|
||||
Z3_mk_rotate_left @110
|
||||
Z3_mk_rotate_right @111
|
||||
Z3_mk_ext_rotate_left @112
|
||||
Z3_mk_ext_rotate_right @113
|
||||
Z3_mk_int2bv @114
|
||||
Z3_mk_bv2int @115
|
||||
Z3_mk_bvadd_no_overflow @116
|
||||
Z3_mk_bvadd_no_underflow @117
|
||||
Z3_mk_bvsub_no_overflow @118
|
||||
Z3_mk_bvsub_no_underflow @119
|
||||
Z3_mk_bvsdiv_no_overflow @120
|
||||
Z3_mk_bvneg_no_overflow @121
|
||||
Z3_mk_bvmul_no_overflow @122
|
||||
Z3_mk_bvmul_no_underflow @123
|
||||
Z3_mk_select @124
|
||||
Z3_mk_store @125
|
||||
Z3_mk_const_array @126
|
||||
Z3_mk_map @127
|
||||
Z3_mk_array_default @128
|
||||
Z3_mk_set_sort @129
|
||||
Z3_mk_empty_set @130
|
||||
Z3_mk_full_set @131
|
||||
Z3_mk_set_add @132
|
||||
Z3_mk_set_del @133
|
||||
Z3_mk_set_union @134
|
||||
Z3_mk_set_intersect @135
|
||||
Z3_mk_set_difference @136
|
||||
Z3_mk_set_complement @137
|
||||
Z3_mk_set_member @138
|
||||
Z3_mk_set_subset @139
|
||||
Z3_mk_numeral @140
|
||||
Z3_mk_real @141
|
||||
Z3_mk_int @142
|
||||
Z3_mk_unsigned_int @143
|
||||
Z3_mk_int64 @144
|
||||
Z3_mk_unsigned_int64 @145
|
||||
Z3_mk_pattern @146
|
||||
Z3_mk_bound @147
|
||||
Z3_mk_forall @148
|
||||
Z3_mk_exists @149
|
||||
Z3_mk_quantifier @150
|
||||
Z3_mk_quantifier_ex @151
|
||||
Z3_mk_forall_const @152
|
||||
Z3_mk_exists_const @153
|
||||
Z3_mk_quantifier_const @154
|
||||
Z3_mk_quantifier_const_ex @155
|
||||
Z3_get_symbol_kind @156
|
||||
Z3_get_symbol_int @157
|
||||
Z3_get_symbol_string @158
|
||||
Z3_get_sort_name @159
|
||||
Z3_get_sort_id @160
|
||||
Z3_sort_to_ast @161
|
||||
Z3_is_eq_sort @162
|
||||
Z3_get_sort_kind @163
|
||||
Z3_get_bv_sort_size @164
|
||||
Z3_get_finite_domain_sort_size @165
|
||||
Z3_get_array_sort_domain @166
|
||||
Z3_get_array_sort_range @167
|
||||
Z3_get_tuple_sort_mk_decl @168
|
||||
Z3_get_tuple_sort_num_fields @169
|
||||
Z3_get_tuple_sort_field_decl @170
|
||||
Z3_get_datatype_sort_num_constructors @171
|
||||
Z3_get_datatype_sort_constructor @172
|
||||
Z3_get_datatype_sort_recognizer @173
|
||||
Z3_get_datatype_sort_constructor_accessor @174
|
||||
Z3_get_relation_arity @175
|
||||
Z3_get_relation_column @176
|
||||
Z3_func_decl_to_ast @177
|
||||
Z3_is_eq_func_decl @178
|
||||
Z3_get_func_decl_id @179
|
||||
Z3_get_decl_name @180
|
||||
Z3_get_decl_kind @181
|
||||
Z3_get_domain_size @182
|
||||
Z3_get_arity @183
|
||||
Z3_get_domain @184
|
||||
Z3_get_range @185
|
||||
Z3_get_decl_num_parameters @186
|
||||
Z3_get_decl_parameter_kind @187
|
||||
Z3_get_decl_int_parameter @188
|
||||
Z3_get_decl_double_parameter @189
|
||||
Z3_get_decl_symbol_parameter @190
|
||||
Z3_get_decl_sort_parameter @191
|
||||
Z3_get_decl_ast_parameter @192
|
||||
Z3_get_decl_func_decl_parameter @193
|
||||
Z3_get_decl_rational_parameter @194
|
||||
Z3_app_to_ast @195
|
||||
Z3_get_app_decl @196
|
||||
Z3_get_app_num_args @197
|
||||
Z3_get_app_arg @198
|
||||
Z3_is_eq_ast @199
|
||||
Z3_get_ast_id @200
|
||||
Z3_get_ast_hash @201
|
||||
Z3_get_sort @202
|
||||
Z3_is_well_sorted @203
|
||||
Z3_get_bool_value @204
|
||||
Z3_get_ast_kind @205
|
||||
Z3_is_app @206
|
||||
Z3_is_numeral_ast @207
|
||||
Z3_is_algebraic_number @208
|
||||
Z3_to_app @209
|
||||
Z3_to_func_decl @210
|
||||
Z3_get_numeral_string @211
|
||||
Z3_get_numeral_decimal_string @212
|
||||
Z3_get_numerator @213
|
||||
Z3_get_denominator @214
|
||||
Z3_get_numeral_small @215
|
||||
Z3_get_numeral_int @216
|
||||
Z3_get_numeral_uint @217
|
||||
Z3_get_numeral_uint64 @218
|
||||
Z3_get_numeral_int64 @219
|
||||
Z3_get_numeral_rational_int64 @220
|
||||
Z3_get_algebraic_number_lower @221
|
||||
Z3_get_algebraic_number_upper @222
|
||||
Z3_pattern_to_ast @223
|
||||
Z3_get_pattern_num_terms @224
|
||||
Z3_get_pattern @225
|
||||
Z3_get_index_value @226
|
||||
Z3_is_quantifier_forall @227
|
||||
Z3_get_quantifier_weight @228
|
||||
Z3_get_quantifier_num_patterns @229
|
||||
Z3_get_quantifier_pattern_ast @230
|
||||
Z3_get_quantifier_num_no_patterns @231
|
||||
Z3_get_quantifier_no_pattern_ast @232
|
||||
Z3_get_quantifier_bound_name @233
|
||||
Z3_get_quantifier_bound_sort @234
|
||||
Z3_get_quantifier_body @235
|
||||
Z3_get_quantifier_num_bound @236
|
||||
Z3_simplify @237
|
||||
Z3_simplify_ex @238
|
||||
Z3_simplify_get_help @239
|
||||
Z3_simplify_get_param_descrs @240
|
||||
Z3_update_term @241
|
||||
Z3_substitute @242
|
||||
Z3_substitute_vars @243
|
||||
Z3_translate @244
|
||||
Z3_model_inc_ref @245
|
||||
Z3_model_dec_ref @246
|
||||
Z3_model_eval @247
|
||||
Z3_model_get_const_interp @248
|
||||
Z3_model_get_func_interp @249
|
||||
Z3_model_get_num_consts @250
|
||||
Z3_model_get_const_decl @251
|
||||
Z3_model_get_num_funcs @252
|
||||
Z3_model_get_func_decl @253
|
||||
Z3_model_get_num_sorts @254
|
||||
Z3_model_get_sort @255
|
||||
Z3_model_get_sort_universe @256
|
||||
Z3_is_as_array @257
|
||||
Z3_get_as_array_func_decl @258
|
||||
Z3_func_interp_inc_ref @259
|
||||
Z3_func_interp_dec_ref @260
|
||||
Z3_func_interp_get_num_entries @261
|
||||
Z3_func_interp_get_entry @262
|
||||
Z3_func_interp_get_else @263
|
||||
Z3_func_interp_get_arity @264
|
||||
Z3_func_entry_inc_ref @265
|
||||
Z3_func_entry_dec_ref @266
|
||||
Z3_func_entry_get_value @267
|
||||
Z3_func_entry_get_num_args @268
|
||||
Z3_func_entry_get_arg @269
|
||||
Z3_open_log @270
|
||||
Z3_append_log @271
|
||||
Z3_close_log @272
|
||||
Z3_toggle_warning_messages @273
|
||||
Z3_set_ast_print_mode @274
|
||||
Z3_ast_to_string @275
|
||||
Z3_pattern_to_string @276
|
||||
Z3_sort_to_string @277
|
||||
Z3_func_decl_to_string @278
|
||||
Z3_model_to_string @279
|
||||
Z3_benchmark_to_smtlib_string @280
|
||||
Z3_parse_smtlib2_string @281
|
||||
Z3_parse_smtlib2_file @282
|
||||
Z3_parse_smtlib_string @283
|
||||
Z3_parse_smtlib_file @284
|
||||
Z3_get_smtlib_num_formulas @285
|
||||
Z3_get_smtlib_formula @286
|
||||
Z3_get_smtlib_num_assumptions @287
|
||||
Z3_get_smtlib_assumption @288
|
||||
Z3_get_smtlib_num_decls @289
|
||||
Z3_get_smtlib_decl @290
|
||||
Z3_get_smtlib_num_sorts @291
|
||||
Z3_get_smtlib_sort @292
|
||||
Z3_get_smtlib_error @293
|
||||
Z3_parse_z3_string @294
|
||||
Z3_parse_z3_file @295
|
||||
Z3_get_error_code @296
|
||||
Z3_set_error_handler @297
|
||||
Z3_set_error @298
|
||||
Z3_get_error_msg @299
|
||||
Z3_get_error_msg_ex @300
|
||||
Z3_get_version @301
|
||||
Z3_reset_memory @302
|
||||
Z3_mk_theory @303
|
||||
Z3_theory_get_ext_data @304
|
||||
Z3_theory_mk_sort @305
|
||||
Z3_theory_mk_value @306
|
||||
Z3_theory_mk_constant @307
|
||||
Z3_theory_mk_func_decl @308
|
||||
Z3_theory_get_context @309
|
||||
Z3_set_delete_callback @310
|
||||
Z3_set_reduce_app_callback @311
|
||||
Z3_set_reduce_eq_callback @312
|
||||
Z3_set_reduce_distinct_callback @313
|
||||
Z3_set_new_app_callback @314
|
||||
Z3_set_new_elem_callback @315
|
||||
Z3_set_init_search_callback @316
|
||||
Z3_set_push_callback @317
|
||||
Z3_set_pop_callback @318
|
||||
Z3_set_restart_callback @319
|
||||
Z3_set_reset_callback @320
|
||||
Z3_set_final_check_callback @321
|
||||
Z3_set_new_eq_callback @322
|
||||
Z3_set_new_diseq_callback @323
|
||||
Z3_set_new_assignment_callback @324
|
||||
Z3_set_new_relevant_callback @325
|
||||
Z3_theory_assert_axiom @326
|
||||
Z3_theory_assume_eq @327
|
||||
Z3_theory_enable_axiom_simplification @328
|
||||
Z3_theory_get_eqc_root @329
|
||||
Z3_theory_get_eqc_next @330
|
||||
Z3_theory_get_num_parents @331
|
||||
Z3_theory_get_parent @332
|
||||
Z3_theory_is_value @333
|
||||
Z3_theory_is_decl @334
|
||||
Z3_theory_get_num_elems @335
|
||||
Z3_theory_get_elem @336
|
||||
Z3_theory_get_num_apps @337
|
||||
Z3_theory_get_app @338
|
||||
Z3_mk_fixedpoint @339
|
||||
Z3_fixedpoint_inc_ref @340
|
||||
Z3_fixedpoint_dec_ref @341
|
||||
Z3_fixedpoint_add_rule @342
|
||||
Z3_fixedpoint_add_fact @343
|
||||
Z3_fixedpoint_assert @344
|
||||
Z3_fixedpoint_query @345
|
||||
Z3_fixedpoint_query_relations @346
|
||||
Z3_fixedpoint_get_answer @347
|
||||
Z3_fixedpoint_get_reason_unknown @348
|
||||
Z3_fixedpoint_update_rule @349
|
||||
Z3_fixedpoint_get_num_levels @350
|
||||
Z3_fixedpoint_get_cover_delta @351
|
||||
Z3_fixedpoint_add_cover @352
|
||||
Z3_fixedpoint_get_statistics @353
|
||||
Z3_fixedpoint_register_relation @354
|
||||
Z3_fixedpoint_set_predicate_representation @355
|
||||
Z3_fixedpoint_simplify_rules @356
|
||||
Z3_fixedpoint_set_params @357
|
||||
Z3_fixedpoint_get_help @358
|
||||
Z3_fixedpoint_get_param_descrs @359
|
||||
Z3_fixedpoint_to_string @360
|
||||
Z3_fixedpoint_push @361
|
||||
Z3_fixedpoint_pop @362
|
||||
Z3_fixedpoint_init @363
|
||||
Z3_fixedpoint_set_reduce_assign_callback @364
|
||||
Z3_fixedpoint_set_reduce_app_callback @365
|
||||
Z3_mk_ast_vector @366
|
||||
Z3_ast_vector_inc_ref @367
|
||||
Z3_ast_vector_dec_ref @368
|
||||
Z3_ast_vector_size @369
|
||||
Z3_ast_vector_get @370
|
||||
Z3_ast_vector_set @371
|
||||
Z3_ast_vector_resize @372
|
||||
Z3_ast_vector_push @373
|
||||
Z3_ast_vector_translate @374
|
||||
Z3_ast_vector_to_string @375
|
||||
Z3_mk_ast_map @376
|
||||
Z3_ast_map_inc_ref @377
|
||||
Z3_ast_map_dec_ref @378
|
||||
Z3_ast_map_contains @379
|
||||
Z3_ast_map_find @380
|
||||
Z3_ast_map_insert @381
|
||||
Z3_ast_map_erase @382
|
||||
Z3_ast_map_reset @383
|
||||
Z3_ast_map_size @384
|
||||
Z3_ast_map_keys @385
|
||||
Z3_ast_map_to_string @386
|
||||
Z3_mk_goal @387
|
||||
Z3_goal_inc_ref @388
|
||||
Z3_goal_dec_ref @389
|
||||
Z3_goal_precision @390
|
||||
Z3_goal_assert @391
|
||||
Z3_goal_inconsistent @392
|
||||
Z3_goal_depth @393
|
||||
Z3_goal_reset @394
|
||||
Z3_goal_size @395
|
||||
Z3_goal_formula @396
|
||||
Z3_goal_num_exprs @397
|
||||
Z3_goal_is_decided_sat @398
|
||||
Z3_goal_is_decided_unsat @399
|
||||
Z3_goal_translate @400
|
||||
Z3_goal_to_string @401
|
||||
Z3_mk_tactic @402
|
||||
Z3_tactic_inc_ref @403
|
||||
Z3_tactic_dec_ref @404
|
||||
Z3_mk_probe @405
|
||||
Z3_probe_inc_ref @406
|
||||
Z3_probe_dec_ref @407
|
||||
Z3_tactic_and_then @408
|
||||
Z3_tactic_or_else @409
|
||||
Z3_tactic_par_or @410
|
||||
Z3_tactic_par_and_then @411
|
||||
Z3_tactic_try_for @412
|
||||
Z3_tactic_when @413
|
||||
Z3_tactic_cond @414
|
||||
Z3_tactic_repeat @415
|
||||
Z3_tactic_skip @416
|
||||
Z3_tactic_fail @417
|
||||
Z3_tactic_fail_if @418
|
||||
Z3_tactic_fail_if_not_decided @419
|
||||
Z3_tactic_using_params @420
|
||||
Z3_probe_const @421
|
||||
Z3_probe_lt @422
|
||||
Z3_probe_gt @423
|
||||
Z3_probe_le @424
|
||||
Z3_probe_ge @425
|
||||
Z3_probe_eq @426
|
||||
Z3_probe_and @427
|
||||
Z3_probe_or @428
|
||||
Z3_probe_not @429
|
||||
Z3_get_num_tactics @430
|
||||
Z3_get_tactic_name @431
|
||||
Z3_get_num_probes @432
|
||||
Z3_get_probe_name @433
|
||||
Z3_tactic_get_help @434
|
||||
Z3_tactic_get_param_descrs @435
|
||||
Z3_tactic_get_descr @436
|
||||
Z3_probe_get_descr @437
|
||||
Z3_probe_apply @438
|
||||
Z3_tactic_apply @439
|
||||
Z3_tactic_apply_ex @440
|
||||
Z3_apply_result_inc_ref @441
|
||||
Z3_apply_result_dec_ref @442
|
||||
Z3_apply_result_to_string @443
|
||||
Z3_apply_result_get_num_subgoals @444
|
||||
Z3_apply_result_get_subgoal @445
|
||||
Z3_apply_result_convert_model @446
|
||||
Z3_mk_solver @447
|
||||
Z3_mk_simple_solver @448
|
||||
Z3_mk_solver_for_logic @449
|
||||
Z3_mk_solver_from_tactic @450
|
||||
Z3_solver_get_help @451
|
||||
Z3_solver_get_param_descrs @452
|
||||
Z3_solver_set_params @453
|
||||
Z3_solver_inc_ref @454
|
||||
Z3_solver_dec_ref @455
|
||||
Z3_solver_push @456
|
||||
Z3_solver_pop @457
|
||||
Z3_solver_reset @458
|
||||
Z3_solver_get_num_scopes @459
|
||||
Z3_solver_assert @460
|
||||
Z3_solver_get_assertions @461
|
||||
Z3_solver_check @462
|
||||
Z3_solver_check_assumptions @463
|
||||
Z3_solver_get_model @464
|
||||
Z3_solver_get_proof @465
|
||||
Z3_solver_get_unsat_core @466
|
||||
Z3_solver_get_reason_unknown @467
|
||||
Z3_solver_get_statistics @468
|
||||
Z3_solver_to_string @469
|
||||
Z3_stats_to_string @470
|
||||
Z3_stats_inc_ref @471
|
||||
Z3_stats_dec_ref @472
|
||||
Z3_stats_size @473
|
||||
Z3_stats_get_key @474
|
||||
Z3_stats_is_uint @475
|
||||
Z3_stats_is_double @476
|
||||
Z3_stats_get_uint_value @477
|
||||
Z3_stats_get_double_value @478
|
||||
Z3_mk_injective_function @479
|
||||
Z3_set_logic @480
|
||||
Z3_push @481
|
||||
Z3_pop @482
|
||||
Z3_get_num_scopes @483
|
||||
Z3_persist_ast @484
|
||||
Z3_assert_cnstr @485
|
||||
Z3_check_and_get_model @486
|
||||
Z3_check @487
|
||||
Z3_check_assumptions @488
|
||||
Z3_get_implied_equalities @489
|
||||
Z3_del_model @490
|
||||
Z3_soft_check_cancel @491
|
||||
Z3_get_search_failure @492
|
||||
Z3_mk_label @493
|
||||
Z3_get_relevant_labels @494
|
||||
Z3_get_relevant_literals @495
|
||||
Z3_get_guessed_literals @496
|
||||
Z3_del_literals @497
|
||||
Z3_get_num_literals @498
|
||||
Z3_get_label_symbol @499
|
||||
Z3_get_literal @500
|
||||
Z3_disable_literal @501
|
||||
Z3_block_literals @502
|
||||
Z3_get_model_num_constants @503
|
||||
Z3_get_model_constant @504
|
||||
Z3_get_model_num_funcs @505
|
||||
Z3_get_model_func_decl @506
|
||||
Z3_eval_func_decl @507
|
||||
Z3_is_array_value @508
|
||||
Z3_get_array_value @509
|
||||
Z3_get_model_func_else @510
|
||||
Z3_get_model_func_num_entries @511
|
||||
Z3_get_model_func_entry_num_args @512
|
||||
Z3_get_model_func_entry_arg @513
|
||||
Z3_get_model_func_entry_value @514
|
||||
Z3_eval @515
|
||||
Z3_eval_decl @516
|
||||
Z3_context_to_string @517
|
||||
Z3_statistics_to_string @518
|
||||
Z3_get_context_assignment @519
|
||||
Z3_param_descrs_to_string @26
|
||||
Z3_mk_int_symbol @27
|
||||
Z3_mk_string_symbol @28
|
||||
Z3_mk_uninterpreted_sort @29
|
||||
Z3_mk_bool_sort @30
|
||||
Z3_mk_int_sort @31
|
||||
Z3_mk_real_sort @32
|
||||
Z3_mk_bv_sort @33
|
||||
Z3_mk_finite_domain_sort @34
|
||||
Z3_mk_array_sort @35
|
||||
Z3_mk_tuple_sort @36
|
||||
Z3_mk_enumeration_sort @37
|
||||
Z3_mk_list_sort @38
|
||||
Z3_mk_constructor @39
|
||||
Z3_del_constructor @40
|
||||
Z3_mk_datatype @41
|
||||
Z3_mk_constructor_list @42
|
||||
Z3_del_constructor_list @43
|
||||
Z3_mk_datatypes @44
|
||||
Z3_query_constructor @45
|
||||
Z3_mk_func_decl @46
|
||||
Z3_mk_app @47
|
||||
Z3_mk_const @48
|
||||
Z3_mk_fresh_func_decl @49
|
||||
Z3_mk_fresh_const @50
|
||||
Z3_mk_true @51
|
||||
Z3_mk_false @52
|
||||
Z3_mk_eq @53
|
||||
Z3_mk_distinct @54
|
||||
Z3_mk_not @55
|
||||
Z3_mk_ite @56
|
||||
Z3_mk_iff @57
|
||||
Z3_mk_implies @58
|
||||
Z3_mk_xor @59
|
||||
Z3_mk_and @60
|
||||
Z3_mk_or @61
|
||||
Z3_mk_add @62
|
||||
Z3_mk_mul @63
|
||||
Z3_mk_sub @64
|
||||
Z3_mk_unary_minus @65
|
||||
Z3_mk_div @66
|
||||
Z3_mk_mod @67
|
||||
Z3_mk_rem @68
|
||||
Z3_mk_power @69
|
||||
Z3_mk_lt @70
|
||||
Z3_mk_le @71
|
||||
Z3_mk_gt @72
|
||||
Z3_mk_ge @73
|
||||
Z3_mk_int2real @74
|
||||
Z3_mk_real2int @75
|
||||
Z3_mk_is_int @76
|
||||
Z3_mk_bvnot @77
|
||||
Z3_mk_bvredand @78
|
||||
Z3_mk_bvredor @79
|
||||
Z3_mk_bvand @80
|
||||
Z3_mk_bvor @81
|
||||
Z3_mk_bvxor @82
|
||||
Z3_mk_bvnand @83
|
||||
Z3_mk_bvnor @84
|
||||
Z3_mk_bvxnor @85
|
||||
Z3_mk_bvneg @86
|
||||
Z3_mk_bvadd @87
|
||||
Z3_mk_bvsub @88
|
||||
Z3_mk_bvmul @89
|
||||
Z3_mk_bvudiv @90
|
||||
Z3_mk_bvsdiv @91
|
||||
Z3_mk_bvurem @92
|
||||
Z3_mk_bvsrem @93
|
||||
Z3_mk_bvsmod @94
|
||||
Z3_mk_bvult @95
|
||||
Z3_mk_bvslt @96
|
||||
Z3_mk_bvule @97
|
||||
Z3_mk_bvsle @98
|
||||
Z3_mk_bvuge @99
|
||||
Z3_mk_bvsge @100
|
||||
Z3_mk_bvugt @101
|
||||
Z3_mk_bvsgt @102
|
||||
Z3_mk_concat @103
|
||||
Z3_mk_extract @104
|
||||
Z3_mk_sign_ext @105
|
||||
Z3_mk_zero_ext @106
|
||||
Z3_mk_repeat @107
|
||||
Z3_mk_bvshl @108
|
||||
Z3_mk_bvlshr @109
|
||||
Z3_mk_bvashr @110
|
||||
Z3_mk_rotate_left @111
|
||||
Z3_mk_rotate_right @112
|
||||
Z3_mk_ext_rotate_left @113
|
||||
Z3_mk_ext_rotate_right @114
|
||||
Z3_mk_int2bv @115
|
||||
Z3_mk_bv2int @116
|
||||
Z3_mk_bvadd_no_overflow @117
|
||||
Z3_mk_bvadd_no_underflow @118
|
||||
Z3_mk_bvsub_no_overflow @119
|
||||
Z3_mk_bvsub_no_underflow @120
|
||||
Z3_mk_bvsdiv_no_overflow @121
|
||||
Z3_mk_bvneg_no_overflow @122
|
||||
Z3_mk_bvmul_no_overflow @123
|
||||
Z3_mk_bvmul_no_underflow @124
|
||||
Z3_mk_select @125
|
||||
Z3_mk_store @126
|
||||
Z3_mk_const_array @127
|
||||
Z3_mk_map @128
|
||||
Z3_mk_array_default @129
|
||||
Z3_mk_set_sort @130
|
||||
Z3_mk_empty_set @131
|
||||
Z3_mk_full_set @132
|
||||
Z3_mk_set_add @133
|
||||
Z3_mk_set_del @134
|
||||
Z3_mk_set_union @135
|
||||
Z3_mk_set_intersect @136
|
||||
Z3_mk_set_difference @137
|
||||
Z3_mk_set_complement @138
|
||||
Z3_mk_set_member @139
|
||||
Z3_mk_set_subset @140
|
||||
Z3_mk_numeral @141
|
||||
Z3_mk_real @142
|
||||
Z3_mk_int @143
|
||||
Z3_mk_unsigned_int @144
|
||||
Z3_mk_int64 @145
|
||||
Z3_mk_unsigned_int64 @146
|
||||
Z3_mk_pattern @147
|
||||
Z3_mk_bound @148
|
||||
Z3_mk_forall @149
|
||||
Z3_mk_exists @150
|
||||
Z3_mk_quantifier @151
|
||||
Z3_mk_quantifier_ex @152
|
||||
Z3_mk_forall_const @153
|
||||
Z3_mk_exists_const @154
|
||||
Z3_mk_quantifier_const @155
|
||||
Z3_mk_quantifier_const_ex @156
|
||||
Z3_get_symbol_kind @157
|
||||
Z3_get_symbol_int @158
|
||||
Z3_get_symbol_string @159
|
||||
Z3_get_sort_name @160
|
||||
Z3_get_sort_id @161
|
||||
Z3_sort_to_ast @162
|
||||
Z3_is_eq_sort @163
|
||||
Z3_get_sort_kind @164
|
||||
Z3_get_bv_sort_size @165
|
||||
Z3_get_finite_domain_sort_size @166
|
||||
Z3_get_array_sort_domain @167
|
||||
Z3_get_array_sort_range @168
|
||||
Z3_get_tuple_sort_mk_decl @169
|
||||
Z3_get_tuple_sort_num_fields @170
|
||||
Z3_get_tuple_sort_field_decl @171
|
||||
Z3_get_datatype_sort_num_constructors @172
|
||||
Z3_get_datatype_sort_constructor @173
|
||||
Z3_get_datatype_sort_recognizer @174
|
||||
Z3_get_datatype_sort_constructor_accessor @175
|
||||
Z3_get_relation_arity @176
|
||||
Z3_get_relation_column @177
|
||||
Z3_func_decl_to_ast @178
|
||||
Z3_is_eq_func_decl @179
|
||||
Z3_get_func_decl_id @180
|
||||
Z3_get_decl_name @181
|
||||
Z3_get_decl_kind @182
|
||||
Z3_get_domain_size @183
|
||||
Z3_get_arity @184
|
||||
Z3_get_domain @185
|
||||
Z3_get_range @186
|
||||
Z3_get_decl_num_parameters @187
|
||||
Z3_get_decl_parameter_kind @188
|
||||
Z3_get_decl_int_parameter @189
|
||||
Z3_get_decl_double_parameter @190
|
||||
Z3_get_decl_symbol_parameter @191
|
||||
Z3_get_decl_sort_parameter @192
|
||||
Z3_get_decl_ast_parameter @193
|
||||
Z3_get_decl_func_decl_parameter @194
|
||||
Z3_get_decl_rational_parameter @195
|
||||
Z3_app_to_ast @196
|
||||
Z3_get_app_decl @197
|
||||
Z3_get_app_num_args @198
|
||||
Z3_get_app_arg @199
|
||||
Z3_is_eq_ast @200
|
||||
Z3_get_ast_id @201
|
||||
Z3_get_ast_hash @202
|
||||
Z3_get_sort @203
|
||||
Z3_is_well_sorted @204
|
||||
Z3_get_bool_value @205
|
||||
Z3_get_ast_kind @206
|
||||
Z3_is_app @207
|
||||
Z3_is_numeral_ast @208
|
||||
Z3_is_algebraic_number @209
|
||||
Z3_to_app @210
|
||||
Z3_to_func_decl @211
|
||||
Z3_get_numeral_string @212
|
||||
Z3_get_numeral_decimal_string @213
|
||||
Z3_get_numerator @214
|
||||
Z3_get_denominator @215
|
||||
Z3_get_numeral_small @216
|
||||
Z3_get_numeral_int @217
|
||||
Z3_get_numeral_uint @218
|
||||
Z3_get_numeral_uint64 @219
|
||||
Z3_get_numeral_int64 @220
|
||||
Z3_get_numeral_rational_int64 @221
|
||||
Z3_get_algebraic_number_lower @222
|
||||
Z3_get_algebraic_number_upper @223
|
||||
Z3_pattern_to_ast @224
|
||||
Z3_get_pattern_num_terms @225
|
||||
Z3_get_pattern @226
|
||||
Z3_get_index_value @227
|
||||
Z3_is_quantifier_forall @228
|
||||
Z3_get_quantifier_weight @229
|
||||
Z3_get_quantifier_num_patterns @230
|
||||
Z3_get_quantifier_pattern_ast @231
|
||||
Z3_get_quantifier_num_no_patterns @232
|
||||
Z3_get_quantifier_no_pattern_ast @233
|
||||
Z3_get_quantifier_num_bound @234
|
||||
Z3_get_quantifier_bound_name @235
|
||||
Z3_get_quantifier_bound_sort @236
|
||||
Z3_get_quantifier_body @237
|
||||
Z3_simplify @238
|
||||
Z3_simplify_ex @239
|
||||
Z3_simplify_get_help @240
|
||||
Z3_simplify_get_param_descrs @241
|
||||
Z3_update_term @242
|
||||
Z3_substitute @243
|
||||
Z3_substitute_vars @244
|
||||
Z3_translate @245
|
||||
Z3_model_inc_ref @246
|
||||
Z3_model_dec_ref @247
|
||||
Z3_model_eval @248
|
||||
Z3_model_get_const_interp @249
|
||||
Z3_model_get_func_interp @250
|
||||
Z3_model_get_num_consts @251
|
||||
Z3_model_get_const_decl @252
|
||||
Z3_model_get_num_funcs @253
|
||||
Z3_model_get_func_decl @254
|
||||
Z3_model_get_num_sorts @255
|
||||
Z3_model_get_sort @256
|
||||
Z3_model_get_sort_universe @257
|
||||
Z3_is_as_array @258
|
||||
Z3_get_as_array_func_decl @259
|
||||
Z3_func_interp_inc_ref @260
|
||||
Z3_func_interp_dec_ref @261
|
||||
Z3_func_interp_get_num_entries @262
|
||||
Z3_func_interp_get_entry @263
|
||||
Z3_func_interp_get_else @264
|
||||
Z3_func_interp_get_arity @265
|
||||
Z3_func_entry_inc_ref @266
|
||||
Z3_func_entry_dec_ref @267
|
||||
Z3_func_entry_get_value @268
|
||||
Z3_func_entry_get_num_args @269
|
||||
Z3_func_entry_get_arg @270
|
||||
Z3_open_log @271
|
||||
Z3_append_log @272
|
||||
Z3_close_log @273
|
||||
Z3_toggle_warning_messages @274
|
||||
Z3_set_ast_print_mode @275
|
||||
Z3_ast_to_string @276
|
||||
Z3_pattern_to_string @277
|
||||
Z3_sort_to_string @278
|
||||
Z3_func_decl_to_string @279
|
||||
Z3_model_to_string @280
|
||||
Z3_benchmark_to_smtlib_string @281
|
||||
Z3_parse_smtlib2_string @282
|
||||
Z3_parse_smtlib2_file @283
|
||||
Z3_parse_smtlib_string @284
|
||||
Z3_parse_smtlib_file @285
|
||||
Z3_get_smtlib_num_formulas @286
|
||||
Z3_get_smtlib_formula @287
|
||||
Z3_get_smtlib_num_assumptions @288
|
||||
Z3_get_smtlib_assumption @289
|
||||
Z3_get_smtlib_num_decls @290
|
||||
Z3_get_smtlib_decl @291
|
||||
Z3_get_smtlib_num_sorts @292
|
||||
Z3_get_smtlib_sort @293
|
||||
Z3_get_smtlib_error @294
|
||||
Z3_parse_z3_string @295
|
||||
Z3_parse_z3_file @296
|
||||
Z3_get_error_code @297
|
||||
Z3_set_error_handler @298
|
||||
Z3_set_error @299
|
||||
Z3_get_error_msg @300
|
||||
Z3_get_error_msg_ex @301
|
||||
Z3_get_version @302
|
||||
Z3_reset_memory @303
|
||||
Z3_mk_theory @304
|
||||
Z3_theory_get_ext_data @305
|
||||
Z3_theory_mk_sort @306
|
||||
Z3_theory_mk_value @307
|
||||
Z3_theory_mk_constant @308
|
||||
Z3_theory_mk_func_decl @309
|
||||
Z3_theory_get_context @310
|
||||
Z3_set_delete_callback @311
|
||||
Z3_set_reduce_app_callback @312
|
||||
Z3_set_reduce_eq_callback @313
|
||||
Z3_set_reduce_distinct_callback @314
|
||||
Z3_set_new_app_callback @315
|
||||
Z3_set_new_elem_callback @316
|
||||
Z3_set_init_search_callback @317
|
||||
Z3_set_push_callback @318
|
||||
Z3_set_pop_callback @319
|
||||
Z3_set_restart_callback @320
|
||||
Z3_set_reset_callback @321
|
||||
Z3_set_final_check_callback @322
|
||||
Z3_set_new_eq_callback @323
|
||||
Z3_set_new_diseq_callback @324
|
||||
Z3_set_new_assignment_callback @325
|
||||
Z3_set_new_relevant_callback @326
|
||||
Z3_theory_assert_axiom @327
|
||||
Z3_theory_assume_eq @328
|
||||
Z3_theory_enable_axiom_simplification @329
|
||||
Z3_theory_get_eqc_root @330
|
||||
Z3_theory_get_eqc_next @331
|
||||
Z3_theory_get_num_parents @332
|
||||
Z3_theory_get_parent @333
|
||||
Z3_theory_is_value @334
|
||||
Z3_theory_is_decl @335
|
||||
Z3_theory_get_num_elems @336
|
||||
Z3_theory_get_elem @337
|
||||
Z3_theory_get_num_apps @338
|
||||
Z3_theory_get_app @339
|
||||
Z3_mk_fixedpoint @340
|
||||
Z3_fixedpoint_inc_ref @341
|
||||
Z3_fixedpoint_dec_ref @342
|
||||
Z3_fixedpoint_add_rule @343
|
||||
Z3_fixedpoint_add_fact @344
|
||||
Z3_fixedpoint_assert @345
|
||||
Z3_fixedpoint_query @346
|
||||
Z3_fixedpoint_query_relations @347
|
||||
Z3_fixedpoint_get_answer @348
|
||||
Z3_fixedpoint_get_reason_unknown @349
|
||||
Z3_fixedpoint_update_rule @350
|
||||
Z3_fixedpoint_get_num_levels @351
|
||||
Z3_fixedpoint_get_cover_delta @352
|
||||
Z3_fixedpoint_add_cover @353
|
||||
Z3_fixedpoint_get_statistics @354
|
||||
Z3_fixedpoint_register_relation @355
|
||||
Z3_fixedpoint_set_predicate_representation @356
|
||||
Z3_fixedpoint_simplify_rules @357
|
||||
Z3_fixedpoint_set_params @358
|
||||
Z3_fixedpoint_get_help @359
|
||||
Z3_fixedpoint_get_param_descrs @360
|
||||
Z3_fixedpoint_to_string @361
|
||||
Z3_fixedpoint_push @362
|
||||
Z3_fixedpoint_pop @363
|
||||
Z3_fixedpoint_init @364
|
||||
Z3_fixedpoint_set_reduce_assign_callback @365
|
||||
Z3_fixedpoint_set_reduce_app_callback @366
|
||||
Z3_mk_ast_vector @367
|
||||
Z3_ast_vector_inc_ref @368
|
||||
Z3_ast_vector_dec_ref @369
|
||||
Z3_ast_vector_size @370
|
||||
Z3_ast_vector_get @371
|
||||
Z3_ast_vector_set @372
|
||||
Z3_ast_vector_resize @373
|
||||
Z3_ast_vector_push @374
|
||||
Z3_ast_vector_translate @375
|
||||
Z3_ast_vector_to_string @376
|
||||
Z3_mk_ast_map @377
|
||||
Z3_ast_map_inc_ref @378
|
||||
Z3_ast_map_dec_ref @379
|
||||
Z3_ast_map_contains @380
|
||||
Z3_ast_map_find @381
|
||||
Z3_ast_map_insert @382
|
||||
Z3_ast_map_erase @383
|
||||
Z3_ast_map_reset @384
|
||||
Z3_ast_map_size @385
|
||||
Z3_ast_map_keys @386
|
||||
Z3_ast_map_to_string @387
|
||||
Z3_mk_goal @388
|
||||
Z3_goal_inc_ref @389
|
||||
Z3_goal_dec_ref @390
|
||||
Z3_goal_precision @391
|
||||
Z3_goal_assert @392
|
||||
Z3_goal_inconsistent @393
|
||||
Z3_goal_depth @394
|
||||
Z3_goal_reset @395
|
||||
Z3_goal_size @396
|
||||
Z3_goal_formula @397
|
||||
Z3_goal_num_exprs @398
|
||||
Z3_goal_is_decided_sat @399
|
||||
Z3_goal_is_decided_unsat @400
|
||||
Z3_goal_translate @401
|
||||
Z3_goal_to_string @402
|
||||
Z3_mk_tactic @403
|
||||
Z3_tactic_inc_ref @404
|
||||
Z3_tactic_dec_ref @405
|
||||
Z3_mk_probe @406
|
||||
Z3_probe_inc_ref @407
|
||||
Z3_probe_dec_ref @408
|
||||
Z3_tactic_and_then @409
|
||||
Z3_tactic_or_else @410
|
||||
Z3_tactic_par_or @411
|
||||
Z3_tactic_par_and_then @412
|
||||
Z3_tactic_try_for @413
|
||||
Z3_tactic_when @414
|
||||
Z3_tactic_cond @415
|
||||
Z3_tactic_repeat @416
|
||||
Z3_tactic_skip @417
|
||||
Z3_tactic_fail @418
|
||||
Z3_tactic_fail_if @419
|
||||
Z3_tactic_fail_if_not_decided @420
|
||||
Z3_tactic_using_params @421
|
||||
Z3_probe_const @422
|
||||
Z3_probe_lt @423
|
||||
Z3_probe_gt @424
|
||||
Z3_probe_le @425
|
||||
Z3_probe_ge @426
|
||||
Z3_probe_eq @427
|
||||
Z3_probe_and @428
|
||||
Z3_probe_or @429
|
||||
Z3_probe_not @430
|
||||
Z3_get_num_tactics @431
|
||||
Z3_get_tactic_name @432
|
||||
Z3_get_num_probes @433
|
||||
Z3_get_probe_name @434
|
||||
Z3_tactic_get_help @435
|
||||
Z3_tactic_get_param_descrs @436
|
||||
Z3_tactic_get_descr @437
|
||||
Z3_probe_get_descr @438
|
||||
Z3_probe_apply @439
|
||||
Z3_tactic_apply @440
|
||||
Z3_tactic_apply_ex @441
|
||||
Z3_apply_result_inc_ref @442
|
||||
Z3_apply_result_dec_ref @443
|
||||
Z3_apply_result_to_string @444
|
||||
Z3_apply_result_get_num_subgoals @445
|
||||
Z3_apply_result_get_subgoal @446
|
||||
Z3_apply_result_convert_model @447
|
||||
Z3_mk_solver @448
|
||||
Z3_mk_simple_solver @449
|
||||
Z3_mk_solver_for_logic @450
|
||||
Z3_mk_solver_from_tactic @451
|
||||
Z3_solver_get_help @452
|
||||
Z3_solver_get_param_descrs @453
|
||||
Z3_solver_set_params @454
|
||||
Z3_solver_inc_ref @455
|
||||
Z3_solver_dec_ref @456
|
||||
Z3_solver_push @457
|
||||
Z3_solver_pop @458
|
||||
Z3_solver_reset @459
|
||||
Z3_solver_get_num_scopes @460
|
||||
Z3_solver_assert @461
|
||||
Z3_solver_get_assertions @462
|
||||
Z3_solver_check @463
|
||||
Z3_solver_check_assumptions @464
|
||||
Z3_solver_get_model @465
|
||||
Z3_solver_get_proof @466
|
||||
Z3_solver_get_unsat_core @467
|
||||
Z3_solver_get_reason_unknown @468
|
||||
Z3_solver_get_statistics @469
|
||||
Z3_solver_to_string @470
|
||||
Z3_stats_to_string @471
|
||||
Z3_stats_inc_ref @472
|
||||
Z3_stats_dec_ref @473
|
||||
Z3_stats_size @474
|
||||
Z3_stats_get_key @475
|
||||
Z3_stats_is_uint @476
|
||||
Z3_stats_is_double @477
|
||||
Z3_stats_get_uint_value @478
|
||||
Z3_stats_get_double_value @479
|
||||
Z3_mk_injective_function @480
|
||||
Z3_set_logic @481
|
||||
Z3_push @482
|
||||
Z3_pop @483
|
||||
Z3_get_num_scopes @484
|
||||
Z3_persist_ast @485
|
||||
Z3_assert_cnstr @486
|
||||
Z3_check_and_get_model @487
|
||||
Z3_check @488
|
||||
Z3_check_assumptions @489
|
||||
Z3_get_implied_equalities @490
|
||||
Z3_del_model @491
|
||||
Z3_soft_check_cancel @492
|
||||
Z3_get_search_failure @493
|
||||
Z3_mk_label @494
|
||||
Z3_get_relevant_labels @495
|
||||
Z3_get_relevant_literals @496
|
||||
Z3_get_guessed_literals @497
|
||||
Z3_del_literals @498
|
||||
Z3_get_num_literals @499
|
||||
Z3_get_label_symbol @500
|
||||
Z3_get_literal @501
|
||||
Z3_disable_literal @502
|
||||
Z3_block_literals @503
|
||||
Z3_get_model_num_constants @504
|
||||
Z3_get_model_constant @505
|
||||
Z3_get_model_num_funcs @506
|
||||
Z3_get_model_func_decl @507
|
||||
Z3_eval_func_decl @508
|
||||
Z3_is_array_value @509
|
||||
Z3_get_array_value @510
|
||||
Z3_get_model_func_else @511
|
||||
Z3_get_model_func_num_entries @512
|
||||
Z3_get_model_func_entry_num_args @513
|
||||
Z3_get_model_func_entry_arg @514
|
||||
Z3_get_model_func_entry_value @515
|
||||
Z3_eval @516
|
||||
Z3_eval_decl @517
|
||||
Z3_context_to_string @518
|
||||
Z3_statistics_to_string @519
|
||||
Z3_get_context_assignment @520
|
||||
|
|
|
@ -57,10 +57,9 @@ def _find_lib():
|
|||
_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
libs = ['z3.dll', 'libz3.so', 'libz3.dylib']
|
||||
if sys.maxsize > 2**32:
|
||||
winlibdir = 'x64'
|
||||
locs = [_dir, '%s%s..%sx64%sexternal' % (_dir, os.sep, os.sep, os.sep), '%s%s..%sbin%sexternal' % (_dir, os.sep, os.sep, os.sep)]
|
||||
else:
|
||||
winlibdir = 'bin'
|
||||
locs = [_dir, '%s%s..%s%s' % (_dir, os.sep, os.sep, winlibdir), '%s%s..%slib' % (_dir, os.sep, os.sep), '%s%s..%sexternal' % (_dir, os.sep, os.sep), '%s%s..%sbin%sexternal' % (_dir, os.sep, os.sep, os.sep)]
|
||||
locs = [_dir, '%s%s..%sexternal' % (_dir, os.sep, os.sep), '%s%s..%sbin%sexternal' % (_dir, os.sep, os.sep, os.sep)]
|
||||
for loc in locs:
|
||||
for lib in libs:
|
||||
f = '%s%s%s' % (loc, os.sep, lib)
|
||||
|
@ -1101,6 +1100,7 @@ API('Z3_param_descrs_dec_ref', VOID, (_in(CONTEXT), _in(PARAM_DESCRS)))
|
|||
API('Z3_param_descrs_get_kind', UINT, (_in(CONTEXT), _in(PARAM_DESCRS), _in(SYMBOL)))
|
||||
API('Z3_param_descrs_size', UINT, (_in(CONTEXT), _in(PARAM_DESCRS)))
|
||||
API('Z3_param_descrs_get_name', SYMBOL, (_in(CONTEXT), _in(PARAM_DESCRS), _in(UINT)))
|
||||
API('Z3_param_descrs_to_string', STRING, (_in(CONTEXT), _in(PARAM_DESCRS)))
|
||||
# New APIs
|
||||
API('Z3_interrupt', VOID, (_in(CONTEXT),))
|
||||
API('Z3_get_error_msg_ex', STRING, (_in(CONTEXT), _in(ERROR_CODE)))
|
||||
|
|
|
@ -2328,6 +2328,11 @@ void exec_Z3_param_descrs_get_name(z3_replayer & in) {
|
|||
reinterpret_cast<Z3_param_descrs>(in.get_obj(1)),
|
||||
in.get_uint(2));
|
||||
}
|
||||
void exec_Z3_param_descrs_to_string(z3_replayer & in) {
|
||||
Z3_param_descrs_to_string(
|
||||
reinterpret_cast<Z3_context>(in.get_obj(0)),
|
||||
reinterpret_cast<Z3_param_descrs>(in.get_obj(1)));
|
||||
}
|
||||
void exec_Z3_interrupt(z3_replayer & in) {
|
||||
Z3_interrupt(
|
||||
reinterpret_cast<Z3_context>(in.get_obj(0)));
|
||||
|
@ -3359,120 +3364,121 @@ void register_z3_replayer_cmds(z3_replayer & in) {
|
|||
in.register_cmd(357, exec_Z3_param_descrs_get_kind);
|
||||
in.register_cmd(358, exec_Z3_param_descrs_size);
|
||||
in.register_cmd(359, exec_Z3_param_descrs_get_name);
|
||||
in.register_cmd(360, exec_Z3_interrupt);
|
||||
in.register_cmd(361, exec_Z3_get_error_msg_ex);
|
||||
in.register_cmd(362, exec_Z3_translate);
|
||||
in.register_cmd(363, exec_Z3_mk_goal);
|
||||
in.register_cmd(364, exec_Z3_goal_inc_ref);
|
||||
in.register_cmd(365, exec_Z3_goal_dec_ref);
|
||||
in.register_cmd(366, exec_Z3_goal_precision);
|
||||
in.register_cmd(367, exec_Z3_goal_assert);
|
||||
in.register_cmd(368, exec_Z3_goal_inconsistent);
|
||||
in.register_cmd(369, exec_Z3_goal_depth);
|
||||
in.register_cmd(370, exec_Z3_goal_reset);
|
||||
in.register_cmd(371, exec_Z3_goal_size);
|
||||
in.register_cmd(372, exec_Z3_goal_formula);
|
||||
in.register_cmd(373, exec_Z3_goal_num_exprs);
|
||||
in.register_cmd(374, exec_Z3_goal_is_decided_sat);
|
||||
in.register_cmd(375, exec_Z3_goal_is_decided_unsat);
|
||||
in.register_cmd(376, exec_Z3_goal_translate);
|
||||
in.register_cmd(377, exec_Z3_goal_to_string);
|
||||
in.register_cmd(378, exec_Z3_mk_tactic);
|
||||
in.register_cmd(379, exec_Z3_mk_probe);
|
||||
in.register_cmd(380, exec_Z3_tactic_inc_ref);
|
||||
in.register_cmd(381, exec_Z3_tactic_dec_ref);
|
||||
in.register_cmd(382, exec_Z3_probe_inc_ref);
|
||||
in.register_cmd(383, exec_Z3_probe_dec_ref);
|
||||
in.register_cmd(384, exec_Z3_tactic_and_then);
|
||||
in.register_cmd(385, exec_Z3_tactic_or_else);
|
||||
in.register_cmd(386, exec_Z3_tactic_par_or);
|
||||
in.register_cmd(387, exec_Z3_tactic_par_and_then);
|
||||
in.register_cmd(388, exec_Z3_tactic_try_for);
|
||||
in.register_cmd(389, exec_Z3_tactic_when);
|
||||
in.register_cmd(390, exec_Z3_tactic_cond);
|
||||
in.register_cmd(391, exec_Z3_tactic_repeat);
|
||||
in.register_cmd(392, exec_Z3_tactic_skip);
|
||||
in.register_cmd(393, exec_Z3_tactic_fail);
|
||||
in.register_cmd(394, exec_Z3_tactic_fail_if);
|
||||
in.register_cmd(395, exec_Z3_tactic_fail_if_not_decided);
|
||||
in.register_cmd(396, exec_Z3_tactic_using_params);
|
||||
in.register_cmd(397, exec_Z3_probe_const);
|
||||
in.register_cmd(398, exec_Z3_probe_lt);
|
||||
in.register_cmd(399, exec_Z3_probe_le);
|
||||
in.register_cmd(400, exec_Z3_probe_gt);
|
||||
in.register_cmd(401, exec_Z3_probe_ge);
|
||||
in.register_cmd(402, exec_Z3_probe_eq);
|
||||
in.register_cmd(403, exec_Z3_probe_and);
|
||||
in.register_cmd(404, exec_Z3_probe_or);
|
||||
in.register_cmd(405, exec_Z3_probe_not);
|
||||
in.register_cmd(406, exec_Z3_get_num_tactics);
|
||||
in.register_cmd(407, exec_Z3_get_tactic_name);
|
||||
in.register_cmd(408, exec_Z3_get_num_probes);
|
||||
in.register_cmd(409, exec_Z3_get_probe_name);
|
||||
in.register_cmd(410, exec_Z3_tactic_get_help);
|
||||
in.register_cmd(411, exec_Z3_tactic_get_param_descrs);
|
||||
in.register_cmd(412, exec_Z3_tactic_get_descr);
|
||||
in.register_cmd(413, exec_Z3_probe_get_descr);
|
||||
in.register_cmd(414, exec_Z3_probe_apply);
|
||||
in.register_cmd(415, exec_Z3_tactic_apply);
|
||||
in.register_cmd(416, exec_Z3_tactic_apply_ex);
|
||||
in.register_cmd(417, exec_Z3_apply_result_inc_ref);
|
||||
in.register_cmd(418, exec_Z3_apply_result_dec_ref);
|
||||
in.register_cmd(419, exec_Z3_apply_result_to_string);
|
||||
in.register_cmd(420, exec_Z3_apply_result_get_num_subgoals);
|
||||
in.register_cmd(421, exec_Z3_apply_result_get_subgoal);
|
||||
in.register_cmd(422, exec_Z3_apply_result_convert_model);
|
||||
in.register_cmd(423, exec_Z3_mk_solver);
|
||||
in.register_cmd(424, exec_Z3_mk_simple_solver);
|
||||
in.register_cmd(425, exec_Z3_mk_solver_for_logic);
|
||||
in.register_cmd(426, exec_Z3_mk_solver_from_tactic);
|
||||
in.register_cmd(427, exec_Z3_solver_get_help);
|
||||
in.register_cmd(428, exec_Z3_solver_get_param_descrs);
|
||||
in.register_cmd(429, exec_Z3_solver_set_params);
|
||||
in.register_cmd(430, exec_Z3_solver_inc_ref);
|
||||
in.register_cmd(431, exec_Z3_solver_dec_ref);
|
||||
in.register_cmd(432, exec_Z3_solver_push);
|
||||
in.register_cmd(433, exec_Z3_solver_pop);
|
||||
in.register_cmd(434, exec_Z3_solver_reset);
|
||||
in.register_cmd(435, exec_Z3_solver_get_num_scopes);
|
||||
in.register_cmd(436, exec_Z3_solver_assert);
|
||||
in.register_cmd(437, exec_Z3_solver_get_assertions);
|
||||
in.register_cmd(438, exec_Z3_solver_check);
|
||||
in.register_cmd(439, exec_Z3_solver_check_assumptions);
|
||||
in.register_cmd(440, exec_Z3_solver_get_model);
|
||||
in.register_cmd(441, exec_Z3_solver_get_proof);
|
||||
in.register_cmd(442, exec_Z3_solver_get_unsat_core);
|
||||
in.register_cmd(443, exec_Z3_solver_get_reason_unknown);
|
||||
in.register_cmd(444, exec_Z3_solver_get_statistics);
|
||||
in.register_cmd(445, exec_Z3_solver_to_string);
|
||||
in.register_cmd(446, exec_Z3_stats_to_string);
|
||||
in.register_cmd(447, exec_Z3_stats_inc_ref);
|
||||
in.register_cmd(448, exec_Z3_stats_dec_ref);
|
||||
in.register_cmd(449, exec_Z3_stats_size);
|
||||
in.register_cmd(450, exec_Z3_stats_get_key);
|
||||
in.register_cmd(451, exec_Z3_stats_is_uint);
|
||||
in.register_cmd(452, exec_Z3_stats_is_double);
|
||||
in.register_cmd(453, exec_Z3_stats_get_uint_value);
|
||||
in.register_cmd(454, exec_Z3_stats_get_double_value);
|
||||
in.register_cmd(455, exec_Z3_mk_ast_vector);
|
||||
in.register_cmd(456, exec_Z3_ast_vector_inc_ref);
|
||||
in.register_cmd(457, exec_Z3_ast_vector_dec_ref);
|
||||
in.register_cmd(458, exec_Z3_ast_vector_size);
|
||||
in.register_cmd(459, exec_Z3_ast_vector_get);
|
||||
in.register_cmd(460, exec_Z3_ast_vector_set);
|
||||
in.register_cmd(461, exec_Z3_ast_vector_resize);
|
||||
in.register_cmd(462, exec_Z3_ast_vector_push);
|
||||
in.register_cmd(463, exec_Z3_ast_vector_translate);
|
||||
in.register_cmd(464, exec_Z3_ast_vector_to_string);
|
||||
in.register_cmd(465, exec_Z3_mk_ast_map);
|
||||
in.register_cmd(466, exec_Z3_ast_map_inc_ref);
|
||||
in.register_cmd(467, exec_Z3_ast_map_dec_ref);
|
||||
in.register_cmd(468, exec_Z3_ast_map_contains);
|
||||
in.register_cmd(469, exec_Z3_ast_map_find);
|
||||
in.register_cmd(470, exec_Z3_ast_map_insert);
|
||||
in.register_cmd(471, exec_Z3_ast_map_erase);
|
||||
in.register_cmd(472, exec_Z3_ast_map_size);
|
||||
in.register_cmd(473, exec_Z3_ast_map_reset);
|
||||
in.register_cmd(474, exec_Z3_ast_map_keys);
|
||||
in.register_cmd(475, exec_Z3_ast_map_to_string);
|
||||
in.register_cmd(360, exec_Z3_param_descrs_to_string);
|
||||
in.register_cmd(361, exec_Z3_interrupt);
|
||||
in.register_cmd(362, exec_Z3_get_error_msg_ex);
|
||||
in.register_cmd(363, exec_Z3_translate);
|
||||
in.register_cmd(364, exec_Z3_mk_goal);
|
||||
in.register_cmd(365, exec_Z3_goal_inc_ref);
|
||||
in.register_cmd(366, exec_Z3_goal_dec_ref);
|
||||
in.register_cmd(367, exec_Z3_goal_precision);
|
||||
in.register_cmd(368, exec_Z3_goal_assert);
|
||||
in.register_cmd(369, exec_Z3_goal_inconsistent);
|
||||
in.register_cmd(370, exec_Z3_goal_depth);
|
||||
in.register_cmd(371, exec_Z3_goal_reset);
|
||||
in.register_cmd(372, exec_Z3_goal_size);
|
||||
in.register_cmd(373, exec_Z3_goal_formula);
|
||||
in.register_cmd(374, exec_Z3_goal_num_exprs);
|
||||
in.register_cmd(375, exec_Z3_goal_is_decided_sat);
|
||||
in.register_cmd(376, exec_Z3_goal_is_decided_unsat);
|
||||
in.register_cmd(377, exec_Z3_goal_translate);
|
||||
in.register_cmd(378, exec_Z3_goal_to_string);
|
||||
in.register_cmd(379, exec_Z3_mk_tactic);
|
||||
in.register_cmd(380, exec_Z3_mk_probe);
|
||||
in.register_cmd(381, exec_Z3_tactic_inc_ref);
|
||||
in.register_cmd(382, exec_Z3_tactic_dec_ref);
|
||||
in.register_cmd(383, exec_Z3_probe_inc_ref);
|
||||
in.register_cmd(384, exec_Z3_probe_dec_ref);
|
||||
in.register_cmd(385, exec_Z3_tactic_and_then);
|
||||
in.register_cmd(386, exec_Z3_tactic_or_else);
|
||||
in.register_cmd(387, exec_Z3_tactic_par_or);
|
||||
in.register_cmd(388, exec_Z3_tactic_par_and_then);
|
||||
in.register_cmd(389, exec_Z3_tactic_try_for);
|
||||
in.register_cmd(390, exec_Z3_tactic_when);
|
||||
in.register_cmd(391, exec_Z3_tactic_cond);
|
||||
in.register_cmd(392, exec_Z3_tactic_repeat);
|
||||
in.register_cmd(393, exec_Z3_tactic_skip);
|
||||
in.register_cmd(394, exec_Z3_tactic_fail);
|
||||
in.register_cmd(395, exec_Z3_tactic_fail_if);
|
||||
in.register_cmd(396, exec_Z3_tactic_fail_if_not_decided);
|
||||
in.register_cmd(397, exec_Z3_tactic_using_params);
|
||||
in.register_cmd(398, exec_Z3_probe_const);
|
||||
in.register_cmd(399, exec_Z3_probe_lt);
|
||||
in.register_cmd(400, exec_Z3_probe_le);
|
||||
in.register_cmd(401, exec_Z3_probe_gt);
|
||||
in.register_cmd(402, exec_Z3_probe_ge);
|
||||
in.register_cmd(403, exec_Z3_probe_eq);
|
||||
in.register_cmd(404, exec_Z3_probe_and);
|
||||
in.register_cmd(405, exec_Z3_probe_or);
|
||||
in.register_cmd(406, exec_Z3_probe_not);
|
||||
in.register_cmd(407, exec_Z3_get_num_tactics);
|
||||
in.register_cmd(408, exec_Z3_get_tactic_name);
|
||||
in.register_cmd(409, exec_Z3_get_num_probes);
|
||||
in.register_cmd(410, exec_Z3_get_probe_name);
|
||||
in.register_cmd(411, exec_Z3_tactic_get_help);
|
||||
in.register_cmd(412, exec_Z3_tactic_get_param_descrs);
|
||||
in.register_cmd(413, exec_Z3_tactic_get_descr);
|
||||
in.register_cmd(414, exec_Z3_probe_get_descr);
|
||||
in.register_cmd(415, exec_Z3_probe_apply);
|
||||
in.register_cmd(416, exec_Z3_tactic_apply);
|
||||
in.register_cmd(417, exec_Z3_tactic_apply_ex);
|
||||
in.register_cmd(418, exec_Z3_apply_result_inc_ref);
|
||||
in.register_cmd(419, exec_Z3_apply_result_dec_ref);
|
||||
in.register_cmd(420, exec_Z3_apply_result_to_string);
|
||||
in.register_cmd(421, exec_Z3_apply_result_get_num_subgoals);
|
||||
in.register_cmd(422, exec_Z3_apply_result_get_subgoal);
|
||||
in.register_cmd(423, exec_Z3_apply_result_convert_model);
|
||||
in.register_cmd(424, exec_Z3_mk_solver);
|
||||
in.register_cmd(425, exec_Z3_mk_simple_solver);
|
||||
in.register_cmd(426, exec_Z3_mk_solver_for_logic);
|
||||
in.register_cmd(427, exec_Z3_mk_solver_from_tactic);
|
||||
in.register_cmd(428, exec_Z3_solver_get_help);
|
||||
in.register_cmd(429, exec_Z3_solver_get_param_descrs);
|
||||
in.register_cmd(430, exec_Z3_solver_set_params);
|
||||
in.register_cmd(431, exec_Z3_solver_inc_ref);
|
||||
in.register_cmd(432, exec_Z3_solver_dec_ref);
|
||||
in.register_cmd(433, exec_Z3_solver_push);
|
||||
in.register_cmd(434, exec_Z3_solver_pop);
|
||||
in.register_cmd(435, exec_Z3_solver_reset);
|
||||
in.register_cmd(436, exec_Z3_solver_get_num_scopes);
|
||||
in.register_cmd(437, exec_Z3_solver_assert);
|
||||
in.register_cmd(438, exec_Z3_solver_get_assertions);
|
||||
in.register_cmd(439, exec_Z3_solver_check);
|
||||
in.register_cmd(440, exec_Z3_solver_check_assumptions);
|
||||
in.register_cmd(441, exec_Z3_solver_get_model);
|
||||
in.register_cmd(442, exec_Z3_solver_get_proof);
|
||||
in.register_cmd(443, exec_Z3_solver_get_unsat_core);
|
||||
in.register_cmd(444, exec_Z3_solver_get_reason_unknown);
|
||||
in.register_cmd(445, exec_Z3_solver_get_statistics);
|
||||
in.register_cmd(446, exec_Z3_solver_to_string);
|
||||
in.register_cmd(447, exec_Z3_stats_to_string);
|
||||
in.register_cmd(448, exec_Z3_stats_inc_ref);
|
||||
in.register_cmd(449, exec_Z3_stats_dec_ref);
|
||||
in.register_cmd(450, exec_Z3_stats_size);
|
||||
in.register_cmd(451, exec_Z3_stats_get_key);
|
||||
in.register_cmd(452, exec_Z3_stats_is_uint);
|
||||
in.register_cmd(453, exec_Z3_stats_is_double);
|
||||
in.register_cmd(454, exec_Z3_stats_get_uint_value);
|
||||
in.register_cmd(455, exec_Z3_stats_get_double_value);
|
||||
in.register_cmd(456, exec_Z3_mk_ast_vector);
|
||||
in.register_cmd(457, exec_Z3_ast_vector_inc_ref);
|
||||
in.register_cmd(458, exec_Z3_ast_vector_dec_ref);
|
||||
in.register_cmd(459, exec_Z3_ast_vector_size);
|
||||
in.register_cmd(460, exec_Z3_ast_vector_get);
|
||||
in.register_cmd(461, exec_Z3_ast_vector_set);
|
||||
in.register_cmd(462, exec_Z3_ast_vector_resize);
|
||||
in.register_cmd(463, exec_Z3_ast_vector_push);
|
||||
in.register_cmd(464, exec_Z3_ast_vector_translate);
|
||||
in.register_cmd(465, exec_Z3_ast_vector_to_string);
|
||||
in.register_cmd(466, exec_Z3_mk_ast_map);
|
||||
in.register_cmd(467, exec_Z3_ast_map_inc_ref);
|
||||
in.register_cmd(468, exec_Z3_ast_map_dec_ref);
|
||||
in.register_cmd(469, exec_Z3_ast_map_contains);
|
||||
in.register_cmd(470, exec_Z3_ast_map_find);
|
||||
in.register_cmd(471, exec_Z3_ast_map_insert);
|
||||
in.register_cmd(472, exec_Z3_ast_map_erase);
|
||||
in.register_cmd(473, exec_Z3_ast_map_size);
|
||||
in.register_cmd(474, exec_Z3_ast_map_reset);
|
||||
in.register_cmd(475, exec_Z3_ast_map_keys);
|
||||
in.register_cmd(476, exec_Z3_ast_map_to_string);
|
||||
}
|
||||
|
|
|
@ -2570,23 +2570,29 @@ void log_Z3_param_descrs_get_name(Z3_context a0, Z3_param_descrs a1, unsigned a2
|
|||
U(a2);
|
||||
C(359);
|
||||
}
|
||||
void log_Z3_param_descrs_to_string(Z3_context a0, Z3_param_descrs a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(360);
|
||||
}
|
||||
void log_Z3_interrupt(Z3_context a0) {
|
||||
R();
|
||||
P(a0);
|
||||
C(360);
|
||||
C(361);
|
||||
}
|
||||
void log_Z3_get_error_msg_ex(Z3_context a0, Z3_error_code a1) {
|
||||
R();
|
||||
P(a0);
|
||||
U(static_cast<unsigned>(a1));
|
||||
C(361);
|
||||
C(362);
|
||||
}
|
||||
void log_Z3_translate(Z3_context a0, Z3_ast a1, Z3_context a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(362);
|
||||
C(363);
|
||||
}
|
||||
void log_Z3_mk_goal(Z3_context a0, Z3_bool a1, Z3_bool a2, Z3_bool a3) {
|
||||
R();
|
||||
|
@ -2594,144 +2600,144 @@ void log_Z3_mk_goal(Z3_context a0, Z3_bool a1, Z3_bool a2, Z3_bool a3) {
|
|||
I(a1);
|
||||
I(a2);
|
||||
I(a3);
|
||||
C(363);
|
||||
C(364);
|
||||
}
|
||||
void log_Z3_goal_inc_ref(Z3_context a0, Z3_goal a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(364);
|
||||
C(365);
|
||||
}
|
||||
void log_Z3_goal_dec_ref(Z3_context a0, Z3_goal a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(365);
|
||||
C(366);
|
||||
}
|
||||
void log_Z3_goal_precision(Z3_context a0, Z3_goal a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(366);
|
||||
C(367);
|
||||
}
|
||||
void log_Z3_goal_assert(Z3_context a0, Z3_goal a1, Z3_ast a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(367);
|
||||
C(368);
|
||||
}
|
||||
void log_Z3_goal_inconsistent(Z3_context a0, Z3_goal a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(368);
|
||||
C(369);
|
||||
}
|
||||
void log_Z3_goal_depth(Z3_context a0, Z3_goal a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(369);
|
||||
C(370);
|
||||
}
|
||||
void log_Z3_goal_reset(Z3_context a0, Z3_goal a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(370);
|
||||
C(371);
|
||||
}
|
||||
void log_Z3_goal_size(Z3_context a0, Z3_goal a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(371);
|
||||
C(372);
|
||||
}
|
||||
void log_Z3_goal_formula(Z3_context a0, Z3_goal a1, unsigned a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
U(a2);
|
||||
C(372);
|
||||
C(373);
|
||||
}
|
||||
void log_Z3_goal_num_exprs(Z3_context a0, Z3_goal a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(373);
|
||||
C(374);
|
||||
}
|
||||
void log_Z3_goal_is_decided_sat(Z3_context a0, Z3_goal a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(374);
|
||||
C(375);
|
||||
}
|
||||
void log_Z3_goal_is_decided_unsat(Z3_context a0, Z3_goal a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(375);
|
||||
C(376);
|
||||
}
|
||||
void log_Z3_goal_translate(Z3_context a0, Z3_goal a1, Z3_context a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(376);
|
||||
C(377);
|
||||
}
|
||||
void log_Z3_goal_to_string(Z3_context a0, Z3_goal a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(377);
|
||||
C(378);
|
||||
}
|
||||
void log_Z3_mk_tactic(Z3_context a0, Z3_string a1) {
|
||||
R();
|
||||
P(a0);
|
||||
S(a1);
|
||||
C(378);
|
||||
C(379);
|
||||
}
|
||||
void log_Z3_mk_probe(Z3_context a0, Z3_string a1) {
|
||||
R();
|
||||
P(a0);
|
||||
S(a1);
|
||||
C(379);
|
||||
C(380);
|
||||
}
|
||||
void log_Z3_tactic_inc_ref(Z3_context a0, Z3_tactic a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(380);
|
||||
C(381);
|
||||
}
|
||||
void log_Z3_tactic_dec_ref(Z3_context a0, Z3_tactic a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(381);
|
||||
C(382);
|
||||
}
|
||||
void log_Z3_probe_inc_ref(Z3_context a0, Z3_probe a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(382);
|
||||
C(383);
|
||||
}
|
||||
void log_Z3_probe_dec_ref(Z3_context a0, Z3_probe a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(383);
|
||||
C(384);
|
||||
}
|
||||
void log_Z3_tactic_and_then(Z3_context a0, Z3_tactic a1, Z3_tactic a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(384);
|
||||
C(385);
|
||||
}
|
||||
void log_Z3_tactic_or_else(Z3_context a0, Z3_tactic a1, Z3_tactic a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(385);
|
||||
C(386);
|
||||
}
|
||||
void log_Z3_tactic_par_or(Z3_context a0, unsigned a1, Z3_tactic const * a2) {
|
||||
R();
|
||||
|
@ -2739,28 +2745,28 @@ void log_Z3_tactic_par_or(Z3_context a0, unsigned a1, Z3_tactic const * a2) {
|
|||
U(a1);
|
||||
for (unsigned i = 0; i < a1; i++) { P(a2[i]); }
|
||||
Ap(a1);
|
||||
C(386);
|
||||
C(387);
|
||||
}
|
||||
void log_Z3_tactic_par_and_then(Z3_context a0, Z3_tactic a1, Z3_tactic a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(387);
|
||||
C(388);
|
||||
}
|
||||
void log_Z3_tactic_try_for(Z3_context a0, Z3_tactic a1, unsigned a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
U(a2);
|
||||
C(388);
|
||||
C(389);
|
||||
}
|
||||
void log_Z3_tactic_when(Z3_context a0, Z3_probe a1, Z3_tactic a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(389);
|
||||
C(390);
|
||||
}
|
||||
void log_Z3_tactic_cond(Z3_context a0, Z3_probe a1, Z3_tactic a2, Z3_tactic a3) {
|
||||
R();
|
||||
|
@ -2768,163 +2774,163 @@ void log_Z3_tactic_cond(Z3_context a0, Z3_probe a1, Z3_tactic a2, Z3_tactic a3)
|
|||
P(a1);
|
||||
P(a2);
|
||||
P(a3);
|
||||
C(390);
|
||||
C(391);
|
||||
}
|
||||
void log_Z3_tactic_repeat(Z3_context a0, Z3_tactic a1, unsigned a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
U(a2);
|
||||
C(391);
|
||||
C(392);
|
||||
}
|
||||
void log_Z3_tactic_skip(Z3_context a0) {
|
||||
R();
|
||||
P(a0);
|
||||
C(392);
|
||||
C(393);
|
||||
}
|
||||
void log_Z3_tactic_fail(Z3_context a0) {
|
||||
R();
|
||||
P(a0);
|
||||
C(393);
|
||||
C(394);
|
||||
}
|
||||
void log_Z3_tactic_fail_if(Z3_context a0, Z3_probe a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(394);
|
||||
C(395);
|
||||
}
|
||||
void log_Z3_tactic_fail_if_not_decided(Z3_context a0) {
|
||||
R();
|
||||
P(a0);
|
||||
C(395);
|
||||
C(396);
|
||||
}
|
||||
void log_Z3_tactic_using_params(Z3_context a0, Z3_tactic a1, Z3_params a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(396);
|
||||
C(397);
|
||||
}
|
||||
void log_Z3_probe_const(Z3_context a0, double a1) {
|
||||
R();
|
||||
P(a0);
|
||||
D(a1);
|
||||
C(397);
|
||||
C(398);
|
||||
}
|
||||
void log_Z3_probe_lt(Z3_context a0, Z3_probe a1, Z3_probe a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(398);
|
||||
C(399);
|
||||
}
|
||||
void log_Z3_probe_le(Z3_context a0, Z3_probe a1, Z3_probe a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(399);
|
||||
C(400);
|
||||
}
|
||||
void log_Z3_probe_gt(Z3_context a0, Z3_probe a1, Z3_probe a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(400);
|
||||
C(401);
|
||||
}
|
||||
void log_Z3_probe_ge(Z3_context a0, Z3_probe a1, Z3_probe a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(401);
|
||||
C(402);
|
||||
}
|
||||
void log_Z3_probe_eq(Z3_context a0, Z3_probe a1, Z3_probe a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(402);
|
||||
C(403);
|
||||
}
|
||||
void log_Z3_probe_and(Z3_context a0, Z3_probe a1, Z3_probe a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(403);
|
||||
C(404);
|
||||
}
|
||||
void log_Z3_probe_or(Z3_context a0, Z3_probe a1, Z3_probe a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(404);
|
||||
C(405);
|
||||
}
|
||||
void log_Z3_probe_not(Z3_context a0, Z3_probe a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(405);
|
||||
C(406);
|
||||
}
|
||||
void log_Z3_get_num_tactics(Z3_context a0) {
|
||||
R();
|
||||
P(a0);
|
||||
C(406);
|
||||
C(407);
|
||||
}
|
||||
void log_Z3_get_tactic_name(Z3_context a0, unsigned a1) {
|
||||
R();
|
||||
P(a0);
|
||||
U(a1);
|
||||
C(407);
|
||||
C(408);
|
||||
}
|
||||
void log_Z3_get_num_probes(Z3_context a0) {
|
||||
R();
|
||||
P(a0);
|
||||
C(408);
|
||||
C(409);
|
||||
}
|
||||
void log_Z3_get_probe_name(Z3_context a0, unsigned a1) {
|
||||
R();
|
||||
P(a0);
|
||||
U(a1);
|
||||
C(409);
|
||||
C(410);
|
||||
}
|
||||
void log_Z3_tactic_get_help(Z3_context a0, Z3_tactic a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(410);
|
||||
C(411);
|
||||
}
|
||||
void log_Z3_tactic_get_param_descrs(Z3_context a0, Z3_tactic a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(411);
|
||||
C(412);
|
||||
}
|
||||
void log_Z3_tactic_get_descr(Z3_context a0, Z3_string a1) {
|
||||
R();
|
||||
P(a0);
|
||||
S(a1);
|
||||
C(412);
|
||||
C(413);
|
||||
}
|
||||
void log_Z3_probe_get_descr(Z3_context a0, Z3_string a1) {
|
||||
R();
|
||||
P(a0);
|
||||
S(a1);
|
||||
C(413);
|
||||
C(414);
|
||||
}
|
||||
void log_Z3_probe_apply(Z3_context a0, Z3_probe a1, Z3_goal a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(414);
|
||||
C(415);
|
||||
}
|
||||
void log_Z3_tactic_apply(Z3_context a0, Z3_tactic a1, Z3_goal a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(415);
|
||||
C(416);
|
||||
}
|
||||
void log_Z3_tactic_apply_ex(Z3_context a0, Z3_tactic a1, Z3_goal a2, Z3_params a3) {
|
||||
R();
|
||||
|
@ -2932,38 +2938,38 @@ void log_Z3_tactic_apply_ex(Z3_context a0, Z3_tactic a1, Z3_goal a2, Z3_params a
|
|||
P(a1);
|
||||
P(a2);
|
||||
P(a3);
|
||||
C(416);
|
||||
C(417);
|
||||
}
|
||||
void log_Z3_apply_result_inc_ref(Z3_context a0, Z3_apply_result a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(417);
|
||||
C(418);
|
||||
}
|
||||
void log_Z3_apply_result_dec_ref(Z3_context a0, Z3_apply_result a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(418);
|
||||
C(419);
|
||||
}
|
||||
void log_Z3_apply_result_to_string(Z3_context a0, Z3_apply_result a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(419);
|
||||
C(420);
|
||||
}
|
||||
void log_Z3_apply_result_get_num_subgoals(Z3_context a0, Z3_apply_result a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(420);
|
||||
C(421);
|
||||
}
|
||||
void log_Z3_apply_result_get_subgoal(Z3_context a0, Z3_apply_result a1, unsigned a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
U(a2);
|
||||
C(421);
|
||||
C(422);
|
||||
}
|
||||
void log_Z3_apply_result_convert_model(Z3_context a0, Z3_apply_result a1, unsigned a2, Z3_model a3) {
|
||||
R();
|
||||
|
@ -2971,104 +2977,104 @@ void log_Z3_apply_result_convert_model(Z3_context a0, Z3_apply_result a1, unsign
|
|||
P(a1);
|
||||
U(a2);
|
||||
P(a3);
|
||||
C(422);
|
||||
C(423);
|
||||
}
|
||||
void log_Z3_mk_solver(Z3_context a0) {
|
||||
R();
|
||||
P(a0);
|
||||
C(423);
|
||||
C(424);
|
||||
}
|
||||
void log_Z3_mk_simple_solver(Z3_context a0) {
|
||||
R();
|
||||
P(a0);
|
||||
C(424);
|
||||
C(425);
|
||||
}
|
||||
void log_Z3_mk_solver_for_logic(Z3_context a0, Z3_symbol a1) {
|
||||
R();
|
||||
P(a0);
|
||||
Sy(a1);
|
||||
C(425);
|
||||
C(426);
|
||||
}
|
||||
void log_Z3_mk_solver_from_tactic(Z3_context a0, Z3_tactic a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(426);
|
||||
C(427);
|
||||
}
|
||||
void log_Z3_solver_get_help(Z3_context a0, Z3_solver a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(427);
|
||||
C(428);
|
||||
}
|
||||
void log_Z3_solver_get_param_descrs(Z3_context a0, Z3_solver a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(428);
|
||||
C(429);
|
||||
}
|
||||
void log_Z3_solver_set_params(Z3_context a0, Z3_solver a1, Z3_params a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(429);
|
||||
C(430);
|
||||
}
|
||||
void log_Z3_solver_inc_ref(Z3_context a0, Z3_solver a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(430);
|
||||
C(431);
|
||||
}
|
||||
void log_Z3_solver_dec_ref(Z3_context a0, Z3_solver a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(431);
|
||||
C(432);
|
||||
}
|
||||
void log_Z3_solver_push(Z3_context a0, Z3_solver a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(432);
|
||||
C(433);
|
||||
}
|
||||
void log_Z3_solver_pop(Z3_context a0, Z3_solver a1, unsigned a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
U(a2);
|
||||
C(433);
|
||||
C(434);
|
||||
}
|
||||
void log_Z3_solver_reset(Z3_context a0, Z3_solver a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(434);
|
||||
C(435);
|
||||
}
|
||||
void log_Z3_solver_get_num_scopes(Z3_context a0, Z3_solver a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(435);
|
||||
C(436);
|
||||
}
|
||||
void log_Z3_solver_assert(Z3_context a0, Z3_solver a1, Z3_ast a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(436);
|
||||
C(437);
|
||||
}
|
||||
void log_Z3_solver_get_assertions(Z3_context a0, Z3_solver a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(437);
|
||||
C(438);
|
||||
}
|
||||
void log_Z3_solver_check(Z3_context a0, Z3_solver a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(438);
|
||||
C(439);
|
||||
}
|
||||
void log_Z3_solver_check_assumptions(Z3_context a0, Z3_solver a1, unsigned a2, Z3_ast const * a3) {
|
||||
R();
|
||||
|
@ -3077,132 +3083,132 @@ void log_Z3_solver_check_assumptions(Z3_context a0, Z3_solver a1, unsigned a2, Z
|
|||
U(a2);
|
||||
for (unsigned i = 0; i < a2; i++) { P(a3[i]); }
|
||||
Ap(a2);
|
||||
C(439);
|
||||
C(440);
|
||||
}
|
||||
void log_Z3_solver_get_model(Z3_context a0, Z3_solver a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(440);
|
||||
C(441);
|
||||
}
|
||||
void log_Z3_solver_get_proof(Z3_context a0, Z3_solver a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(441);
|
||||
C(442);
|
||||
}
|
||||
void log_Z3_solver_get_unsat_core(Z3_context a0, Z3_solver a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(442);
|
||||
C(443);
|
||||
}
|
||||
void log_Z3_solver_get_reason_unknown(Z3_context a0, Z3_solver a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(443);
|
||||
C(444);
|
||||
}
|
||||
void log_Z3_solver_get_statistics(Z3_context a0, Z3_solver a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(444);
|
||||
C(445);
|
||||
}
|
||||
void log_Z3_solver_to_string(Z3_context a0, Z3_solver a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(445);
|
||||
C(446);
|
||||
}
|
||||
void log_Z3_stats_to_string(Z3_context a0, Z3_stats a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(446);
|
||||
C(447);
|
||||
}
|
||||
void log_Z3_stats_inc_ref(Z3_context a0, Z3_stats a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(447);
|
||||
C(448);
|
||||
}
|
||||
void log_Z3_stats_dec_ref(Z3_context a0, Z3_stats a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(448);
|
||||
C(449);
|
||||
}
|
||||
void log_Z3_stats_size(Z3_context a0, Z3_stats a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(449);
|
||||
C(450);
|
||||
}
|
||||
void log_Z3_stats_get_key(Z3_context a0, Z3_stats a1, unsigned a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
U(a2);
|
||||
C(450);
|
||||
C(451);
|
||||
}
|
||||
void log_Z3_stats_is_uint(Z3_context a0, Z3_stats a1, unsigned a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
U(a2);
|
||||
C(451);
|
||||
C(452);
|
||||
}
|
||||
void log_Z3_stats_is_double(Z3_context a0, Z3_stats a1, unsigned a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
U(a2);
|
||||
C(452);
|
||||
C(453);
|
||||
}
|
||||
void log_Z3_stats_get_uint_value(Z3_context a0, Z3_stats a1, unsigned a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
U(a2);
|
||||
C(453);
|
||||
C(454);
|
||||
}
|
||||
void log_Z3_stats_get_double_value(Z3_context a0, Z3_stats a1, unsigned a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
U(a2);
|
||||
C(454);
|
||||
C(455);
|
||||
}
|
||||
void log_Z3_mk_ast_vector(Z3_context a0) {
|
||||
R();
|
||||
P(a0);
|
||||
C(455);
|
||||
C(456);
|
||||
}
|
||||
void log_Z3_ast_vector_inc_ref(Z3_context a0, Z3_ast_vector a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(456);
|
||||
C(457);
|
||||
}
|
||||
void log_Z3_ast_vector_dec_ref(Z3_context a0, Z3_ast_vector a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(457);
|
||||
C(458);
|
||||
}
|
||||
void log_Z3_ast_vector_size(Z3_context a0, Z3_ast_vector a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(458);
|
||||
C(459);
|
||||
}
|
||||
void log_Z3_ast_vector_get(Z3_context a0, Z3_ast_vector a1, unsigned a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
U(a2);
|
||||
C(459);
|
||||
C(460);
|
||||
}
|
||||
void log_Z3_ast_vector_set(Z3_context a0, Z3_ast_vector a1, unsigned a2, Z3_ast a3) {
|
||||
R();
|
||||
|
@ -3210,65 +3216,65 @@ void log_Z3_ast_vector_set(Z3_context a0, Z3_ast_vector a1, unsigned a2, Z3_ast
|
|||
P(a1);
|
||||
U(a2);
|
||||
P(a3);
|
||||
C(460);
|
||||
C(461);
|
||||
}
|
||||
void log_Z3_ast_vector_resize(Z3_context a0, Z3_ast_vector a1, unsigned a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
U(a2);
|
||||
C(461);
|
||||
C(462);
|
||||
}
|
||||
void log_Z3_ast_vector_push(Z3_context a0, Z3_ast_vector a1, Z3_ast a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(462);
|
||||
C(463);
|
||||
}
|
||||
void log_Z3_ast_vector_translate(Z3_context a0, Z3_ast_vector a1, Z3_context a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(463);
|
||||
C(464);
|
||||
}
|
||||
void log_Z3_ast_vector_to_string(Z3_context a0, Z3_ast_vector a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(464);
|
||||
C(465);
|
||||
}
|
||||
void log_Z3_mk_ast_map(Z3_context a0) {
|
||||
R();
|
||||
P(a0);
|
||||
C(465);
|
||||
C(466);
|
||||
}
|
||||
void log_Z3_ast_map_inc_ref(Z3_context a0, Z3_ast_map a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(466);
|
||||
C(467);
|
||||
}
|
||||
void log_Z3_ast_map_dec_ref(Z3_context a0, Z3_ast_map a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(467);
|
||||
C(468);
|
||||
}
|
||||
void log_Z3_ast_map_contains(Z3_context a0, Z3_ast_map a1, Z3_ast a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(468);
|
||||
C(469);
|
||||
}
|
||||
void log_Z3_ast_map_find(Z3_context a0, Z3_ast_map a1, Z3_ast a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(469);
|
||||
C(470);
|
||||
}
|
||||
void log_Z3_ast_map_insert(Z3_context a0, Z3_ast_map a1, Z3_ast a2, Z3_ast a3) {
|
||||
R();
|
||||
|
@ -3276,36 +3282,36 @@ void log_Z3_ast_map_insert(Z3_context a0, Z3_ast_map a1, Z3_ast a2, Z3_ast a3) {
|
|||
P(a1);
|
||||
P(a2);
|
||||
P(a3);
|
||||
C(470);
|
||||
C(471);
|
||||
}
|
||||
void log_Z3_ast_map_erase(Z3_context a0, Z3_ast_map a1, Z3_ast a2) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
P(a2);
|
||||
C(471);
|
||||
C(472);
|
||||
}
|
||||
void log_Z3_ast_map_size(Z3_context a0, Z3_ast_map a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(472);
|
||||
C(473);
|
||||
}
|
||||
void log_Z3_ast_map_reset(Z3_context a0, Z3_ast_map a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(473);
|
||||
C(474);
|
||||
}
|
||||
void log_Z3_ast_map_keys(Z3_context a0, Z3_ast_map a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(474);
|
||||
C(475);
|
||||
}
|
||||
void log_Z3_ast_map_to_string(Z3_context a0, Z3_ast_map a1) {
|
||||
R();
|
||||
P(a0);
|
||||
P(a1);
|
||||
C(475);
|
||||
C(476);
|
||||
}
|
||||
|
|
|
@ -741,6 +741,8 @@ void log_Z3_param_descrs_size(Z3_context a0, Z3_param_descrs a1);
|
|||
#define LOG_Z3_param_descrs_size(_ARG0, _ARG1) z3_log_ctx _LOG_CTX; if (_LOG_CTX.enabled()) { log_Z3_param_descrs_size(_ARG0, _ARG1); }
|
||||
void log_Z3_param_descrs_get_name(Z3_context a0, Z3_param_descrs a1, unsigned a2);
|
||||
#define LOG_Z3_param_descrs_get_name(_ARG0, _ARG1, _ARG2) z3_log_ctx _LOG_CTX; if (_LOG_CTX.enabled()) { log_Z3_param_descrs_get_name(_ARG0, _ARG1, _ARG2); }
|
||||
void log_Z3_param_descrs_to_string(Z3_context a0, Z3_param_descrs a1);
|
||||
#define LOG_Z3_param_descrs_to_string(_ARG0, _ARG1) z3_log_ctx _LOG_CTX; if (_LOG_CTX.enabled()) { log_Z3_param_descrs_to_string(_ARG0, _ARG1); }
|
||||
void log_Z3_interrupt(Z3_context a0);
|
||||
#define LOG_Z3_interrupt(_ARG0) z3_log_ctx _LOG_CTX; if (_LOG_CTX.enabled()) { log_Z3_interrupt(_ARG0); }
|
||||
void log_Z3_get_error_msg_ex(Z3_context a0, Z3_error_code a1);
|
||||
|
|
|
@ -179,4 +179,21 @@ extern "C" {
|
|||
Z3_CATCH_RETURN(0);
|
||||
}
|
||||
|
||||
Z3_string Z3_API Z3_param_descrs_to_string(Z3_context c, Z3_param_descrs p) {
|
||||
Z3_TRY;
|
||||
LOG_Z3_param_descrs_to_string(c, p);
|
||||
RESET_ERROR_CODE();
|
||||
std::ostringstream buffer;
|
||||
buffer << "(";
|
||||
unsigned sz = to_param_descrs_ptr(p)->size();
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
if (i > 0)
|
||||
buffer << ", ";
|
||||
buffer << to_param_descrs_ptr(p)->get_param_name(i);
|
||||
}
|
||||
buffer << ")";
|
||||
return mk_c(c)->mk_external_string(buffer.str());
|
||||
Z3_CATCH_RETURN("");
|
||||
}
|
||||
|
||||
};
|
||||
|
|
|
@ -332,8 +332,8 @@ inline func_decl * arith_decl_plugin::mk_func_decl(decl_kind k, bool is_real) {
|
|||
case OP_SUB: return is_real ? m_r_sub_decl : m_i_sub_decl;
|
||||
case OP_UMINUS: return is_real ? m_r_uminus_decl : m_i_uminus_decl;
|
||||
case OP_MUL: return is_real ? m_r_mul_decl : m_i_mul_decl;
|
||||
case OP_DIV: SASSERT(is_real); return m_r_div_decl;
|
||||
case OP_IDIV: SASSERT(!is_real); return m_i_div_decl;
|
||||
case OP_DIV: return m_r_div_decl;
|
||||
case OP_IDIV: return m_i_div_decl;
|
||||
case OP_REM: return m_i_rem_decl;
|
||||
case OP_MOD: return m_i_mod_decl;
|
||||
case OP_TO_REAL: return m_to_real_decl;
|
||||
|
@ -415,6 +415,24 @@ func_decl * arith_decl_plugin::mk_num_decl(unsigned num_parameters, parameter co
|
|||
else
|
||||
return m_manager->mk_const_decl(m_realv_sym, m_real_decl, func_decl_info(m_family_id, OP_NUM, num_parameters, parameters));
|
||||
}
|
||||
|
||||
static bool use_coercion(decl_kind k) {
|
||||
return k == OP_ADD || k == OP_SUB || k == OP_MUL || k == OP_POWER || k == OP_LE || k == OP_GE || k == OP_LT || k == OP_GT || k == OP_UMINUS;
|
||||
}
|
||||
|
||||
static bool has_real_arg(unsigned arity, sort * const * domain, sort * real_sort) {
|
||||
for (unsigned i = 0; i < arity; i++)
|
||||
if (domain[i] == real_sort)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool has_real_arg(ast_manager * m, unsigned num_args, expr * const * args, sort * real_sort) {
|
||||
for (unsigned i = 0; i < num_args; i++)
|
||||
if (m->get_sort(args[i]) == real_sort)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
func_decl * arith_decl_plugin::mk_func_decl(decl_kind k, unsigned num_parameters, parameter const * parameters,
|
||||
unsigned arity, sort * const * domain, sort * range) {
|
||||
|
@ -424,8 +442,13 @@ func_decl * arith_decl_plugin::mk_func_decl(decl_kind k, unsigned num_parameters
|
|||
m_manager->raise_exception("no arguments supplied to arithmetical operator");
|
||||
return 0;
|
||||
}
|
||||
bool is_real = arity > 0 && domain[0] == m_real_decl;
|
||||
return mk_func_decl(fix_kind(k, arity), is_real);
|
||||
if (m_manager->int_real_coercions() && use_coercion(k)) {
|
||||
return mk_func_decl(fix_kind(k, arity), has_real_arg(arity, domain, m_real_decl));
|
||||
}
|
||||
else {
|
||||
bool is_real = arity > 0 && domain[0] == m_real_decl;
|
||||
return mk_func_decl(fix_kind(k, arity), is_real);
|
||||
}
|
||||
}
|
||||
|
||||
func_decl * arith_decl_plugin::mk_func_decl(decl_kind k, unsigned num_parameters, parameter const * parameters,
|
||||
|
@ -436,8 +459,13 @@ func_decl * arith_decl_plugin::mk_func_decl(decl_kind k, unsigned num_parameters
|
|||
m_manager->raise_exception("no arguments supplied to arithmetical operator");
|
||||
return 0;
|
||||
}
|
||||
bool is_real = num_args > 0 && m_manager->get_sort(args[0]) == m_real_decl;
|
||||
return mk_func_decl(fix_kind(k, num_args), is_real);
|
||||
if (m_manager->int_real_coercions() && use_coercion(k)) {
|
||||
return mk_func_decl(fix_kind(k, num_args), has_real_arg(m_manager, num_args, args, m_real_decl));
|
||||
}
|
||||
else {
|
||||
bool is_real = num_args > 0 && m_manager->get_sort(args[0]) == m_real_decl;
|
||||
return mk_func_decl(fix_kind(k, num_args), is_real);
|
||||
}
|
||||
}
|
||||
|
||||
void arith_decl_plugin::get_sort_names(svector<builtin_name>& sort_names, symbol const & logic) {
|
||||
|
|
|
@ -943,6 +943,42 @@ br_status arith_rewriter::mk_to_int_core(expr * arg, expr_ref & result) {
|
|||
return BR_DONE;
|
||||
}
|
||||
else {
|
||||
if (m_util.is_add(arg) || m_util.is_mul(arg) || m_util.is_power(arg)) {
|
||||
// Try to apply simplifications such as:
|
||||
// (to_int (+ 1.0 (to_real x))) --> (+ 1 x)
|
||||
|
||||
// if all arguments of arg are
|
||||
// - integer numerals, OR
|
||||
// - to_real applications
|
||||
// then, to_int can be eliminated
|
||||
unsigned num_args = to_app(arg)->get_num_args();
|
||||
unsigned i = 0;
|
||||
for (; i < num_args; i++) {
|
||||
expr * c = to_app(arg)->get_arg(i);
|
||||
if (m_util.is_numeral(c, a) && a.is_int())
|
||||
continue;
|
||||
if (m_util.is_to_real(c))
|
||||
continue;
|
||||
break; // failed
|
||||
}
|
||||
if (i == num_args) {
|
||||
// simplification can be applied
|
||||
expr_ref_buffer new_args(m());
|
||||
for (i = 0; i < num_args; i++) {
|
||||
expr * c = to_app(arg)->get_arg(i);
|
||||
if (m_util.is_numeral(c, a) && a.is_int()) {
|
||||
new_args.push_back(m_util.mk_numeral(a, true));
|
||||
}
|
||||
else {
|
||||
SASSERT(m_util.is_to_real(c));
|
||||
new_args.push_back(to_app(c)->get_arg(0));
|
||||
}
|
||||
}
|
||||
SASSERT(num_args == new_args.size());
|
||||
result = m().mk_app(get_fid(), to_app(arg)->get_decl()->get_decl_kind(), new_args.size(), new_args.c_ptr());
|
||||
return BR_REWRITE1;
|
||||
}
|
||||
}
|
||||
return BR_FAILED;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -237,18 +237,20 @@ func_decl* array_decl_plugin::mk_select(unsigned arity, sort * const * domain) {
|
|||
m_manager->raise_exception("select requires as many arguments as the size of the domain");
|
||||
return 0;
|
||||
}
|
||||
if (domain[0] != s) {
|
||||
m_manager->raise_exception("first argument of select needs to be an array");
|
||||
return 0;
|
||||
}
|
||||
ptr_buffer<sort> new_domain; // we need this because of coercions.
|
||||
new_domain.push_back(s);
|
||||
for (unsigned i = 0; i + 1 < num_parameters; ++i) {
|
||||
if (!parameters[i].is_ast() || domain[i+1] != parameters[i].get_ast()) {
|
||||
if (!parameters[i].is_ast() ||
|
||||
!is_sort(parameters[i].get_ast()) ||
|
||||
!m_manager->compatible_sorts(domain[i+1], to_sort(parameters[i].get_ast()))) {
|
||||
m_manager->raise_exception("domain sort and parameter do not match");
|
||||
UNREACHABLE();
|
||||
return 0;
|
||||
}
|
||||
new_domain.push_back(to_sort(parameters[i].get_ast()));
|
||||
}
|
||||
return m_manager->mk_func_decl(m_select_sym, arity, domain, get_array_range(domain[0]),
|
||||
SASSERT(new_domain.size() == arity);
|
||||
return m_manager->mk_func_decl(m_select_sym, arity, new_domain.c_ptr(), get_array_range(domain[0]),
|
||||
func_decl_info(m_family_id, OP_SELECT));
|
||||
}
|
||||
|
||||
|
@ -273,18 +275,22 @@ func_decl * array_decl_plugin::mk_store(unsigned arity, sort * const * domain) {
|
|||
UNREACHABLE();
|
||||
return 0;
|
||||
}
|
||||
ptr_buffer<sort> new_domain; // we need this because of coercions.
|
||||
new_domain.push_back(s);
|
||||
for (unsigned i = 0; i < num_parameters; ++i) {
|
||||
if (!parameters[i].is_ast()) {
|
||||
if (!parameters[i].is_ast() || !is_sort(parameters[i].get_ast())) {
|
||||
m_manager->raise_exception("expecting sort parameter");
|
||||
return 0;
|
||||
}
|
||||
if (parameters[i].get_ast() != domain[i+1]) {
|
||||
if (!m_manager->compatible_sorts(to_sort(parameters[i].get_ast()), domain[i+1])) {
|
||||
m_manager->raise_exception("domain sort and parameter do not match");
|
||||
UNREACHABLE();
|
||||
return 0;
|
||||
}
|
||||
new_domain.push_back(to_sort(parameters[i].get_ast()));
|
||||
}
|
||||
return m_manager->mk_func_decl(m_store_sym, arity, domain, domain[0],
|
||||
SASSERT(new_domain.size() == arity);
|
||||
return m_manager->mk_func_decl(m_store_sym, arity, new_domain.c_ptr(), domain[0],
|
||||
func_decl_info(m_family_id, OP_STORE));
|
||||
}
|
||||
|
||||
|
|
79
lib/ast.cpp
79
lib/ast.cpp
|
@ -1231,6 +1231,7 @@ ast_manager::ast_manager(ast_manager const & src, bool disable_proofs):
|
|||
}
|
||||
|
||||
void ast_manager::init() {
|
||||
m_int_real_coercions = true;
|
||||
m_debug_ref_count = false;
|
||||
m_fresh_id = 0;
|
||||
m_expr_id_gen.reset(0);
|
||||
|
@ -1241,6 +1242,7 @@ void ast_manager::init() {
|
|||
m_pattern_family_id = get_family_id("pattern");
|
||||
m_model_value_family_id = get_family_id("model-value");
|
||||
m_user_sort_family_id = get_family_id("user-sort");
|
||||
m_arith_family_id = get_family_id("arith");
|
||||
basic_decl_plugin * plugin = alloc(basic_decl_plugin);
|
||||
register_plugin(m_basic_family_id, plugin);
|
||||
m_bool_sort = plugin->mk_bool_sort();
|
||||
|
@ -1772,7 +1774,7 @@ void ast_manager::check_sort(func_decl const * decl, unsigned num_args, expr * c
|
|||
sort * expected = decl->get_domain(0);
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
sort * given = get_sort(args[i]);
|
||||
if (expected != given) {
|
||||
if (!compatible_sorts(expected, given)) {
|
||||
string_buffer<> buff;
|
||||
buff << "invalid function application, sort mismatch on argument at position " << (i+1);
|
||||
throw ast_exception(buff.c_str());
|
||||
|
@ -1786,7 +1788,7 @@ void ast_manager::check_sort(func_decl const * decl, unsigned num_args, expr * c
|
|||
for (unsigned i = 0; i < num_args; i++) {
|
||||
sort * expected = decl->get_domain(i);
|
||||
sort * given = get_sort(args[i]);
|
||||
if (expected != given) {
|
||||
if (!compatible_sorts(expected, given)) {
|
||||
string_buffer<> buff;
|
||||
buff << "invalid function application, sort mismatch on argument at position " << (i+1);
|
||||
throw ast_exception(buff.c_str());
|
||||
|
@ -1822,11 +1824,80 @@ bool ast_manager::check_sorts(ast const * n) const {
|
|||
}
|
||||
}
|
||||
|
||||
bool ast_manager::compatible_sorts(sort * s1, sort * s2) const {
|
||||
if (s1 == s2)
|
||||
return true;
|
||||
if (m_int_real_coercions)
|
||||
return s1->get_family_id() == m_arith_family_id && s2->get_family_id() == m_arith_family_id;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ast_manager::coercion_needed(func_decl * decl, unsigned num_args, expr * const * args) {
|
||||
SASSERT(m_int_real_coercions);
|
||||
if (decl->is_associative()) {
|
||||
sort * d = decl->get_domain(0);
|
||||
if (d->get_family_id() == m_arith_family_id) {
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
if (d != get_sort(args[i]))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
sort * d = decl->get_domain(i);
|
||||
if (d->get_family_id() == m_arith_family_id && d != get_sort(args[i]))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
app * ast_manager::mk_app_core(func_decl * decl, unsigned num_args, expr * const * args) {
|
||||
unsigned sz = app::get_obj_size(num_args);
|
||||
void * mem = allocate_node(sz);
|
||||
app * new_node = new (mem) app(decl, num_args, args);
|
||||
app * r = register_node(new_node);
|
||||
app * new_node;
|
||||
app * r;
|
||||
if (m_int_real_coercions && coercion_needed(decl, num_args, args)) {
|
||||
expr_ref_buffer new_args(*this);
|
||||
if (decl->is_associative()) {
|
||||
sort * d = decl->get_domain(0);
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
sort * s = get_sort(args[i]);
|
||||
if (d != s && d->get_family_id() == m_arith_family_id && s->get_family_id() == m_arith_family_id) {
|
||||
if (d->get_decl_kind() == REAL_SORT)
|
||||
new_args.push_back(mk_app(m_arith_family_id, OP_TO_REAL, args[i]));
|
||||
else
|
||||
new_args.push_back(mk_app(m_arith_family_id, OP_TO_INT, args[i]));
|
||||
}
|
||||
else {
|
||||
new_args.push_back(args[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
sort * d = decl->get_domain(i);
|
||||
sort * s = get_sort(args[i]);
|
||||
if (d != s && d->get_family_id() == m_arith_family_id && s->get_family_id() == m_arith_family_id) {
|
||||
if (d->get_decl_kind() == REAL_SORT)
|
||||
new_args.push_back(mk_app(m_arith_family_id, OP_TO_REAL, args[i]));
|
||||
else
|
||||
new_args.push_back(mk_app(m_arith_family_id, OP_TO_INT, args[i]));
|
||||
}
|
||||
else {
|
||||
new_args.push_back(args[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
SASSERT(new_args.size() == num_args);
|
||||
new_node = new (mem) app(decl, num_args, new_args.c_ptr());
|
||||
r = register_node(new_node);
|
||||
}
|
||||
else {
|
||||
new_node = new (mem) app(decl, num_args, args);
|
||||
r = register_node(new_node);
|
||||
}
|
||||
#ifndef SMTCOMP
|
||||
if (m_trace_stream != NULL && r == new_node) {
|
||||
*m_trace_stream << "[mk-app] #" << r->get_id() << " ";
|
||||
|
|
12
lib/ast.h
12
lib/ast.h
|
@ -1282,6 +1282,8 @@ enum proof_gen_mode {
|
|||
//
|
||||
// -----------------------------------
|
||||
|
||||
class arith_decl_plugin;
|
||||
|
||||
class ast_manager {
|
||||
protected:
|
||||
protected:
|
||||
|
@ -1331,11 +1333,13 @@ protected:
|
|||
expr_dependency_array_manager m_expr_dependency_array_manager;
|
||||
ptr_vector<decl_plugin> m_plugins;
|
||||
proof_gen_mode m_proof_mode;
|
||||
bool m_int_real_coercions; // If true, use hack that automatically introduces to_int/to_real when needed.
|
||||
family_id m_basic_family_id;
|
||||
family_id m_label_family_id;
|
||||
family_id m_pattern_family_id;
|
||||
family_id m_model_value_family_id;
|
||||
family_id m_user_sort_family_id;
|
||||
family_id m_arith_family_id;
|
||||
ast_table m_ast_table;
|
||||
id_gen m_expr_id_gen;
|
||||
id_gen m_decl_id_gen;
|
||||
|
@ -1355,11 +1359,19 @@ protected:
|
|||
|
||||
void init();
|
||||
|
||||
bool coercion_needed(func_decl * decl, unsigned num_args, expr * const * args);
|
||||
|
||||
public:
|
||||
ast_manager(proof_gen_mode = PGM_DISABLED, std::ostream * trace_stream = NULL, bool is_format_manager = false);
|
||||
ast_manager(ast_manager const & src, bool disable_proofs = false);
|
||||
~ast_manager();
|
||||
|
||||
void enable_int_real_coercions(bool f) { m_int_real_coercions = f; }
|
||||
bool int_real_coercions() const { return m_int_real_coercions; }
|
||||
|
||||
// Return true if s1 and s2 are equal, or coercions are enabled, and s1 and s2 are compatible.
|
||||
bool compatible_sorts(sort * s1, sort * s2) const;
|
||||
|
||||
// For debugging purposes
|
||||
void display_free_ids(std::ostream & out) { m_expr_id_gen.display_free_ids(out); out << "\n"; m_decl_id_gen.display_free_ids(out); }
|
||||
|
||||
|
|
|
@ -258,6 +258,7 @@ protected:
|
|||
symbol m_global_decls;
|
||||
symbol m_numeral_as_real;
|
||||
symbol m_error_behavior;
|
||||
symbol m_int_real_coercions;
|
||||
ini_params m_ini;
|
||||
|
||||
bool is_builtin_option(symbol const & s) const {
|
||||
|
@ -288,6 +289,7 @@ public:
|
|||
m_global_decls(":global-decls"),
|
||||
m_numeral_as_real(":numeral-as-real"),
|
||||
m_error_behavior(":error-behavior"),
|
||||
m_int_real_coercions(":int-real-coercions"),
|
||||
m_ini(false) {
|
||||
params.register_params(m_ini);
|
||||
register_pp_params(m_ini);
|
||||
|
@ -376,6 +378,9 @@ class set_option_cmd : public set_get_option_cmd {
|
|||
else if (m_option == m_numeral_as_real) {
|
||||
ctx.set_numeral_as_real(to_bool(value));
|
||||
}
|
||||
else if (m_option == m_int_real_coercions) {
|
||||
ctx.m().enable_int_real_coercions(to_bool(value));
|
||||
}
|
||||
#ifdef Z3DEBUG
|
||||
else if (m_option == ":enable-assertions") {
|
||||
enable_assertions(to_bool(value));
|
||||
|
@ -536,6 +541,9 @@ public:
|
|||
print_string(ctx, "continued-execution");
|
||||
}
|
||||
}
|
||||
else if (opt == m_int_real_coercions) {
|
||||
print_bool(ctx, ctx.m().int_real_coercions());
|
||||
}
|
||||
else {
|
||||
std::string iopt = smt_keyword2opt_name(opt);
|
||||
std::string r;
|
||||
|
|
|
@ -532,6 +532,8 @@ void cmd_context::init_manager() {
|
|||
m_manager = alloc(ast_manager, m_params.m_proof_mode, m_params.m_trace_stream);
|
||||
m_pmanager = alloc(pdecl_manager, *m_manager);
|
||||
init_manager_core(true);
|
||||
if (m_params.m_smtlib2_compliant)
|
||||
m_manager->enable_int_real_coercions(false);
|
||||
}
|
||||
|
||||
void cmd_context::init_external_manager() {
|
||||
|
|
|
@ -17,6 +17,8 @@ Revision History:
|
|||
|
||||
--*/
|
||||
#include"dimacs.h"
|
||||
#undef max
|
||||
#undef min
|
||||
#include"sat_solver.h"
|
||||
|
||||
class stream_buffer {
|
||||
|
|
|
@ -19,6 +19,10 @@ Revision History:
|
|||
#ifndef _DL_CONTEXT_H_
|
||||
#define _DL_CONTEXT_H_
|
||||
|
||||
#ifdef _CYGWIN
|
||||
#undef min
|
||||
#undef max
|
||||
#endif
|
||||
#include"arith_decl_plugin.h"
|
||||
#include"front_end_params.h"
|
||||
#include"map.h"
|
||||
|
|
|
@ -95,8 +95,7 @@ struct front_end_params : public preprocessor_params, public spc_params, public
|
|||
#else
|
||||
m_auto_config(false),
|
||||
#endif
|
||||
#if 1
|
||||
// #if defined(SMTCOMP) TODO: put it back after SMTCOMP
|
||||
#if 0
|
||||
m_smtlib2_compliant(true),
|
||||
#else
|
||||
m_smtlib2_compliant(false),
|
||||
|
|
|
@ -21,11 +21,9 @@ Revision History:
|
|||
|
||||
#include<algorithm>
|
||||
|
||||
#ifndef _WINDOWS
|
||||
#ifndef __fallthrough
|
||||
#define __fallthrough
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define mix(a,b,c) \
|
||||
{ \
|
||||
|
|
|
@ -146,6 +146,12 @@ public:
|
|||
if (m_context)
|
||||
m_context->set_progress_callback(callback);
|
||||
}
|
||||
|
||||
|
||||
virtual void collect_param_descrs(param_descrs & r) {
|
||||
smt::solver::collect_param_descrs(r);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
solver * mk_non_incremental_smt_solver(cmd_context & ctx) {
|
||||
|
|
|
@ -20,6 +20,10 @@ Revision History:
|
|||
#ifndef _PDR_CONTEXT_H_
|
||||
#define _PDR_CONTEXT_H_
|
||||
|
||||
#ifdef _CYGWIN
|
||||
#undef min
|
||||
#undef max
|
||||
#endif
|
||||
#include <deque>
|
||||
#include "pdr_manager.h"
|
||||
#include "dl_base.h"
|
||||
|
|
|
@ -18,7 +18,7 @@ Revision History:
|
|||
--*/
|
||||
#include"z3_exception.h"
|
||||
#include"z3_omp.h"
|
||||
#ifdef _WINDOWS
|
||||
#if defined(_WINDOWS) || defined(_CYGWIN)
|
||||
// Windows
|
||||
#include<windows.h>
|
||||
#elif defined(__APPLE__) && defined(__MACH__)
|
||||
|
@ -40,12 +40,16 @@ Revision History:
|
|||
#endif
|
||||
|
||||
#include"scoped_timer.h"
|
||||
#ifdef _CYGWIN
|
||||
#undef min
|
||||
#undef max
|
||||
#endif
|
||||
#include"util.h"
|
||||
#include<limits.h>
|
||||
|
||||
struct scoped_timer::imp {
|
||||
event_handler * m_eh;
|
||||
#ifdef _WINDOWS
|
||||
#if defined(_WINDOWS) || defined(_CYGWIN)
|
||||
HANDLE m_timer;
|
||||
bool m_first;
|
||||
#elif defined(__APPLE__) && defined(__MACH__)
|
||||
|
@ -62,7 +66,7 @@ struct scoped_timer::imp {
|
|||
timer_t m_timerid;
|
||||
#endif
|
||||
|
||||
#ifdef _WINDOWS
|
||||
#if defined(_WINDOWS) || defined(_CYGWIN)
|
||||
static void CALLBACK abort_proc(PVOID param, BOOLEAN timer_or_wait_fired) {
|
||||
imp * obj = static_cast<imp*>(param);
|
||||
if (obj->m_first) {
|
||||
|
@ -117,7 +121,7 @@ struct scoped_timer::imp {
|
|||
|
||||
imp(unsigned ms, event_handler * eh):
|
||||
m_eh(eh) {
|
||||
#ifdef _WINDOWS
|
||||
#if defined(_WINDOWS) || defined(_CYGWIN)
|
||||
m_first = true;
|
||||
CreateTimerQueueTimer(&m_timer,
|
||||
NULL,
|
||||
|
@ -167,7 +171,7 @@ struct scoped_timer::imp {
|
|||
}
|
||||
|
||||
~imp() {
|
||||
#ifdef _WINDOWS
|
||||
#if defined(_WINDOWS) || defined(_CYGWIN)
|
||||
DeleteTimerQueueTimer(NULL,
|
||||
m_timer,
|
||||
INVALID_HANDLE_VALUE);
|
||||
|
@ -191,7 +195,7 @@ struct scoped_timer::imp {
|
|||
|
||||
};
|
||||
|
||||
#ifdef _WINDOWS
|
||||
#if defined(_WINDOWS) || defined(_CYGWIN)
|
||||
#elif defined(__APPLE__) && defined(__MACH__)
|
||||
// Mac OS X
|
||||
#else
|
||||
|
|
|
@ -181,10 +181,6 @@ namespace smt {
|
|||
void updt_params(params_ref const & p) {
|
||||
params2front_end_params(p, fparams());
|
||||
}
|
||||
|
||||
void collect_param_descrs(param_descrs & d) {
|
||||
solver_front_end_params_descrs(d);
|
||||
}
|
||||
};
|
||||
|
||||
solver::solver(ast_manager & m, front_end_params & fp, params_ref const & p) {
|
||||
|
@ -346,8 +342,8 @@ namespace smt {
|
|||
return m_imp->updt_params(p);
|
||||
}
|
||||
|
||||
void solver::collect_param_descrs(param_descrs & d) const {
|
||||
return m_imp->collect_param_descrs(d);
|
||||
void solver::collect_param_descrs(param_descrs & d) {
|
||||
solver_front_end_params_descrs(d);
|
||||
}
|
||||
|
||||
context & solver::kernel() {
|
||||
|
|
|
@ -228,7 +228,7 @@ namespace smt {
|
|||
/**
|
||||
\brief Collect a description of the configuration parameters.
|
||||
*/
|
||||
void collect_param_descrs(param_descrs & d) const;
|
||||
static void collect_param_descrs(param_descrs & d);
|
||||
|
||||
/**
|
||||
\brief Return a reference to the kernel.
|
||||
|
|
|
@ -55,9 +55,16 @@ public:
|
|||
}
|
||||
|
||||
virtual void collect_param_descrs(param_descrs & r) {
|
||||
if (m_context == 0)
|
||||
return;
|
||||
m_context->collect_param_descrs(r);
|
||||
if (m_context == 0) {
|
||||
ast_manager m;
|
||||
m.register_decl_plugins();
|
||||
front_end_params p;
|
||||
smt::solver s(m, p);
|
||||
s.collect_param_descrs(r);
|
||||
}
|
||||
else {
|
||||
m_context->collect_param_descrs(r);
|
||||
}
|
||||
}
|
||||
|
||||
virtual void init(ast_manager & m, symbol const & logic) {
|
||||
|
|
|
@ -20,7 +20,7 @@ Revision History:
|
|||
#ifndef _STOPWATCH_H_
|
||||
#define _STOPWATCH_H_
|
||||
|
||||
#ifdef _WINDOWS
|
||||
#if defined(_WINDOWS) || defined(_CYGWIN)
|
||||
|
||||
// Does this redefinition work?
|
||||
#define ARRAYSIZE_TEMP ARRAYSIZE
|
||||
|
|
|
@ -33,7 +33,7 @@ strategic_solver::strategic_solver():
|
|||
m_check_sat_executed(false),
|
||||
m_inc_solver(0),
|
||||
m_inc_solver_timeout(UINT_MAX),
|
||||
m_tactic_if_undef(false),
|
||||
m_inc_unknown_behavior(IUB_USE_TACTIC_IF_QF),
|
||||
m_default_fct(0),
|
||||
m_curr_tactic(0),
|
||||
m_proof(0),
|
||||
|
@ -56,6 +56,29 @@ strategic_solver::~strategic_solver() {
|
|||
m().dec_ref(m_proof);
|
||||
}
|
||||
|
||||
bool strategic_solver::has_quantifiers() const {
|
||||
unsigned sz = get_num_assertions();
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
if (::has_quantifiers(get_assertion(i)))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
\brief Return true if a tactic should be used when the incremental solver returns unknown.
|
||||
*/
|
||||
bool strategic_solver::use_tactic_when_undef() const {
|
||||
switch (m_inc_unknown_behavior) {
|
||||
case IUB_RETURN_UNDEF: return false;
|
||||
case IUB_USE_TACTIC_IF_QF: return !has_quantifiers();
|
||||
case IUB_USE_TACTIC: return true;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void strategic_solver::set_inc_solver(solver * s) {
|
||||
SASSERT(m_inc_solver == 0);
|
||||
SASSERT(m_num_scopes == 0);
|
||||
|
@ -86,13 +109,6 @@ void strategic_solver::set_inc_solver_timeout(unsigned timeout) {
|
|||
m_inc_solver_timeout = timeout;
|
||||
}
|
||||
|
||||
/**
|
||||
\brief Use tactic when the incremental solver return undef.
|
||||
*/
|
||||
void strategic_solver::use_tactic_if_undef(bool f) {
|
||||
m_tactic_if_undef = f;
|
||||
}
|
||||
|
||||
/**
|
||||
\brief Set the default tactic factory.
|
||||
It is used if there is no tactic for a given logic.
|
||||
|
@ -285,7 +301,7 @@ lbool strategic_solver::check_sat(unsigned num_assumptions, expr * const * assum
|
|||
IF_VERBOSE(PS_VB_LVL, verbose_stream() << "using incremental solver (without a timeout).\n";);
|
||||
m_use_inc_solver_results = true;
|
||||
lbool r = m_inc_solver->check_sat(0, 0);
|
||||
if (r != l_undef || factory == 0 || !m_tactic_if_undef) {
|
||||
if (r != l_undef || factory == 0 || !use_tactic_when_undef()) {
|
||||
m_use_inc_solver_results = true;
|
||||
return r;
|
||||
}
|
||||
|
@ -299,7 +315,7 @@ lbool strategic_solver::check_sat(unsigned num_assumptions, expr * const * assum
|
|||
scoped_timer timer(m_inc_solver_timeout, &eh);
|
||||
r = m_inc_solver->check_sat(0, 0);
|
||||
}
|
||||
if ((r != l_undef || !m_tactic_if_undef) && !eh.m_canceled) {
|
||||
if ((r != l_undef || !use_tactic_when_undef()) && !eh.m_canceled) {
|
||||
m_use_inc_solver_results = true;
|
||||
return r;
|
||||
}
|
||||
|
|
|
@ -26,6 +26,15 @@ class progress_callback;
|
|||
struct front_end_params;
|
||||
|
||||
class strategic_solver : public solver {
|
||||
public:
|
||||
// Behavior when the incremental solver returns unknown.
|
||||
enum inc_unknown_behavior {
|
||||
IUB_RETURN_UNDEF, // just return unknown
|
||||
IUB_USE_TACTIC_IF_QF, // invoke tactic if problem is quantifier free
|
||||
IUB_USE_TACTIC // invoke tactic
|
||||
};
|
||||
|
||||
private:
|
||||
ast_manager * m_manager;
|
||||
front_end_params * m_fparams;
|
||||
symbol m_logic;
|
||||
|
@ -34,7 +43,7 @@ class strategic_solver : public solver {
|
|||
bool m_check_sat_executed;
|
||||
scoped_ptr<solver> m_inc_solver;
|
||||
unsigned m_inc_solver_timeout;
|
||||
bool m_tactic_if_undef;
|
||||
inc_unknown_behavior m_inc_unknown_behavior;
|
||||
scoped_ptr<tactic_factory> m_default_fct;
|
||||
dictionary<tactic_factory*> m_logic2fct;
|
||||
|
||||
|
@ -63,6 +72,9 @@ class strategic_solver : public solver {
|
|||
|
||||
struct mk_tactic;
|
||||
|
||||
bool has_quantifiers() const;
|
||||
bool use_tactic_when_undef() const;
|
||||
|
||||
public:
|
||||
strategic_solver();
|
||||
~strategic_solver();
|
||||
|
@ -73,7 +85,7 @@ public:
|
|||
void set_inc_solver_timeout(unsigned timeout);
|
||||
void set_default_tactic(tactic_factory * fct);
|
||||
void set_tactic_for(symbol const & logic, tactic_factory * fct);
|
||||
void use_tactic_if_undef(bool f);
|
||||
void set_inc_unknown_behavior(inc_unknown_behavior b) { m_inc_unknown_behavior = b; }
|
||||
void force_tactic(bool f) { m_force_tactic = f; }
|
||||
|
||||
virtual void set_front_end_params(front_end_params & p) { m_fparams = &p; }
|
||||
|
|
|
@ -19,6 +19,11 @@ Revision History:
|
|||
|
||||
#ifndef _TRACE_H_
|
||||
#define _TRACE_H_
|
||||
|
||||
#ifdef _CYGWIN
|
||||
#undef max
|
||||
#undef min
|
||||
#endif
|
||||
#include<fstream>
|
||||
|
||||
#ifdef _TRACE
|
||||
|
|
|
@ -1456,6 +1456,12 @@ extern "C" {
|
|||
*/
|
||||
Z3_symbol Z3_API Z3_param_descrs_get_name(__in Z3_context c, __in Z3_param_descrs p, __in unsigned i);
|
||||
|
||||
/**
|
||||
\brief Convert a parameter description set into a string. This function is mainly used for printing the
|
||||
contents of a parameter description set.
|
||||
*/
|
||||
Z3_string Z3_API Z3_param_descrs_to_string(__in Z3_context c, __in Z3_param_descrs p);
|
||||
|
||||
/*@}*/
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
In your Python application you should include:
|
||||
|
||||
from z3 import *
|
||||
|
||||
Installing the Z3 Python bindings
|
||||
|
||||
Option 1: Install Z3 Python bindings in your python distribution
|
||||
----------------------------------------------------------------
|
||||
|
||||
To install the Z3 python bindings in your system, use
|
||||
sudo make install-python
|
||||
in the Z3 root directory.
|
||||
After installing the Z3 python bindings, you can try the example application
|
||||
python example.py
|
||||
|
||||
Option 2: Set PYTHONPATH
|
||||
------------------------
|
||||
|
||||
You may also use Z3Py by including this directory in your PYTHONPATH.
|
||||
Z3Py searches for libz3.so in set of predefined places that includes the directory where Z3Py is stored.
|
||||
You may also manually initialize Z3Py using the command z3.init(path-to-libz3.so)
|
||||
|
||||
Learn more about Z3Py at:
|
||||
http://rise4fun.com/Z3Py/tutorial/guide
|
||||
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
In your Python application you should include:
|
||||
|
||||
from z3 import *
|
||||
|
||||
Installing the Z3 Python bindings
|
||||
|
||||
Option 1: Install Z3 Python bindings in your python distribution
|
||||
----------------------------------------------------------------
|
||||
|
||||
To install the Z3 python bindings in your system, use
|
||||
sudo make install-python
|
||||
in the Z3 root directory.
|
||||
After installing the Z3 python bindings, you can try the example application
|
||||
python example.py
|
||||
|
||||
Option 2: Set PYTHONPATH
|
||||
------------------------
|
||||
|
||||
You may also use Z3Py by including this directory in your PYTHONPATH.
|
||||
Z3Py searches for libz3.dylib in set of predefined places that includes the directory where Z3Py is stored.
|
||||
You may also manually initialize Z3Py using the command z3.init(path-to-libz3.dylib)
|
||||
|
||||
Learn more about Z3Py at:
|
||||
http://rise4fun.com/Z3Py/tutorial/guide
|
|
@ -1,16 +0,0 @@
|
|||
To run the test script execute:
|
||||
python example.py
|
||||
|
||||
To create scripts using Z3Py, the Z3 python directory must be in your PYTHONPATH.
|
||||
If you copy the z3*.py files to a different directory, you must also copy the z3.dll.
|
||||
Remark: if you are using python 32-bit, you must copy the z3.dll in the bin directory.
|
||||
If you are using python 64-bit, you must copy the z3.dll in the x64 directory.
|
||||
|
||||
You may also manually initialize Z3Py using the command z3.init(path-to-z3.dll)
|
||||
|
||||
In your Python application you should include:
|
||||
|
||||
from z3 import *
|
||||
|
||||
Learn more about Z3Py at:
|
||||
http://rise4fun.com/Z3Py/tutorial/guide
|
|
@ -1,5 +1,20 @@
|
|||
To run the test script execute:
|
||||
python example.py
|
||||
|
||||
Learn more about Z3Py at:
|
||||
You can learn more about Z3Py at:
|
||||
http://rise4fun.com/Z3Py/tutorial/guide
|
||||
|
||||
On Windows, you must build Z3 before using Z3Py.
|
||||
To build Z3, you should executed the following command
|
||||
in the Z3 root directory at the Visual Studio Command Prompt
|
||||
|
||||
msbuild /p:configuration=external
|
||||
|
||||
If you are using a 64-bit Python interpreter, you should use
|
||||
|
||||
msbuild /p:configuration=external /p:platform=x64
|
||||
|
||||
|
||||
On Linux and OSX, you must install Z3Py, before trying example.py.
|
||||
To install Z3Py on Linux and OSX, you should execute the following
|
||||
command in the Z3 root directory
|
||||
|
||||
sudo make install-z3py
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
export PYTHONPATH=../../python:$PYTHONPATH
|
||||
python example.py
|
|
@ -1,2 +0,0 @@
|
|||
export PYTHONPATH=../../python:$PYTHONPATH
|
||||
python example.py
|
|
@ -1,2 +0,0 @@
|
|||
export LD_LIBRARY_PATH=.
|
||||
python example.py
|
|
@ -1,2 +0,0 @@
|
|||
export LD_LIBRARY_PATH=.
|
||||
python example.py
|
|
@ -1,2 +0,0 @@
|
|||
export LD_LIBRARY_PATH=.
|
||||
python example.py
|
|
@ -43,6 +43,7 @@ from z3types import *
|
|||
from z3consts import *
|
||||
from z3tactics import *
|
||||
from z3printer import *
|
||||
import io
|
||||
|
||||
# We use _z3_assert instead of the assert command because we want to
|
||||
# produce nice error messages in Z3Py at rise4fun.com
|
||||
|
@ -4419,6 +4420,9 @@ class ParamDescrsRef:
|
|||
else:
|
||||
return self.get_kind(arg)
|
||||
|
||||
def __repr__(self):
|
||||
return Z3_param_descrs_to_string(self.ctx.ref(), self.descr)
|
||||
|
||||
#########################################
|
||||
#
|
||||
# Goals
|
||||
|
|
|
@ -8,10 +8,9 @@ def _find_lib():
|
|||
_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
libs = ['z3.dll', 'libz3.so', 'libz3.dylib']
|
||||
if sys.maxsize > 2**32:
|
||||
winlibdir = 'x64'
|
||||
locs = [_dir, '%s%s..%sx64%sexternal' % (_dir, os.sep, os.sep, os.sep), '%s%s..%sbin%sexternal' % (_dir, os.sep, os.sep, os.sep)]
|
||||
else:
|
||||
winlibdir = 'bin'
|
||||
locs = [_dir, '%s%s..%s%s' % (_dir, os.sep, os.sep, winlibdir), '%s%s..%slib' % (_dir, os.sep, os.sep), '%s%s..%sexternal' % (_dir, os.sep, os.sep), '%s%s..%sbin%sexternal' % (_dir, os.sep, os.sep, os.sep)]
|
||||
locs = [_dir, '%s%s..%sexternal' % (_dir, os.sep, os.sep), '%s%s..%sbin%sexternal' % (_dir, os.sep, os.sep, os.sep)]
|
||||
for loc in locs:
|
||||
for lib in libs:
|
||||
f = '%s%s%s' % (loc, os.sep, lib)
|
||||
|
@ -697,6 +696,8 @@ def init(PATH):
|
|||
_lib.Z3_param_descrs_size.argtypes = [ContextObj, ParamDescrs]
|
||||
_lib.Z3_param_descrs_get_name.restype = Symbol
|
||||
_lib.Z3_param_descrs_get_name.argtypes = [ContextObj, ParamDescrs, ctypes.c_uint]
|
||||
_lib.Z3_param_descrs_to_string.restype = ctypes.c_char_p
|
||||
_lib.Z3_param_descrs_to_string.argtypes = [ContextObj, ParamDescrs]
|
||||
_lib.Z3_interrupt.argtypes = [ContextObj]
|
||||
_lib.Z3_get_error_msg_ex.restype = ctypes.c_char_p
|
||||
_lib.Z3_get_error_msg_ex.argtypes = [ContextObj, ctypes.c_uint]
|
||||
|
@ -3342,6 +3343,13 @@ def Z3_param_descrs_get_name(a0, a1, a2):
|
|||
raise Z3Exception(lib().Z3_get_error_msg_ex(a0, err))
|
||||
return r
|
||||
|
||||
def Z3_param_descrs_to_string(a0, a1):
|
||||
r = lib().Z3_param_descrs_to_string(a0, a1)
|
||||
err = lib().Z3_get_error_code(a0)
|
||||
if err != Z3_OK:
|
||||
raise Z3Exception(lib().Z3_get_error_msg_ex(a0, err))
|
||||
return r
|
||||
|
||||
def Z3_interrupt(a0):
|
||||
lib().Z3_interrupt(a0)
|
||||
err = lib().Z3_get_error_code(a0)
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
import z3, doctest
|
||||
import sys, re
|
||||
|
||||
if re.compile("64 bit").search(sys.version):
|
||||
z3.init("..\\x64\\external_64\\z3.dll")
|
||||
else:
|
||||
z3.init("..\\external\\z3.dll")
|
||||
|
||||
doctest.testmod(z3)
|
||||
r = doctest.testmod(z3)
|
||||
if r.failed != 0:
|
||||
exit(1)
|
||||
|
||||
|
|
|
@ -276,6 +276,7 @@ Global
|
|||
{9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|Mixed Platforms.ActiveCfg = external|Win32
|
||||
{9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|Mixed Platforms.Build.0 = external|Win32
|
||||
{9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|Win32.ActiveCfg = Release|Win32
|
||||
{9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|Win32.Build.0 = Release|Win32
|
||||
{9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|x64.ActiveCfg = external|x64
|
||||
{9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|x64.Build.0 = external|x64
|
||||
{9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|x86.ActiveCfg = Release|Win32
|
||||
|
@ -326,6 +327,7 @@ Global
|
|||
{0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|Mixed Platforms.ActiveCfg = external|Win32
|
||||
{0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|Mixed Platforms.Build.0 = external|Win32
|
||||
{0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|Win32.ActiveCfg = external|Win32
|
||||
{0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|Win32.Build.0 = external|Win32
|
||||
{0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|x64.ActiveCfg = external|x64
|
||||
{0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|x64.Build.0 = external|x64
|
||||
{0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|x86.ActiveCfg = external|x64
|
||||
|
@ -374,6 +376,7 @@ Global
|
|||
{F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|Mixed Platforms.ActiveCfg = external|Win32
|
||||
{F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|Mixed Platforms.Build.0 = external|Win32
|
||||
{F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|Win32.ActiveCfg = external|Win32
|
||||
{F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|Win32.Build.0 = external|Win32
|
||||
{F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|x64.ActiveCfg = external|x64
|
||||
{F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|x64.Build.0 = external|x64
|
||||
{F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|x86.ActiveCfg = external|x64
|
||||
|
@ -422,6 +425,7 @@ Global
|
|||
{7C154132-AAAB-4F60-B652-F8C51A63D244}.external|Mixed Platforms.ActiveCfg = external|Win32
|
||||
{7C154132-AAAB-4F60-B652-F8C51A63D244}.external|Mixed Platforms.Build.0 = external|Win32
|
||||
{7C154132-AAAB-4F60-B652-F8C51A63D244}.external|Win32.ActiveCfg = external|Win32
|
||||
{7C154132-AAAB-4F60-B652-F8C51A63D244}.external|Win32.Build.0 = external|Win32
|
||||
{7C154132-AAAB-4F60-B652-F8C51A63D244}.external|x64.ActiveCfg = external|x64
|
||||
{7C154132-AAAB-4F60-B652-F8C51A63D244}.external|x64.Build.0 = external|x64
|
||||
{7C154132-AAAB-4F60-B652-F8C51A63D244}.external|x86.ActiveCfg = external|x64
|
||||
|
@ -469,7 +473,8 @@ Global
|
|||
{EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Any CPU.ActiveCfg = external|Any CPU
|
||||
{EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Mixed Platforms.ActiveCfg = external|Any CPU
|
||||
{EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Mixed Platforms.Build.0 = external|Any CPU
|
||||
{EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Win32.ActiveCfg = external|x64
|
||||
{EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Win32.ActiveCfg = external|Any CPU
|
||||
{EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Win32.Build.0 = external|Any CPU
|
||||
{EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|x64.ActiveCfg = external|x64
|
||||
{EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|x64.Build.0 = external|x64
|
||||
{EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|x86.ActiveCfg = external|x64
|
||||
|
@ -517,7 +522,8 @@ Global
|
|||
{D350BC78-8455-45D3-9759-073394378BF2}.external|Any CPU.ActiveCfg = Release|x64
|
||||
{D350BC78-8455-45D3-9759-073394378BF2}.external|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{D350BC78-8455-45D3-9759-073394378BF2}.external|Mixed Platforms.Build.0 = Release|x86
|
||||
{D350BC78-8455-45D3-9759-073394378BF2}.external|Win32.ActiveCfg = Release|x64
|
||||
{D350BC78-8455-45D3-9759-073394378BF2}.external|Win32.ActiveCfg = Release|Any CPU
|
||||
{D350BC78-8455-45D3-9759-073394378BF2}.external|Win32.Build.0 = Release|Any CPU
|
||||
{D350BC78-8455-45D3-9759-073394378BF2}.external|x64.ActiveCfg = Release|x64
|
||||
{D350BC78-8455-45D3-9759-073394378BF2}.external|x64.Build.0 = Release|x64
|
||||
{D350BC78-8455-45D3-9759-073394378BF2}.external|x86.ActiveCfg = Release|x64
|
||||
|
|
Loading…
Reference in a new issue