mirror of
https://github.com/Z3Prover/z3
synced 2025-05-04 06:15:46 +00:00
merge with master
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
commit
c513f3ca09
883 changed files with 13979 additions and 16480 deletions
223
src/api/z3_api.h
223
src/api/z3_api.h
|
@ -270,7 +270,7 @@ typedef enum
|
|||
- Z3_OP_ARRAY_MAP Array map operator.
|
||||
It satisfies map[f](a1,..,a_n)[i] = f(a1[i],...,a_n[i]) for every i.
|
||||
|
||||
- Z3_OP_SET_UNION Set union between two Booelan arrays (two arrays whose range type is Boolean). The function is binary.
|
||||
- Z3_OP_SET_UNION Set union between two Boolean arrays (two arrays whose range type is Boolean). The function is binary.
|
||||
|
||||
- Z3_OP_SET_INTERSECT Set intersection between two Boolean arrays. The function is binary.
|
||||
|
||||
|
@ -406,7 +406,7 @@ typedef enum
|
|||
|
||||
- Z3_OP_BSMUL_NO_UDFL: check that bit-wise signed multiplication does not underflow.
|
||||
Signed multiplication underflows if the operands have opposite signs and the result of multiplication
|
||||
does not fit within the avaialble bits. Z3_mk_bvmul_no_underflow.
|
||||
does not fit within the available bits. Z3_mk_bvmul_no_underflow.
|
||||
|
||||
- Z3_OP_BSDIV_I: Binary signed division.
|
||||
It has the same semantics as Z3_OP_BSDIV, but created in a context where the second operand can be assumed to be non-zero.
|
||||
|
@ -459,7 +459,7 @@ typedef enum
|
|||
[trans T1 T2]: (R t u)
|
||||
}
|
||||
|
||||
- Z3_OP_PR_TRANSITIVITY_STAR: Condensed transitivity proof. This proof object is only used if the parameter PROOF_MODE is 1.
|
||||
- Z3_OP_PR_TRANSITIVITY_STAR: Condensed transitivity proof.
|
||||
It combines several symmetry and transitivity proofs.
|
||||
|
||||
Example:
|
||||
|
@ -485,7 +485,7 @@ typedef enum
|
|||
[monotonicity T1 ... Tn]: (R (f t_1 ... t_n) (f s_1 ... s_n))
|
||||
}
|
||||
Remark: if t_i == s_i, then the antecedent Ti is suppressed.
|
||||
That is, reflexivity proofs are supressed to save space.
|
||||
That is, reflexivity proofs are suppressed to save space.
|
||||
|
||||
- Z3_OP_PR_QUANT_INTRO: Given a proof for (~ p q), produces a proof for (~ (forall (x) p) (forall (x) q)).
|
||||
|
||||
|
@ -539,21 +539,14 @@ typedef enum
|
|||
}
|
||||
|
||||
- Z3_OP_PR_REWRITE_STAR: A proof for rewriting an expression t into an expression s.
|
||||
This proof object is used if the parameter PROOF_MODE is 1.
|
||||
This proof object can have n antecedents.
|
||||
The antecedents are proofs for equalities used as substitution rules.
|
||||
The object is also used in a few cases if the parameter PROOF_MODE is 2.
|
||||
The cases are:
|
||||
The proof rule is used in a few cases. The cases are:
|
||||
- When applying contextual simplification (CONTEXT_SIMPLIFIER=true)
|
||||
- When converting bit-vectors to Booleans (BIT2BOOL=true)
|
||||
- When pulling ite expression up (PULL_CHEAP_ITE_TREES=true)
|
||||
|
||||
- Z3_OP_PR_PULL_QUANT: A proof for (iff (f (forall (x) q(x)) r) (forall (x) (f (q x) r))). This proof object has no antecedents.
|
||||
|
||||
- Z3_OP_PR_PULL_QUANT_STAR: A proof for (iff P Q) where Q is in prenex normal form.
|
||||
This proof object is only used if the parameter PROOF_MODE is 1.
|
||||
This proof object has no antecedents.
|
||||
|
||||
- Z3_OP_PR_PUSH_QUANT: A proof for:
|
||||
|
||||
\nicebox{
|
||||
|
@ -726,15 +719,6 @@ typedef enum
|
|||
[nnf-neg T1 T2 T3 T4]: (~ (not (iff s_1 s_2))
|
||||
(and (or r_1 r_2) (or r_1' r_2')))
|
||||
}
|
||||
- Z3_OP_PR_NNF_STAR: A proof for (~ P Q) where Q is in negation normal form.
|
||||
|
||||
This proof object is only used if the parameter PROOF_MODE is 1.
|
||||
|
||||
This proof object may have n antecedents. Each antecedent is a PR_DEF_INTRO.
|
||||
|
||||
- Z3_OP_PR_CNF_STAR: A proof for (~ P Q) where Q is in conjunctive normal form.
|
||||
This proof object is only used if the parameter PROOF_MODE is 1.
|
||||
This proof object may have n antecedents. Each antecedent is a PR_DEF_INTRO.
|
||||
|
||||
- Z3_OP_PR_SKOLEMIZE: Proof for:
|
||||
|
||||
|
@ -832,7 +816,7 @@ typedef enum
|
|||
|
||||
- Z3_OP_RA_FILTER: Filter (restrict) a relation with respect to a predicate.
|
||||
The first argument is a relation.
|
||||
The second argument is a predicate with free de-Brujin indices
|
||||
The second argument is a predicate with free de-Bruijn indices
|
||||
corresponding to the columns of the relation.
|
||||
So the first column in the relation has index 0.
|
||||
|
||||
|
@ -876,6 +860,8 @@ typedef enum
|
|||
|
||||
- Z3_OP_DT_RECOGNISER: datatype recognizer.
|
||||
|
||||
- Z3_OP_DT_IS: datatype recognizer.
|
||||
|
||||
- Z3_OP_DT_ACCESSOR: datatype accessor.
|
||||
|
||||
- Z3_OP_DT_UPDATE_FIELD: datatype field update.
|
||||
|
@ -969,7 +955,7 @@ typedef enum
|
|||
|
||||
- Z3_OP_FPA_TO_FP: Floating-point conversion (various)
|
||||
|
||||
- Z3_OP_FPA_TO_FP_UNSIGNED: Floating-point conversion from unsigend bit-vector
|
||||
- Z3_OP_FPA_TO_FP_UNSIGNED: Floating-point conversion from unsigned bit-vector
|
||||
|
||||
- Z3_OP_FPA_TO_UBV: Floating-point conversion to unsigned bit-vector
|
||||
|
||||
|
@ -984,7 +970,7 @@ typedef enum
|
|||
of non-relevant terms in theory_fpa)
|
||||
|
||||
- Z3_OP_FPA_BV2RM: Conversion of a 3-bit bit-vector term to a
|
||||
floating-point rouding-mode term
|
||||
floating-point rounding-mode term
|
||||
|
||||
The conversion uses the following values:
|
||||
0 = 000 = Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN,
|
||||
|
@ -1140,7 +1126,6 @@ typedef enum {
|
|||
Z3_OP_PR_REWRITE,
|
||||
Z3_OP_PR_REWRITE_STAR,
|
||||
Z3_OP_PR_PULL_QUANT,
|
||||
Z3_OP_PR_PULL_QUANT_STAR,
|
||||
Z3_OP_PR_PUSH_QUANT,
|
||||
Z3_OP_PR_ELIM_UNUSED_VARS,
|
||||
Z3_OP_PR_DER,
|
||||
|
@ -1157,8 +1142,6 @@ typedef enum {
|
|||
Z3_OP_PR_IFF_OEQ,
|
||||
Z3_OP_PR_NNF_POS,
|
||||
Z3_OP_PR_NNF_NEG,
|
||||
Z3_OP_PR_NNF_STAR,
|
||||
Z3_OP_PR_CNF_STAR,
|
||||
Z3_OP_PR_SKOLEMIZE,
|
||||
Z3_OP_PR_MODUS_PONENS_OEQ,
|
||||
Z3_OP_PR_TH_LEMMA,
|
||||
|
@ -1220,6 +1203,7 @@ typedef enum {
|
|||
// Datatypes
|
||||
Z3_OP_DT_CONSTRUCTOR=0x800,
|
||||
Z3_OP_DT_RECOGNISER,
|
||||
Z3_OP_DT_IS,
|
||||
Z3_OP_DT_ACCESSOR,
|
||||
Z3_OP_DT_UPDATE_FIELD,
|
||||
|
||||
|
@ -1314,13 +1298,11 @@ typedef enum {
|
|||
|
||||
- Z3_PRINT_SMTLIB_FULL: Print AST nodes in SMTLIB verbose format.
|
||||
- Z3_PRINT_LOW_LEVEL: Print AST nodes using a low-level format.
|
||||
- Z3_PRINT_SMTLIB_COMPLIANT: Print AST nodes in SMTLIB 1.x compliant format.
|
||||
- Z3_PRINT_SMTLIB2_COMPLIANT: Print AST nodes in SMTLIB 2.x compliant format.
|
||||
*/
|
||||
typedef enum {
|
||||
Z3_PRINT_SMTLIB_FULL,
|
||||
Z3_PRINT_LOW_LEVEL,
|
||||
Z3_PRINT_SMTLIB_COMPLIANT,
|
||||
Z3_PRINT_SMTLIB2_COMPLIANT
|
||||
} Z3_ast_print_mode;
|
||||
|
||||
|
@ -1333,7 +1315,7 @@ typedef enum {
|
|||
- Z3_IOB: Index out of bounds.
|
||||
- Z3_INVALID_ARG: Invalid argument was provided.
|
||||
- Z3_PARSER_ERROR: An error occurred when parsing a string or file.
|
||||
- Z3_NO_PARSER: Parser output is not available, that is, user didn't invoke #Z3_parse_smtlib_string or #Z3_parse_smtlib_file.
|
||||
- Z3_NO_PARSER: Parser output is not available, that is, user didn't invoke #Z3_parse_smtlib2_string or #Z3_parse_smtlib2_file.
|
||||
- Z3_INVALID_PATTERN: Invalid pattern was used to build a quantifier.
|
||||
- Z3_MEMOUT_FAIL: A memory allocation failure was encountered.
|
||||
- Z3_FILE_ACCESS_ERRROR: A file could not be accessed.
|
||||
|
@ -1476,7 +1458,6 @@ extern "C" {
|
|||
/*@{*/
|
||||
|
||||
/**
|
||||
\deprecated
|
||||
\brief Create a configuration object for the Z3 context object.
|
||||
|
||||
Configurations are created in order to assign parameters prior to creating
|
||||
|
@ -1509,7 +1490,6 @@ extern "C" {
|
|||
Z3_config Z3_API Z3_mk_config(void);
|
||||
|
||||
/**
|
||||
\deprecated
|
||||
\brief Delete the given configuration object.
|
||||
|
||||
\sa Z3_mk_config
|
||||
|
@ -1519,7 +1499,6 @@ extern "C" {
|
|||
void Z3_API Z3_del_config(Z3_config c);
|
||||
|
||||
/**
|
||||
\deprecated
|
||||
\brief Set a configuration parameter.
|
||||
|
||||
The following parameters can be set for
|
||||
|
@ -1536,7 +1515,6 @@ extern "C" {
|
|||
/*@{*/
|
||||
|
||||
/**
|
||||
\deprecated
|
||||
\brief Create a context using the given configuration.
|
||||
|
||||
After a context is created, the configuration cannot be changed,
|
||||
|
@ -1616,7 +1594,6 @@ extern "C" {
|
|||
void Z3_API Z3_dec_ref(Z3_context c, Z3_ast a);
|
||||
|
||||
/**
|
||||
\deprecated
|
||||
\brief Set a value of a context parameter.
|
||||
|
||||
\sa Z3_global_param_set
|
||||
|
@ -1924,7 +1901,7 @@ extern "C" {
|
|||
|
||||
\param c logical context
|
||||
\param name name of the enumeration sort.
|
||||
\param n number of elemenets in enumeration sort.
|
||||
\param n number of elements in enumeration sort.
|
||||
\param enum_names names of the enumerated elements.
|
||||
\param enum_consts constants corresponding to the enumerated elements.
|
||||
\param enum_testers predicates testing if terms of the enumeration sort correspond to an enumeration.
|
||||
|
@ -2859,9 +2836,8 @@ extern "C" {
|
|||
/**
|
||||
\brief Create an \c n bit bit-vector from the integer argument \c t1.
|
||||
|
||||
NB. This function is essentially treated as uninterpreted.
|
||||
So you cannot expect Z3 to precisely reflect the semantics of this function
|
||||
when solving constraints with this function.
|
||||
The resulting bit-vector has \c n bits, where the i'th bit (counting
|
||||
from 0 to \c n-1) is 1 if \c (t1 div 2^i) mod 2 is 1.
|
||||
|
||||
The node \c t1 must have integer sort.
|
||||
|
||||
|
@ -2876,9 +2852,6 @@ extern "C" {
|
|||
and in the range \ccode{[0..2^N-1]}, where N are the number of bits in \c t1.
|
||||
If \c is_signed is true, \c t1 is treated as a signed bit-vector.
|
||||
|
||||
This function is essentially treated as uninterpreted.
|
||||
So you cannot expect Z3 to precisely reflect the semantics of this function
|
||||
when solving constraints with this function.
|
||||
|
||||
The node \c t1 must have a bit-vector sort.
|
||||
|
||||
|
@ -3188,7 +3161,7 @@ extern "C" {
|
|||
|
||||
\param c logical context.
|
||||
\param num numerator of rational.
|
||||
\param den denomerator of rational.
|
||||
\param den denominator of rational.
|
||||
|
||||
\pre den != 0
|
||||
|
||||
|
@ -3203,7 +3176,7 @@ extern "C" {
|
|||
/**
|
||||
\brief Create a numeral of an int, bit-vector, or finite-domain sort.
|
||||
|
||||
This function can be use to create numerals that fit in a machine integer.
|
||||
This function can be used to create numerals that fit in a machine integer.
|
||||
It is slightly faster than #Z3_mk_numeral since it is not necessary to parse a string.
|
||||
|
||||
\sa Z3_mk_numeral
|
||||
|
@ -3215,7 +3188,7 @@ extern "C" {
|
|||
/**
|
||||
\brief Create a numeral of a int, bit-vector, or finite-domain sort.
|
||||
|
||||
This function can be use to create numerals that fit in a machine unsinged integer.
|
||||
This function can be used to create numerals that fit in a machine unsigned integer.
|
||||
It is slightly faster than #Z3_mk_numeral since it is not necessary to parse a string.
|
||||
|
||||
\sa Z3_mk_numeral
|
||||
|
@ -3227,7 +3200,7 @@ extern "C" {
|
|||
/**
|
||||
\brief Create a numeral of a int, bit-vector, or finite-domain sort.
|
||||
|
||||
This function can be use to create numerals that fit in a machine __int64 integer.
|
||||
This function can be used to create numerals that fit in a machine __int64 integer.
|
||||
It is slightly faster than #Z3_mk_numeral since it is not necessary to parse a string.
|
||||
|
||||
\sa Z3_mk_numeral
|
||||
|
@ -3239,7 +3212,7 @@ extern "C" {
|
|||
/**
|
||||
\brief Create a numeral of a int, bit-vector, or finite-domain sort.
|
||||
|
||||
This function can be use to create numerals that fit in a machine __uint64 integer.
|
||||
This function can be used to create numerals that fit in a machine __uint64 integer.
|
||||
It is slightly faster than #Z3_mk_numeral since it is not necessary to parse a string.
|
||||
|
||||
\sa Z3_mk_numeral
|
||||
|
@ -3248,6 +3221,14 @@ extern "C" {
|
|||
*/
|
||||
Z3_ast Z3_API Z3_mk_unsigned_int64(Z3_context c, __uint64 v, Z3_sort ty);
|
||||
|
||||
/**
|
||||
\brief create a bit-vector numeral from a vector of Booleans.
|
||||
|
||||
\sa Z3_mk_numeral
|
||||
def_API('Z3_mk_bv_numeral', AST, (_in(CONTEXT), _in(UINT), _in_array(1, BOOL)))
|
||||
*/
|
||||
Z3_ast Z3_API Z3_mk_bv_numeral(Z3_context c, unsigned sz, Z3_bool const* bits);
|
||||
|
||||
/*@}*/
|
||||
|
||||
/** @name Sequences and regular expressions */
|
||||
|
@ -3487,8 +3468,8 @@ extern "C" {
|
|||
Z3_ast Z3_API Z3_mk_re_range(Z3_context c, Z3_ast lo, Z3_ast hi);
|
||||
|
||||
/**
|
||||
\brief Create a regular expression loop. The supplied regular expression \c r is repated
|
||||
between \c lo and \c hi times. The \c lo should be below \c hi with one exection: when
|
||||
\brief Create a regular expression loop. The supplied regular expression \c r is repeated
|
||||
between \c lo and \c hi times. The \c lo should be below \c hi with one exception: when
|
||||
supplying the value \c hi as 0, the meaning is to repeat the argument \c r at least
|
||||
\c lo number of times, and with an unbounded upper bound.
|
||||
|
||||
|
@ -4242,7 +4223,7 @@ extern "C" {
|
|||
Z3_sort Z3_API Z3_get_decl_sort_parameter(Z3_context c, Z3_func_decl d, unsigned idx);
|
||||
|
||||
/**
|
||||
\brief Return the expresson value associated with an expression parameter.
|
||||
\brief Return the expression value associated with an expression parameter.
|
||||
|
||||
\pre Z3_get_decl_parameter_kind(c, d, idx) == Z3_PARAMETER_AST
|
||||
|
||||
|
@ -4251,7 +4232,7 @@ extern "C" {
|
|||
Z3_ast Z3_API Z3_get_decl_ast_parameter(Z3_context c, Z3_func_decl d, unsigned idx);
|
||||
|
||||
/**
|
||||
\brief Return the expresson value associated with an expression parameter.
|
||||
\brief Return the expression value associated with an expression parameter.
|
||||
|
||||
\pre Z3_get_decl_parameter_kind(c, d, idx) == Z3_PARAMETER_FUNC_DECL
|
||||
|
||||
|
@ -4293,7 +4274,7 @@ extern "C" {
|
|||
/**
|
||||
\brief Return the i-th argument of the given application.
|
||||
|
||||
\pre i < Z3_get_num_args(c, a)
|
||||
\pre i < Z3_get_app_num_args(c, a)
|
||||
|
||||
def_API('Z3_get_app_arg', AST, (_in(CONTEXT), _in(APP), _in(UINT)))
|
||||
*/
|
||||
|
@ -4321,7 +4302,7 @@ extern "C" {
|
|||
|
||||
/**
|
||||
\brief Return a hash code for the given AST.
|
||||
The hash code is structural. You can use Z3_get_ast_id interchangably with
|
||||
The hash code is structural. You can use Z3_get_ast_id interchangeably with
|
||||
this function.
|
||||
|
||||
def_API('Z3_get_ast_hash', UINT, (_in(CONTEXT), _in(AST)))
|
||||
|
@ -4369,7 +4350,7 @@ extern "C" {
|
|||
Z3_bool Z3_API Z3_is_numeral_ast(Z3_context c, Z3_ast a);
|
||||
|
||||
/**
|
||||
\brief Return true if the give AST is a real algebraic number.
|
||||
\brief Return true if the given AST is a real algebraic number.
|
||||
|
||||
def_API('Z3_is_algebraic_number', BOOL, (_in(CONTEXT), _in(AST)))
|
||||
*/
|
||||
|
@ -4550,7 +4531,7 @@ extern "C" {
|
|||
Z3_ast Z3_API Z3_get_pattern(Z3_context c, Z3_pattern p, unsigned idx);
|
||||
|
||||
/**
|
||||
\brief Return index of de-Brujin bound variable.
|
||||
\brief Return index of de-Bruijn bound variable.
|
||||
|
||||
\pre Z3_get_ast_kind(a) == Z3_VAR_AST
|
||||
|
||||
|
@ -4653,7 +4634,7 @@ extern "C" {
|
|||
|
||||
Provides an interface to the AST simplifier used by Z3.
|
||||
It returns an AST object which is equal to the argument.
|
||||
The returned AST is simplified using algebraic simplificaiton rules,
|
||||
The returned AST is simplified using algebraic simplification rules,
|
||||
such as constant propagation (propagating true/false over logical connectives).
|
||||
|
||||
def_API('Z3_simplify', AST, (_in(CONTEXT), _in(AST)))
|
||||
|
@ -4855,9 +4836,9 @@ extern "C" {
|
|||
Z3_func_decl Z3_API Z3_model_get_func_decl(Z3_context c, Z3_model m, unsigned i);
|
||||
|
||||
/**
|
||||
\brief Return the number of uninterpreted sorts that \c m assigs an interpretation to.
|
||||
\brief Return the number of uninterpreted sorts that \c m assigns an interpretation to.
|
||||
|
||||
Z3 also provides an intepretation for uninterpreted sorts used in a formua.
|
||||
Z3 also provides an interpretation for uninterpreted sorts used in a formula.
|
||||
The interpretation for a sort \c s is a finite set of distinct values. We say this finite set is
|
||||
the "universe" of \c s.
|
||||
|
||||
|
@ -4890,6 +4871,13 @@ extern "C" {
|
|||
*/
|
||||
Z3_ast_vector Z3_API Z3_model_get_sort_universe(Z3_context c, Z3_model m, Z3_sort s);
|
||||
|
||||
/**
|
||||
\brief translate model from context c to context \c dst.
|
||||
|
||||
def_API('Z3_model_translate', MODEL, (_in(CONTEXT), _in(MODEL), _in(CONTEXT)))
|
||||
*/
|
||||
Z3_model Z3_API Z3_model_translate(Z3_context c, Z3_model m, Z3_context dst);
|
||||
|
||||
/**
|
||||
\brief The \ccode{(_ as-array f)} AST node is a construct for assigning interpretations for arrays in Z3.
|
||||
It is the array such that forall indices \c i we have that \ccode{(select (_ as-array f) i)} is equal to \ccode{(f i)}.
|
||||
|
@ -4958,7 +4946,7 @@ extern "C" {
|
|||
unsigned Z3_API Z3_func_interp_get_num_entries(Z3_context c, Z3_func_interp f);
|
||||
|
||||
/**
|
||||
\brief Return a "point" of the given function intepretation. It represents the
|
||||
\brief Return a "point" of the given function interpretation. It represents the
|
||||
value of \c f in a particular point.
|
||||
|
||||
\pre i < Z3_func_interp_get_num_entries(c, f)
|
||||
|
@ -5000,7 +4988,7 @@ extern "C" {
|
|||
\brief add a function entry to a function interpretation.
|
||||
|
||||
\param c logical context
|
||||
\param fi a function interpregation to be updated.
|
||||
\param fi a function interpretation to be updated.
|
||||
\param args list of arguments. They should be constant values (such as integers) and be of the same types as the domain of the function.
|
||||
\param value value of the function when the parameters match args.
|
||||
|
||||
|
@ -5108,7 +5096,7 @@ extern "C" {
|
|||
To print shared common subexpressions only once,
|
||||
use the Z3_PRINT_LOW_LEVEL mode.
|
||||
To print in way that conforms to SMT-LIB standards and uses let
|
||||
expressions to share common sub-expressions use Z3_PRINT_SMTLIB_COMPLIANT.
|
||||
expressions to share common sub-expressions use Z3_PRINT_SMTLIB2_COMPLIANT.
|
||||
|
||||
\sa Z3_ast_to_string
|
||||
\sa Z3_pattern_to_string
|
||||
|
@ -5220,115 +5208,24 @@ extern "C" {
|
|||
Z3_symbol const decl_names[],
|
||||
Z3_func_decl const decls[]);
|
||||
|
||||
/**
|
||||
\brief Parse the given string using the SMT-LIB parser.
|
||||
|
||||
The symbol table of the parser can be initialized using the given sorts and declarations.
|
||||
The symbols in the arrays \c sort_names and \c decl_names don't need to match the names
|
||||
of the sorts and declarations in the arrays \c sorts and \c decls. This is an useful feature
|
||||
since we can use arbitrary names to reference sorts and declarations defined using the C API.
|
||||
|
||||
The formulas, assumptions and declarations defined in \c str can be extracted using the functions:
|
||||
#Z3_get_smtlib_num_formulas, #Z3_get_smtlib_formula, #Z3_get_smtlib_num_assumptions, #Z3_get_smtlib_assumption,
|
||||
#Z3_get_smtlib_num_decls, and #Z3_get_smtlib_decl.
|
||||
|
||||
def_API('Z3_parse_smtlib_string', VOID, (_in(CONTEXT), _in(STRING), _in(UINT), _in_array(2, SYMBOL), _in_array(2, SORT), _in(UINT), _in_array(5, SYMBOL), _in_array(5, FUNC_DECL)))
|
||||
*/
|
||||
void Z3_API Z3_parse_smtlib_string(Z3_context c,
|
||||
Z3_string str,
|
||||
unsigned num_sorts,
|
||||
Z3_symbol const sort_names[],
|
||||
Z3_sort const sorts[],
|
||||
unsigned num_decls,
|
||||
Z3_symbol const decl_names[],
|
||||
Z3_func_decl const decls[]
|
||||
);
|
||||
|
||||
/**
|
||||
\brief Similar to #Z3_parse_smtlib_string, but reads the benchmark from a file.
|
||||
\brief Parse and evaluate and SMT-LIB2 command sequence. The state from a previous call is saved so the next
|
||||
evaluation builds on top of the previous call.
|
||||
|
||||
def_API('Z3_parse_smtlib_file', VOID, (_in(CONTEXT), _in(STRING), _in(UINT), _in_array(2, SYMBOL), _in_array(2, SORT), _in(UINT), _in_array(5, SYMBOL), _in_array(5, FUNC_DECL)))
|
||||
\returns output generated from processing commands.
|
||||
|
||||
def_API('Z3_eval_smtlib2_string', STRING, (_in(CONTEXT), _in(STRING),))
|
||||
*/
|
||||
void Z3_API Z3_parse_smtlib_file(Z3_context c,
|
||||
Z3_string file_name,
|
||||
unsigned num_sorts,
|
||||
Z3_symbol const sort_names[],
|
||||
Z3_sort const sorts[],
|
||||
unsigned num_decls,
|
||||
Z3_symbol const decl_names[],
|
||||
Z3_func_decl const decls[]
|
||||
);
|
||||
|
||||
/**
|
||||
\brief Return the number of SMTLIB formulas parsed by the last call to #Z3_parse_smtlib_string or #Z3_parse_smtlib_file.
|
||||
|
||||
def_API('Z3_get_smtlib_num_formulas', UINT, (_in(CONTEXT), ))
|
||||
*/
|
||||
unsigned Z3_API Z3_get_smtlib_num_formulas(Z3_context c);
|
||||
|
||||
/**
|
||||
\brief Return the i-th formula parsed by the last call to #Z3_parse_smtlib_string or #Z3_parse_smtlib_file.
|
||||
|
||||
\pre i < Z3_get_smtlib_num_formulas(c)
|
||||
|
||||
def_API('Z3_get_smtlib_formula', AST, (_in(CONTEXT), _in(UINT)))
|
||||
*/
|
||||
Z3_ast Z3_API Z3_get_smtlib_formula(Z3_context c, unsigned i);
|
||||
|
||||
/**
|
||||
\brief Return the number of SMTLIB assumptions parsed by #Z3_parse_smtlib_string or #Z3_parse_smtlib_file.
|
||||
|
||||
def_API('Z3_get_smtlib_num_assumptions', UINT, (_in(CONTEXT), ))
|
||||
*/
|
||||
unsigned Z3_API Z3_get_smtlib_num_assumptions(Z3_context c);
|
||||
|
||||
/**
|
||||
\brief Return the i-th assumption parsed by the last call to #Z3_parse_smtlib_string or #Z3_parse_smtlib_file.
|
||||
|
||||
\pre i < Z3_get_smtlib_num_assumptions(c)
|
||||
|
||||
def_API('Z3_get_smtlib_assumption', AST, (_in(CONTEXT), _in(UINT)))
|
||||
*/
|
||||
Z3_ast Z3_API Z3_get_smtlib_assumption(Z3_context c, unsigned i);
|
||||
|
||||
/**
|
||||
\brief Return the number of declarations parsed by #Z3_parse_smtlib_string or #Z3_parse_smtlib_file.
|
||||
|
||||
def_API('Z3_get_smtlib_num_decls', UINT, (_in(CONTEXT), ))
|
||||
*/
|
||||
unsigned Z3_API Z3_get_smtlib_num_decls(Z3_context c);
|
||||
|
||||
/**
|
||||
\brief Return the i-th declaration parsed by the last call to #Z3_parse_smtlib_string or #Z3_parse_smtlib_file.
|
||||
|
||||
\pre i < Z3_get_smtlib_num_decls(c)
|
||||
|
||||
def_API('Z3_get_smtlib_decl', FUNC_DECL, (_in(CONTEXT), _in(UINT)))
|
||||
*/
|
||||
Z3_func_decl Z3_API Z3_get_smtlib_decl(Z3_context c, unsigned i);
|
||||
|
||||
/**
|
||||
\brief Return the number of sorts parsed by #Z3_parse_smtlib_string or #Z3_parse_smtlib_file.
|
||||
|
||||
def_API('Z3_get_smtlib_num_sorts', UINT, (_in(CONTEXT), ))
|
||||
*/
|
||||
unsigned Z3_API Z3_get_smtlib_num_sorts(Z3_context c);
|
||||
|
||||
/**
|
||||
\brief Return the i-th sort parsed by the last call to #Z3_parse_smtlib_string or #Z3_parse_smtlib_file.
|
||||
|
||||
\pre i < Z3_get_smtlib_num_sorts(c)
|
||||
|
||||
def_API('Z3_get_smtlib_sort', SORT, (_in(CONTEXT), _in(UINT)))
|
||||
*/
|
||||
Z3_sort Z3_API Z3_get_smtlib_sort(Z3_context c, unsigned i);
|
||||
|
||||
Z3_string Z3_API Z3_eval_smtlib2_string(Z3_context, Z3_string str);
|
||||
|
||||
/**
|
||||
\brief Retrieve that last error message information generated from parsing.
|
||||
|
||||
def_API('Z3_get_smtlib_error', STRING, (_in(CONTEXT), ))
|
||||
def_API('Z3_get_parser_error', STRING, (_in(CONTEXT), ))
|
||||
*/
|
||||
Z3_string Z3_API Z3_get_smtlib_error(Z3_context c);
|
||||
Z3_string Z3_API Z3_get_parser_error(Z3_context c);
|
||||
/*@}*/
|
||||
|
||||
/** @name Error Handling */
|
||||
|
@ -5555,7 +5452,7 @@ extern "C" {
|
|||
Z3_bool Z3_API Z3_goal_is_decided_unsat(Z3_context c, Z3_goal g);
|
||||
|
||||
/**
|
||||
\brief Copy a goal \c g from the context \c source to a the context \c target.
|
||||
\brief Copy a goal \c g from the context \c source to the context \c target.
|
||||
|
||||
def_API('Z3_goal_translate', GOAL, (_in(CONTEXT), _in(GOAL), _in(CONTEXT)))
|
||||
*/
|
||||
|
@ -6029,7 +5926,7 @@ extern "C" {
|
|||
Z3_solver Z3_API Z3_mk_solver_from_tactic(Z3_context c, Z3_tactic t);
|
||||
|
||||
/**
|
||||
\brief Copy a solver \c s from the context \c source to a the context \c target.
|
||||
\brief Copy a solver \c s from the context \c source to the context \c target.
|
||||
|
||||
def_API('Z3_solver_translate', SOLVER, (_in(CONTEXT), _in(SOLVER), _in(CONTEXT)))
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue