Z3 |

z3_api.h
Go to the documentation of this file.
1/*++
2 Copyright (c) 2015 Microsoft Corporation
3--*/
4
5#pragma once
6
7 DEFINE_TYPE(Z3_symbol);
8 DEFINE_TYPE(Z3_literals);
9 DEFINE_TYPE(Z3_config);
10 DEFINE_TYPE(Z3_context);
11 DEFINE_TYPE(Z3_sort);
12#define Z3_sort_opt Z3_sort
13 DEFINE_TYPE(Z3_func_decl);
14 DEFINE_TYPE(Z3_ast);
15#define Z3_ast_opt Z3_ast
16 DEFINE_TYPE(Z3_app);
17 DEFINE_TYPE(Z3_pattern);
18 DEFINE_TYPE(Z3_model);
19 DEFINE_TYPE(Z3_constructor);
20 DEFINE_TYPE(Z3_constructor_list);
21 DEFINE_TYPE(Z3_params);
22 DEFINE_TYPE(Z3_param_descrs);
23 DEFINE_TYPE(Z3_goal);
24 DEFINE_TYPE(Z3_tactic);
25 DEFINE_TYPE(Z3_probe);
26 DEFINE_TYPE(Z3_stats);
27 DEFINE_TYPE(Z3_solver);
28 DEFINE_TYPE(Z3_solver_callback);
29 DEFINE_TYPE(Z3_ast_vector);
30 DEFINE_TYPE(Z3_ast_map);
31 DEFINE_TYPE(Z3_apply_result);
32 DEFINE_TYPE(Z3_func_interp);
33#define Z3_func_interp_opt Z3_func_interp
34 DEFINE_TYPE(Z3_func_entry);
35 DEFINE_TYPE(Z3_fixedpoint);
36 DEFINE_TYPE(Z3_optimize);
37 DEFINE_TYPE(Z3_rcf_num);
38
41
45
79 typedef bool Z3_bool;
80
84 typedef const char * Z3_string;
85 typedef char const* Z3_char_ptr;
86 typedef Z3_string * Z3_string_ptr;
87
91#define Z3_TRUE true
92
96#define Z3_FALSE false
97
101 typedef enum
102{
103 Z3_L_FALSE = -1,
104 Z3_L_UNDEF,
105 Z3_L_TRUE
106} Z3_lbool;
107
115 typedef enum
116{
117 Z3_INT_SYMBOL,
118 Z3_STRING_SYMBOL
119} Z3_symbol_kind;
120
121
135 typedef enum
136{
137 Z3_PARAMETER_INT,
138 Z3_PARAMETER_DOUBLE,
139 Z3_PARAMETER_RATIONAL,
140 Z3_PARAMETER_SYMBOL,
141 Z3_PARAMETER_SORT,
142 Z3_PARAMETER_AST,
143 Z3_PARAMETER_FUNC_DECL
144} Z3_parameter_kind;
145
149 typedef enum
150{
151 Z3_UNINTERPRETED_SORT,
152 Z3_BOOL_SORT,
153 Z3_INT_SORT,
154 Z3_REAL_SORT,
155 Z3_BV_SORT,
156 Z3_ARRAY_SORT,
157 Z3_DATATYPE_SORT,
158 Z3_RELATION_SORT,
159 Z3_FINITE_DOMAIN_SORT,
160 Z3_FLOATING_POINT_SORT,
161 Z3_ROUNDING_MODE_SORT,
162 Z3_SEQ_SORT,
163 Z3_RE_SORT,
164 Z3_UNKNOWN_SORT = 1000
165} Z3_sort_kind;
166
179 typedef enum
180{
181 Z3_NUMERAL_AST,
182 Z3_APP_AST,
183 Z3_VAR_AST,
184 Z3_QUANTIFIER_AST,
185 Z3_SORT_AST,
186 Z3_FUNC_DECL_AST,
187 Z3_UNKNOWN_AST = 1000
188} Z3_ast_kind;
189
1000 typedef enum {
1001 // Basic
1002 Z3_OP_TRUE = 0x100,
1003 Z3_OP_FALSE,
1004 Z3_OP_EQ,
1005 Z3_OP_DISTINCT,
1006 Z3_OP_ITE,
1007 Z3_OP_AND,
1008 Z3_OP_OR,
1009 Z3_OP_IFF,
1010 Z3_OP_XOR,
1011 Z3_OP_NOT,
1012 Z3_OP_IMPLIES,
1013 Z3_OP_OEQ,
1014
1015 // Arithmetic
1016 Z3_OP_ANUM = 0x200,
1017 Z3_OP_AGNUM,
1018 Z3_OP_LE,
1019 Z3_OP_GE,
1020 Z3_OP_LT,
1021 Z3_OP_GT,
1022 Z3_OP_ADD,
1023 Z3_OP_SUB,
1024 Z3_OP_UMINUS,
1025 Z3_OP_MUL,
1026 Z3_OP_DIV,
1027 Z3_OP_IDIV,
1028 Z3_OP_REM,
1029 Z3_OP_MOD,
1030 Z3_OP_TO_REAL,
1031 Z3_OP_TO_INT,
1032 Z3_OP_IS_INT,
1033 Z3_OP_POWER,
1034
1035 // Arrays & Sets
1036 Z3_OP_STORE = 0x300,
1037 Z3_OP_SELECT,
1038 Z3_OP_CONST_ARRAY,
1039 Z3_OP_ARRAY_MAP,
1040 Z3_OP_ARRAY_DEFAULT,
1041 Z3_OP_SET_UNION,
1042 Z3_OP_SET_INTERSECT,
1043 Z3_OP_SET_DIFFERENCE,
1044 Z3_OP_SET_COMPLEMENT,
1045 Z3_OP_SET_SUBSET,
1046 Z3_OP_AS_ARRAY,
1047 Z3_OP_ARRAY_EXT,
1048 Z3_OP_SET_HAS_SIZE,
1049 Z3_OP_SET_CARD,
1050
1051 // Bit-vectors
1052 Z3_OP_BNUM = 0x400,
1053 Z3_OP_BIT1,
1054 Z3_OP_BIT0,
1055 Z3_OP_BNEG,
1056 Z3_OP_BADD,
1057 Z3_OP_BSUB,
1058 Z3_OP_BMUL,
1059
1060 Z3_OP_BSDIV,
1061 Z3_OP_BUDIV,
1062 Z3_OP_BSREM,
1063 Z3_OP_BUREM,
1064 Z3_OP_BSMOD,
1065
1066 // special functions to record the division by 0 cases
1067 // these are internal functions
1068 Z3_OP_BSDIV0,
1069 Z3_OP_BUDIV0,
1070 Z3_OP_BSREM0,
1071 Z3_OP_BUREM0,
1072 Z3_OP_BSMOD0,
1073
1074 Z3_OP_ULEQ,
1075 Z3_OP_SLEQ,
1076 Z3_OP_UGEQ,
1077 Z3_OP_SGEQ,
1078 Z3_OP_ULT,
1079 Z3_OP_SLT,
1080 Z3_OP_UGT,
1081 Z3_OP_SGT,
1082
1083 Z3_OP_BAND,
1084 Z3_OP_BOR,
1085 Z3_OP_BNOT,
1086 Z3_OP_BXOR,
1087 Z3_OP_BNAND,
1088 Z3_OP_BNOR,
1089 Z3_OP_BXNOR,
1090
1091 Z3_OP_CONCAT,
1092 Z3_OP_SIGN_EXT,
1093 Z3_OP_ZERO_EXT,
1094 Z3_OP_EXTRACT,
1095 Z3_OP_REPEAT,
1096
1097 Z3_OP_BREDOR,
1098 Z3_OP_BREDAND,
1099 Z3_OP_BCOMP,
1100
1101 Z3_OP_BSHL,
1102 Z3_OP_BLSHR,
1103 Z3_OP_BASHR,
1104 Z3_OP_ROTATE_LEFT,
1105 Z3_OP_ROTATE_RIGHT,
1106 Z3_OP_EXT_ROTATE_LEFT,
1107 Z3_OP_EXT_ROTATE_RIGHT,
1108
1109 Z3_OP_BIT2BOOL,
1110 Z3_OP_INT2BV,
1111 Z3_OP_BV2INT,
1112 Z3_OP_CARRY,
1113 Z3_OP_XOR3,
1114
1115 Z3_OP_BSMUL_NO_OVFL,
1116 Z3_OP_BUMUL_NO_OVFL,
1117 Z3_OP_BSMUL_NO_UDFL,
1118 Z3_OP_BSDIV_I,
1119 Z3_OP_BUDIV_I,
1120 Z3_OP_BSREM_I,
1121 Z3_OP_BUREM_I,
1122 Z3_OP_BSMOD_I,
1123
1124 // Proofs
1125 Z3_OP_PR_UNDEF = 0x500,
1126 Z3_OP_PR_TRUE,
1127 Z3_OP_PR_ASSERTED,
1128 Z3_OP_PR_GOAL,
1129 Z3_OP_PR_MODUS_PONENS,
1130 Z3_OP_PR_REFLEXIVITY,
1131 Z3_OP_PR_SYMMETRY,
1132 Z3_OP_PR_TRANSITIVITY,
1133 Z3_OP_PR_TRANSITIVITY_STAR,
1134 Z3_OP_PR_MONOTONICITY,
1135 Z3_OP_PR_QUANT_INTRO,
1136 Z3_OP_PR_BIND,
1137 Z3_OP_PR_DISTRIBUTIVITY,
1138 Z3_OP_PR_AND_ELIM,
1139 Z3_OP_PR_NOT_OR_ELIM,
1140 Z3_OP_PR_REWRITE,
1141 Z3_OP_PR_REWRITE_STAR,
1142 Z3_OP_PR_PULL_QUANT,
1143 Z3_OP_PR_PUSH_QUANT,
1144 Z3_OP_PR_ELIM_UNUSED_VARS,
1145 Z3_OP_PR_DER,
1146 Z3_OP_PR_QUANT_INST,
1147 Z3_OP_PR_HYPOTHESIS,
1148 Z3_OP_PR_LEMMA,
1149 Z3_OP_PR_UNIT_RESOLUTION,
1150 Z3_OP_PR_IFF_TRUE,
1151 Z3_OP_PR_IFF_FALSE,
1152 Z3_OP_PR_COMMUTATIVITY,
1153 Z3_OP_PR_DEF_AXIOM,
1154 Z3_OP_PR_ASSUMPTION_ADD,
1155 Z3_OP_PR_LEMMA_ADD,
1156 Z3_OP_PR_REDUNDANT_DEL,
1157 Z3_OP_PR_CLAUSE_TRAIL,
1158 Z3_OP_PR_DEF_INTRO,
1159 Z3_OP_PR_APPLY_DEF,
1160 Z3_OP_PR_IFF_OEQ,
1161 Z3_OP_PR_NNF_POS,
1162 Z3_OP_PR_NNF_NEG,
1163 Z3_OP_PR_SKOLEMIZE,
1164 Z3_OP_PR_MODUS_PONENS_OEQ,
1165 Z3_OP_PR_TH_LEMMA,
1166 Z3_OP_PR_HYPER_RESOLVE,
1167
1168 // Relational algebra
1169 Z3_OP_RA_STORE = 0x600,
1170 Z3_OP_RA_EMPTY,
1171 Z3_OP_RA_IS_EMPTY,
1172 Z3_OP_RA_JOIN,
1173 Z3_OP_RA_UNION,
1174 Z3_OP_RA_WIDEN,
1175 Z3_OP_RA_PROJECT,
1176 Z3_OP_RA_FILTER,
1177 Z3_OP_RA_NEGATION_FILTER,
1178 Z3_OP_RA_RENAME,
1179 Z3_OP_RA_COMPLEMENT,
1180 Z3_OP_RA_SELECT,
1181 Z3_OP_RA_CLONE,
1182 Z3_OP_FD_CONSTANT,
1183 Z3_OP_FD_LT,
1184
1185 // Sequences
1186 Z3_OP_SEQ_UNIT,
1187 Z3_OP_SEQ_EMPTY,
1188 Z3_OP_SEQ_CONCAT,
1189 Z3_OP_SEQ_PREFIX,
1190 Z3_OP_SEQ_SUFFIX,
1191 Z3_OP_SEQ_CONTAINS,
1192 Z3_OP_SEQ_EXTRACT,
1193 Z3_OP_SEQ_REPLACE,
1194 Z3_OP_SEQ_AT,
1195 Z3_OP_SEQ_NTH,
1196 Z3_OP_SEQ_LENGTH,
1197 Z3_OP_SEQ_INDEX,
1198 Z3_OP_SEQ_LAST_INDEX,
1199 Z3_OP_SEQ_TO_RE,
1200 Z3_OP_SEQ_IN_RE,
1201
1202 // strings
1203 Z3_OP_STR_TO_INT,
1204 Z3_OP_INT_TO_STR,
1205 Z3_OP_STRING_LT,
1206 Z3_OP_STRING_LE,
1207
1208 // regular expressions
1209 Z3_OP_RE_PLUS,
1210 Z3_OP_RE_STAR,
1211 Z3_OP_RE_OPTION,
1212 Z3_OP_RE_CONCAT,
1213 Z3_OP_RE_UNION,
1214 Z3_OP_RE_RANGE,
1215 Z3_OP_RE_LOOP,
1216 Z3_OP_RE_INTERSECT,
1217 Z3_OP_RE_EMPTY_SET,
1218 Z3_OP_RE_FULL_SET,
1219 Z3_OP_RE_COMPLEMENT,
1220
1221 // Auxiliary
1222 Z3_OP_LABEL = 0x700,
1223 Z3_OP_LABEL_LIT,
1224
1225 // Datatypes
1226 Z3_OP_DT_CONSTRUCTOR=0x800,
1227 Z3_OP_DT_RECOGNISER,
1228 Z3_OP_DT_IS,
1229 Z3_OP_DT_ACCESSOR,
1230 Z3_OP_DT_UPDATE_FIELD,
1231
1232 // Pseudo Booleans
1233 Z3_OP_PB_AT_MOST=0x900,
1234 Z3_OP_PB_AT_LEAST,
1235 Z3_OP_PB_LE,
1236 Z3_OP_PB_GE,
1237 Z3_OP_PB_EQ,
1238
1239 // Special relations
1240 Z3_OP_SPECIAL_RELATION_LO = 0xa000,
1241 Z3_OP_SPECIAL_RELATION_PO,
1242 Z3_OP_SPECIAL_RELATION_PLO,
1243 Z3_OP_SPECIAL_RELATION_TO,
1244 Z3_OP_SPECIAL_RELATION_TC,
1245 Z3_OP_SPECIAL_RELATION_TRC,
1246
1247
1248 // Floating-Point Arithmetic
1249 Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN = 0xb000,
1250 Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY,
1251 Z3_OP_FPA_RM_TOWARD_POSITIVE,
1252 Z3_OP_FPA_RM_TOWARD_NEGATIVE,
1253 Z3_OP_FPA_RM_TOWARD_ZERO,
1254
1255 Z3_OP_FPA_NUM,
1256 Z3_OP_FPA_PLUS_INF,
1257 Z3_OP_FPA_MINUS_INF,
1258 Z3_OP_FPA_NAN,
1259 Z3_OP_FPA_PLUS_ZERO,
1260 Z3_OP_FPA_MINUS_ZERO,
1261
1262 Z3_OP_FPA_ADD,
1263 Z3_OP_FPA_SUB,
1264 Z3_OP_FPA_NEG,
1265 Z3_OP_FPA_MUL,
1266 Z3_OP_FPA_DIV,
1267 Z3_OP_FPA_REM,
1268 Z3_OP_FPA_ABS,
1269 Z3_OP_FPA_MIN,
1270 Z3_OP_FPA_MAX,
1271 Z3_OP_FPA_FMA,
1272 Z3_OP_FPA_SQRT,
1273 Z3_OP_FPA_ROUND_TO_INTEGRAL,
1274
1275 Z3_OP_FPA_EQ,
1276 Z3_OP_FPA_LT,
1277 Z3_OP_FPA_GT,
1278 Z3_OP_FPA_LE,
1279 Z3_OP_FPA_GE,
1280 Z3_OP_FPA_IS_NAN,
1281 Z3_OP_FPA_IS_INF,
1282 Z3_OP_FPA_IS_ZERO,
1283 Z3_OP_FPA_IS_NORMAL,
1284 Z3_OP_FPA_IS_SUBNORMAL,
1285 Z3_OP_FPA_IS_NEGATIVE,
1286 Z3_OP_FPA_IS_POSITIVE,
1287
1288 Z3_OP_FPA_FP,
1289 Z3_OP_FPA_TO_FP,
1290 Z3_OP_FPA_TO_FP_UNSIGNED,
1291 Z3_OP_FPA_TO_UBV,
1292 Z3_OP_FPA_TO_SBV,
1293 Z3_OP_FPA_TO_REAL,
1294
1295 Z3_OP_FPA_TO_IEEE_BV,
1296
1297 Z3_OP_FPA_BVWRAP,
1298 Z3_OP_FPA_BV2RM,
1299
1300 Z3_OP_INTERNAL,
1301
1302 Z3_OP_UNINTERPRETED
1303} Z3_decl_kind;
1304
1317 typedef enum {
1318 Z3_PK_UINT,
1319 Z3_PK_BOOL,
1320 Z3_PK_DOUBLE,
1321 Z3_PK_SYMBOL,
1322 Z3_PK_STRING,
1323 Z3_PK_OTHER,
1324 Z3_PK_INVALID
1325} Z3_param_kind;
1326
1334 typedef enum {
1335 Z3_PRINT_SMTLIB_FULL,
1336 Z3_PRINT_LOW_LEVEL,
1337 Z3_PRINT_SMTLIB2_COMPLIANT
1338} Z3_ast_print_mode;
1339
1340
1358 typedef enum
1359{
1360 Z3_OK,
1361 Z3_SORT_ERROR,
1362 Z3_IOB,
1363 Z3_INVALID_ARG,
1364 Z3_PARSER_ERROR,
1365 Z3_NO_PARSER,
1366 Z3_INVALID_PATTERN,
1367 Z3_MEMOUT_FAIL,
1368 Z3_FILE_ACCESS_ERROR,
1369 Z3_INTERNAL_FATAL,
1370 Z3_INVALID_USAGE,
1371 Z3_DEC_REF_ERROR,
1372 Z3_EXCEPTION
1373} Z3_error_code;
1374
1383 typedef void Z3_error_handler(Z3_context c, Z3_error_code e);
1384
1385
1389 typedef void Z3_push_eh(void* ctx);
1390 typedef void Z3_pop_eh(void* ctx, unsigned num_scopes);
1391 typedef void* Z3_fresh_eh(void* ctx, Z3_context new_context);
1392 typedef void Z3_fixed_eh(void* ctx, Z3_solver_callback cb, unsigned id, Z3_ast value);
1393 typedef void Z3_eq_eh(void* ctx, Z3_solver_callback cb, unsigned x, unsigned y);
1394 typedef void Z3_final_eh(void* ctx, Z3_solver_callback cb);
1395
1396
1407 typedef enum
1408{
1409 Z3_GOAL_PRECISE,
1410 Z3_GOAL_UNDER,
1411 Z3_GOAL_OVER,
1412 Z3_GOAL_UNDER_OVER
1413} Z3_goal_prec;
1414
1416
1417#ifdef __cplusplus
1418 extern "C" {
1419#endif // __cplusplus
1420
1447 void Z3_API Z3_global_param_set(Z3_string param_id, Z3_string param_value);
1448
1449
1458 void Z3_API Z3_global_param_reset_all(void);
1459
1472 Z3_bool_opt Z3_API Z3_global_param_get(Z3_string param_id, Z3_string_ptr param_value);
1473
1478
1508 Z3_config Z3_API Z3_mk_config(void);
1509
1516 void Z3_API Z3_del_config(Z3_config c);
1517
1526 void Z3_API Z3_set_param_value(Z3_config c, Z3_string param_id, Z3_string param_value);
1527
1532
1565 Z3_context Z3_API Z3_mk_context(Z3_config c);
1566
1588 Z3_context Z3_API Z3_mk_context_rc(Z3_config c);
1589
1596 void Z3_API Z3_del_context(Z3_context c);
1597
1604 void Z3_API Z3_inc_ref(Z3_context c, Z3_ast a);
1605
1612 void Z3_API Z3_dec_ref(Z3_context c, Z3_ast a);
1613
1620 void Z3_API Z3_update_param_value(Z3_context c, Z3_string param_id, Z3_string param_value);
1621
1627 void Z3_API Z3_interrupt(Z3_context c);
1628
1629
1634
1644 Z3_params Z3_API Z3_mk_params(Z3_context c);
1645
1650 void Z3_API Z3_params_inc_ref(Z3_context c, Z3_params p);
1651
1656 void Z3_API Z3_params_dec_ref(Z3_context c, Z3_params p);
1657
1662 void Z3_API Z3_params_set_bool(Z3_context c, Z3_params p, Z3_symbol k, bool v);
1663
1668 void Z3_API Z3_params_set_uint(Z3_context c, Z3_params p, Z3_symbol k, unsigned v);
1669
1674 void Z3_API Z3_params_set_double(Z3_context c, Z3_params p, Z3_symbol k, double v);
1675
1680 void Z3_API Z3_params_set_symbol(Z3_context c, Z3_params p, Z3_symbol k, Z3_symbol v);
1681
1687 Z3_string Z3_API Z3_params_to_string(Z3_context c, Z3_params p);
1688
1695 void Z3_API Z3_params_validate(Z3_context c, Z3_params p, Z3_param_descrs d);
1696
1701
1706 void Z3_API Z3_param_descrs_inc_ref(Z3_context c, Z3_param_descrs p);
1707
1712 void Z3_API Z3_param_descrs_dec_ref(Z3_context c, Z3_param_descrs p);
1713
1718 Z3_param_kind Z3_API Z3_param_descrs_get_kind(Z3_context c, Z3_param_descrs p, Z3_symbol n);
1719
1724 unsigned Z3_API Z3_param_descrs_size(Z3_context c, Z3_param_descrs p);
1725
1732 Z3_symbol Z3_API Z3_param_descrs_get_name(Z3_context c, Z3_param_descrs p, unsigned i);
1733
1738 Z3_string Z3_API Z3_param_descrs_get_documentation(Z3_context c, Z3_param_descrs p, Z3_symbol s);
1739
1745 Z3_string Z3_API Z3_param_descrs_to_string(Z3_context c, Z3_param_descrs p);
1746
1751
1764 Z3_symbol Z3_API Z3_mk_int_symbol(Z3_context c, int i);
1765
1775 Z3_symbol Z3_API Z3_mk_string_symbol(Z3_context c, Z3_string s);
1776
1781
1788 Z3_sort Z3_API Z3_mk_uninterpreted_sort(Z3_context c, Z3_symbol s);
1789
1796 Z3_sort Z3_API Z3_mk_bool_sort(Z3_context c);
1797
1808 Z3_sort Z3_API Z3_mk_int_sort(Z3_context c);
1809
1816 Z3_sort Z3_API Z3_mk_real_sort(Z3_context c);
1817
1826 Z3_sort Z3_API Z3_mk_bv_sort(Z3_context c, unsigned sz);
1827
1840 Z3_sort Z3_API Z3_mk_finite_domain_sort(Z3_context c, Z3_symbol name, uint64_t size);
1841
1852 Z3_sort Z3_API Z3_mk_array_sort(Z3_context c, Z3_sort domain, Z3_sort range);
1853
1861 Z3_sort Z3_API Z3_mk_array_sort_n(Z3_context c, unsigned n, Z3_sort const * domain, Z3_sort range);
1862
1878 Z3_sort Z3_API Z3_mk_tuple_sort(Z3_context c,
1879 Z3_symbol mk_tuple_name,
1880 unsigned num_fields,
1881 Z3_symbol const field_names[],
1882 Z3_sort const field_sorts[],
1883 Z3_func_decl * mk_tuple_decl,
1884 Z3_func_decl proj_decl[]);
1885
1906 Z3_sort Z3_API Z3_mk_enumeration_sort(Z3_context c,
1907 Z3_symbol name,
1908 unsigned n,
1909 Z3_symbol const enum_names[],
1910 Z3_func_decl enum_consts[],
1911 Z3_func_decl enum_testers[]);
1912
1930 Z3_sort Z3_API Z3_mk_list_sort(Z3_context c,
1931 Z3_symbol name,
1932 Z3_sort elem_sort,
1933 Z3_func_decl* nil_decl,
1934 Z3_func_decl* is_nil_decl,
1935 Z3_func_decl* cons_decl,
1936 Z3_func_decl* is_cons_decl,
1937 Z3_func_decl* head_decl,
1938 Z3_func_decl* tail_decl
1939 );
1940
1959 Z3_constructor Z3_API Z3_mk_constructor(Z3_context c,
1960 Z3_symbol name,
1961 Z3_symbol recognizer,
1962 unsigned num_fields,
1963 Z3_symbol const field_names[],
1964 Z3_sort_opt const sorts[],
1965 unsigned sort_refs[]
1966 );
1967
1977 void Z3_API Z3_del_constructor(Z3_context c, Z3_constructor constr);
1978
1993 Z3_sort Z3_API Z3_mk_datatype(Z3_context c,
1994 Z3_symbol name,
1995 unsigned num_constructors,
1996 Z3_constructor constructors[]);
1997
2009 Z3_constructor_list Z3_API Z3_mk_constructor_list(Z3_context c,
2010 unsigned num_constructors,
2011 Z3_constructor const constructors[]);
2012
2024 void Z3_API Z3_del_constructor_list(Z3_context c, Z3_constructor_list clist);
2025
2040 void Z3_API Z3_mk_datatypes(Z3_context c,
2041 unsigned num_sorts,
2042 Z3_symbol const sort_names[],
2043 Z3_sort sorts[],
2044 Z3_constructor_list constructor_lists[]);
2045
2059 void Z3_API Z3_query_constructor(Z3_context c,
2060 Z3_constructor constr,
2061 unsigned num_fields,
2062 Z3_func_decl* constructor,
2063 Z3_func_decl* tester,
2064 Z3_func_decl accessors[]);
2065
2070
2089 Z3_func_decl Z3_API Z3_mk_func_decl(Z3_context c, Z3_symbol s,
2090 unsigned domain_size, Z3_sort const domain[],
2091 Z3_sort range);
2092
2093
2094
2103 Z3_ast Z3_API Z3_mk_app(
2104 Z3_context c,
2105 Z3_func_decl d,
2106 unsigned num_args,
2107 Z3_ast const args[]);
2108
2123 Z3_ast Z3_API Z3_mk_const(Z3_context c, Z3_symbol s, Z3_sort ty);
2124
2136 Z3_func_decl Z3_API Z3_mk_fresh_func_decl(Z3_context c, Z3_string prefix,
2137 unsigned domain_size, Z3_sort const domain[],
2138 Z3_sort range);
2139
2154 Z3_ast Z3_API Z3_mk_fresh_const(Z3_context c, Z3_string prefix, Z3_sort ty);
2155
2156
2175 Z3_func_decl Z3_API Z3_mk_rec_func_decl(Z3_context c, Z3_symbol s,
2176 unsigned domain_size, Z3_sort const domain[],
2177 Z3_sort range);
2178
2194 void Z3_API Z3_add_rec_def(Z3_context c, Z3_func_decl f, unsigned n, Z3_ast args[], Z3_ast body);
2195
2204 Z3_ast Z3_API Z3_mk_true(Z3_context c);
2205
2210 Z3_ast Z3_API Z3_mk_false(Z3_context c);
2211
2218 Z3_ast Z3_API Z3_mk_eq(Z3_context c, Z3_ast l, Z3_ast r);
2219
2231 Z3_ast Z3_API Z3_mk_distinct(Z3_context c, unsigned num_args, Z3_ast const args[]);
2232
2239 Z3_ast Z3_API Z3_mk_not(Z3_context c, Z3_ast a);
2240
2248 Z3_ast Z3_API Z3_mk_ite(Z3_context c, Z3_ast t1, Z3_ast t2, Z3_ast t3);
2249
2256 Z3_ast Z3_API Z3_mk_iff(Z3_context c, Z3_ast t1, Z3_ast t2);
2257
2264 Z3_ast Z3_API Z3_mk_implies(Z3_context c, Z3_ast t1, Z3_ast t2);
2265
2272 Z3_ast Z3_API Z3_mk_xor(Z3_context c, Z3_ast t1, Z3_ast t2);
2273
2283 Z3_ast Z3_API Z3_mk_and(Z3_context c, unsigned num_args, Z3_ast const args[]);
2284
2294 Z3_ast Z3_API Z3_mk_or(Z3_context c, unsigned num_args, Z3_ast const args[]);
2308 Z3_ast Z3_API Z3_mk_add(Z3_context c, unsigned num_args, Z3_ast const args[]);
2309
2320 Z3_ast Z3_API Z3_mk_mul(Z3_context c, unsigned num_args, Z3_ast const args[]);
2321
2331 Z3_ast Z3_API Z3_mk_sub(Z3_context c, unsigned num_args, Z3_ast const args[]);
2332
2339 Z3_ast Z3_API Z3_mk_unary_minus(Z3_context c, Z3_ast arg);
2340
2349 Z3_ast Z3_API Z3_mk_div(Z3_context c, Z3_ast arg1, Z3_ast arg2);
2350
2357 Z3_ast Z3_API Z3_mk_mod(Z3_context c, Z3_ast arg1, Z3_ast arg2);
2358
2365 Z3_ast Z3_API Z3_mk_rem(Z3_context c, Z3_ast arg1, Z3_ast arg2);
2366
2373 Z3_ast Z3_API Z3_mk_power(Z3_context c, Z3_ast arg1, Z3_ast arg2);
2374
2381 Z3_ast Z3_API Z3_mk_lt(Z3_context c, Z3_ast t1, Z3_ast t2);
2382
2389 Z3_ast Z3_API Z3_mk_le(Z3_context c, Z3_ast t1, Z3_ast t2);
2390
2397 Z3_ast Z3_API Z3_mk_gt(Z3_context c, Z3_ast t1, Z3_ast t2);
2398
2405 Z3_ast Z3_API Z3_mk_ge(Z3_context c, Z3_ast t1, Z3_ast t2);
2406
2415 Z3_ast Z3_API Z3_mk_divides(Z3_context c, Z3_ast t1, Z3_ast t2);
2416
2433 Z3_ast Z3_API Z3_mk_int2real(Z3_context c, Z3_ast t1);
2434
2445 Z3_ast Z3_API Z3_mk_real2int(Z3_context c, Z3_ast t1);
2446
2454 Z3_ast Z3_API Z3_mk_is_int(Z3_context c, Z3_ast t1);
2465 Z3_ast Z3_API Z3_mk_bvnot(Z3_context c, Z3_ast t1);
2466
2473 Z3_ast Z3_API Z3_mk_bvredand(Z3_context c, Z3_ast t1);
2474
2481 Z3_ast Z3_API Z3_mk_bvredor(Z3_context c, Z3_ast t1);
2482
2489 Z3_ast Z3_API Z3_mk_bvand(Z3_context c, Z3_ast t1, Z3_ast t2);
2490
2497 Z3_ast Z3_API Z3_mk_bvor(Z3_context c, Z3_ast t1, Z3_ast t2);
2498
2505 Z3_ast Z3_API Z3_mk_bvxor(Z3_context c, Z3_ast t1, Z3_ast t2);
2506
2513 Z3_ast Z3_API Z3_mk_bvnand(Z3_context c, Z3_ast t1, Z3_ast t2);
2514
2521 Z3_ast Z3_API Z3_mk_bvnor(Z3_context c, Z3_ast t1, Z3_ast t2);
2522
2529 Z3_ast Z3_API Z3_mk_bvxnor(Z3_context c, Z3_ast t1, Z3_ast t2);
2530
2537 Z3_ast Z3_API Z3_mk_bvneg(Z3_context c, Z3_ast t1);
2538
2545 Z3_ast Z3_API Z3_mk_bvadd(Z3_context c, Z3_ast t1, Z3_ast t2);
2546
2553 Z3_ast Z3_API Z3_mk_bvsub(Z3_context c, Z3_ast t1, Z3_ast t2);
2554
2561 Z3_ast Z3_API Z3_mk_bvmul(Z3_context c, Z3_ast t1, Z3_ast t2);
2562
2573 Z3_ast Z3_API Z3_mk_bvudiv(Z3_context c, Z3_ast t1, Z3_ast t2);
2574
2589 Z3_ast Z3_API Z3_mk_bvsdiv(Z3_context c, Z3_ast t1, Z3_ast t2);
2590
2601 Z3_ast Z3_API Z3_mk_bvurem(Z3_context c, Z3_ast t1, Z3_ast t2);
2602
2616 Z3_ast Z3_API Z3_mk_bvsrem(Z3_context c, Z3_ast t1, Z3_ast t2);
2617
2628 Z3_ast Z3_API Z3_mk_bvsmod(Z3_context c, Z3_ast t1, Z3_ast t2);
2629
2636 Z3_ast Z3_API Z3_mk_bvult(Z3_context c, Z3_ast t1, Z3_ast t2);
2637
2652 Z3_ast Z3_API Z3_mk_bvslt(Z3_context c, Z3_ast t1, Z3_ast t2);
2653
2660 Z3_ast Z3_API Z3_mk_bvule(Z3_context c, Z3_ast t1, Z3_ast t2);
2661
2668 Z3_ast Z3_API Z3_mk_bvsle(Z3_context c, Z3_ast t1, Z3_ast t2);
2669
2676 Z3_ast Z3_API Z3_mk_bvuge(Z3_context c, Z3_ast t1, Z3_ast t2);
2677
2684 Z3_ast Z3_API Z3_mk_bvsge(Z3_context c, Z3_ast t1, Z3_ast t2);
2685
2692 Z3_ast Z3_API Z3_mk_bvugt(Z3_context c, Z3_ast t1, Z3_ast t2);
2693
2700 Z3_ast Z3_API Z3_mk_bvsgt(Z3_context c, Z3_ast t1, Z3_ast t2);
2701
2711 Z3_ast Z3_API Z3_mk_concat(Z3_context c, Z3_ast t1, Z3_ast t2);
2712
2720 Z3_ast Z3_API Z3_mk_extract(Z3_context c, unsigned high, unsigned low, Z3_ast t1);
2721
2730 Z3_ast Z3_API Z3_mk_sign_ext(Z3_context c, unsigned i, Z3_ast t1);
2731
2740 Z3_ast Z3_API Z3_mk_zero_ext(Z3_context c, unsigned i, Z3_ast t1);
2741
2748 Z3_ast Z3_API Z3_mk_repeat(Z3_context c, unsigned i, Z3_ast t1);
2749
2763 Z3_ast Z3_API Z3_mk_bvshl(Z3_context c, Z3_ast t1, Z3_ast t2);
2764
2778 Z3_ast Z3_API Z3_mk_bvlshr(Z3_context c, Z3_ast t1, Z3_ast t2);
2779
2794 Z3_ast Z3_API Z3_mk_bvashr(Z3_context c, Z3_ast t1, Z3_ast t2);
2795
2802 Z3_ast Z3_API Z3_mk_rotate_left(Z3_context c, unsigned i, Z3_ast t1);
2803
2810 Z3_ast Z3_API Z3_mk_rotate_right(Z3_context c, unsigned i, Z3_ast t1);
2811
2818 Z3_ast Z3_API Z3_mk_ext_rotate_left(Z3_context c, Z3_ast t1, Z3_ast t2);
2819
2826 Z3_ast Z3_API Z3_mk_ext_rotate_right(Z3_context c, Z3_ast t1, Z3_ast t2);
2827
2837 Z3_ast Z3_API Z3_mk_int2bv(Z3_context c, unsigned n, Z3_ast t1);
2838
2850 Z3_ast Z3_API Z3_mk_bv2int(Z3_context c,Z3_ast t1, bool is_signed);
2851
2860 Z3_ast Z3_API Z3_mk_bvadd_no_overflow(Z3_context c, Z3_ast t1, Z3_ast t2, bool is_signed);
2861
2870 Z3_ast Z3_API Z3_mk_bvadd_no_underflow(Z3_context c, Z3_ast t1, Z3_ast t2);
2871
2880 Z3_ast Z3_API Z3_mk_bvsub_no_overflow(Z3_context c, Z3_ast t1, Z3_ast t2);
2881
2890 Z3_ast Z3_API Z3_mk_bvsub_no_underflow(Z3_context c, Z3_ast t1, Z3_ast t2, bool is_signed);
2891
2900 Z3_ast Z3_API Z3_mk_bvsdiv_no_overflow(Z3_context c, Z3_ast t1, Z3_ast t2);
2901
2910 Z3_ast Z3_API Z3_mk_bvneg_no_overflow(Z3_context c, Z3_ast t1);
2911
2920 Z3_ast Z3_API Z3_mk_bvmul_no_overflow(Z3_context c, Z3_ast t1, Z3_ast t2, bool is_signed);
2921
2930 Z3_ast Z3_API Z3_mk_bvmul_no_underflow(Z3_context c, Z3_ast t1, Z3_ast t2);
2947 Z3_ast Z3_API Z3_mk_select(Z3_context c, Z3_ast a, Z3_ast i);
2948
2949
2950
2957 Z3_ast Z3_API Z3_mk_select_n(Z3_context c, Z3_ast a, unsigned n, Z3_ast const* idxs);
2958
2959
2975 Z3_ast Z3_API Z3_mk_store(Z3_context c, Z3_ast a, Z3_ast i, Z3_ast v);
2976
2977
2983 Z3_ast Z3_API Z3_mk_store_n(Z3_context c, Z3_ast a, unsigned n, Z3_ast const* idxs, Z3_ast v);
2984
2996 Z3_ast Z3_API Z3_mk_const_array(Z3_context c, Z3_sort domain, Z3_ast v);
2997
3010 Z3_ast Z3_API Z3_mk_map(Z3_context c, Z3_func_decl f, unsigned n, Z3_ast const* args);
3011
3021 Z3_ast Z3_API Z3_mk_array_default(Z3_context c, Z3_ast array);
3022
3029 Z3_ast Z3_API Z3_mk_as_array(Z3_context c, Z3_func_decl f);
3030
3035 Z3_ast Z3_API Z3_mk_set_has_size(Z3_context c, Z3_ast set, Z3_ast k);
3036
3045 Z3_sort Z3_API Z3_mk_set_sort(Z3_context c, Z3_sort ty);
3046
3051 Z3_ast Z3_API Z3_mk_empty_set(Z3_context c, Z3_sort domain);
3052
3057 Z3_ast Z3_API Z3_mk_full_set(Z3_context c, Z3_sort domain);
3058
3065 Z3_ast Z3_API Z3_mk_set_add(Z3_context c, Z3_ast set, Z3_ast elem);
3066
3073 Z3_ast Z3_API Z3_mk_set_del(Z3_context c, Z3_ast set, Z3_ast elem);
3074
3079 Z3_ast Z3_API Z3_mk_set_union(Z3_context c, unsigned num_args, Z3_ast const args[]);
3080
3085 Z3_ast Z3_API Z3_mk_set_intersect(Z3_context c, unsigned num_args, Z3_ast const args[]);
3086
3091 Z3_ast Z3_API Z3_mk_set_difference(Z3_context c, Z3_ast arg1, Z3_ast arg2);
3092
3097 Z3_ast Z3_API Z3_mk_set_complement(Z3_context c, Z3_ast arg);
3098
3105 Z3_ast Z3_API Z3_mk_set_member(Z3_context c, Z3_ast elem, Z3_ast set);
3106
3111 Z3_ast Z3_API Z3_mk_set_subset(Z3_context c, Z3_ast arg1, Z3_ast arg2);
3112
3120 Z3_ast Z3_API Z3_mk_array_ext(Z3_context c, Z3_ast arg1, Z3_ast arg2);
3137 Z3_ast Z3_API Z3_mk_numeral(Z3_context c, Z3_string numeral, Z3_sort ty);
3138
3153 Z3_ast Z3_API Z3_mk_real(Z3_context c, int num, int den);
3154
3164 Z3_ast Z3_API Z3_mk_int(Z3_context c, int v, Z3_sort ty);
3165
3175 Z3_ast Z3_API Z3_mk_unsigned_int(Z3_context c, unsigned v, Z3_sort ty);
3176
3186 Z3_ast Z3_API Z3_mk_int64(Z3_context c, int64_t v, Z3_sort ty);
3187
3197 Z3_ast Z3_API Z3_mk_unsigned_int64(Z3_context c, uint64_t v, Z3_sort ty);
3198
3204 Z3_ast Z3_API Z3_mk_bv_numeral(Z3_context c, unsigned sz, bool const* bits);
3205
3210
3215 Z3_sort Z3_API Z3_mk_seq_sort(Z3_context c, Z3_sort s);
3216
3221 bool Z3_API Z3_is_seq_sort(Z3_context c, Z3_sort s);
3222
3227 Z3_sort Z3_API Z3_get_seq_sort_basis(Z3_context c, Z3_sort s);
3228
3233 Z3_sort Z3_API Z3_mk_re_sort(Z3_context c, Z3_sort seq);
3234
3239 bool Z3_API Z3_is_re_sort(Z3_context c, Z3_sort s);
3240
3245 Z3_sort Z3_API Z3_get_re_sort_basis(Z3_context c, Z3_sort s);
3246
3254 Z3_sort Z3_API Z3_mk_string_sort(Z3_context c);
3255
3260 bool Z3_API Z3_is_string_sort(Z3_context c, Z3_sort s);
3261
3265 Z3_ast Z3_API Z3_mk_string(Z3_context c, Z3_string s);
3266
3273 Z3_ast Z3_API Z3_mk_lstring(Z3_context c, unsigned len, Z3_string s);
3274
3279 bool Z3_API Z3_is_string(Z3_context c, Z3_ast s);
3280
3287 Z3_string Z3_API Z3_get_string(Z3_context c, Z3_ast s);
3288
3295 Z3_char_ptr Z3_API Z3_get_lstring(Z3_context c, Z3_ast s, unsigned* length);
3296
3303 Z3_ast Z3_API Z3_mk_seq_empty(Z3_context c, Z3_sort seq);
3304
3309 Z3_ast Z3_API Z3_mk_seq_unit(Z3_context c, Z3_ast a);
3310
3317 Z3_ast Z3_API Z3_mk_seq_concat(Z3_context c, unsigned n, Z3_ast const args[]);
3318
3325 Z3_ast Z3_API Z3_mk_seq_prefix(Z3_context c, Z3_ast prefix, Z3_ast s);
3326
3333 Z3_ast Z3_API Z3_mk_seq_suffix(Z3_context c, Z3_ast suffix, Z3_ast s);
3334
3341 Z3_ast Z3_API Z3_mk_seq_contains(Z3_context c, Z3_ast container, Z3_ast containee);
3342
3343
3350 Z3_ast Z3_API Z3_mk_str_lt(Z3_context c, Z3_ast prefix, Z3_ast s);
3351
3358 Z3_ast Z3_API Z3_mk_str_le(Z3_context c, Z3_ast prefix, Z3_ast s);
3359
3364 Z3_ast Z3_API Z3_mk_seq_extract(Z3_context c, Z3_ast s, Z3_ast offset, Z3_ast length);
3365
3370 Z3_ast Z3_API Z3_mk_seq_replace(Z3_context c, Z3_ast s, Z3_ast src, Z3_ast dst);
3371
3377 Z3_ast Z3_API Z3_mk_seq_at(Z3_context c, Z3_ast s, Z3_ast index);
3378
3384 Z3_ast Z3_API Z3_mk_seq_nth(Z3_context c, Z3_ast s, Z3_ast index);
3385
3390 Z3_ast Z3_API Z3_mk_seq_length(Z3_context c, Z3_ast s);
3391
3392
3399 Z3_ast Z3_API Z3_mk_seq_index(Z3_context c, Z3_ast s, Z3_ast substr, Z3_ast offset);
3400
3405 Z3_ast Z3_API Z3_mk_seq_last_index(Z3_context c, Z3_ast, Z3_ast substr);
3406
3411 Z3_ast Z3_API Z3_mk_str_to_int(Z3_context c, Z3_ast s);
3412
3413
3418 Z3_ast Z3_API Z3_mk_int_to_str(Z3_context c, Z3_ast s);
3419
3424 Z3_ast Z3_API Z3_mk_seq_to_re(Z3_context c, Z3_ast seq);
3425
3430 Z3_ast Z3_API Z3_mk_seq_in_re(Z3_context c, Z3_ast seq, Z3_ast re);
3431
3436 Z3_ast Z3_API Z3_mk_re_plus(Z3_context c, Z3_ast re);
3437
3442 Z3_ast Z3_API Z3_mk_re_star(Z3_context c, Z3_ast re);
3443
3448 Z3_ast Z3_API Z3_mk_re_option(Z3_context c, Z3_ast re);
3449
3456 Z3_ast Z3_API Z3_mk_re_union(Z3_context c, unsigned n, Z3_ast const args[]);
3457
3464 Z3_ast Z3_API Z3_mk_re_concat(Z3_context c, unsigned n, Z3_ast const args[]);
3465
3466
3471 Z3_ast Z3_API Z3_mk_re_range(Z3_context c, Z3_ast lo, Z3_ast hi);
3472
3480 Z3_ast Z3_API Z3_mk_re_loop(Z3_context c, Z3_ast r, unsigned lo, unsigned hi);
3481
3488 Z3_ast Z3_API Z3_mk_re_intersect(Z3_context c, unsigned n, Z3_ast const args[]);
3489
3494 Z3_ast Z3_API Z3_mk_re_complement(Z3_context c, Z3_ast re);
3495
3502 Z3_ast Z3_API Z3_mk_re_empty(Z3_context c, Z3_sort re);
3503
3504
3511 Z3_ast Z3_API Z3_mk_re_full(Z3_context c, Z3_sort re);
3512
3523 Z3_func_decl Z3_API Z3_mk_linear_order(Z3_context c, Z3_sort a, unsigned id);
3524
3529 Z3_func_decl Z3_API Z3_mk_partial_order(Z3_context c, Z3_sort a, unsigned id);
3530
3535 Z3_func_decl Z3_API Z3_mk_piecewise_linear_order(Z3_context c, Z3_sort a, unsigned id);
3536
3541 Z3_func_decl Z3_API Z3_mk_tree_order(Z3_context c, Z3_sort a, unsigned id);
3542
3551 Z3_func_decl Z3_API Z3_mk_transitive_closure(Z3_context c, Z3_func_decl f);
3552
3576 Z3_pattern Z3_API Z3_mk_pattern(Z3_context c, unsigned num_patterns, Z3_ast const terms[]);
3577
3606 Z3_ast Z3_API Z3_mk_bound(Z3_context c, unsigned index, Z3_sort ty);
3607
3630 Z3_ast Z3_API Z3_mk_forall(Z3_context c, unsigned weight,
3631 unsigned num_patterns, Z3_pattern const patterns[],
3632 unsigned num_decls, Z3_sort const sorts[],
3633 Z3_symbol const decl_names[],
3634 Z3_ast body);
3635
3645 Z3_ast Z3_API Z3_mk_exists(Z3_context c, unsigned weight,
3646 unsigned num_patterns, Z3_pattern const patterns[],
3647 unsigned num_decls, Z3_sort const sorts[],
3648 Z3_symbol const decl_names[],
3649 Z3_ast body);
3650
3671 Z3_ast Z3_API Z3_mk_quantifier(
3672 Z3_context c,
3673 bool is_forall,
3674 unsigned weight,
3675 unsigned num_patterns, Z3_pattern const patterns[],
3676 unsigned num_decls, Z3_sort const sorts[],
3677 Z3_symbol const decl_names[],
3678 Z3_ast body);
3679
3680
3704 Z3_ast Z3_API Z3_mk_quantifier_ex(
3705 Z3_context c,
3706 bool is_forall,
3707 unsigned weight,
3708 Z3_symbol quantifier_id,
3709 Z3_symbol skolem_id,
3710 unsigned num_patterns, Z3_pattern const patterns[],
3711 unsigned num_no_patterns, Z3_ast const no_patterns[],
3712 unsigned num_decls, Z3_sort const sorts[],
3713 Z3_symbol const decl_names[],
3714 Z3_ast body);
3715
3733 Z3_ast Z3_API Z3_mk_forall_const(
3734 Z3_context c,
3735 unsigned weight,
3736 unsigned num_bound,
3737 Z3_app const bound[],
3738 unsigned num_patterns,
3739 Z3_pattern const patterns[],
3740 Z3_ast body
3741 );
3742
3762 Z3_ast Z3_API Z3_mk_exists_const(
3763 Z3_context c,
3764 unsigned weight,
3765 unsigned num_bound,
3766 Z3_app const bound[],
3767 unsigned num_patterns,
3768 Z3_pattern const patterns[],
3769 Z3_ast body
3770 );
3771
3777 Z3_ast Z3_API Z3_mk_quantifier_const(
3778 Z3_context c,
3779 bool is_forall,
3780 unsigned weight,
3781 unsigned num_bound, Z3_app const bound[],
3782 unsigned num_patterns, Z3_pattern const patterns[],
3783 Z3_ast body
3784 );
3785
3791 Z3_ast Z3_API Z3_mk_quantifier_const_ex(
3792 Z3_context c,
3793 bool is_forall,
3794 unsigned weight,
3795 Z3_symbol quantifier_id,
3796 Z3_symbol skolem_id,
3797 unsigned num_bound, Z3_app const bound[],
3798 unsigned num_patterns, Z3_pattern const patterns[],
3799 unsigned num_no_patterns, Z3_ast const no_patterns[],
3800 Z3_ast body
3801 );
3802
3825 Z3_ast Z3_API Z3_mk_lambda(Z3_context c,
3826 unsigned num_decls, Z3_sort const sorts[],
3827 Z3_symbol const decl_names[],
3828 Z3_ast body);
3829
3844 Z3_ast Z3_API Z3_mk_lambda_const(Z3_context c,
3845 unsigned num_bound, Z3_app const bound[],
3846 Z3_ast body);
3847
3848
3859 Z3_symbol_kind Z3_API Z3_get_symbol_kind(Z3_context c, Z3_symbol s);
3860
3869 int Z3_API Z3_get_symbol_int(Z3_context c, Z3_symbol s);
3870
3883 Z3_string Z3_API Z3_get_symbol_string(Z3_context c, Z3_symbol s);
3884
3889 Z3_symbol Z3_API Z3_get_sort_name(Z3_context c, Z3_sort d);
3890
3895 unsigned Z3_API Z3_get_sort_id(Z3_context c, Z3_sort s);
3896
3901 Z3_ast Z3_API Z3_sort_to_ast(Z3_context c, Z3_sort s);
3902
3907 bool Z3_API Z3_is_eq_sort(Z3_context c, Z3_sort s1, Z3_sort s2);
3908
3915 Z3_sort_kind Z3_API Z3_get_sort_kind(Z3_context c, Z3_sort t);
3916
3926 unsigned Z3_API Z3_get_bv_sort_size(Z3_context c, Z3_sort t);
3927
3933 Z3_bool_opt Z3_API Z3_get_finite_domain_sort_size(Z3_context c, Z3_sort s, uint64_t* r);
3934
3945 Z3_sort Z3_API Z3_get_array_sort_domain(Z3_context c, Z3_sort t);
3946
3956 Z3_sort Z3_API Z3_get_array_sort_range(Z3_context c, Z3_sort t);
3957
3968 Z3_func_decl Z3_API Z3_get_tuple_sort_mk_decl(Z3_context c, Z3_sort t);
3969
3979 unsigned Z3_API Z3_get_tuple_sort_num_fields(Z3_context c, Z3_sort t);
3980
3992 Z3_func_decl Z3_API Z3_get_tuple_sort_field_decl(Z3_context c, Z3_sort t, unsigned i);
3993
4004 unsigned Z3_API Z3_get_datatype_sort_num_constructors(
4005 Z3_context c, Z3_sort t);
4006
4018 Z3_func_decl Z3_API Z3_get_datatype_sort_constructor(
4019 Z3_context c, Z3_sort t, unsigned idx);
4020
4032 Z3_func_decl Z3_API Z3_get_datatype_sort_recognizer(
4033 Z3_context c, Z3_sort t, unsigned idx);
4034
4047 Z3_func_decl Z3_API Z3_get_datatype_sort_constructor_accessor(Z3_context c,
4048 Z3_sort t,
4049 unsigned idx_c,
4050 unsigned idx_a);
4051
4070 Z3_ast Z3_API Z3_datatype_update_field(Z3_context c, Z3_func_decl field_access,
4071 Z3_ast t, Z3_ast value);
4072
4081 unsigned Z3_API Z3_get_relation_arity(Z3_context c, Z3_sort s);
4082
4092 Z3_sort Z3_API Z3_get_relation_column(Z3_context c, Z3_sort s, unsigned col);
4093
4100 Z3_ast Z3_API Z3_mk_atmost(Z3_context c, unsigned num_args,
4101 Z3_ast const args[], unsigned k);
4102
4109 Z3_ast Z3_API Z3_mk_atleast(Z3_context c, unsigned num_args,
4110 Z3_ast const args[], unsigned k);
4111
4118 Z3_ast Z3_API Z3_mk_pble(Z3_context c, unsigned num_args,
4119 Z3_ast const args[], int const coeffs[],
4120 int k);
4121
4128 Z3_ast Z3_API Z3_mk_pbge(Z3_context c, unsigned num_args,
4129 Z3_ast const args[], int const coeffs[],
4130 int k);
4131
4138 Z3_ast Z3_API Z3_mk_pbeq(Z3_context c, unsigned num_args,
4139 Z3_ast const args[], int const coeffs[],
4140 int k);
4141
4146 Z3_ast Z3_API Z3_func_decl_to_ast(Z3_context c, Z3_func_decl f);
4147
4152 bool Z3_API Z3_is_eq_func_decl(Z3_context c, Z3_func_decl f1, Z3_func_decl f2);
4153
4158 unsigned Z3_API Z3_get_func_decl_id(Z3_context c, Z3_func_decl f);
4159
4164 Z3_symbol Z3_API Z3_get_decl_name(Z3_context c, Z3_func_decl d);
4165
4170 Z3_decl_kind Z3_API Z3_get_decl_kind(Z3_context c, Z3_func_decl d);
4171
4178 unsigned Z3_API Z3_get_domain_size(Z3_context c, Z3_func_decl d);
4179
4186 unsigned Z3_API Z3_get_arity(Z3_context c, Z3_func_decl d);
4187
4196 Z3_sort Z3_API Z3_get_domain(Z3_context c, Z3_func_decl d, unsigned i);
4197
4205 Z3_sort Z3_API Z3_get_range(Z3_context c, Z3_func_decl d);
4206
4211 unsigned Z3_API Z3_get_decl_num_parameters(Z3_context c, Z3_func_decl d);
4212
4221 Z3_parameter_kind Z3_API Z3_get_decl_parameter_kind(Z3_context c, Z3_func_decl d, unsigned idx);
4222
4229 int Z3_API Z3_get_decl_int_parameter(Z3_context c, Z3_func_decl d, unsigned idx);
4230
4237 double Z3_API Z3_get_decl_double_parameter(Z3_context c, Z3_func_decl d, unsigned idx);
4238
4245 Z3_symbol Z3_API Z3_get_decl_symbol_parameter(Z3_context c, Z3_func_decl d, unsigned idx);
4246
4253 Z3_sort Z3_API Z3_get_decl_sort_parameter(Z3_context c, Z3_func_decl d, unsigned idx);
4254
4261 Z3_ast Z3_API Z3_get_decl_ast_parameter(Z3_context c, Z3_func_decl d, unsigned idx);
4262
4269 Z3_func_decl Z3_API Z3_get_decl_func_decl_parameter(Z3_context c, Z3_func_decl d, unsigned idx);
4270
4277 Z3_string Z3_API Z3_get_decl_rational_parameter(Z3_context c, Z3_func_decl d, unsigned idx);
4278
4283 Z3_ast Z3_API Z3_app_to_ast(Z3_context c, Z3_app a);
4284
4289 Z3_func_decl Z3_API Z3_get_app_decl(Z3_context c, Z3_app a);
4290
4296 unsigned Z3_API Z3_get_app_num_args(Z3_context c, Z3_app a);
4297
4304 Z3_ast Z3_API Z3_get_app_arg(Z3_context c, Z3_app a, unsigned i);
4305
4310 bool Z3_API Z3_is_eq_ast(Z3_context c, Z3_ast t1, Z3_ast t2);
4311
4322 unsigned Z3_API Z3_get_ast_id(Z3_context c, Z3_ast t);
4323
4331 unsigned Z3_API Z3_get_ast_hash(Z3_context c, Z3_ast a);
4332
4339 Z3_sort Z3_API Z3_get_sort(Z3_context c, Z3_ast a);
4340
4345 bool Z3_API Z3_is_well_sorted(Z3_context c, Z3_ast t);
4346
4351 Z3_lbool Z3_API Z3_get_bool_value(Z3_context c, Z3_ast a);
4352
4357 Z3_ast_kind Z3_API Z3_get_ast_kind(Z3_context c, Z3_ast a);
4358
4361 bool Z3_API Z3_is_app(Z3_context c, Z3_ast a);
4362
4365 bool Z3_API Z3_is_numeral_ast(Z3_context c, Z3_ast a);
4366
4371 bool Z3_API Z3_is_algebraic_number(Z3_context c, Z3_ast a);
4372
4379 Z3_app Z3_API Z3_to_app(Z3_context c, Z3_ast a);
4380
4387 Z3_func_decl Z3_API Z3_to_func_decl(Z3_context c, Z3_ast a);
4388
4395 Z3_string Z3_API Z3_get_numeral_string(Z3_context c, Z3_ast a);
4396
4404 Z3_string Z3_API Z3_get_numeral_binary_string(Z3_context c, Z3_ast a);
4405
4413 Z3_string Z3_API Z3_get_numeral_decimal_string(Z3_context c, Z3_ast a, unsigned precision);
4414
4421 double Z3_API Z3_get_numeral_double(Z3_context c, Z3_ast a);
4422
4429 Z3_ast Z3_API Z3_get_numerator(Z3_context c, Z3_ast a);
4430
4437 Z3_ast Z3_API Z3_get_denominator(Z3_context c, Z3_ast a);
4438
4452 bool Z3_API Z3_get_numeral_small(Z3_context c, Z3_ast a, int64_t* num, int64_t* den);
4453
4463 bool Z3_API Z3_get_numeral_int(Z3_context c, Z3_ast v, int* i);
4464
4474 bool Z3_API Z3_get_numeral_uint(Z3_context c, Z3_ast v, unsigned* u);
4475
4485 bool Z3_API Z3_get_numeral_uint64(Z3_context c, Z3_ast v, uint64_t* u);
4486
4496 bool Z3_API Z3_get_numeral_int64(Z3_context c, Z3_ast v, int64_t* i);
4497
4507 bool Z3_API Z3_get_numeral_rational_int64(Z3_context c, Z3_ast v, int64_t* num, int64_t* den);
4508
4517 Z3_ast Z3_API Z3_get_algebraic_number_lower(Z3_context c, Z3_ast a, unsigned precision);
4518
4527 Z3_ast Z3_API Z3_get_algebraic_number_upper(Z3_context c, Z3_ast a, unsigned precision);
4528
4533 Z3_ast Z3_API Z3_pattern_to_ast(Z3_context c, Z3_pattern p);
4534
4539 unsigned Z3_API Z3_get_pattern_num_terms(Z3_context c, Z3_pattern p);
4540
4545 Z3_ast Z3_API Z3_get_pattern(Z3_context c, Z3_pattern p, unsigned idx);
4546
4553 unsigned Z3_API Z3_get_index_value(Z3_context c, Z3_ast a);
4554
4559 bool Z3_API Z3_is_quantifier_forall(Z3_context c, Z3_ast a);
4560
4566 bool Z3_API Z3_is_quantifier_exists(Z3_context c, Z3_ast a);
4567
4574 bool Z3_API Z3_is_lambda(Z3_context c, Z3_ast a);
4575
4582 unsigned Z3_API Z3_get_quantifier_weight(Z3_context c, Z3_ast a);
4583
4590 unsigned Z3_API Z3_get_quantifier_num_patterns(Z3_context c, Z3_ast a);
4591
4598 Z3_pattern Z3_API Z3_get_quantifier_pattern_ast(Z3_context c, Z3_ast a, unsigned i);
4599
4606 unsigned Z3_API Z3_get_quantifier_num_no_patterns(Z3_context c, Z3_ast a);
4607
4614 Z3_ast Z3_API Z3_get_quantifier_no_pattern_ast(Z3_context c, Z3_ast a, unsigned i);
4615
4622 unsigned Z3_API Z3_get_quantifier_num_bound(Z3_context c, Z3_ast a);
4623
4630 Z3_symbol Z3_API Z3_get_quantifier_bound_name(Z3_context c, Z3_ast a, unsigned i);
4631
4638 Z3_sort Z3_API Z3_get_quantifier_bound_sort(Z3_context c, Z3_ast a, unsigned i);
4639
4646 Z3_ast Z3_API Z3_get_quantifier_body(Z3_context c, Z3_ast a);
4647
4659 Z3_ast Z3_API Z3_simplify(Z3_context c, Z3_ast a);
4660
4673 Z3_ast Z3_API Z3_simplify_ex(Z3_context c, Z3_ast a, Z3_params p);
4674
4682 Z3_string Z3_API Z3_simplify_get_help(Z3_context c);
4683
4691 Z3_param_descrs Z3_API Z3_simplify_get_param_descrs(Z3_context c);
4703 Z3_ast Z3_API Z3_update_term(Z3_context c, Z3_ast a, unsigned num_args, Z3_ast const args[]);
4704
4711 Z3_ast Z3_API Z3_substitute(Z3_context c,
4712 Z3_ast a,
4713 unsigned num_exprs,
4714 Z3_ast const from[],
4715 Z3_ast const to[]);
4716
4722 Z3_ast Z3_API Z3_substitute_vars(Z3_context c,
4723 Z3_ast a,
4724 unsigned num_exprs,
4725 Z3_ast const to[]);
4726
4733 Z3_ast Z3_API Z3_translate(Z3_context source, Z3_ast a, Z3_context target);
4738
4743 Z3_model Z3_API Z3_mk_model(Z3_context c);
4744
4749 void Z3_API Z3_model_inc_ref(Z3_context c, Z3_model m);
4750
4755 void Z3_API Z3_model_dec_ref(Z3_context c, Z3_model m);
4756
4779 Z3_bool_opt Z3_API Z3_model_eval(Z3_context c, Z3_model m, Z3_ast t, bool model_completion, Z3_ast * v);
4780
4789 Z3_ast_opt Z3_API Z3_model_get_const_interp(Z3_context c, Z3_model m, Z3_func_decl a);
4790
4795 bool Z3_API Z3_model_has_interp(Z3_context c, Z3_model m, Z3_func_decl a);
4796
4808 Z3_func_interp_opt Z3_API Z3_model_get_func_interp(Z3_context c, Z3_model m, Z3_func_decl f);
4809
4816 unsigned Z3_API Z3_model_get_num_consts(Z3_context c, Z3_model m);
4817
4826 Z3_func_decl Z3_API Z3_model_get_const_decl(Z3_context c, Z3_model m, unsigned i);
4827
4835 unsigned Z3_API Z3_model_get_num_funcs(Z3_context c, Z3_model m);
4836
4845 Z3_func_decl Z3_API Z3_model_get_func_decl(Z3_context c, Z3_model m, unsigned i);
4846
4858 unsigned Z3_API Z3_model_get_num_sorts(Z3_context c, Z3_model m);
4859
4869 Z3_sort Z3_API Z3_model_get_sort(Z3_context c, Z3_model m, unsigned i);
4870
4878 Z3_ast_vector Z3_API Z3_model_get_sort_universe(Z3_context c, Z3_model m, Z3_sort s);
4879
4888 Z3_model Z3_API Z3_model_translate(Z3_context c, Z3_model m, Z3_context dst);
4889
4900 bool Z3_API Z3_is_as_array(Z3_context c, Z3_ast a);
4901
4908 Z3_func_decl Z3_API Z3_get_as_array_func_decl(Z3_context c, Z3_ast a);
4909
4920 Z3_func_interp Z3_API Z3_add_func_interp(Z3_context c, Z3_model m, Z3_func_decl f, Z3_ast default_value);
4921
4926 void Z3_API Z3_add_const_interp(Z3_context c, Z3_model m, Z3_func_decl f, Z3_ast a);
4927
4932 void Z3_API Z3_func_interp_inc_ref(Z3_context c, Z3_func_interp f);
4933
4938 void Z3_API Z3_func_interp_dec_ref(Z3_context c, Z3_func_interp f);
4939
4948 unsigned Z3_API Z3_func_interp_get_num_entries(Z3_context c, Z3_func_interp f);
4949
4959 Z3_func_entry Z3_API Z3_func_interp_get_entry(Z3_context c, Z3_func_interp f, unsigned i);
4960
4968 Z3_ast Z3_API Z3_func_interp_get_else(Z3_context c, Z3_func_interp f);
4969
4977 void Z3_API Z3_func_interp_set_else(Z3_context c, Z3_func_interp f, Z3_ast else_value);
4978
4983 unsigned Z3_API Z3_func_interp_get_arity(Z3_context c, Z3_func_interp f);
4984
4998 void Z3_API Z3_func_interp_add_entry(Z3_context c, Z3_func_interp fi, Z3_ast_vector args, Z3_ast value);
4999
5004 void Z3_API Z3_func_entry_inc_ref(Z3_context c, Z3_func_entry e);
5005
5010 void Z3_API Z3_func_entry_dec_ref(Z3_context c, Z3_func_entry e);
5011
5021 Z3_ast Z3_API Z3_func_entry_get_value(Z3_context c, Z3_func_entry e);
5022
5029 unsigned Z3_API Z3_func_entry_get_num_args(Z3_context c, Z3_func_entry e);
5030
5039 Z3_ast Z3_API Z3_func_entry_get_arg(Z3_context c, Z3_func_entry e, unsigned i);
5048 bool Z3_API Z3_open_log(Z3_string filename);
5049
5058 void Z3_API Z3_append_log(Z3_string string);
5059
5064 void Z3_API Z3_close_log(void);
5065
5073 void Z3_API Z3_toggle_warning_messages(bool enabled);
5094 void Z3_API Z3_set_ast_print_mode(Z3_context c, Z3_ast_print_mode mode);
5095
5107 Z3_string Z3_API Z3_ast_to_string(Z3_context c, Z3_ast a);
5108
5111 Z3_string Z3_API Z3_pattern_to_string(Z3_context c, Z3_pattern p);
5112
5115 Z3_string Z3_API Z3_sort_to_string(Z3_context c, Z3_sort s);
5116
5119 Z3_string Z3_API Z3_func_decl_to_string(Z3_context c, Z3_func_decl d);
5120
5129 Z3_string Z3_API Z3_model_to_string(Z3_context c, Z3_model m);
5130
5148 Z3_string Z3_API Z3_benchmark_to_smtlib_string(Z3_context c,
5149 Z3_string name,
5150 Z3_string logic,
5151 Z3_string status,
5152 Z3_string attributes,
5153 unsigned num_assumptions,
5154 Z3_ast const assumptions[],
5155 Z3_ast formula);
5156
5168 Z3_ast_vector Z3_API Z3_parse_smtlib2_string(Z3_context c,
5169 Z3_string str,
5170 unsigned num_sorts,
5171 Z3_symbol const sort_names[],
5172 Z3_sort const sorts[],
5173 unsigned num_decls,
5174 Z3_symbol const decl_names[],
5175 Z3_func_decl const decls[]);
5176
5181 Z3_ast_vector Z3_API Z3_parse_smtlib2_file(Z3_context c,
5182 Z3_string file_name,
5183 unsigned num_sorts,
5184 Z3_symbol const sort_names[],
5185 Z3_sort const sorts[],
5186 unsigned num_decls,
5187 Z3_symbol const decl_names[],
5188 Z3_func_decl const decls[]);
5189
5190
5199 Z3_string Z3_API Z3_eval_smtlib2_string(Z3_context, Z3_string str);
5200
5205#ifndef SAFE_ERRORS
5215 Z3_error_code Z3_API Z3_get_error_code(Z3_context c);
5216
5229 void Z3_API Z3_set_error_handler(Z3_context c, Z3_error_handler h);
5230#endif
5231
5236 void Z3_API Z3_set_error(Z3_context c, Z3_error_code e);
5237
5242 Z3_string Z3_API Z3_get_error_msg(Z3_context c, Z3_error_code err);
5243
5248
5255 void Z3_API Z3_get_version(unsigned * major, unsigned * minor, unsigned * build_number, unsigned * revision_number);
5256
5263 Z3_string Z3_API Z3_get_full_version(void);
5264
5272 void Z3_API Z3_enable_trace(Z3_string tag);
5273
5281 void Z3_API Z3_disable_trace(Z3_string tag);
5282
5292 void Z3_API Z3_reset_memory(void);
5293
5301 void Z3_API Z3_finalize_memory(void);
5322 Z3_goal Z3_API Z3_mk_goal(Z3_context c, bool models, bool unsat_cores, bool proofs);
5323
5328 void Z3_API Z3_goal_inc_ref(Z3_context c, Z3_goal g);
5329
5334 void Z3_API Z3_goal_dec_ref(Z3_context c, Z3_goal g);
5335
5342 Z3_goal_prec Z3_API Z3_goal_precision(Z3_context c, Z3_goal g);
5343
5355 void Z3_API Z3_goal_assert(Z3_context c, Z3_goal g, Z3_ast a);
5356
5361 bool Z3_API Z3_goal_inconsistent(Z3_context c, Z3_goal g);
5362
5367 unsigned Z3_API Z3_goal_depth(Z3_context c, Z3_goal g);
5368
5373 void Z3_API Z3_goal_reset(Z3_context c, Z3_goal g);
5374
5379 unsigned Z3_API Z3_goal_size(Z3_context c, Z3_goal g);
5380
5387 Z3_ast Z3_API Z3_goal_formula(Z3_context c, Z3_goal g, unsigned idx);
5388
5393 unsigned Z3_API Z3_goal_num_exprs(Z3_context c, Z3_goal g);
5394
5399 bool Z3_API Z3_goal_is_decided_sat(Z3_context c, Z3_goal g);
5400
5405 bool Z3_API Z3_goal_is_decided_unsat(Z3_context c, Z3_goal g);
5406
5411 Z3_goal Z3_API Z3_goal_translate(Z3_context source, Z3_goal g, Z3_context target);
5412
5419 Z3_model Z3_API Z3_goal_convert_model(Z3_context c, Z3_goal g, Z3_model m);
5420
5425 Z3_string Z3_API Z3_goal_to_string(Z3_context c, Z3_goal g);
5426
5436 Z3_string Z3_API Z3_goal_to_dimacs_string(Z3_context c, Z3_goal g, bool include_names);
5437
5450 Z3_tactic Z3_API Z3_mk_tactic(Z3_context c, Z3_string name);
5451
5456 void Z3_API Z3_tactic_inc_ref(Z3_context c, Z3_tactic t);
5457
5462 void Z3_API Z3_tactic_dec_ref(Z3_context c, Z3_tactic g);
5463
5473 Z3_probe Z3_API Z3_mk_probe(Z3_context c, Z3_string name);
5474
5479 void Z3_API Z3_probe_inc_ref(Z3_context c, Z3_probe p);
5480
5485 void Z3_API Z3_probe_dec_ref(Z3_context c, Z3_probe p);
5486
5492 Z3_tactic Z3_API Z3_tactic_and_then(Z3_context c, Z3_tactic t1, Z3_tactic t2);
5493
5499 Z3_tactic Z3_API Z3_tactic_or_else(Z3_context c, Z3_tactic t1, Z3_tactic t2);
5500
5505 Z3_tactic Z3_API Z3_tactic_par_or(Z3_context c, unsigned num, Z3_tactic const ts[]);
5506
5512 Z3_tactic Z3_API Z3_tactic_par_and_then(Z3_context c, Z3_tactic t1, Z3_tactic t2);
5513
5519 Z3_tactic Z3_API Z3_tactic_try_for(Z3_context c, Z3_tactic t, unsigned ms);
5520
5526 Z3_tactic Z3_API Z3_tactic_when(Z3_context c, Z3_probe p, Z3_tactic t);
5527
5533 Z3_tactic Z3_API Z3_tactic_cond(Z3_context c, Z3_probe p, Z3_tactic t1, Z3_tactic t2);
5534
5540 Z3_tactic Z3_API Z3_tactic_repeat(Z3_context c, Z3_tactic t, unsigned max);
5541
5546 Z3_tactic Z3_API Z3_tactic_skip(Z3_context c);
5547
5552 Z3_tactic Z3_API Z3_tactic_fail(Z3_context c);
5553
5558 Z3_tactic Z3_API Z3_tactic_fail_if(Z3_context c, Z3_probe p);
5559
5565 Z3_tactic Z3_API Z3_tactic_fail_if_not_decided(Z3_context c);
5566
5571 Z3_tactic Z3_API Z3_tactic_using_params(Z3_context c, Z3_tactic t, Z3_params p);
5572
5577 Z3_probe Z3_API Z3_probe_const(Z3_context x, double val);
5578
5585 Z3_probe Z3_API Z3_probe_lt(Z3_context x, Z3_probe p1, Z3_probe p2);
5586
5593 Z3_probe Z3_API Z3_probe_gt(Z3_context x, Z3_probe p1, Z3_probe p2);
5594
5601 Z3_probe Z3_API Z3_probe_le(Z3_context x, Z3_probe p1, Z3_probe p2);
5602
5609 Z3_probe Z3_API Z3_probe_ge(Z3_context x, Z3_probe p1, Z3_probe p2);
5610
5617 Z3_probe Z3_API Z3_probe_eq(Z3_context x, Z3_probe p1, Z3_probe p2);
5618
5625 Z3_probe Z3_API Z3_probe_and(Z3_context x, Z3_probe p1, Z3_probe p2);
5626
5633 Z3_probe Z3_API Z3_probe_or(Z3_context x, Z3_probe p1, Z3_probe p2);
5634
5641 Z3_probe Z3_API Z3_probe_not(Z3_context x, Z3_probe p);
5642
5647 unsigned Z3_API Z3_get_num_tactics(Z3_context c);
5648
5655 Z3_string Z3_API Z3_get_tactic_name(Z3_context c, unsigned i);
5656
5661 unsigned Z3_API Z3_get_num_probes(Z3_context c);
5662
5669 Z3_string Z3_API Z3_get_probe_name(Z3_context c, unsigned i);
5670
5675 Z3_string Z3_API Z3_tactic_get_help(Z3_context c, Z3_tactic t);
5676
5681 Z3_param_descrs Z3_API Z3_tactic_get_param_descrs(Z3_context c, Z3_tactic t);
5682
5687 Z3_string Z3_API Z3_tactic_get_descr(Z3_context c, Z3_string name);
5688
5693 Z3_string Z3_API Z3_probe_get_descr(Z3_context c, Z3_string name);
5694
5700 double Z3_API Z3_probe_apply(Z3_context c, Z3_probe p, Z3_goal g);
5701
5706 Z3_apply_result Z3_API Z3_tactic_apply(Z3_context c, Z3_tactic t, Z3_goal g);
5707
5712 Z3_apply_result Z3_API Z3_tactic_apply_ex(Z3_context c, Z3_tactic t, Z3_goal g, Z3_params p);
5713
5718 void Z3_API Z3_apply_result_inc_ref(Z3_context c, Z3_apply_result r);
5719
5724 void Z3_API Z3_apply_result_dec_ref(Z3_context c, Z3_apply_result r);
5725
5730 Z3_string Z3_API Z3_apply_result_to_string(Z3_context c, Z3_apply_result r);
5731
5736 unsigned Z3_API Z3_apply_result_get_num_subgoals(Z3_context c, Z3_apply_result r);
5737
5744 Z3_goal Z3_API Z3_apply_result_get_subgoal(Z3_context c, Z3_apply_result r, unsigned i);
5745
5785 Z3_solver Z3_API Z3_mk_solver(Z3_context c);
5786
5811 Z3_solver Z3_API Z3_mk_simple_solver(Z3_context c);
5812
5821 Z3_solver Z3_API Z3_mk_solver_for_logic(Z3_context c, Z3_symbol logic);
5822
5832 Z3_solver Z3_API Z3_mk_solver_from_tactic(Z3_context c, Z3_tactic t);
5833
5838 Z3_solver Z3_API Z3_solver_translate(Z3_context source, Z3_solver s, Z3_context target);
5839
5852 void Z3_API Z3_solver_import_model_converter(Z3_context ctx, Z3_solver src, Z3_solver dst);
5853
5861 Z3_string Z3_API Z3_solver_get_help(Z3_context c, Z3_solver s);
5862
5870 Z3_param_descrs Z3_API Z3_solver_get_param_descrs(Z3_context c, Z3_solver s);
5871
5879 void Z3_API Z3_solver_set_params(Z3_context c, Z3_solver s, Z3_params p);
5880
5885 void Z3_API Z3_solver_inc_ref(Z3_context c, Z3_solver s);
5886
5891 void Z3_API Z3_solver_dec_ref(Z3_context c, Z3_solver s);
5892
5902 void Z3_API Z3_solver_interrupt(Z3_context c, Z3_solver s);
5903
5913 void Z3_API Z3_solver_push(Z3_context c, Z3_solver s);
5914
5924 void Z3_API Z3_solver_pop(Z3_context c, Z3_solver s, unsigned n);
5925
5933 void Z3_API Z3_solver_reset(Z3_context c, Z3_solver s);
5934
5942 unsigned Z3_API Z3_solver_get_num_scopes(Z3_context c, Z3_solver s);
5943
5954 void Z3_API Z3_solver_assert(Z3_context c, Z3_solver s, Z3_ast a);
5955
5972 void Z3_API Z3_solver_assert_and_track(Z3_context c, Z3_solver s, Z3_ast a, Z3_ast p);
5973
5981 void Z3_API Z3_solver_from_file(Z3_context c, Z3_solver s, Z3_string file_name);
5982
5990 void Z3_API Z3_solver_from_string(Z3_context c, Z3_solver s, Z3_string file_name);
5991
5996 Z3_ast_vector Z3_API Z3_solver_get_assertions(Z3_context c, Z3_solver s);
5997
6002 Z3_ast_vector Z3_API Z3_solver_get_units(Z3_context c, Z3_solver s);
6003
6009 Z3_ast_vector Z3_API Z3_solver_get_trail(Z3_context c, Z3_solver s);
6010
6015 Z3_ast_vector Z3_API Z3_solver_get_non_units(Z3_context c, Z3_solver s);
6016
6022 void Z3_API Z3_solver_get_levels(Z3_context c, Z3_solver s, Z3_ast_vector literals, unsigned sz, unsigned levels[]);
6023
6024
6029 void Z3_API Z3_solver_propagate_init(
6030 Z3_context c,
6031 Z3_solver s,
6032 void* user_context,
6033 Z3_push_eh push_eh,
6034 Z3_pop_eh pop_eh,
6035 Z3_fresh_eh fresh_eh);
6036
6044 void Z3_API Z3_solver_propagate_fixed(Z3_context c, Z3_solver s, Z3_fixed_eh fixed_eh);
6045
6055 void Z3_API Z3_solver_propagate_final(Z3_context c, Z3_solver s, Z3_final_eh final_eh);
6056
6060 void Z3_API Z3_solver_propagate_eq(Z3_context c, Z3_solver s, Z3_eq_eh eq_eh);
6061
6065 void Z3_API Z3_solver_propagate_diseq(Z3_context c, Z3_solver s, Z3_eq_eh eq_eh);
6066
6073 unsigned Z3_API Z3_solver_propagate_register(Z3_context c, Z3_solver s, Z3_ast e);
6074
6083 void Z3_API Z3_solver_propagate_consequence(Z3_context c, Z3_solver_callback, unsigned num_fixed, unsigned const* fixed_ids, unsigned num_eqs, unsigned const* eq_lhs, unsigned const* eq_rhs, Z3_ast conseq);
6084
6102 Z3_lbool Z3_API Z3_solver_check(Z3_context c, Z3_solver s);
6103
6114 Z3_lbool Z3_API Z3_solver_check_assumptions(Z3_context c, Z3_solver s,
6115 unsigned num_assumptions, Z3_ast const assumptions[]);
6116
6134 Z3_lbool Z3_API Z3_get_implied_equalities(Z3_context c,
6135 Z3_solver s,
6136 unsigned num_terms,
6137 Z3_ast const terms[],
6138 unsigned class_ids[]);
6139
6145 Z3_lbool Z3_API Z3_solver_get_consequences(Z3_context c,
6146 Z3_solver s,
6147 Z3_ast_vector assumptions,
6148 Z3_ast_vector variables,
6149 Z3_ast_vector consequences);
6150
6151
6169 Z3_ast_vector Z3_API Z3_solver_cube(Z3_context c, Z3_solver s, Z3_ast_vector vars, unsigned backtrack_level);
6170
6178 Z3_model Z3_API Z3_solver_get_model(Z3_context c, Z3_solver s);
6179
6188 Z3_ast Z3_API Z3_solver_get_proof(Z3_context c, Z3_solver s);
6189
6200 Z3_ast_vector Z3_API Z3_solver_get_unsat_core(Z3_context c, Z3_solver s);
6201
6207 Z3_string Z3_API Z3_solver_get_reason_unknown(Z3_context c, Z3_solver s);
6208
6215 Z3_stats Z3_API Z3_solver_get_statistics(Z3_context c, Z3_solver s);
6216
6224 Z3_string Z3_API Z3_solver_to_string(Z3_context c, Z3_solver s);
6225
6231 Z3_string Z3_API Z3_solver_to_dimacs_string(Z3_context c, Z3_solver s, bool include_names);
6232
6237
6242 Z3_string Z3_API Z3_stats_to_string(Z3_context c, Z3_stats s);
6243
6248 void Z3_API Z3_stats_inc_ref(Z3_context c, Z3_stats s);
6249
6254 void Z3_API Z3_stats_dec_ref(Z3_context c, Z3_stats s);
6255
6260 unsigned Z3_API Z3_stats_size(Z3_context c, Z3_stats s);
6261
6268 Z3_string Z3_API Z3_stats_get_key(Z3_context c, Z3_stats s, unsigned idx);
6269
6276 bool Z3_API Z3_stats_is_uint(Z3_context c, Z3_stats s, unsigned idx);
6277
6284 bool Z3_API Z3_stats_is_double(Z3_context c, Z3_stats s, unsigned idx);
6285
6292 unsigned Z3_API Z3_stats_get_uint_value(Z3_context c, Z3_stats s, unsigned idx);
6293
6300 double Z3_API Z3_stats_get_double_value(Z3_context c, Z3_stats s, unsigned idx);
6301
6306 uint64_t Z3_API Z3_get_estimated_alloc_size(void);
6307
6310#ifdef __cplusplus
6311}
6312#endif // __cplusplus
6313
z3::range
expr range(expr const &lo, expr const &hi)
Definition: z3++.h:3725
z3::max
expr max(expr const &a, expr const &b)
Definition: z3++.h:1836
Z3_mk_exists_const
Z3_ast Z3_API Z3_mk_exists_const(Z3_context c, unsigned weight, unsigned num_bound, Z3_app const bound[], unsigned num_patterns, Z3_pattern const patterns[], Z3_ast body)
Similar to Z3_mk_forall_const.
Z3_mk_pbeq
Z3_ast Z3_API Z3_mk_pbeq(Z3_context c, unsigned num_args, Z3_ast const args[], int const coeffs[], int k)
Pseudo-Boolean relations.
Z3_ast_print_mode
Z3_ast_print_mode
Z3 pretty printing modes (See Z3_set_ast_print_mode).
Definition: z3_api.h:1334
Z3_PRINT_SMTLIB2_COMPLIANT
@ Z3_PRINT_SMTLIB2_COMPLIANT
Definition: z3_api.h:1337
Z3_PRINT_SMTLIB_FULL
@ Z3_PRINT_SMTLIB_FULL
Definition: z3_api.h:1335
Z3_PRINT_LOW_LEVEL
@ Z3_PRINT_LOW_LEVEL
Definition: z3_api.h:1336
Z3_ast_kind
Z3_ast_kind
The different kinds of Z3 AST (abstract syntax trees). That is, terms, formulas and types.
Definition: z3_api.h:180
Z3_APP_AST
@ Z3_APP_AST
Definition: z3_api.h:182
Z3_VAR_AST
@ Z3_VAR_AST
Definition: z3_api.h:183
Z3_SORT_AST
@ Z3_SORT_AST
Definition: z3_api.h:185
Z3_NUMERAL_AST
@ Z3_NUMERAL_AST
Definition: z3_api.h:181
Z3_FUNC_DECL_AST
@ Z3_FUNC_DECL_AST
Definition: z3_api.h:186
Z3_QUANTIFIER_AST
@ Z3_QUANTIFIER_AST
Definition: z3_api.h:184
Z3_UNKNOWN_AST
@ Z3_UNKNOWN_AST
Definition: z3_api.h:187
Z3_model_get_const_interp
Z3_ast Z3_API Z3_model_get_const_interp(Z3_context c, Z3_model m, Z3_func_decl a)
Return the interpretation (i.e., assignment) of constant a in the model m. Return NULL,...
Z3_mk_int_sort
Z3_sort Z3_API Z3_mk_int_sort(Z3_context c)
Create the integer type.
Z3_probe_lt
Z3_probe Z3_API Z3_probe_lt(Z3_context x, Z3_probe p1, Z3_probe p2)
Return a probe that evaluates to "true" when the value returned by p1 is less than the value returned...
Z3_mk_array_sort_n
Z3_sort Z3_API Z3_mk_array_sort_n(Z3_context c, unsigned n, Z3_sort const *domain, Z3_sort range)
Create an array type with N arguments.
Z3_mk_bvxnor
Z3_ast Z3_API Z3_mk_bvxnor(Z3_context c, Z3_ast t1, Z3_ast t2)
Bitwise xnor.
Z3_mk_quantifier
Z3_ast Z3_API Z3_mk_quantifier(Z3_context c, bool is_forall, unsigned weight, unsigned num_patterns, Z3_pattern const patterns[], unsigned num_decls, Z3_sort const sorts[], Z3_symbol const decl_names[], Z3_ast body)
Create a quantifier - universal or existential, with pattern hints. See the documentation for Z3_mk_f...
Z3_get_error_msg
Z3_string Z3_API Z3_get_error_msg(Z3_context c, Z3_error_code err)
Return a string describing the given error code.
Z3_open_log
bool Z3_API Z3_open_log(Z3_string filename)
Log interaction to a file.
Z3_get_decl_parameter_kind
Z3_parameter_kind Z3_API Z3_get_decl_parameter_kind(Z3_context c, Z3_func_decl d, unsigned idx)
Return the parameter type associated with a declaration.
Z3_is_seq_sort
bool Z3_API Z3_is_seq_sort(Z3_context c, Z3_sort s)
Check if s is a sequence sort.
Z3_mk_bvnor
Z3_ast Z3_API Z3_mk_bvnor(Z3_context c, Z3_ast t1, Z3_ast t2)
Bitwise nor.
Z3_get_denominator
Z3_ast Z3_API Z3_get_denominator(Z3_context c, Z3_ast a)
Return the denominator (as a numeral AST) of a numeral AST of sort Real.
Z3_probe_not
Z3_probe Z3_API Z3_probe_not(Z3_context x, Z3_probe p)
Return a probe that evaluates to "true" when p does not evaluate to true.
Z3_get_decl_kind
Z3_decl_kind Z3_API Z3_get_decl_kind(Z3_context c, Z3_func_decl d)
Return declaration kind corresponding to declaration.
Z3_solver_assert_and_track
void Z3_API Z3_solver_assert_and_track(Z3_context c, Z3_solver s, Z3_ast a, Z3_ast p)
Assert a constraint a into the solver, and track it (in the unsat) core using the Boolean constant p.
Z3_func_interp_get_else
Z3_ast Z3_API Z3_func_interp_get_else(Z3_context c, Z3_func_interp f)
Return the 'else' value of the given function interpretation.
Z3_solver_propagate_diseq
void Z3_API Z3_solver_propagate_diseq(Z3_context c, Z3_solver s, Z3_eq_eh eq_eh)
register a callback on expression dis-equalities.
Z3_mk_bvsge
Z3_ast Z3_API Z3_mk_bvsge(Z3_context c, Z3_ast t1, Z3_ast t2)
Two's complement signed greater than or equal to.
Z3_tactic_using_params
Z3_tactic Z3_API Z3_tactic_using_params(Z3_context c, Z3_tactic t, Z3_params p)
Return a tactic that applies t using the given set of parameters.
Z3_mk_const_array
Z3_ast Z3_API Z3_mk_const_array(Z3_context c, Z3_sort domain, Z3_ast v)
Create the constant array.
Z3_probe_eq
Z3_probe Z3_API Z3_probe_eq(Z3_context x, Z3_probe p1, Z3_probe p2)
Return a probe that evaluates to "true" when the value returned by p1 is equal to the value returned ...
Z3_fresh_eh
void * Z3_fresh_eh(void *ctx, Z3_context new_context)
Definition: z3_api.h:1391
Z3_mk_unsigned_int
Z3_ast Z3_API Z3_mk_unsigned_int(Z3_context c, unsigned v, Z3_sort ty)
Create a numeral of a int, bit-vector, or finite-domain sort.
Z3_mk_re_option
Z3_ast Z3_API Z3_mk_re_option(Z3_context c, Z3_ast re)
Create the regular language [re].
Z3_mk_bvsle
Z3_ast Z3_API Z3_mk_bvsle(Z3_context c, Z3_ast t1, Z3_ast t2)
Two's complement signed less than or equal to.
Z3_query_constructor
void Z3_API Z3_query_constructor(Z3_context c, Z3_constructor constr, unsigned num_fields, Z3_func_decl *constructor, Z3_func_decl *tester, Z3_func_decl accessors[])
Query constructor for declared functions.
Z3_get_app_decl
Z3_func_decl Z3_API Z3_get_app_decl(Z3_context c, Z3_app a)
Return the declaration of a constant or function application.
Z3_mk_context
Z3_context Z3_API Z3_mk_context(Z3_config c)
Create a context using the given configuration.
Z3_del_context
void Z3_API Z3_del_context(Z3_context c)
Delete the given logical context.
Z3_substitute
Z3_ast Z3_API Z3_substitute(Z3_context c, Z3_ast a, unsigned num_exprs, Z3_ast const from[], Z3_ast const to[])
Substitute every occurrence of from[i] in a with to[i], for i smaller than num_exprs....
Z3_mk_mul
Z3_ast Z3_API Z3_mk_mul(Z3_context c, unsigned num_args, Z3_ast const args[])
Create an AST node representing args[0] * ... * args[num_args-1].
Z3_get_decl_func_decl_parameter
Z3_func_decl Z3_API Z3_get_decl_func_decl_parameter(Z3_context c, Z3_func_decl d, unsigned idx)
Return the expression value associated with an expression parameter.
Z3_goal_prec
Z3_goal_prec
A Goal is essentially a set of formulas. Z3 provide APIs for building strategies/tactics for solving ...
Definition: z3_api.h:1408
Z3_GOAL_UNDER
@ Z3_GOAL_UNDER
Definition: z3_api.h:1410
Z3_GOAL_UNDER_OVER
@ Z3_GOAL_UNDER_OVER
Definition: z3_api.h:1412
Z3_GOAL_OVER
@ Z3_GOAL_OVER
Definition: z3_api.h:1411
Z3_GOAL_PRECISE
@ Z3_GOAL_PRECISE
Definition: z3_api.h:1409
Z3_mk_seq_replace
Z3_ast Z3_API Z3_mk_seq_replace(Z3_context c, Z3_ast s, Z3_ast src, Z3_ast dst)
Replace the first occurrence of src with dst in s.
Z3_param_descrs_to_string
Z3_string Z3_API Z3_param_descrs_to_string(Z3_context c, Z3_param_descrs p)
Convert a parameter description set into a string. This function is mainly used for printing the cont...
Z3_mk_zero_ext
Z3_ast Z3_API Z3_mk_zero_ext(Z3_context c, unsigned i, Z3_ast t1)
Extend the given bit-vector with zeros to the (unsigned) equivalent bit-vector of size m+i,...
Z3_solver_set_params
void Z3_API Z3_solver_set_params(Z3_context c, Z3_solver s, Z3_params p)
Set the given solver using the given parameters.
Z3_mk_set_intersect
Z3_ast Z3_API Z3_mk_set_intersect(Z3_context c, unsigned num_args, Z3_ast const args[])
Take the intersection of a list of sets.
Z3_mk_str_le
Z3_ast Z3_API Z3_mk_str_le(Z3_context c, Z3_ast prefix, Z3_ast s)
Check if s1 is equal or lexicographically strictly less than s2.
Z3_mk_params
Z3_params Z3_API Z3_mk_params(Z3_context c)
Create a Z3 (empty) parameter set. Starting at Z3 4.0, parameter sets are used to configure many comp...
Z3_get_decl_num_parameters
unsigned Z3_API Z3_get_decl_num_parameters(Z3_context c, Z3_func_decl d)
Return the number of parameters associated with a declaration.
Z3_mk_set_subset
Z3_ast Z3_API Z3_mk_set_subset(Z3_context c, Z3_ast arg1, Z3_ast arg2)
Check for subsetness of sets.
Z3_simplify
Z3_ast Z3_API Z3_simplify(Z3_context c, Z3_ast a)
Interface to simplifier.
Z3_mk_int
Z3_ast Z3_API Z3_mk_int(Z3_context c, int v, Z3_sort ty)
Create a numeral of an int, bit-vector, or finite-domain sort.
Z3_solver_get_consequences
Z3_lbool Z3_API Z3_solver_get_consequences(Z3_context c, Z3_solver s, Z3_ast_vector assumptions, Z3_ast_vector variables, Z3_ast_vector consequences)
retrieve consequences from solver that determine values of the supplied function symbols.
Z3_mk_bvule
Z3_ast Z3_API Z3_mk_bvule(Z3_context c, Z3_ast t1, Z3_ast t2)
Unsigned less than or equal to.
Z3_mk_full_set
Z3_ast Z3_API Z3_mk_full_set(Z3_context c, Z3_sort domain)
Create the full set.
Z3_param_descrs_get_kind
Z3_param_kind Z3_API Z3_param_descrs_get_kind(Z3_context c, Z3_param_descrs p, Z3_symbol n)
Return the kind associated with the given parameter name n.
Z3_solver_propagate_register
unsigned Z3_API Z3_solver_propagate_register(Z3_context c, Z3_solver s, Z3_ast e)
register an expression to propagate on with the solver. Only expressions of type Bool and type Bit-Ve...
Z3_get_numeral_int64
bool Z3_API Z3_get_numeral_int64(Z3_context c, Z3_ast v, int64_t *i)
Similar to Z3_get_numeral_string, but only succeeds if the value can fit in a machine int64_t int....
Z3_add_rec_def
void Z3_API Z3_add_rec_def(Z3_context c, Z3_func_decl f, unsigned n, Z3_ast args[], Z3_ast body)
Define the body of a recursive function.
Z3_solver_get_param_descrs
Z3_param_descrs Z3_API Z3_solver_get_param_descrs(Z3_context c, Z3_solver s)
Return the parameter description set for the given solver object.
Z3_toggle_warning_messages
void Z3_API Z3_toggle_warning_messages(bool enabled)
Enable/disable printing warning messages to the console.
Z3_mk_true
Z3_ast Z3_API Z3_mk_true(Z3_context c)
Create an AST node representing true.
Z3_mk_set_union
Z3_ast Z3_API Z3_mk_set_union(Z3_context c, unsigned num_args, Z3_ast const args[])
Take the union of a list of sets.
Z3_apply_result_inc_ref
void Z3_API Z3_apply_result_inc_ref(Z3_context c, Z3_apply_result r)
Increment the reference counter of the given Z3_apply_result object.
Z3_add_func_interp
Z3_func_interp Z3_API Z3_add_func_interp(Z3_context c, Z3_model m, Z3_func_decl f, Z3_ast default_value)
Create a fresh func_interp object, add it to a model for a specified function. It has reference count...
Z3_mk_bvsdiv_no_overflow
Z3_ast Z3_API Z3_mk_bvsdiv_no_overflow(Z3_context c, Z3_ast t1, Z3_ast t2)
Create a predicate that checks that the bit-wise signed division of t1 and t2 does not overflow.
Z3_decl_kind
Z3_decl_kind
The different kinds of interpreted function kinds.
Definition: z3_api.h:1000
Z3_OP_BSMOD
@ Z3_OP_BSMOD
Definition: z3_api.h:1064
Z3_OP_SUB
@ Z3_OP_SUB
Definition: z3_api.h:1023
Z3_OP_STRING_LE
@ Z3_OP_STRING_LE
Definition: z3_api.h:1206
Z3_OP_SIGN_EXT
@ Z3_OP_SIGN_EXT
Definition: z3_api.h:1092
Z3_OP_FPA_MUL
@ Z3_OP_FPA_MUL
Definition: z3_api.h:1265
Z3_OP_FPA_IS_NEGATIVE
@ Z3_OP_FPA_IS_NEGATIVE
Definition: z3_api.h:1285
Z3_OP_FPA_ROUND_TO_INTEGRAL
@ Z3_OP_FPA_ROUND_TO_INTEGRAL
Definition: z3_api.h:1273
Z3_OP_FD_CONSTANT
@ Z3_OP_FD_CONSTANT
Definition: z3_api.h:1182
Z3_OP_BADD
@ Z3_OP_BADD
Definition: z3_api.h:1056
Z3_OP_BIT1
@ Z3_OP_BIT1
Definition: z3_api.h:1053
Z3_OP_BREDAND
@ Z3_OP_BREDAND
Definition: z3_api.h:1098
Z3_OP_MUL
@ Z3_OP_MUL
Definition: z3_api.h:1025
Z3_OP_XOR3
@ Z3_OP_XOR3
Definition: z3_api.h:1113
Z3_OP_FPA_SUB
@ Z3_OP_FPA_SUB
Definition: z3_api.h:1263
Z3_OP_UGEQ
@ Z3_OP_UGEQ
Definition: z3_api.h:1076
Z3_OP_BUDIV
@ Z3_OP_BUDIV
Definition: z3_api.h:1061
Z3_OP_FPA_ABS
@ Z3_OP_FPA_ABS
Definition: z3_api.h:1268
Z3_OP_SLT
@ Z3_OP_SLT
Definition: z3_api.h:1079
Z3_OP_BASHR
@ Z3_OP_BASHR
Definition: z3_api.h:1103
Z3_OP_PR_LEMMA
@ Z3_OP_PR_LEMMA
Definition: z3_api.h:1148
Z3_OP_PR_BIND
@ Z3_OP_PR_BIND
Definition: z3_api.h:1136
Z3_OP_SEQ_LENGTH
@ Z3_OP_SEQ_LENGTH
Definition: z3_api.h:1196
Z3_OP_FPA_PLUS_ZERO
@ Z3_OP_FPA_PLUS_ZERO
Definition: z3_api.h:1259
Z3_OP_PR_IFF_FALSE
@ Z3_OP_PR_IFF_FALSE
Definition: z3_api.h:1151
Z3_OP_SEQ_AT
@ Z3_OP_SEQ_AT
Definition: z3_api.h:1194
Z3_OP_INTERNAL
@ Z3_OP_INTERNAL
Definition: z3_api.h:1300
Z3_OP_PR_MONOTONICITY
@ Z3_OP_PR_MONOTONICITY
Definition: z3_api.h:1134
Z3_OP_PR_UNIT_RESOLUTION
@ Z3_OP_PR_UNIT_RESOLUTION
Definition: z3_api.h:1149
Z3_OP_RE_PLUS
@ Z3_OP_RE_PLUS
Definition: z3_api.h:1209
Z3_OP_FPA_NUM
@ Z3_OP_FPA_NUM
Definition: z3_api.h:1255
Z3_OP_LABEL
@ Z3_OP_LABEL
Definition: z3_api.h:1222
Z3_OP_ARRAY_EXT
@ Z3_OP_ARRAY_EXT
Definition: z3_api.h:1047
Z3_OP_SEQ_CONCAT
@ Z3_OP_SEQ_CONCAT
Definition: z3_api.h:1188
Z3_OP_RE_EMPTY_SET
@ Z3_OP_RE_EMPTY_SET
Definition: z3_api.h:1217
Z3_OP_SEQ_INDEX
@ Z3_OP_SEQ_INDEX
Definition: z3_api.h:1197
Z3_OP_SET_DIFFERENCE
@ Z3_OP_SET_DIFFERENCE
Definition: z3_api.h:1043
Z3_OP_PR_IFF_TRUE
@ Z3_OP_PR_IFF_TRUE
Definition: z3_api.h:1150
Z3_OP_RE_RANGE
@ Z3_OP_RE_RANGE
Definition: z3_api.h:1214
Z3_OP_BUDIV_I
@ Z3_OP_BUDIV_I
Definition: z3_api.h:1119
Z3_OP_DISTINCT
@ Z3_OP_DISTINCT
Definition: z3_api.h:1005
Z3_OP_EXTRACT
@ Z3_OP_EXTRACT
Definition: z3_api.h:1094
Z3_OP_RA_STORE
@ Z3_OP_RA_STORE
Definition: z3_api.h:1169
Z3_OP_FPA_FMA
@ Z3_OP_FPA_FMA
Definition: z3_api.h:1271
Z3_OP_BOR
@ Z3_OP_BOR
Definition: z3_api.h:1084
Z3_OP_FPA_GT
@ Z3_OP_FPA_GT
Definition: z3_api.h:1277
Z3_OP_DT_UPDATE_FIELD
@ Z3_OP_DT_UPDATE_FIELD
Definition: z3_api.h:1230
Z3_OP_BUREM_I
@ Z3_OP_BUREM_I
Definition: z3_api.h:1121
Z3_OP_SET_COMPLEMENT
@ Z3_OP_SET_COMPLEMENT
Definition: z3_api.h:1044
Z3_OP_PR_QUANT_INST
@ Z3_OP_PR_QUANT_INST
Definition: z3_api.h:1146
Z3_OP_RA_WIDEN
@ Z3_OP_RA_WIDEN
Definition: z3_api.h:1174
Z3_OP_RE_COMPLEMENT
@ Z3_OP_RE_COMPLEMENT
Definition: z3_api.h:1219
Z3_OP_AND
@ Z3_OP_AND
Definition: z3_api.h:1007
Z3_OP_STRING_LT
@ Z3_OP_STRING_LT
Definition: z3_api.h:1205
Z3_OP_ARRAY_MAP
@ Z3_OP_ARRAY_MAP
Definition: z3_api.h:1039
Z3_OP_PR_REFLEXIVITY
@ Z3_OP_PR_REFLEXIVITY
Definition: z3_api.h:1130
Z3_OP_FALSE
@ Z3_OP_FALSE
Definition: z3_api.h:1003
Z3_OP_PR_DEF_AXIOM
@ Z3_OP_PR_DEF_AXIOM
Definition: z3_api.h:1153
Z3_OP_SPECIAL_RELATION_TRC
@ Z3_OP_SPECIAL_RELATION_TRC
Definition: z3_api.h:1245
Z3_OP_XOR
@ Z3_OP_XOR
Definition: z3_api.h:1010
Z3_OP_BIT2BOOL
@ Z3_OP_BIT2BOOL
Definition: z3_api.h:1109
Z3_OP_FPA_GE
@ Z3_OP_FPA_GE
Definition: z3_api.h:1279
Z3_OP_RA_IS_EMPTY
@ Z3_OP_RA_IS_EMPTY
Definition: z3_api.h:1171
Z3_OP_PR_MODUS_PONENS
@ Z3_OP_PR_MODUS_PONENS
Definition: z3_api.h:1129
Z3_OP_RA_EMPTY
@ Z3_OP_RA_EMPTY
Definition: z3_api.h:1170
Z3_OP_PR_MODUS_PONENS_OEQ
@ Z3_OP_PR_MODUS_PONENS_OEQ
Definition: z3_api.h:1164
Z3_OP_SEQ_REPLACE
@ Z3_OP_SEQ_REPLACE
Definition: z3_api.h:1193
Z3_OP_DT_IS
@ Z3_OP_DT_IS
Definition: z3_api.h:1228
Z3_OP_CONST_ARRAY
@ Z3_OP_CONST_ARRAY
Definition: z3_api.h:1038
Z3_OP_IMPLIES
@ Z3_OP_IMPLIES
Definition: z3_api.h:1012
Z3_OP_SELECT
@ Z3_OP_SELECT
Definition: z3_api.h:1037
Z3_OP_FPA_TO_FP
@ Z3_OP_FPA_TO_FP
Definition: z3_api.h:1289
Z3_OP_FPA_NEG
@ Z3_OP_FPA_NEG
Definition: z3_api.h:1264
Z3_OP_FPA_NAN
@ Z3_OP_FPA_NAN
Definition: z3_api.h:1258
Z3_OP_RA_CLONE
@ Z3_OP_RA_CLONE
Definition: z3_api.h:1181
Z3_OP_ADD
@ Z3_OP_ADD
Definition: z3_api.h:1022
Z3_OP_GT
@ Z3_OP_GT
Definition: z3_api.h:1021
Z3_OP_PR_NOT_OR_ELIM
@ Z3_OP_PR_NOT_OR_ELIM
Definition: z3_api.h:1139
Z3_OP_FPA_TO_REAL
@ Z3_OP_FPA_TO_REAL
Definition: z3_api.h:1293
Z3_OP_ULEQ
@ Z3_OP_ULEQ
Definition: z3_api.h:1074
Z3_OP_FPA_EQ
@ Z3_OP_FPA_EQ
Definition: z3_api.h:1275
Z3_OP_INT2BV
@ Z3_OP_INT2BV
Definition: z3_api.h:1110
Z3_OP_TO_INT
@ Z3_OP_TO_INT
Definition: z3_api.h:1031
Z3_OP_PB_EQ
@ Z3_OP_PB_EQ
Definition: z3_api.h:1237
Z3_OP_PR_TRANSITIVITY
@ Z3_OP_PR_TRANSITIVITY
Definition: z3_api.h:1132
Z3_OP_BNUM
@ Z3_OP_BNUM
Definition: z3_api.h:1052
Z3_OP_REM
@ Z3_OP_REM
Definition: z3_api.h:1028
Z3_OP_POWER
@ Z3_OP_POWER
Definition: z3_api.h:1033
Z3_OP_SET_UNION
@ Z3_OP_SET_UNION
Definition: z3_api.h:1041
Z3_OP_FPA_LE
@ Z3_OP_FPA_LE
Definition: z3_api.h:1278
Z3_OP_FPA_MAX
@ Z3_OP_FPA_MAX
Definition: z3_api.h:1270
Z3_OP_MOD
@ Z3_OP_MOD
Definition: z3_api.h:1029
Z3_OP_SET_HAS_SIZE
@ Z3_OP_SET_HAS_SIZE
Definition: z3_api.h:1048
Z3_OP_RE_UNION
@ Z3_OP_RE_UNION
Definition: z3_api.h:1213
Z3_OP_OEQ
@ Z3_OP_OEQ
Definition: z3_api.h:1013
Z3_OP_BCOMP
@ Z3_OP_BCOMP
Definition: z3_api.h:1099
Z3_OP_FPA_RM_TOWARD_NEGATIVE
@ Z3_OP_FPA_RM_TOWARD_NEGATIVE
Definition: z3_api.h:1252
Z3_OP_BSMOD_I
@ Z3_OP_BSMOD_I
Definition: z3_api.h:1122
Z3_OP_PR_IFF_OEQ
@ Z3_OP_PR_IFF_OEQ
Definition: z3_api.h:1160
Z3_OP_BNOR
@ Z3_OP_BNOR
Definition: z3_api.h:1088
Z3_OP_UMINUS
@ Z3_OP_UMINUS
Definition: z3_api.h:1024
Z3_OP_SEQ_UNIT
@ Z3_OP_SEQ_UNIT
Definition: z3_api.h:1186
Z3_OP_DT_RECOGNISER
@ Z3_OP_DT_RECOGNISER
Definition: z3_api.h:1227
Z3_OP_ITE
@ Z3_OP_ITE
Definition: z3_api.h:1006
Z3_OP_FPA_IS_ZERO
@ Z3_OP_FPA_IS_ZERO
Definition: z3_api.h:1282
Z3_OP_FPA_IS_SUBNORMAL
@ Z3_OP_FPA_IS_SUBNORMAL
Definition: z3_api.h:1284
Z3_OP_EQ
@ Z3_OP_EQ
Definition: z3_api.h:1004
Z3_OP_INT_TO_STR
@ Z3_OP_INT_TO_STR
Definition: z3_api.h:1204
Z3_OP_ROTATE_RIGHT
@ Z3_OP_ROTATE_RIGHT
Definition: z3_api.h:1105
Z3_OP_RA_COMPLEMENT
@ Z3_OP_RA_COMPLEMENT
Definition: z3_api.h:1179
Z3_OP_GE
@ Z3_OP_GE
Definition: z3_api.h:1019
Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN
@ Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN
Definition: z3_api.h:1249
Z3_OP_PR_ASSERTED
@ Z3_OP_PR_ASSERTED
Definition: z3_api.h:1127
Z3_OP_DT_ACCESSOR
@ Z3_OP_DT_ACCESSOR
Definition: z3_api.h:1229
Z3_OP_BLSHR
@ Z3_OP_BLSHR
Definition: z3_api.h:1102
Z3_OP_IFF
@ Z3_OP_IFF
Definition: z3_api.h:1009
Z3_OP_FPA_BVWRAP
@ Z3_OP_FPA_BVWRAP
Definition: z3_api.h:1297
Z3_OP_UNINTERPRETED
@ Z3_OP_UNINTERPRETED
Definition: z3_api.h:1302
Z3_OP_AS_ARRAY
@ Z3_OP_AS_ARRAY
Definition: z3_api.h:1046
Z3_OP_FPA_BV2RM
@ Z3_OP_FPA_BV2RM
Definition: z3_api.h:1298
Z3_OP_RE_CONCAT
@ Z3_OP_RE_CONCAT
Definition: z3_api.h:1212
Z3_OP_FPA_PLUS_INF
@ Z3_OP_FPA_PLUS_INF
Definition: z3_api.h:1256
Z3_OP_PR_REWRITE_STAR
@ Z3_OP_PR_REWRITE_STAR
Definition: z3_api.h:1141
Z3_OP_PR_HYPOTHESIS
@ Z3_OP_PR_HYPOTHESIS
Definition: z3_api.h:1147
Z3_OP_BNAND
@ Z3_OP_BNAND
Definition: z3_api.h:1087
Z3_OP_PB_AT_LEAST
@ Z3_OP_PB_AT_LEAST
Definition: z3_api.h:1234
Z3_OP_PR_NNF_NEG
@ Z3_OP_PR_NNF_NEG
Definition: z3_api.h:1162
Z3_OP_FPA_DIV
@ Z3_OP_FPA_DIV
Definition: z3_api.h:1266
Z3_OP_PR_ELIM_UNUSED_VARS
@ Z3_OP_PR_ELIM_UNUSED_VARS
Definition: z3_api.h:1144
Z3_OP_RA_UNION
@ Z3_OP_RA_UNION
Definition: z3_api.h:1173
Z3_OP_PR_CLAUSE_TRAIL
@ Z3_OP_PR_CLAUSE_TRAIL
Definition: z3_api.h:1157
Z3_OP_PR_TH_LEMMA
@ Z3_OP_PR_TH_LEMMA
Definition: z3_api.h:1165
Z3_OP_UGT
@ Z3_OP_UGT
Definition: z3_api.h:1080
Z3_OP_BXOR
@ Z3_OP_BXOR
Definition: z3_api.h:1086
Z3_OP_SEQ_SUFFIX
@ Z3_OP_SEQ_SUFFIX
Definition: z3_api.h:1190
Z3_OP_BSMUL_NO_OVFL
@ Z3_OP_BSMUL_NO_OVFL
Definition: z3_api.h:1115
Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY
@ Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY
Definition: z3_api.h:1250
Z3_OP_RA_SELECT
@ Z3_OP_RA_SELECT
Definition: z3_api.h:1180
Z3_OP_IS_INT
@ Z3_OP_IS_INT
Definition: z3_api.h:1032
Z3_OP_REPEAT
@ Z3_OP_REPEAT
Definition: z3_api.h:1095
Z3_OP_RA_JOIN
@ Z3_OP_RA_JOIN
Definition: z3_api.h:1172
Z3_OP_PR_PULL_QUANT
@ Z3_OP_PR_PULL_QUANT
Definition: z3_api.h:1142
Z3_OP_FPA_SQRT
@ Z3_OP_FPA_SQRT
Definition: z3_api.h:1272
Z3_OP_FPA_RM_TOWARD_ZERO
@ Z3_OP_FPA_RM_TOWARD_ZERO
Definition: z3_api.h:1253
Z3_OP_SEQ_IN_RE
@ Z3_OP_SEQ_IN_RE
Definition: z3_api.h:1200
Z3_OP_BSHL
@ Z3_OP_BSHL
Definition: z3_api.h:1101
Z3_OP_BSDIV
@ Z3_OP_BSDIV
Definition: z3_api.h:1060
Z3_OP_OR
@ Z3_OP_OR
Definition: z3_api.h:1008
Z3_OP_EXT_ROTATE_LEFT
@ Z3_OP_EXT_ROTATE_LEFT
Definition: z3_api.h:1106
Z3_OP_FPA_TO_SBV
@ Z3_OP_FPA_TO_SBV
Definition: z3_api.h:1292
Z3_OP_PB_GE
@ Z3_OP_PB_GE
Definition: z3_api.h:1236
Z3_OP_BXNOR
@ Z3_OP_BXNOR
Definition: z3_api.h:1089
Z3_OP_STR_TO_INT
@ Z3_OP_STR_TO_INT
Definition: z3_api.h:1203
Z3_OP_LABEL_LIT
@ Z3_OP_LABEL_LIT
Definition: z3_api.h:1223
Z3_OP_FD_LT
@ Z3_OP_FD_LT
Definition: z3_api.h:1183
Z3_OP_SET_INTERSECT
@ Z3_OP_SET_INTERSECT
Definition: z3_api.h:1042
Z3_OP_FPA_MIN
@ Z3_OP_FPA_MIN
Definition: z3_api.h:1269
Z3_OP_BSMUL_NO_UDFL
@ Z3_OP_BSMUL_NO_UDFL
Definition: z3_api.h:1117
Z3_OP_TO_REAL
@ Z3_OP_TO_REAL
Definition: z3_api.h:1030
Z3_OP_EXT_ROTATE_RIGHT
@ Z3_OP_EXT_ROTATE_RIGHT
Definition: z3_api.h:1107
Z3_OP_PR_APPLY_DEF
@ Z3_OP_PR_APPLY_DEF
Definition: z3_api.h:1159
Z3_OP_DIV
@ Z3_OP_DIV
Definition: z3_api.h:1026
Z3_OP_BSUB
@ Z3_OP_BSUB
Definition: z3_api.h:1057
Z3_OP_BNEG
@ Z3_OP_BNEG
Definition: z3_api.h:1055
Z3_OP_SEQ_CONTAINS
@ Z3_OP_SEQ_CONTAINS
Definition: z3_api.h:1191
Z3_OP_PR_SKOLEMIZE
@ Z3_OP_PR_SKOLEMIZE
Definition: z3_api.h:1163
Z3_OP_FPA_RM_TOWARD_POSITIVE
@ Z3_OP_FPA_RM_TOWARD_POSITIVE
Definition: z3_api.h:1251
Z3_OP_FPA_ADD
@ Z3_OP_FPA_ADD
Definition: z3_api.h:1262
Z3_OP_PR_COMMUTATIVITY
@ Z3_OP_PR_COMMUTATIVITY
Definition: z3_api.h:1152
Z3_OP_RE_FULL_SET
@ Z3_OP_RE_FULL_SET
Definition: z3_api.h:1218
Z3_OP_SET_SUBSET
@ Z3_OP_SET_SUBSET
Definition: z3_api.h:1045
Z3_OP_BSREM
@ Z3_OP_BSREM
Definition: z3_api.h:1062
Z3_OP_NOT
@ Z3_OP_NOT
Definition: z3_api.h:1011
Z3_OP_BSREM_I
@ Z3_OP_BSREM_I
Definition: z3_api.h:1120
Z3_OP_SEQ_NTH
@ Z3_OP_SEQ_NTH
Definition: z3_api.h:1195
Z3_OP_SEQ_LAST_INDEX
@ Z3_OP_SEQ_LAST_INDEX
Definition: z3_api.h:1198
Z3_OP_PR_PUSH_QUANT
@ Z3_OP_PR_PUSH_QUANT
Definition: z3_api.h:1143
Z3_OP_PR_SYMMETRY
@ Z3_OP_PR_SYMMETRY
Definition: z3_api.h:1131
Z3_OP_SPECIAL_RELATION_PO
@ Z3_OP_SPECIAL_RELATION_PO
Definition: z3_api.h:1241
Z3_OP_RE_LOOP
@ Z3_OP_RE_LOOP
Definition: z3_api.h:1215
Z3_OP_ZERO_EXT
@ Z3_OP_ZERO_EXT
Definition: z3_api.h:1093
Z3_OP_SLEQ
@ Z3_OP_SLEQ
Definition: z3_api.h:1075
Z3_OP_RA_FILTER
@ Z3_OP_RA_FILTER
Definition: z3_api.h:1176
Z3_OP_FPA_MINUS_INF
@ Z3_OP_FPA_MINUS_INF
Definition: z3_api.h:1257
Z3_OP_PR_QUANT_INTRO
@ Z3_OP_PR_QUANT_INTRO
Definition: z3_api.h:1135
Z3_OP_PR_DER
@ Z3_OP_PR_DER
Definition: z3_api.h:1145
Z3_OP_BUREM0
@ Z3_OP_BUREM0
Definition: z3_api.h:1071
Z3_OP_SEQ_EMPTY
@ Z3_OP_SEQ_EMPTY
Definition: z3_api.h:1187
Z3_OP_PR_HYPER_RESOLVE
@ Z3_OP_PR_HYPER_RESOLVE
Definition: z3_api.h:1166
Z3_OP_FPA_IS_POSITIVE
@ Z3_OP_FPA_IS_POSITIVE
Definition: z3_api.h:1286
Z3_OP_LT
@ Z3_OP_LT
Definition: z3_api.h:1020
Z3_OP_BSDIV0
@ Z3_OP_BSDIV0
Definition: z3_api.h:1068
Z3_OP_PR_GOAL
@ Z3_OP_PR_GOAL
Definition: z3_api.h:1128
Z3_OP_SPECIAL_RELATION_TC
@ Z3_OP_SPECIAL_RELATION_TC
Definition: z3_api.h:1244
Z3_OP_RA_PROJECT
@ Z3_OP_RA_PROJECT
Definition: z3_api.h:1175
Z3_OP_FPA_IS_NAN
@ Z3_OP_FPA_IS_NAN
Definition: z3_api.h:1280
Z3_OP_SPECIAL_RELATION_TO
@ Z3_OP_SPECIAL_RELATION_TO
Definition: z3_api.h:1243
Z3_OP_PR_TRUE
@ Z3_OP_PR_TRUE
Definition: z3_api.h:1126
Z3_OP_RA_RENAME
@ Z3_OP_RA_RENAME
Definition: z3_api.h:1178
Z3_OP_AGNUM
@ Z3_OP_AGNUM
Definition: z3_api.h:1017
Z3_OP_BNOT
@ Z3_OP_BNOT
Definition: z3_api.h:1085
Z3_OP_FPA_IS_INF
@ Z3_OP_FPA_IS_INF
Definition: z3_api.h:1281
Z3_OP_BSMOD0
@ Z3_OP_BSMOD0
Definition: z3_api.h:1072
Z3_OP_CONCAT
@ Z3_OP_CONCAT
Definition: z3_api.h:1091
Z3_OP_FPA_TO_FP_UNSIGNED
@ Z3_OP_FPA_TO_FP_UNSIGNED
Definition: z3_api.h:1290
Z3_OP_PR_REDUNDANT_DEL
@ Z3_OP_PR_REDUNDANT_DEL
Definition: z3_api.h:1156
Z3_OP_PR_NNF_POS
@ Z3_OP_PR_NNF_POS
Definition: z3_api.h:1161
Z3_OP_FPA_REM
@ Z3_OP_FPA_REM
Definition: z3_api.h:1267
Z3_OP_SEQ_EXTRACT
@ Z3_OP_SEQ_EXTRACT
Definition: z3_api.h:1192
Z3_OP_RA_NEGATION_FILTER
@ Z3_OP_RA_NEGATION_FILTER
Definition: z3_api.h:1177
Z3_OP_PR_LEMMA_ADD
@ Z3_OP_PR_LEMMA_ADD
Definition: z3_api.h:1155
Z3_OP_RE_OPTION
@ Z3_OP_RE_OPTION
Definition: z3_api.h:1211
Z3_OP_BUDIV0
@ Z3_OP_BUDIV0
Definition: z3_api.h:1069
Z3_OP_PR_REWRITE
@ Z3_OP_PR_REWRITE
Definition: z3_api.h:1140
Z3_OP_BV2INT
@ Z3_OP_BV2INT
Definition: z3_api.h:1111
Z3_OP_RE_INTERSECT
@ Z3_OP_RE_INTERSECT
Definition: z3_api.h:1216
Z3_OP_SET_CARD
@ Z3_OP_SET_CARD
Definition: z3_api.h:1049
Z3_OP_PR_DEF_INTRO
@ Z3_OP_PR_DEF_INTRO
Definition: z3_api.h:1158
Z3_OP_FPA_MINUS_ZERO
@ Z3_OP_FPA_MINUS_ZERO
Definition: z3_api.h:1260
Z3_OP_SPECIAL_RELATION_PLO
@ Z3_OP_SPECIAL_RELATION_PLO
Definition: z3_api.h:1242
Z3_OP_BUMUL_NO_OVFL
@ Z3_OP_BUMUL_NO_OVFL
Definition: z3_api.h:1116
Z3_OP_SGEQ
@ Z3_OP_SGEQ
Definition: z3_api.h:1077
Z3_OP_ROTATE_LEFT
@ Z3_OP_ROTATE_LEFT
Definition: z3_api.h:1104
Z3_OP_PR_UNDEF
@ Z3_OP_PR_UNDEF
Definition: z3_api.h:1125
Z3_OP_PR_AND_ELIM
@ Z3_OP_PR_AND_ELIM
Definition: z3_api.h:1138
Z3_OP_PR_ASSUMPTION_ADD
@ Z3_OP_PR_ASSUMPTION_ADD
Definition: z3_api.h:1154
Z3_OP_FPA_TO_UBV
@ Z3_OP_FPA_TO_UBV
Definition: z3_api.h:1291
Z3_OP_FPA_LT
@ Z3_OP_FPA_LT
Definition: z3_api.h:1276
Z3_OP_BMUL
@ Z3_OP_BMUL
Definition: z3_api.h:1058
Z3_OP_PR_TRANSITIVITY_STAR
@ Z3_OP_PR_TRANSITIVITY_STAR
Definition: z3_api.h:1133
Z3_OP_PB_LE
@ Z3_OP_PB_LE
Definition: z3_api.h:1235
Z3_OP_PB_AT_MOST
@ Z3_OP_PB_AT_MOST
Definition: z3_api.h:1233
Z3_OP_FPA_IS_NORMAL
@ Z3_OP_FPA_IS_NORMAL
Definition: z3_api.h:1283
Z3_OP_ULT
@ Z3_OP_ULT
Definition: z3_api.h:1078
Z3_OP_STORE
@ Z3_OP_STORE
Definition: z3_api.h:1036
Z3_OP_SGT
@ Z3_OP_SGT
Definition: z3_api.h:1081
Z3_OP_CARRY
@ Z3_OP_CARRY
Definition: z3_api.h:1112
Z3_OP_DT_CONSTRUCTOR
@ Z3_OP_DT_CONSTRUCTOR
Definition: z3_api.h:1226
Z3_OP_BIT0
@ Z3_OP_BIT0
Definition: z3_api.h:1054
Z3_OP_BUREM
@ Z3_OP_BUREM
Definition: z3_api.h:1063
Z3_OP_SEQ_PREFIX
@ Z3_OP_SEQ_PREFIX
Definition: z3_api.h:1189
Z3_OP_FPA_FP
@ Z3_OP_FPA_FP
Definition: z3_api.h:1288
Z3_OP_BREDOR
@ Z3_OP_BREDOR
Definition: z3_api.h:1097
Z3_OP_BSREM0
@ Z3_OP_BSREM0
Definition: z3_api.h:1070
Z3_OP_LE
@ Z3_OP_LE
Definition: z3_api.h:1018
Z3_OP_SPECIAL_RELATION_LO
@ Z3_OP_SPECIAL_RELATION_LO
Definition: z3_api.h:1240
Z3_OP_BSDIV_I
@ Z3_OP_BSDIV_I
Definition: z3_api.h:1118
Z3_OP_PR_DISTRIBUTIVITY
@ Z3_OP_PR_DISTRIBUTIVITY
Definition: z3_api.h:1137
Z3_OP_FPA_TO_IEEE_BV
@ Z3_OP_FPA_TO_IEEE_BV
Definition: z3_api.h:1295
Z3_OP_IDIV
@ Z3_OP_IDIV
Definition: z3_api.h:1027
Z3_OP_SEQ_TO_RE
@ Z3_OP_SEQ_TO_RE
Definition: z3_api.h:1199
Z3_OP_ANUM
@ Z3_OP_ANUM
Definition: z3_api.h:1016
Z3_OP_RE_STAR
@ Z3_OP_RE_STAR
Definition: z3_api.h:1210
Z3_OP_BAND
@ Z3_OP_BAND
Definition: z3_api.h:1083
Z3_OP_ARRAY_DEFAULT
@ Z3_OP_ARRAY_DEFAULT
Definition: z3_api.h:1040
Z3_OP_TRUE
@ Z3_OP_TRUE
Definition: z3_api.h:1002
Z3_get_arity
unsigned Z3_API Z3_get_arity(Z3_context c, Z3_func_decl d)
Alias for Z3_get_domain_size.
Z3_mk_bvxor
Z3_ast Z3_API Z3_mk_bvxor(Z3_context c, Z3_ast t1, Z3_ast t2)
Bitwise exclusive-or.
Z3_stats_to_string
Z3_string Z3_API Z3_stats_to_string(Z3_context c, Z3_stats s)
Convert a statistics into a string.
Z3_mk_real_sort
Z3_sort Z3_API Z3_mk_real_sort(Z3_context c)
Create the real type.
Z3_mk_le
Z3_ast Z3_API Z3_mk_le(Z3_context c, Z3_ast t1, Z3_ast t2)
Create less than or equal to.
Z3_get_tuple_sort_num_fields
unsigned Z3_API Z3_get_tuple_sort_num_fields(Z3_context c, Z3_sort t)
Return the number of fields of the given tuple sort.
Z3_goal_inconsistent
bool Z3_API Z3_goal_inconsistent(Z3_context c, Z3_goal g)
Return true if the given goal contains the formula false.
Z3_eq_eh
void Z3_eq_eh(void *ctx, Z3_solver_callback cb, unsigned x, unsigned y)
Definition: z3_api.h:1393
Z3_mk_lambda_const
Z3_ast Z3_API Z3_mk_lambda_const(Z3_context c, unsigned num_bound, Z3_app const bound[], Z3_ast body)
Create a lambda expression using a list of constants that form the set of bound variables.
Z3_tactic_par_and_then
Z3_tactic Z3_API Z3_tactic_par_and_then(Z3_context c, Z3_tactic t1, Z3_tactic t2)
Return a tactic that applies t1 to a given goal and then t2 to every subgoal produced by t1....
Z3_solver_dec_ref
void Z3_API Z3_solver_dec_ref(Z3_context c, Z3_solver s)
Decrement the reference counter of the given solver.
Z3_mk_bvslt
Z3_ast Z3_API Z3_mk_bvslt(Z3_context c, Z3_ast t1, Z3_ast t2)
Two's complement signed less than.
Z3_model_get_func_decl
Z3_func_decl Z3_API Z3_model_get_func_decl(Z3_context c, Z3_model m, unsigned i)
Return the declaration of the i-th function in the given model.
Z3_mk_seq_length
Z3_ast Z3_API Z3_mk_seq_length(Z3_context c, Z3_ast s)
Return the length of the sequence s.
Z3_mk_numeral
Z3_ast Z3_API Z3_mk_numeral(Z3_context c, Z3_string numeral, Z3_sort ty)
Create a numeral of a given sort.
Z3_func_entry_get_num_args
unsigned Z3_API Z3_func_entry_get_num_args(Z3_context c, Z3_func_entry e)
Return the number of arguments in a Z3_func_entry object.
Z3_simplify_ex
Z3_ast Z3_API Z3_simplify_ex(Z3_context c, Z3_ast a, Z3_params p)
Interface to simplifier.
Z3_push_eh
void Z3_push_eh(void *ctx)
callback functions for user propagator.
Definition: z3_api.h:1389
Z3_get_decl_symbol_parameter
Z3_symbol Z3_API Z3_get_decl_symbol_parameter(Z3_context c, Z3_func_decl d, unsigned idx)
Return the double value associated with an double parameter.
Z3_get_seq_sort_basis
Z3_sort Z3_API Z3_get_seq_sort_basis(Z3_context c, Z3_sort s)
Retrieve basis sort for sequence sort.
Z3_get_numerator
Z3_ast Z3_API Z3_get_numerator(Z3_context c, Z3_ast a)
Return the numerator (as a numeral AST) of a numeral AST of sort Real.
Z3_mk_unary_minus
Z3_ast Z3_API Z3_mk_unary_minus(Z3_context c, Z3_ast arg)
Create an AST node representing - arg.
Z3_probe_ge
Z3_probe Z3_API Z3_probe_ge(Z3_context x, Z3_probe p1, Z3_probe p2)
Return a probe that evaluates to "true" when the value returned by p1 is greater than or equal to the...
Z3_mk_and
Z3_ast Z3_API Z3_mk_and(Z3_context c, unsigned num_args, Z3_ast const args[])
Create an AST node representing args[0] and ... and args[num_args-1].
Z3_interrupt
void Z3_API Z3_interrupt(Z3_context c)
Interrupt the execution of a Z3 procedure. This procedure can be used to interrupt: solvers,...
Z3_mk_str_to_int
Z3_ast Z3_API Z3_mk_str_to_int(Z3_context c, Z3_ast s)
Convert string to integer.
Z3_goal_assert
void Z3_API Z3_goal_assert(Z3_context c, Z3_goal g, Z3_ast a)
Add a new formula a to the given goal. The formula is split according to the following procedure that...
Z3_param_descrs_get_name
Z3_symbol Z3_API Z3_param_descrs_get_name(Z3_context c, Z3_param_descrs p, unsigned i)
Return the name of the parameter at given index i.
Z3_func_decl_to_string
Z3_string Z3_API Z3_func_decl_to_string(Z3_context c, Z3_func_decl d)
Z3_error_handler
void Z3_error_handler(Z3_context c, Z3_error_code e)
Z3 custom error handler (See Z3_set_error_handler).
Definition: z3_api.h:1383
Z3_func_entry_get_value
Z3_ast Z3_API Z3_func_entry_get_value(Z3_context c, Z3_func_entry e)
Return the value of this point.
Z3_is_quantifier_exists
bool Z3_API Z3_is_quantifier_exists(Z3_context c, Z3_ast a)
Determine if ast is an existential quantifier.
Z3_mk_uninterpreted_sort
Z3_sort Z3_API Z3_mk_uninterpreted_sort(Z3_context c, Z3_symbol s)
Create a free (uninterpreted) type using the given name (symbol).
Z3_get_numeral_small
bool Z3_API Z3_get_numeral_small(Z3_context c, Z3_ast a, int64_t *num, int64_t *den)
Return numeral value, as a pair of 64 bit numbers if the representation fits.
Z3_mk_false
Z3_ast Z3_API Z3_mk_false(Z3_context c)
Create an AST node representing false.
Z3_mk_datatype
Z3_sort Z3_API Z3_mk_datatype(Z3_context c, Z3_symbol name, unsigned num_constructors, Z3_constructor constructors[])
Create datatype, such as lists, trees, records, enumerations or unions of records....
Z3_solver_check
Z3_lbool Z3_API Z3_solver_check(Z3_context c, Z3_solver s)
Check whether the assertions in a given solver are consistent or not.
Z3_mk_rotate_right
Z3_ast Z3_API Z3_mk_rotate_right(Z3_context c, unsigned i, Z3_ast t1)
Rotate bits of t1 to the right i times.
Z3_get_pattern
Z3_ast Z3_API Z3_get_pattern(Z3_context c, Z3_pattern p, unsigned idx)
Return i'th ast in pattern.
Z3_mk_bvmul
Z3_ast Z3_API Z3_mk_bvmul(Z3_context c, Z3_ast t1, Z3_ast t2)
Standard two's complement multiplication.
Z3_mk_seq_at
Z3_ast Z3_API Z3_mk_seq_at(Z3_context c, Z3_ast s, Z3_ast index)
Retrieve from s the unit sequence positioned at position index. The sequence is empty if the index is...
Z3_finalize_memory
void Z3_API Z3_finalize_memory(void)
Destroy all allocated resources.
Z3_goal_convert_model
Z3_model Z3_API Z3_goal_convert_model(Z3_context c, Z3_goal g, Z3_model m)
Convert a model of the formulas of a goal to a model of an original goal. The model may be null,...
Z3_del_constructor
void Z3_API Z3_del_constructor(Z3_context c, Z3_constructor constr)
Reclaim memory allocated to constructor.
Z3_mk_bvsgt
Z3_ast Z3_API Z3_mk_bvsgt(Z3_context c, Z3_ast t1, Z3_ast t2)
Two's complement signed greater than.
Z3_ast_to_string
Z3_string Z3_API Z3_ast_to_string(Z3_context c, Z3_ast a)
Convert the given AST node into a string.
Z3_mk_re_complement
Z3_ast Z3_API Z3_mk_re_complement(Z3_context c, Z3_ast re)
Create the complement of the regular language re.
Z3_mk_context_rc
Z3_context Z3_API Z3_mk_context_rc(Z3_config c)
Create a context using the given configuration. This function is similar to Z3_mk_context....
Z3_solver_get_assertions
Z3_ast_vector Z3_API Z3_solver_get_assertions(Z3_context c, Z3_solver s)
Return the set of asserted formulas on the solver.
Z3_get_full_version
Z3_string Z3_API Z3_get_full_version(void)
Return a string that fully describes the version of Z3 in use.
Z3_enable_trace
void Z3_API Z3_enable_trace(Z3_string tag)
Enable tracing messages tagged as tag when Z3 is compiled in debug mode. It is a NOOP otherwise.
Z3_mk_solver_from_tactic
Z3_solver Z3_API Z3_mk_solver_from_tactic(Z3_context c, Z3_tactic t)
Create a new solver that is implemented using the given tactic. The solver supports the commands Z3_s...
Z3_mk_lambda
Z3_ast Z3_API Z3_mk_lambda(Z3_context c, unsigned num_decls, Z3_sort const sorts[], Z3_symbol const decl_names[], Z3_ast body)
Create a lambda expression. It takes an expression body that contains bound variables of the same sor...
Z3_ast_opt
#define Z3_ast_opt
Definition: z3_api.h:15
Z3_mk_set_complement
Z3_ast Z3_API Z3_mk_set_complement(Z3_context c, Z3_ast arg)
Take the complement of a set.
Z3_get_quantifier_num_patterns
unsigned Z3_API Z3_get_quantifier_num_patterns(Z3_context c, Z3_ast a)
Return number of patterns used in quantifier.
Z3_get_quantifier_bound_name
Z3_symbol Z3_API Z3_get_quantifier_bound_name(Z3_context c, Z3_ast a, unsigned i)
Return symbol of the i'th bound variable.
Z3_simplify_get_help
Z3_string Z3_API Z3_simplify_get_help(Z3_context c)
Return a string describing all available parameters.
Z3_get_num_probes
unsigned Z3_API Z3_get_num_probes(Z3_context c)
Return the number of builtin probes available in Z3.
Z3_stats_is_uint
bool Z3_API Z3_stats_is_uint(Z3_context c, Z3_stats s, unsigned idx)
Return true if the given statistical data is a unsigned integer.
Z3_stats_is_double
bool Z3_API Z3_stats_is_double(Z3_context c, Z3_stats s, unsigned idx)
Return true if the given statistical data is a double.
Z3_model_get_num_consts
unsigned Z3_API Z3_model_get_num_consts(Z3_context c, Z3_model m)
Return the number of constants assigned by the given model.
Z3_get_algebraic_number_lower
Z3_ast Z3_API Z3_get_algebraic_number_lower(Z3_context c, Z3_ast a, unsigned precision)
Return a lower bound for the given real algebraic number. The interval isolating the number is smalle...
Z3_get_lstring
Z3_char_ptr Z3_API Z3_get_lstring(Z3_context c, Z3_ast s, unsigned *length)
Retrieve the unescaped string constant stored in s.
Z3_mk_extract
Z3_ast Z3_API Z3_mk_extract(Z3_context c, unsigned high, unsigned low, Z3_ast t1)
Extract the bits high down to low from a bit-vector of size m to yield a new bit-vector of size n,...
Z3_mk_iff
Z3_ast Z3_API Z3_mk_iff(Z3_context c, Z3_ast t1, Z3_ast t2)
Create an AST node representing t1 iff t2.
Z3_mk_mod
Z3_ast Z3_API Z3_mk_mod(Z3_context c, Z3_ast arg1, Z3_ast arg2)
Create an AST node representing arg1 mod arg2.
Z3_solver_interrupt
void Z3_API Z3_solver_interrupt(Z3_context c, Z3_solver s)
Solver local interrupt. Normally you should use Z3_interrupt to cancel solvers because only one solve...
Z3_mk_bvredand
Z3_ast Z3_API Z3_mk_bvredand(Z3_context c, Z3_ast t1)
Take conjunction of bits in vector, return vector of length 1.
Z3_mk_set_add
Z3_ast Z3_API Z3_mk_set_add(Z3_context c, Z3_ast set, Z3_ast elem)
Add an element to a set.
Z3_mk_ge
Z3_ast Z3_API Z3_mk_ge(Z3_context c, Z3_ast t1, Z3_ast t2)
Create greater than or equal to.
Z3_mk_bvadd_no_underflow
Z3_ast Z3_API Z3_mk_bvadd_no_underflow(Z3_context c, Z3_ast t1, Z3_ast t2)
Create a predicate that checks that the bit-wise signed addition of t1 and t2 does not underflow.
Z3_fixed_eh
void Z3_fixed_eh(void *ctx, Z3_solver_callback cb, unsigned id, Z3_ast value)
Definition: z3_api.h:1392
Z3_update_param_value
void Z3_API Z3_update_param_value(Z3_context c, Z3_string param_id, Z3_string param_value)
Set a value of a context parameter.
Z3_mk_bvadd_no_overflow
Z3_ast Z3_API Z3_mk_bvadd_no_overflow(Z3_context c, Z3_ast t1, Z3_ast t2, bool is_signed)
Create a predicate that checks that the bit-wise addition of t1 and t2 does not overflow.
Z3_set_ast_print_mode
void Z3_API Z3_set_ast_print_mode(Z3_context c, Z3_ast_print_mode mode)
Select mode for the format used for pretty-printing AST nodes.
Z3_mk_array_default
Z3_ast Z3_API Z3_mk_array_default(Z3_context c, Z3_ast array)
Access the array default value. Produces the default range value, for arrays that can be represented ...
Z3_datatype_update_field
Z3_ast Z3_API Z3_datatype_update_field(Z3_context c, Z3_func_decl field_access, Z3_ast t, Z3_ast value)
Update record field with a value.
Z3_char_ptr
char const * Z3_char_ptr
Definition: z3_api.h:85
Z3_mk_quantifier_const
Z3_ast Z3_API Z3_mk_quantifier_const(Z3_context c, bool is_forall, unsigned weight, unsigned num_bound, Z3_app const bound[], unsigned num_patterns, Z3_pattern const patterns[], Z3_ast body)
Create a universal or existential quantifier using a list of constants that will form the set of boun...
Z3_mk_forall_const
Z3_ast Z3_API Z3_mk_forall_const(Z3_context c, unsigned weight, unsigned num_bound, Z3_app const bound[], unsigned num_patterns, Z3_pattern const patterns[], Z3_ast body)
Create a universal quantifier using a list of constants that will form the set of bound variables.
Z3_model_get_num_sorts
unsigned Z3_API Z3_model_get_num_sorts(Z3_context c, Z3_model m)
Return the number of uninterpreted sorts that m assigns an interpretation to.
Z3_param_kind
Z3_param_kind
The different kinds of parameters that can be associated with parameter sets. (see Z3_mk_params).
Definition: z3_api.h:1317
Z3_PK_DOUBLE
@ Z3_PK_DOUBLE
Definition: z3_api.h:1320
Z3_PK_SYMBOL
@ Z3_PK_SYMBOL
Definition: z3_api.h:1321
Z3_PK_BOOL
@ Z3_PK_BOOL
Definition: z3_api.h:1319
Z3_PK_OTHER
@ Z3_PK_OTHER
Definition: z3_api.h:1323
Z3_PK_UINT
@ Z3_PK_UINT
Definition: z3_api.h:1318
Z3_PK_INVALID
@ Z3_PK_INVALID
Definition: z3_api.h:1324
Z3_PK_STRING
@ Z3_PK_STRING
Definition: z3_api.h:1322
Z3_get_pattern_num_terms
unsigned Z3_API Z3_get_pattern_num_terms(Z3_context c, Z3_pattern p)
Return number of terms in pattern.
Z3_string
const char * Z3_string
Z3 string type. It is just an alias for const char *.
Definition: z3_api.h:84
Z3_mk_constructor
Z3_constructor Z3_API Z3_mk_constructor(Z3_context c, Z3_symbol name, Z3_symbol recognizer, unsigned num_fields, Z3_symbol const field_names[], Z3_sort_opt const sorts[], unsigned sort_refs[])
Create a constructor.
Z3_tactic_get_param_descrs
Z3_param_descrs Z3_API Z3_tactic_get_param_descrs(Z3_context c, Z3_tactic t)
Return the parameter description set for the given tactic object.
Z3_mk_tuple_sort
Z3_sort Z3_API Z3_mk_tuple_sort(Z3_context c, Z3_symbol mk_tuple_name, unsigned num_fields, Z3_symbol const field_names[], Z3_sort const field_sorts[], Z3_func_decl *mk_tuple_decl, Z3_func_decl proj_decl[])
Create a tuple type.
Z3_func_entry_inc_ref
void Z3_API Z3_func_entry_inc_ref(Z3_context c, Z3_func_entry e)
Increment the reference counter of the given Z3_func_entry object.
Z3_mk_fresh_const
Z3_ast Z3_API Z3_mk_fresh_const(Z3_context c, Z3_string prefix, Z3_sort ty)
Declare and create a fresh constant.
Z3_mk_bvsub_no_overflow
Z3_ast Z3_API Z3_mk_bvsub_no_overflow(Z3_context c, Z3_ast t1, Z3_ast t2)
Create a predicate that checks that the bit-wise signed subtraction of t1 and t2 does not overflow.
Z3_sort_kind
Z3_sort_kind
The different kinds of Z3 types (See Z3_get_sort_kind).
Definition: z3_api.h:150
Z3_RELATION_SORT
@ Z3_RELATION_SORT
Definition: z3_api.h:158
Z3_BOOL_SORT
@ Z3_BOOL_SORT
Definition: z3_api.h:152
Z3_ROUNDING_MODE_SORT
@ Z3_ROUNDING_MODE_SORT
Definition: z3_api.h:161
Z3_UNKNOWN_SORT
@ Z3_UNKNOWN_SORT
Definition: z3_api.h:164
Z3_BV_SORT
@ Z3_BV_SORT
Definition: z3_api.h:155
Z3_DATATYPE_SORT
@ Z3_DATATYPE_SORT
Definition: z3_api.h:157
Z3_INT_SORT
@ Z3_INT_SORT
Definition: z3_api.h:153
Z3_FINITE_DOMAIN_SORT
@ Z3_FINITE_DOMAIN_SORT
Definition: z3_api.h:159
Z3_RE_SORT
@ Z3_RE_SORT
Definition: z3_api.h:163
Z3_UNINTERPRETED_SORT
@ Z3_UNINTERPRETED_SORT
Definition: z3_api.h:151
Z3_FLOATING_POINT_SORT
@ Z3_FLOATING_POINT_SORT
Definition: z3_api.h:160
Z3_ARRAY_SORT
@ Z3_ARRAY_SORT
Definition: z3_api.h:156
Z3_REAL_SORT
@ Z3_REAL_SORT
Definition: z3_api.h:154
Z3_SEQ_SORT
@ Z3_SEQ_SORT
Definition: z3_api.h:162
Z3_solver_push
void Z3_API Z3_solver_push(Z3_context c, Z3_solver s)
Create a backtracking point.
Z3_mk_bvsub_no_underflow
Z3_ast Z3_API Z3_mk_bvsub_no_underflow(Z3_context c, Z3_ast t1, Z3_ast t2, bool is_signed)
Create a predicate that checks that the bit-wise subtraction of t1 and t2 does not underflow.
Z3_goal_translate
Z3_goal Z3_API Z3_goal_translate(Z3_context source, Z3_goal g, Z3_context target)
Copy a goal g from the context source to the context target.
Z3_tactic_fail_if_not_decided
Z3_tactic Z3_API Z3_tactic_fail_if_not_decided(Z3_context c)
Return a tactic that fails if the goal is not trivially satisfiable (i.e., empty) or trivially unsati...
Z3_to_app
Z3_app Z3_API Z3_to_app(Z3_context c, Z3_ast a)
Convert an ast into an APP_AST. This is just type casting.
Z3_mk_bvudiv
Z3_ast Z3_API Z3_mk_bvudiv(Z3_context c, Z3_ast t1, Z3_ast t2)
Unsigned division.
Z3_solver_get_trail
Z3_ast_vector Z3_API Z3_solver_get_trail(Z3_context c, Z3_solver s)
Return the trail modulo model conversion, in order of decision level The decision level can be retrie...
Z3_mk_quantifier_ex
Z3_ast Z3_API Z3_mk_quantifier_ex(Z3_context c, bool is_forall, unsigned weight, Z3_symbol quantifier_id, Z3_symbol skolem_id, unsigned num_patterns, Z3_pattern const patterns[], unsigned num_no_patterns, Z3_ast const no_patterns[], unsigned num_decls, Z3_sort const sorts[], Z3_symbol const decl_names[], Z3_ast body)
Create a quantifier - universal or existential, with pattern hints, no patterns, and attributes.
Z3_mk_bvshl
Z3_ast Z3_API Z3_mk_bvshl(Z3_context c, Z3_ast t1, Z3_ast t2)
Shift left.
Z3_set_error
void Z3_API Z3_set_error(Z3_context c, Z3_error_code e)
Set an error.
Z3_mk_tree_order
Z3_func_decl Z3_API Z3_mk_tree_order(Z3_context c, Z3_sort a, unsigned id)
create a tree ordering relation over signature a identified using index id.
Z3_is_numeral_ast
bool Z3_API Z3_is_numeral_ast(Z3_context c, Z3_ast a)
Z3_mk_bvsrem
Z3_ast Z3_API Z3_mk_bvsrem(Z3_context c, Z3_ast t1, Z3_ast t2)
Two's complement signed remainder (sign follows dividend).
Z3_final_eh
void Z3_final_eh(void *ctx, Z3_solver_callback cb)
Definition: z3_api.h:1394
Z3_is_as_array
bool Z3_API Z3_is_as_array(Z3_context c, Z3_ast a)
The (_ as-array f) AST node is a construct for assigning interpretations for arrays in Z3....
Z3_mk_func_decl
Z3_func_decl Z3_API Z3_mk_func_decl(Z3_context c, Z3_symbol s, unsigned domain_size, Z3_sort const domain[], Z3_sort range)
Declare a constant or function.
Z3_goal_num_exprs
unsigned Z3_API Z3_goal_num_exprs(Z3_context c, Z3_goal g)
Return the number of formulas, subformulas and terms in the given goal.
Z3_mk_solver_for_logic
Z3_solver Z3_API Z3_mk_solver_for_logic(Z3_context c, Z3_symbol logic)
Create a new solver customized for the given logic. It behaves like Z3_mk_solver if the logic is unkn...
Z3_mk_is_int
Z3_ast Z3_API Z3_mk_is_int(Z3_context c, Z3_ast t1)
Check if a real number is an integer.
Z3_params_set_bool
void Z3_API Z3_params_set_bool(Z3_context c, Z3_params p, Z3_symbol k, bool v)
Add a Boolean parameter k with value v to the parameter set p.
Z3_apply_result_get_num_subgoals
unsigned Z3_API Z3_apply_result_get_num_subgoals(Z3_context c, Z3_apply_result r)
Return the number of subgoals in the Z3_apply_result object returned by Z3_tactic_apply.
Z3_mk_ite
Z3_ast Z3_API Z3_mk_ite(Z3_context c, Z3_ast t1, Z3_ast t2, Z3_ast t3)
Create an AST node representing an if-then-else: ite(t1, t2, t3).
Z3_mk_select
Z3_ast Z3_API Z3_mk_select(Z3_context c, Z3_ast a, Z3_ast i)
Array read. The argument a is the array and i is the index of the array that gets read.
Z3_mk_sign_ext
Z3_ast Z3_API Z3_mk_sign_ext(Z3_context c, unsigned i, Z3_ast t1)
Sign-extend of the given bit-vector to the (signed) equivalent bit-vector of size m+i,...
Z3_mk_seq_unit
Z3_ast Z3_API Z3_mk_seq_unit(Z3_context c, Z3_ast a)
Create a unit sequence of a.
Z3_mk_re_intersect
Z3_ast Z3_API Z3_mk_re_intersect(Z3_context c, unsigned n, Z3_ast const args[])
Create the intersection of the regular languages.
Z3_solver_cube
Z3_ast_vector Z3_API Z3_solver_cube(Z3_context c, Z3_solver s, Z3_ast_vector vars, unsigned backtrack_level)
extract a next cube for a solver. The last cube is the constant true or false. The number of (non-con...
Z3_goal_size
unsigned Z3_API Z3_goal_size(Z3_context c, Z3_goal g)
Return the number of formulas in the given goal.
Z3_stats_inc_ref
void Z3_API Z3_stats_inc_ref(Z3_context c, Z3_stats s)
Increment the reference counter of the given statistics object.
Z3_mk_select_n
Z3_ast Z3_API Z3_mk_select_n(Z3_context c, Z3_ast a, unsigned n, Z3_ast const *idxs)
n-ary Array read. The argument a is the array and idxs are the indices of the array that gets read.
Z3_is_string_sort
bool Z3_API Z3_is_string_sort(Z3_context c, Z3_sort s)
Check if s is a string sort.
Z3_mk_div
Z3_ast Z3_API Z3_mk_div(Z3_context c, Z3_ast arg1, Z3_ast arg2)
Create an AST node representing arg1 div arg2.
Z3_tactic_fail
Z3_tactic Z3_API Z3_tactic_fail(Z3_context c)
Return a tactic that always fails.
Z3_app_to_ast
Z3_ast Z3_API Z3_app_to_ast(Z3_context c, Z3_app a)
Convert a Z3_app into Z3_ast. This is just type casting.
Z3_mk_pbge
Z3_ast Z3_API Z3_mk_pbge(Z3_context c, unsigned num_args, Z3_ast const args[], int const coeffs[], int k)
Pseudo-Boolean relations.
Z3_mk_re_sort
Z3_sort Z3_API Z3_mk_re_sort(Z3_context c, Z3_sort seq)
Create a regular expression sort out of a sequence sort.
Z3_mk_pble
Z3_ast Z3_API Z3_mk_pble(Z3_context c, unsigned num_args, Z3_ast const args[], int const coeffs[], int k)
Pseudo-Boolean relations.
Z3_model_dec_ref
void Z3_API Z3_model_dec_ref(Z3_context c, Z3_model m)
Decrement the reference counter of the given model.
Z3_mk_exists
Z3_ast Z3_API Z3_mk_exists(Z3_context c, unsigned weight, unsigned num_patterns, Z3_pattern const patterns[], unsigned num_decls, Z3_sort const sorts[], Z3_symbol const decl_names[], Z3_ast body)
Create an exists formula. Similar to Z3_mk_forall.
Z3_func_interp_inc_ref
void Z3_API Z3_func_interp_inc_ref(Z3_context c, Z3_func_interp f)
Increment the reference counter of the given Z3_func_interp object.
Z3_mk_piecewise_linear_order
Z3_func_decl Z3_API Z3_mk_piecewise_linear_order(Z3_context c, Z3_sort a, unsigned id)
create a piecewise linear ordering relation over signature a and index id.
Z3_params_set_double
void Z3_API Z3_params_set_double(Z3_context c, Z3_params p, Z3_symbol k, double v)
Add a double parameter k with value v to the parameter set p.
Z3_pattern_to_string
Z3_string Z3_API Z3_pattern_to_string(Z3_context c, Z3_pattern p)
Z3_param_descrs_get_documentation
Z3_string Z3_API Z3_param_descrs_get_documentation(Z3_context c, Z3_param_descrs p, Z3_symbol s)
Retrieve documentation string corresponding to parameter name s.
Z3_mk_solver
Z3_solver Z3_API Z3_mk_solver(Z3_context c)
Create a new solver. This solver is a "combined solver" (see combined_solver module) that internally ...
Z3_solver_get_model
Z3_model Z3_API Z3_solver_get_model(Z3_context c, Z3_solver s)
Retrieve the model for the last Z3_solver_check or Z3_solver_check_assumptions.
Z3_get_symbol_int
int Z3_API Z3_get_symbol_int(Z3_context c, Z3_symbol s)
Return the symbol int value.
Z3_get_as_array_func_decl
Z3_func_decl Z3_API Z3_get_as_array_func_decl(Z3_context c, Z3_ast a)
Return the function declaration f associated with a (_ as_array f) node.
Z3_mk_ext_rotate_left
Z3_ast Z3_API Z3_mk_ext_rotate_left(Z3_context c, Z3_ast t1, Z3_ast t2)
Rotate bits of t1 to the left t2 times.
Z3_goal_inc_ref
void Z3_API Z3_goal_inc_ref(Z3_context c, Z3_goal g)
Increment the reference counter of the given goal.
Z3_tactic_par_or
Z3_tactic Z3_API Z3_tactic_par_or(Z3_context c, unsigned num, Z3_tactic const ts[])
Return a tactic that applies the given tactics in parallel.
Z3_mk_implies
Z3_ast Z3_API Z3_mk_implies(Z3_context c, Z3_ast t1, Z3_ast t2)
Create an AST node representing t1 implies t2.
DEFINE_TYPE
DEFINE_TYPE(Z3_symbol)
Z3_get_datatype_sort_num_constructors
unsigned Z3_API Z3_get_datatype_sort_num_constructors(Z3_context c, Z3_sort t)
Return number of constructors for datatype.
Z3_params_set_uint
void Z3_API Z3_params_set_uint(Z3_context c, Z3_params p, Z3_symbol k, unsigned v)
Add a unsigned parameter k with value v to the parameter set p.
Z3_solver_check_assumptions
Z3_lbool Z3_API Z3_solver_check_assumptions(Z3_context c, Z3_solver s, unsigned num_assumptions, Z3_ast const assumptions[])
Check whether the assertions in the given solver and optional assumptions are consistent or not.
Z3_model_get_sort
Z3_sort Z3_API Z3_model_get_sort(Z3_context c, Z3_model m, unsigned i)
Return a uninterpreted sort that m assigns an interpretation.
Z3_mk_bvashr
Z3_ast Z3_API Z3_mk_bvashr(Z3_context c, Z3_ast t1, Z3_ast t2)
Arithmetic shift right.
Z3_mk_bv2int
Z3_ast Z3_API Z3_mk_bv2int(Z3_context c, Z3_ast t1, bool is_signed)
Create an integer from the bit-vector argument t1. If is_signed is false, then the bit-vector t1 is t...
Z3_solver_import_model_converter
void Z3_API Z3_solver_import_model_converter(Z3_context ctx, Z3_solver src, Z3_solver dst)
Ad-hoc method for importing model conversion from solver.
Z3_mk_set_del
Z3_ast Z3_API Z3_mk_set_del(Z3_context c, Z3_ast set, Z3_ast elem)
Remove an element to a set.
Z3_mk_bvmul_no_overflow
Z3_ast Z3_API Z3_mk_bvmul_no_overflow(Z3_context c, Z3_ast t1, Z3_ast t2, bool is_signed)
Create a predicate that checks that the bit-wise multiplication of t1 and t2 does not overflow.
Z3_mk_re_union
Z3_ast Z3_API Z3_mk_re_union(Z3_context c, unsigned n, Z3_ast const args[])
Create the union of the regular languages.
Z3_mk_bvor
Z3_ast Z3_API Z3_mk_bvor(Z3_context c, Z3_ast t1, Z3_ast t2)
Bitwise or.
Z3_get_decl_int_parameter
int Z3_API Z3_get_decl_int_parameter(Z3_context c, Z3_func_decl d, unsigned idx)
Return the integer value associated with an integer parameter.
Z3_get_quantifier_num_no_patterns
unsigned Z3_API Z3_get_quantifier_num_no_patterns(Z3_context c, Z3_ast a)
Return number of no_patterns used in quantifier.
Z3_get_datatype_sort_constructor
Z3_func_decl Z3_API Z3_get_datatype_sort_constructor(Z3_context c, Z3_sort t, unsigned idx)
Return idx'th constructor.
Z3_lbool
Z3_lbool
Lifted Boolean type: false, undefined, true.
Definition: z3_api.h:102
Z3_L_TRUE
@ Z3_L_TRUE
Definition: z3_api.h:105
Z3_L_FALSE
@ Z3_L_FALSE
Definition: z3_api.h:103
Z3_L_UNDEF
@ Z3_L_UNDEF
Definition: z3_api.h:104
Z3_mk_seq_empty
Z3_ast Z3_API Z3_mk_seq_empty(Z3_context c, Z3_sort seq)
Create an empty sequence of the sequence sort seq.
Z3_mk_probe
Z3_probe Z3_API Z3_mk_probe(Z3_context c, Z3_string name)
Return a probe associated with the given name. The complete list of probes may be obtained using the ...
Z3_mk_quantifier_const_ex
Z3_ast Z3_API Z3_mk_quantifier_const_ex(Z3_context c, bool is_forall, unsigned weight, Z3_symbol quantifier_id, Z3_symbol skolem_id, unsigned num_bound, Z3_app const bound[], unsigned num_patterns, Z3_pattern const patterns[], unsigned num_no_patterns, Z3_ast const no_patterns[], Z3_ast body)
Create a universal or existential quantifier using a list of constants that will form the set of boun...
Z3_tactic_when
Z3_tactic Z3_API Z3_tactic_when(Z3_context c, Z3_probe p, Z3_tactic t)
Return a tactic that applies t to a given goal is the probe p evaluates to true. If p evaluates to fa...
Z3_mk_seq_suffix
Z3_ast Z3_API Z3_mk_seq_suffix(Z3_context c, Z3_ast suffix, Z3_ast s)
Check if suffix is a suffix of s.
Z3_mk_pattern
Z3_pattern Z3_API Z3_mk_pattern(Z3_context c, unsigned num_patterns, Z3_ast const terms[])
Create a pattern for quantifier instantiation.
Z3_get_symbol_kind
Z3_symbol_kind Z3_API Z3_get_symbol_kind(Z3_context c, Z3_symbol s)
Return Z3_INT_SYMBOL if the symbol was constructed using Z3_mk_int_symbol, and Z3_STRING_SYMBOL if th...
Z3_get_re_sort_basis
Z3_sort Z3_API Z3_get_re_sort_basis(Z3_context c, Z3_sort s)
Retrieve basis sort for regex sort.
Z3_mk_set_sort
Z3_sort Z3_API Z3_mk_set_sort(Z3_context c, Z3_sort ty)
Create Set type.
Z3_is_lambda
bool Z3_API Z3_is_lambda(Z3_context c, Z3_ast a)
Determine if ast is a lambda expression.
Z3_solver_translate
Z3_solver Z3_API Z3_solver_translate(Z3_context source, Z3_solver s, Z3_context target)
Copy a solver s from the context source to the context target.
Z3_solver_get_help
Z3_string Z3_API Z3_solver_get_help(Z3_context c, Z3_solver s)
Return a string describing all solver available parameters.
Z3_stats_get_uint_value
unsigned Z3_API Z3_stats_get_uint_value(Z3_context c, Z3_stats s, unsigned idx)
Return the unsigned value of the given statistical data.
Z3_probe_inc_ref
void Z3_API Z3_probe_inc_ref(Z3_context c, Z3_probe p)
Increment the reference counter of the given probe.
Z3_get_array_sort_domain
Z3_sort Z3_API Z3_get_array_sort_domain(Z3_context c, Z3_sort t)
Return the domain of the given array sort. In the case of a multi-dimensional array,...
Z3_mk_bvmul_no_underflow
Z3_ast Z3_API Z3_mk_bvmul_no_underflow(Z3_context c, Z3_ast t1, Z3_ast t2)
Create a predicate that checks that the bit-wise signed multiplication of t1 and t2 does not underflo...
Z3_get_probe_name
Z3_string Z3_API Z3_get_probe_name(Z3_context c, unsigned i)
Return the name of the i probe.
Z3_func_decl_to_ast
Z3_ast Z3_API Z3_func_decl_to_ast(Z3_context c, Z3_func_decl f)
Convert a Z3_func_decl into Z3_ast. This is just type casting.
Z3_get_numeral_uint64
bool Z3_API Z3_get_numeral_uint64(Z3_context c, Z3_ast v, uint64_t *u)
Similar to Z3_get_numeral_string, but only succeeds if the value can fit in a machine uint64_t int....
Z3_add_const_interp
void Z3_API Z3_add_const_interp(Z3_context c, Z3_model m, Z3_func_decl f, Z3_ast a)
Add a constant interpretation.
Z3_sort_to_string
Z3_string Z3_API Z3_sort_to_string(Z3_context c, Z3_sort s)
Z3_mk_bvadd
Z3_ast Z3_API Z3_mk_bvadd(Z3_context c, Z3_ast t1, Z3_ast t2)
Standard two's complement addition.
Z3_params_dec_ref
void Z3_API Z3_params_dec_ref(Z3_context c, Z3_params p)
Decrement the reference counter of the given parameter set.
Z3_get_app_arg
Z3_ast Z3_API Z3_get_app_arg(Z3_context c, Z3_app a, unsigned i)
Return the i-th argument of the given application.
Z3_mk_str_lt
Z3_ast Z3_API Z3_mk_str_lt(Z3_context c, Z3_ast prefix, Z3_ast s)
Check if s1 is lexicographically strictly less than s2.
Z3_model_to_string
Z3_string Z3_API Z3_model_to_string(Z3_context c, Z3_model m)
Convert the given model into a string.
Z3_tactic_get_help
Z3_string Z3_API Z3_tactic_get_help(Z3_context c, Z3_tactic t)
Return a string containing a description of parameters accepted by the given tactic.
Z3_mk_fresh_func_decl
Z3_func_decl Z3_API Z3_mk_fresh_func_decl(Z3_context c, Z3_string prefix, unsigned domain_size, Z3_sort const domain[], Z3_sort range)
Declare a fresh constant or function.
Z3_solver_propagate_final
void Z3_API Z3_solver_propagate_final(Z3_context c, Z3_solver s, Z3_final_eh final_eh)
register a callback on final check. This provides freedom to the propagator to delay actions or imple...
Z3_param_descrs_size
unsigned Z3_API Z3_param_descrs_size(Z3_context c, Z3_param_descrs p)
Return the number of parameters in the given parameter description set.
Z3_parameter_kind
Z3_parameter_kind
The different kinds of parameters that can be associated with function symbols.
Definition: z3_api.h:136
Z3_PARAMETER_INT
@ Z3_PARAMETER_INT
Definition: z3_api.h:137
Z3_PARAMETER_FUNC_DECL
@ Z3_PARAMETER_FUNC_DECL
Definition: z3_api.h:143
Z3_PARAMETER_SORT
@ Z3_PARAMETER_SORT
Definition: z3_api.h:141
Z3_PARAMETER_RATIONAL
@ Z3_PARAMETER_RATIONAL
Definition: z3_api.h:139
Z3_PARAMETER_AST
@ Z3_PARAMETER_AST
Definition: z3_api.h:142
Z3_PARAMETER_DOUBLE
@ Z3_PARAMETER_DOUBLE
Definition: z3_api.h:138
Z3_PARAMETER_SYMBOL
@ Z3_PARAMETER_SYMBOL
Definition: z3_api.h:140
Z3_parse_smtlib2_string
Z3_ast_vector Z3_API Z3_parse_smtlib2_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[])
Parse the given string using the SMT-LIB2 parser.
Z3_get_tuple_sort_mk_decl
Z3_func_decl Z3_API Z3_get_tuple_sort_mk_decl(Z3_context c, Z3_sort t)
Return the constructor declaration of the given tuple sort.
Z3_goal_to_dimacs_string
Z3_string Z3_API Z3_goal_to_dimacs_string(Z3_context c, Z3_goal g, bool include_names)
Convert a goal into a DIMACS formatted string. The goal must be in CNF. You can convert a goal to CNF...
Z3_mk_lt
Z3_ast Z3_API Z3_mk_lt(Z3_context c, Z3_ast t1, Z3_ast t2)
Create less than.
Z3_get_quantifier_no_pattern_ast
Z3_ast Z3_API Z3_get_quantifier_no_pattern_ast(Z3_context c, Z3_ast a, unsigned i)
Return i'th no_pattern.
Z3_stats_get_double_value
double Z3_API Z3_stats_get_double_value(Z3_context c, Z3_stats s, unsigned idx)
Return the double value of the given statistical data.
Z3_mk_bvugt
Z3_ast Z3_API Z3_mk_bvugt(Z3_context c, Z3_ast t1, Z3_ast t2)
Unsigned greater than.
Z3_get_num_tactics
unsigned Z3_API Z3_get_num_tactics(Z3_context c)
Return the number of builtin tactics available in Z3.
Z3_goal_depth
unsigned Z3_API Z3_goal_depth(Z3_context c, Z3_goal g)
Return the depth of the given goal. It tracks how many transformations were applied to it.
Z3_update_term
Z3_ast Z3_API Z3_update_term(Z3_context c, Z3_ast a, unsigned num_args, Z3_ast const args[])
Update the arguments of term a using the arguments args. The number of arguments num_args should coin...
Z3_get_symbol_string
Z3_string Z3_API Z3_get_symbol_string(Z3_context c, Z3_symbol s)
Return the symbol name.
Z3_get_bool_value
Z3_lbool Z3_API Z3_get_bool_value(Z3_context c, Z3_ast a)
Return Z3_L_TRUE if a is true, Z3_L_FALSE if it is false, and Z3_L_UNDEF otherwise.
Z3_pattern_to_ast
Z3_ast Z3_API Z3_pattern_to_ast(Z3_context c, Z3_pattern p)
Convert a Z3_pattern into Z3_ast. This is just type casting.
Z3_mk_bvnot
Z3_ast Z3_API Z3_mk_bvnot(Z3_context c, Z3_ast t1)
Bitwise negation.
Z3_mk_bvurem
Z3_ast Z3_API Z3_mk_bvurem(Z3_context c, Z3_ast t1, Z3_ast t2)
Unsigned remainder.
Z3_mk_datatypes
void Z3_API Z3_mk_datatypes(Z3_context c, unsigned num_sorts, Z3_symbol const sort_names[], Z3_sort sorts[], Z3_constructor_list constructor_lists[])
Create mutually recursive datatypes.
Z3_func_interp_get_arity
unsigned Z3_API Z3_func_interp_get_arity(Z3_context c, Z3_func_interp f)
Return the arity (number of arguments) of the given function interpretation.
Z3_solver_get_non_units
Z3_ast_vector Z3_API Z3_solver_get_non_units(Z3_context c, Z3_solver s)
Return the set of non units in the solver state.
Z3_is_eq_func_decl
bool Z3_API Z3_is_eq_func_decl(Z3_context c, Z3_func_decl f1, Z3_func_decl f2)
Compare terms.
Z3_mk_seq_to_re
Z3_ast Z3_API Z3_mk_seq_to_re(Z3_context c, Z3_ast seq)
Create a regular expression that accepts the sequence seq.
Z3_mk_bvsub
Z3_ast Z3_API Z3_mk_bvsub(Z3_context c, Z3_ast t1, Z3_ast t2)
Standard two's complement subtraction.
Z3_get_relation_arity
unsigned Z3_API Z3_get_relation_arity(Z3_context c, Z3_sort s)
Return arity of relation.
Z3_mk_seq_index
Z3_ast Z3_API Z3_mk_seq_index(Z3_context c, Z3_ast s, Z3_ast substr, Z3_ast offset)
Return index of first occurrence of substr in s starting from offset offset. If s does not contain su...
Z3_get_algebraic_number_upper
Z3_ast Z3_API Z3_get_algebraic_number_upper(Z3_context c, Z3_ast a, unsigned precision)
Return a upper bound for the given real algebraic number. The interval isolating the number is smalle...
Z3_mk_power
Z3_ast Z3_API Z3_mk_power(Z3_context c, Z3_ast arg1, Z3_ast arg2)
Create an AST node representing arg1 ^ arg2.
Z3_mk_seq_concat
Z3_ast Z3_API Z3_mk_seq_concat(Z3_context c, unsigned n, Z3_ast const args[])
Concatenate sequences.
Z3_mk_enumeration_sort
Z3_sort Z3_API Z3_mk_enumeration_sort(Z3_context c, Z3_symbol name, unsigned n, Z3_symbol const enum_names[], Z3_func_decl enum_consts[], Z3_func_decl enum_testers[])
Create a enumeration sort.
Z3_mk_re_range
Z3_ast Z3_API Z3_mk_re_range(Z3_context c, Z3_ast lo, Z3_ast hi)
Create the range regular expression over two sequences of length 1.
Z3_get_bv_sort_size
unsigned Z3_API Z3_get_bv_sort_size(Z3_context c, Z3_sort t)
Return the size of the given bit-vector sort.
Z3_mk_set_member
Z3_ast Z3_API Z3_mk_set_member(Z3_context c, Z3_ast elem, Z3_ast set)
Check for set membership.
Z3_tactic_fail_if
Z3_tactic Z3_API Z3_tactic_fail_if(Z3_context c, Z3_probe p)
Return a tactic that fails if the probe p evaluates to false.
Z3_goal_reset
void Z3_API Z3_goal_reset(Z3_context c, Z3_goal g)
Erase all formulas from the given goal.
Z3_func_interp_dec_ref
void Z3_API Z3_func_interp_dec_ref(Z3_context c, Z3_func_interp f)
Decrement the reference counter of the given Z3_func_interp object.
Z3_probe_dec_ref
void Z3_API Z3_probe_dec_ref(Z3_context c, Z3_probe p)
Decrement the reference counter of the given probe.
Z3_params_inc_ref
void Z3_API Z3_params_inc_ref(Z3_context c, Z3_params p)
Increment the reference counter of the given parameter set.
Z3_set_error_handler
void Z3_API Z3_set_error_handler(Z3_context c, Z3_error_handler h)
Register a Z3 error handler.
Z3_mk_distinct
Z3_ast Z3_API Z3_mk_distinct(Z3_context c, unsigned num_args, Z3_ast const args[])
Create an AST node representing distinct(args[0], ..., args[num_args-1]).
Z3_mk_seq_prefix
Z3_ast Z3_API Z3_mk_seq_prefix(Z3_context c, Z3_ast prefix, Z3_ast s)
Check if prefix is a prefix of s.
Z3_mk_config
Z3_config Z3_API Z3_mk_config(void)
Create a configuration object for the Z3 context object.
Z3_set_param_value
void Z3_API Z3_set_param_value(Z3_config c, Z3_string param_id, Z3_string param_value)
Set a configuration parameter.
Z3_mk_bv_sort
Z3_sort Z3_API Z3_mk_bv_sort(Z3_context c, unsigned sz)
Create a bit-vector type of the given size.
Z3_mk_bvult
Z3_ast Z3_API Z3_mk_bvult(Z3_context c, Z3_ast t1, Z3_ast t2)
Unsigned less than.
Z3_probe_or
Z3_probe Z3_API Z3_probe_or(Z3_context x, Z3_probe p1, Z3_probe p2)
Return a probe that evaluates to "true" when p1 or p2 evaluates to true.
Z3_params_to_string
Z3_string Z3_API Z3_params_to_string(Z3_context c, Z3_params p)
Convert a parameter set into a string. This function is mainly used for printing the contents of a pa...
Z3_solver_propagate_init
void Z3_API Z3_solver_propagate_init(Z3_context c, Z3_solver s, void *user_context, Z3_push_eh push_eh, Z3_pop_eh pop_eh, Z3_fresh_eh fresh_eh)
register a user-properator with the solver.
Z3_model_get_const_decl
Z3_func_decl Z3_API Z3_model_get_const_decl(Z3_context c, Z3_model m, unsigned i)
Return the i-th constant in the given model.
Z3_tactic_dec_ref
void Z3_API Z3_tactic_dec_ref(Z3_context c, Z3_tactic g)
Decrement the reference counter of the given tactic.
Z3_mk_bvnand
Z3_ast Z3_API Z3_mk_bvnand(Z3_context c, Z3_ast t1, Z3_ast t2)
Bitwise nand.
Z3_translate
Z3_ast Z3_API Z3_translate(Z3_context source, Z3_ast a, Z3_context target)
Translate/Copy the AST a from context source to context target. AST a must have been created using co...
Z3_mk_simple_solver
Z3_solver Z3_API Z3_mk_simple_solver(Z3_context c)
Create a new incremental solver.
Z3_get_range
Z3_sort Z3_API Z3_get_range(Z3_context c, Z3_func_decl d)
Return the range of the given declaration.
Z3_global_param_set
void Z3_API Z3_global_param_set(Z3_string param_id, Z3_string param_value)
Set a global (or module) parameter. This setting is shared by all Z3 contexts.
Z3_model_get_sort_universe
Z3_ast_vector Z3_API Z3_model_get_sort_universe(Z3_context c, Z3_model m, Z3_sort s)
Return the finite set of distinct values that represent the interpretation for sort s.
Z3_benchmark_to_smtlib_string
Z3_string Z3_API Z3_benchmark_to_smtlib_string(Z3_context c, Z3_string name, Z3_string logic, Z3_string status, Z3_string attributes, unsigned num_assumptions, Z3_ast const assumptions[], Z3_ast formula)
Convert the given benchmark into SMT-LIB formatted string.
Z3_mk_re_star
Z3_ast Z3_API Z3_mk_re_star(Z3_context c, Z3_ast re)
Create the regular language re*.
Z3_mk_bv_numeral
Z3_ast Z3_API Z3_mk_bv_numeral(Z3_context c, unsigned sz, bool const *bits)
create a bit-vector numeral from a vector of Booleans.
Z3_func_entry_dec_ref
void Z3_API Z3_func_entry_dec_ref(Z3_context c, Z3_func_entry e)
Decrement the reference counter of the given Z3_func_entry object.
Z3_stats_size
unsigned Z3_API Z3_stats_size(Z3_context c, Z3_stats s)
Return the number of statistical data in s.
Z3_append_log
void Z3_API Z3_append_log(Z3_string string)
Append user-defined string to interaction log.
Z3_get_quantifier_body
Z3_ast Z3_API Z3_get_quantifier_body(Z3_context c, Z3_ast a)
Return body of quantifier.
Z3_param_descrs_dec_ref
void Z3_API Z3_param_descrs_dec_ref(Z3_context c, Z3_param_descrs p)
Decrement the reference counter of the given parameter description set.
Z3_mk_re_full
Z3_ast Z3_API Z3_mk_re_full(Z3_context c, Z3_sort re)
Create an universal regular expression of sort re.
Z3_mk_model
Z3_model Z3_API Z3_mk_model(Z3_context c)
Create a fresh model object. It has reference count 0.
Z3_get_decl_name
Z3_symbol Z3_API Z3_get_decl_name(Z3_context c, Z3_func_decl d)
Return the constant declaration name as a symbol.
Z3_mk_bvneg_no_overflow
Z3_ast Z3_API Z3_mk_bvneg_no_overflow(Z3_context c, Z3_ast t1)
Check that bit-wise negation does not overflow when t1 is interpreted as a signed bit-vector.
Z3_stats_get_key
Z3_string Z3_API Z3_stats_get_key(Z3_context c, Z3_stats s, unsigned idx)
Return the key (a string) for a particular statistical data.
Z3_mk_int64
Z3_ast Z3_API Z3_mk_int64(Z3_context c, int64_t v, Z3_sort ty)
Create a numeral of a int, bit-vector, or finite-domain sort.
Z3_symbol_kind
Z3_symbol_kind
The different kinds of symbol. In Z3, a symbol can be represented using integers and strings (See Z3_...
Definition: z3_api.h:116
Z3_STRING_SYMBOL
@ Z3_STRING_SYMBOL
Definition: z3_api.h:118
Z3_INT_SYMBOL
@ Z3_INT_SYMBOL
Definition: z3_api.h:117
Z3_mk_re_empty
Z3_ast Z3_API Z3_mk_re_empty(Z3_context c, Z3_sort re)
Create an empty regular expression of sort re.
Z3_solver_from_string
void Z3_API Z3_solver_from_string(Z3_context c, Z3_solver s, Z3_string file_name)
load solver assertions from a string.
Z3_mk_bvand
Z3_ast Z3_API Z3_mk_bvand(Z3_context c, Z3_ast t1, Z3_ast t2)
Bitwise and.
Z3_simplify_get_param_descrs
Z3_param_descrs Z3_API Z3_simplify_get_param_descrs(Z3_context c)
Return the parameter description set for the simplify procedure.
Z3_goal_is_decided_unsat
bool Z3_API Z3_goal_is_decided_unsat(Z3_context c, Z3_goal g)
Return true if the goal contains false, and it is precise or the product of an over approximation.
Z3_mk_finite_domain_sort
Z3_sort Z3_API Z3_mk_finite_domain_sort(Z3_context c, Z3_symbol name, uint64_t size)
Create a named finite domain sort.
Z3_mk_add
Z3_ast Z3_API Z3_mk_add(Z3_context c, unsigned num_args, Z3_ast const args[])
Create an AST node representing args[0] + ... + args[num_args-1].
Z3_get_ast_kind
Z3_ast_kind Z3_API Z3_get_ast_kind(Z3_context c, Z3_ast a)
Return the kind of the given AST.
Z3_parse_smtlib2_file
Z3_ast_vector Z3_API Z3_parse_smtlib2_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[])
Similar to Z3_parse_smtlib2_string, but reads the benchmark from a file.
Z3_get_implied_equalities
Z3_lbool Z3_API Z3_get_implied_equalities(Z3_context c, Z3_solver s, unsigned num_terms, Z3_ast const terms[], unsigned class_ids[])
Retrieve congruence class representatives for terms.
Z3_sort_opt
#define Z3_sort_opt
Definition: z3_api.h:12
Z3_mk_bvsmod
Z3_ast Z3_API Z3_mk_bvsmod(Z3_context c, Z3_ast t1, Z3_ast t2)
Two's complement signed remainder (sign follows divisor).
Z3_tactic_cond
Z3_tactic Z3_API Z3_tactic_cond(Z3_context c, Z3_probe p, Z3_tactic t1, Z3_tactic t2)
Return a tactic that applies t1 to a given goal if the probe p evaluates to true, and t2 if p evaluat...
Z3_model_translate
Z3_model Z3_API Z3_model_translate(Z3_context c, Z3_model m, Z3_context dst)
translate model from context c to context dst.
Z3_solver_get_levels
void Z3_API Z3_solver_get_levels(Z3_context c, Z3_solver s, Z3_ast_vector literals, unsigned sz, unsigned levels[])
retrieve the decision depth of Boolean literals (variables or their negations). Assumes a check-sat c...
Z3_get_version
void Z3_API Z3_get_version(unsigned *major, unsigned *minor, unsigned *build_number, unsigned *revision_number)
Return Z3 version number information.
Z3_tactic_apply_ex
Z3_apply_result Z3_API Z3_tactic_apply_ex(Z3_context c, Z3_tactic t, Z3_goal g, Z3_params p)
Apply tactic t to the goal g using the parameter set p.
Z3_mk_int2bv
Z3_ast Z3_API Z3_mk_int2bv(Z3_context c, unsigned n, Z3_ast t1)
Create an n bit bit-vector from the integer argument t1.
Z3_solver_assert
void Z3_API Z3_solver_assert(Z3_context c, Z3_solver s, Z3_ast a)
Assert a constraint into the solver.
Z3_mk_tactic
Z3_tactic Z3_API Z3_mk_tactic(Z3_context c, Z3_string name)
Return a tactic associated with the given name. The complete list of tactics may be obtained using th...
Z3_get_quantifier_weight
unsigned Z3_API Z3_get_quantifier_weight(Z3_context c, Z3_ast a)
Obtain weight of quantifier.
Z3_solver_propagate_consequence
void Z3_API Z3_solver_propagate_consequence(Z3_context c, Z3_solver_callback, unsigned num_fixed, unsigned const *fixed_ids, unsigned num_eqs, unsigned const *eq_lhs, unsigned const *eq_rhs, Z3_ast conseq)
propagate a consequence based on fixed values. This is a callback a client may invoke during the fixe...
Z3_solver_get_num_scopes
unsigned Z3_API Z3_solver_get_num_scopes(Z3_context c, Z3_solver s)
Return the number of backtracking points.
Z3_eval_smtlib2_string
Z3_string Z3_API Z3_eval_smtlib2_string(Z3_context, Z3_string str)
Parse and evaluate and SMT-LIB2 command sequence. The state from a previous call is saved so the next...
Z3_get_array_sort_range
Z3_sort Z3_API Z3_get_array_sort_range(Z3_context c, Z3_sort t)
Return the range of the given array sort.
Z3_del_constructor_list
void Z3_API Z3_del_constructor_list(Z3_context c, Z3_constructor_list clist)
Reclaim memory allocated for constructor list.
Z3_mk_bound
Z3_ast Z3_API Z3_mk_bound(Z3_context c, unsigned index, Z3_sort ty)
Create a bound variable.
Z3_get_app_num_args
unsigned Z3_API Z3_get_app_num_args(Z3_context c, Z3_app a)
Return the number of argument of an application. If t is an constant, then the number of arguments is...
Z3_mk_real
Z3_ast Z3_API Z3_mk_real(Z3_context c, int num, int den)
Create a real from a fraction.
Z3_func_entry_get_arg
Z3_ast Z3_API Z3_func_entry_get_arg(Z3_context c, Z3_func_entry e, unsigned i)
Return an argument of a Z3_func_entry object.
Z3_error_code
Z3_error_code
Z3 error codes (See Z3_get_error_code).
Definition: z3_api.h:1359
Z3_INTERNAL_FATAL
@ Z3_INTERNAL_FATAL
Definition: z3_api.h:1369
Z3_DEC_REF_ERROR
@ Z3_DEC_REF_ERROR
Definition: z3_api.h:1371
Z3_INVALID_USAGE
@ Z3_INVALID_USAGE
Definition: z3_api.h:1370
Z3_INVALID_PATTERN
@ Z3_INVALID_PATTERN
Definition: z3_api.h:1366
Z3_INVALID_ARG
@ Z3_INVALID_ARG
Definition: z3_api.h:1363
Z3_OK
@ Z3_OK
Definition: z3_api.h:1360
Z3_IOB
@ Z3_IOB
Definition: z3_api.h:1362
Z3_FILE_ACCESS_ERROR
@ Z3_FILE_ACCESS_ERROR
Definition: z3_api.h:1368
Z3_PARSER_ERROR
@ Z3_PARSER_ERROR
Definition: z3_api.h:1364
Z3_EXCEPTION
@ Z3_EXCEPTION
Definition: z3_api.h:1372
Z3_SORT_ERROR
@ Z3_SORT_ERROR
Definition: z3_api.h:1361
Z3_MEMOUT_FAIL
@ Z3_MEMOUT_FAIL
Definition: z3_api.h:1367
Z3_NO_PARSER
@ Z3_NO_PARSER
Definition: z3_api.h:1365
Z3_mk_eq
Z3_ast Z3_API Z3_mk_eq(Z3_context c, Z3_ast l, Z3_ast r)
Create an AST node representing l = r.
Z3_mk_atleast
Z3_ast Z3_API Z3_mk_atleast(Z3_context c, unsigned num_args, Z3_ast const args[], unsigned k)
Pseudo-Boolean relations.
Z3_get_estimated_alloc_size
uint64_t Z3_API Z3_get_estimated_alloc_size(void)
Return the estimated allocated memory in bytes.
Z3_model_get_num_funcs
unsigned Z3_API Z3_model_get_num_funcs(Z3_context c, Z3_model m)
Return the number of function interpretations in the given model.
Z3_dec_ref
void Z3_API Z3_dec_ref(Z3_context c, Z3_ast a)
Decrement the reference counter of the given AST. The context c should have been created using Z3_mk_...
Z3_solver_get_unsat_core
Z3_ast_vector Z3_API Z3_solver_get_unsat_core(Z3_context c, Z3_solver s)
Retrieve the unsat core for the last Z3_solver_check_assumptions The unsat core is a subset of the as...
Z3_get_tuple_sort_field_decl
Z3_func_decl Z3_API Z3_get_tuple_sort_field_decl(Z3_context c, Z3_sort t, unsigned i)
Return the i-th field declaration (i.e., projection function declaration) of the given tuple sort.
Z3_get_string
Z3_string Z3_API Z3_get_string(Z3_context c, Z3_ast s)
Retrieve the string constant stored in s.
Z3_get_numeral_int
bool Z3_API Z3_get_numeral_int(Z3_context c, Z3_ast v, int *i)
Similar to Z3_get_numeral_string, but only succeeds if the value can fit in a machine int....
Z3_get_error_code
Z3_error_code Z3_API Z3_get_error_code(Z3_context c)
Return the error code for the last API call.
Z3_mk_partial_order
Z3_func_decl Z3_API Z3_mk_partial_order(Z3_context c, Z3_sort a, unsigned id)
create a partial ordering relation over signature a and index id.
Z3_mk_empty_set
Z3_ast Z3_API Z3_mk_empty_set(Z3_context c, Z3_sort domain)
Create the empty set.
Z3_mk_set_has_size
Z3_ast Z3_API Z3_mk_set_has_size(Z3_context c, Z3_ast set, Z3_ast k)
Create predicate that holds if Boolean array set has k elements set to true.
Z3_get_relation_column
Z3_sort Z3_API Z3_get_relation_column(Z3_context c, Z3_sort s, unsigned col)
Return sort at i'th column of relation sort.
Z3_get_tactic_name
Z3_string Z3_API Z3_get_tactic_name(Z3_context c, unsigned i)
Return the name of the idx tactic.
Z3_is_string
bool Z3_API Z3_is_string(Z3_context c, Z3_ast s)
Determine if s is a string constant.
Z3_mk_re_loop
Z3_ast Z3_API Z3_mk_re_loop(Z3_context c, Z3_ast r, unsigned lo, unsigned hi)
Create a regular expression loop. The supplied regular expression r is repeated between lo and hi tim...
Z3_mk_repeat
Z3_ast Z3_API Z3_mk_repeat(Z3_context c, unsigned i, Z3_ast t1)
Repeat the given bit-vector up length i.
Z3_tactic_get_descr
Z3_string Z3_API Z3_tactic_get_descr(Z3_context c, Z3_string name)
Return a string containing a description of the tactic with the given name.
Z3_mk_re_plus
Z3_ast Z3_API Z3_mk_re_plus(Z3_context c, Z3_ast re)
Create the regular language re+.
Z3_goal_precision
Z3_goal_prec Z3_API Z3_goal_precision(Z3_context c, Z3_goal g)
Return the "precision" of the given goal. Goals can be transformed using over and under approximation...
Z3_solver_pop
void Z3_API Z3_solver_pop(Z3_context c, Z3_solver s, unsigned n)
Backtrack n backtracking points.
Z3_mk_int2real
Z3_ast Z3_API Z3_mk_int2real(Z3_context c, Z3_ast t1)
Coerce an integer to a real.
Z3_get_index_value
unsigned Z3_API Z3_get_index_value(Z3_context c, Z3_ast a)
Return index of de-Bruijn bound variable.
Z3_mk_goal
Z3_goal Z3_API Z3_mk_goal(Z3_context c, bool models, bool unsat_cores, bool proofs)
Create a goal (aka problem). A goal is essentially a set of formulas, that can be solved and/or trans...
Z3_get_decl_double_parameter
double Z3_API Z3_get_decl_double_parameter(Z3_context c, Z3_func_decl d, unsigned idx)
Return the double value associated with an double parameter.
Z3_get_ast_hash
unsigned Z3_API Z3_get_ast_hash(Z3_context c, Z3_ast a)
Return a hash code for the given AST. The hash code is structural but two different AST objects can m...
Z3_mk_unsigned_int64
Z3_ast Z3_API Z3_mk_unsigned_int64(Z3_context c, uint64_t v, Z3_sort ty)
Create a numeral of a int, bit-vector, or finite-domain sort.
Z3_get_sort_name
Z3_symbol Z3_API Z3_get_sort_name(Z3_context c, Z3_sort d)
Return the sort name as a symbol.
Z3_params_validate
void Z3_API Z3_params_validate(Z3_context c, Z3_params p, Z3_param_descrs d)
Validate the parameter set p against the parameter description set d.
Z3_get_datatype_sort_recognizer
Z3_func_decl Z3_API Z3_get_datatype_sort_recognizer(Z3_context c, Z3_sort t, unsigned idx)
Return idx'th recognizer.
Z3_global_param_reset_all
void Z3_API Z3_global_param_reset_all(void)
Restore the value of all global (and module) parameters. This command will not affect already created...
Z3_mk_gt
Z3_ast Z3_API Z3_mk_gt(Z3_context c, Z3_ast t1, Z3_ast t2)
Create greater than.
Z3_mk_store
Z3_ast Z3_API Z3_mk_store(Z3_context c, Z3_ast a, Z3_ast i, Z3_ast v)
Array update.
Z3_probe_gt
Z3_probe Z3_API Z3_probe_gt(Z3_context x, Z3_probe p1, Z3_probe p2)
Return a probe that evaluates to "true" when the value returned by p1 is greater than the value retur...
Z3_tactic_skip
Z3_tactic Z3_API Z3_tactic_skip(Z3_context c)
Return a tactic that just return the given goal.
Z3_solver_get_proof
Z3_ast Z3_API Z3_solver_get_proof(Z3_context c, Z3_solver s)
Retrieve the proof for the last Z3_solver_check or Z3_solver_check_assumptions.
Z3_get_decl_rational_parameter
Z3_string Z3_API Z3_get_decl_rational_parameter(Z3_context c, Z3_func_decl d, unsigned idx)
Return the rational value, as a string, associated with a rational parameter.
Z3_model_has_interp
bool Z3_API Z3_model_has_interp(Z3_context c, Z3_model m, Z3_func_decl a)
Test if there exists an interpretation (i.e., assignment) for a in the model m.
Z3_is_eq_ast
bool Z3_API Z3_is_eq_ast(Z3_context c, Z3_ast t1, Z3_ast t2)
Compare terms.
Z3_is_quantifier_forall
bool Z3_API Z3_is_quantifier_forall(Z3_context c, Z3_ast a)
Determine if an ast is a universal quantifier.
Z3_tactic_inc_ref
void Z3_API Z3_tactic_inc_ref(Z3_context c, Z3_tactic t)
Increment the reference counter of the given tactic.
Z3_solver_from_file
void Z3_API Z3_solver_from_file(Z3_context c, Z3_solver s, Z3_string file_name)
load solver assertions from a file.
Z3_mk_xor
Z3_ast Z3_API Z3_mk_xor(Z3_context c, Z3_ast t1, Z3_ast t2)
Create an AST node representing t1 xor t2.
Z3_solver_propagate_eq
void Z3_API Z3_solver_propagate_eq(Z3_context c, Z3_solver s, Z3_eq_eh eq_eh)
register a callback on expression equalities.
Z3_mk_string
Z3_ast Z3_API Z3_mk_string(Z3_context c, Z3_string s)
Create a string constant out of the string that is passed in.
Z3_mk_transitive_closure
Z3_func_decl Z3_API Z3_mk_transitive_closure(Z3_context c, Z3_func_decl f)
create transitive closure of binary relation.
Z3_tactic_try_for
Z3_tactic Z3_API Z3_tactic_try_for(Z3_context c, Z3_tactic t, unsigned ms)
Return a tactic that applies t to a given goal for ms milliseconds. If t does not terminate in ms mil...
Z3_mk_rotate_left
Z3_ast Z3_API Z3_mk_rotate_left(Z3_context c, unsigned i, Z3_ast t1)
Rotate bits of t1 to the left i times.
Z3_apply_result_dec_ref
void Z3_API Z3_apply_result_dec_ref(Z3_context c, Z3_apply_result r)
Decrement the reference counter of the given Z3_apply_result object.
Z3_mk_map
Z3_ast Z3_API Z3_mk_map(Z3_context c, Z3_func_decl f, unsigned n, Z3_ast const *args)
Map f on the argument arrays.
Z3_mk_seq_sort
Z3_sort Z3_API Z3_mk_seq_sort(Z3_context c, Z3_sort s)
Create a sequence sort out of the sort for the elements.
Z3_solver_get_units
Z3_ast_vector Z3_API Z3_solver_get_units(Z3_context c, Z3_solver s)
Return the set of units modulo model conversion.
Z3_mk_const
Z3_ast Z3_API Z3_mk_const(Z3_context c, Z3_symbol s, Z3_sort ty)
Declare and create a constant.
Z3_mk_string_symbol
Z3_symbol Z3_API Z3_mk_string_symbol(Z3_context c, Z3_string s)
Create a Z3 symbol using a C string.
Z3_mk_seq_last_index
Z3_ast Z3_API Z3_mk_seq_last_index(Z3_context c, Z3_ast, Z3_ast substr)
Return the last occurrence of substr in s. If s does not contain substr, then the value is -1,...
Z3_probe_get_descr
Z3_string Z3_API Z3_probe_get_descr(Z3_context c, Z3_string name)
Return a string containing a description of the probe with the given name.
Z3_param_descrs_inc_ref
void Z3_API Z3_param_descrs_inc_ref(Z3_context c, Z3_param_descrs p)
Increment the reference counter of the given parameter description set.
Z3_apply_result_get_subgoal
Z3_goal Z3_API Z3_apply_result_get_subgoal(Z3_context c, Z3_apply_result r, unsigned i)
Return one of the subgoals in the Z3_apply_result object returned by Z3_tactic_apply.
Z3_probe_le
Z3_probe Z3_API Z3_probe_le(Z3_context x, Z3_probe p1, Z3_probe p2)
Return a probe that evaluates to "true" when the value returned by p1 is less than or equal to the va...
Z3_stats_dec_ref
void Z3_API Z3_stats_dec_ref(Z3_context c, Z3_stats s)
Decrement the reference counter of the given statistics object.
Z3_mk_array_ext
Z3_ast Z3_API Z3_mk_array_ext(Z3_context c, Z3_ast arg1, Z3_ast arg2)
Create array extensionality index given two arrays with the same sort. The meaning is given by the ax...
Z3_mk_re_concat
Z3_ast Z3_API Z3_mk_re_concat(Z3_context c, unsigned n, Z3_ast const args[])
Create the concatenation of the regular languages.
Z3_sort_to_ast
Z3_ast Z3_API Z3_sort_to_ast(Z3_context c, Z3_sort s)
Convert a Z3_sort into Z3_ast. This is just type casting.
Z3_func_interp_get_entry
Z3_func_entry Z3_API Z3_func_interp_get_entry(Z3_context c, Z3_func_interp f, unsigned i)
Return a "point" of the given function interpretation. It represents the value of f in a particular p...
Z3_mk_rec_func_decl
Z3_func_decl Z3_API Z3_mk_rec_func_decl(Z3_context c, Z3_symbol s, unsigned domain_size, Z3_sort const domain[], Z3_sort range)
Declare a recursive function.
Z3_get_ast_id
unsigned Z3_API Z3_get_ast_id(Z3_context c, Z3_ast t)
Return a unique identifier for t. The identifier is unique up to structural equality....
Z3_mk_concat
Z3_ast Z3_API Z3_mk_concat(Z3_context c, Z3_ast t1, Z3_ast t2)
Concatenate the given bit-vectors.
Z3_get_quantifier_num_bound
unsigned Z3_API Z3_get_quantifier_num_bound(Z3_context c, Z3_ast a)
Return number of bound variables of quantifier.
Z3_get_decl_sort_parameter
Z3_sort Z3_API Z3_get_decl_sort_parameter(Z3_context c, Z3_func_decl d, unsigned idx)
Return the sort value associated with a sort parameter.
Z3_mk_constructor_list
Z3_constructor_list Z3_API Z3_mk_constructor_list(Z3_context c, unsigned num_constructors, Z3_constructor const constructors[])
Create list of constructors.
Z3_tactic_apply
Z3_apply_result Z3_API Z3_tactic_apply(Z3_context c, Z3_tactic t, Z3_goal g)
Apply tactic t to the goal g.
Z3_func_interp_opt
#define Z3_func_interp_opt
Definition: z3_api.h:33
Z3_get_sort_id
unsigned Z3_API Z3_get_sort_id(Z3_context c, Z3_sort s)
Return a unique identifier for s.
Z3_get_finite_domain_sort_size
Z3_bool Z3_API Z3_get_finite_domain_sort_size(Z3_context c, Z3_sort s, uint64_t *r)
Store the size of the sort in r. Return false if the call failed. That is, Z3_get_sort_kind(s) == Z3_...
Z3_mk_app
Z3_ast Z3_API Z3_mk_app(Z3_context c, Z3_func_decl d, unsigned num_args, Z3_ast const args[])
Create a constant or function application.
Z3_get_sort_kind
Z3_sort_kind Z3_API Z3_get_sort_kind(Z3_context c, Z3_sort t)
Return the sort kind (e.g., array, tuple, int, bool, etc).
Z3_solver_get_statistics
Z3_stats Z3_API Z3_solver_get_statistics(Z3_context c, Z3_solver s)
Return statistics for the given solver.
Z3_mk_bvneg
Z3_ast Z3_API Z3_mk_bvneg(Z3_context c, Z3_ast t1)
Standard two's complement unary minus.
Z3_mk_store_n
Z3_ast Z3_API Z3_mk_store_n(Z3_context c, Z3_ast a, unsigned n, Z3_ast const *idxs, Z3_ast v)
n-ary Array update.
Z3_mk_linear_order
Z3_func_decl Z3_API Z3_mk_linear_order(Z3_context c, Z3_sort a, unsigned id)
create a linear ordering relation over signature a. The relation is identified by the index id.
Z3_get_domain
Z3_sort Z3_API Z3_get_domain(Z3_context c, Z3_func_decl d, unsigned i)
Return the sort of the i-th parameter of the given function declaration.
Z3_bool
bool Z3_bool
Z3 Boolean type. It is just an alias for bool.
Definition: z3_api.h:79
Z3_mk_seq_in_re
Z3_ast Z3_API Z3_mk_seq_in_re(Z3_context c, Z3_ast seq, Z3_ast re)
Check if seq is in the language generated by the regular expression re.
Z3_mk_bool_sort
Z3_sort Z3_API Z3_mk_bool_sort(Z3_context c)
Create the Boolean type.
Z3_mk_sub
Z3_ast Z3_API Z3_mk_sub(Z3_context c, unsigned num_args, Z3_ast const args[])
Create an AST node representing args[0] - ... - args[num_args - 1].
Z3_params_set_symbol
void Z3_API Z3_params_set_symbol(Z3_context c, Z3_params p, Z3_symbol k, Z3_symbol v)
Add a symbol parameter k with value v to the parameter set p.
Z3_solver_to_dimacs_string
Z3_string Z3_API Z3_solver_to_dimacs_string(Z3_context c, Z3_solver s, bool include_names)
Convert a solver into a DIMACS formatted string.
Z3_to_func_decl
Z3_func_decl Z3_API Z3_to_func_decl(Z3_context c, Z3_ast a)
Convert an AST into a FUNC_DECL_AST. This is just type casting.
Z3_get_func_decl_id
unsigned Z3_API Z3_get_func_decl_id(Z3_context c, Z3_func_decl f)
Return a unique identifier for f.
Z3_mk_set_difference
Z3_ast Z3_API Z3_mk_set_difference(Z3_context c, Z3_ast arg1, Z3_ast arg2)
Take the set difference between two sets.
Z3_mk_lstring
Z3_ast Z3_API Z3_mk_lstring(Z3_context c, unsigned len, Z3_string s)
Create a string constant out of the string that is passed in It takes the length of the string as wel...
Z3_mk_bvsdiv
Z3_ast Z3_API Z3_mk_bvsdiv(Z3_context c, Z3_ast t1, Z3_ast t2)
Two's complement signed division.
Z3_mk_bvlshr
Z3_ast Z3_API Z3_mk_bvlshr(Z3_context c, Z3_ast t1, Z3_ast t2)
Logical shift right.
Z3_get_decl_ast_parameter
Z3_ast Z3_API Z3_get_decl_ast_parameter(Z3_context c, Z3_func_decl d, unsigned idx)
Return the expression value associated with an expression parameter.
Z3_get_quantifier_pattern_ast
Z3_pattern Z3_API Z3_get_quantifier_pattern_ast(Z3_context c, Z3_ast a, unsigned i)
Return i'th pattern.
Z3_probe_apply
double Z3_API Z3_probe_apply(Z3_context c, Z3_probe p, Z3_goal g)
Execute the probe over the goal. The probe always produce a double value. "Boolean" probes return 0....
Z3_func_interp_set_else
void Z3_API Z3_func_interp_set_else(Z3_context c, Z3_func_interp f, Z3_ast else_value)
Return the 'else' value of the given function interpretation.
Z3_goal_dec_ref
void Z3_API Z3_goal_dec_ref(Z3_context c, Z3_goal g)
Decrement the reference counter of the given goal.
Z3_mk_not
Z3_ast Z3_API Z3_mk_not(Z3_context c, Z3_ast a)
Create an AST node representing not(a).
Z3_substitute_vars
Z3_ast Z3_API Z3_substitute_vars(Z3_context c, Z3_ast a, unsigned num_exprs, Z3_ast const to[])
Substitute the free variables in a with the expressions in to. For every i smaller than num_exprs,...
Z3_mk_or
Z3_ast Z3_API Z3_mk_or(Z3_context c, unsigned num_args, Z3_ast const args[])
Create an AST node representing args[0] or ... or args[num_args-1].
Z3_mk_array_sort
Z3_sort Z3_API Z3_mk_array_sort(Z3_context c, Z3_sort domain, Z3_sort range)
Create an array type.
Z3_tactic_or_else
Z3_tactic Z3_API Z3_tactic_or_else(Z3_context c, Z3_tactic t1, Z3_tactic t2)
Return a tactic that first applies t1 to a given goal, if it fails then returns the result of t2 appl...
Z3_pop_eh
void Z3_pop_eh(void *ctx, unsigned num_scopes)
Definition: z3_api.h:1390
Z3_model_inc_ref
void Z3_API Z3_model_inc_ref(Z3_context c, Z3_model m)
Increment the reference counter of the given model.
Z3_mk_seq_extract
Z3_ast Z3_API Z3_mk_seq_extract(Z3_context c, Z3_ast s, Z3_ast offset, Z3_ast length)
Extract subsequence starting at offset of length.
Z3_model_eval
Z3_bool Z3_API Z3_model_eval(Z3_context c, Z3_model m, Z3_ast t, bool model_completion, Z3_ast *v)
Evaluate the AST node t in the given model. Return true if succeeded, and store the result in v.
Z3_goal_is_decided_sat
bool Z3_API Z3_goal_is_decided_sat(Z3_context c, Z3_goal g)
Return true if the goal is empty, and it is precise or the product of a under approximation.
Z3_mk_list_sort
Z3_sort Z3_API Z3_mk_list_sort(Z3_context c, Z3_symbol name, Z3_sort elem_sort, Z3_func_decl *nil_decl, Z3_func_decl *is_nil_decl, Z3_func_decl *cons_decl, Z3_func_decl *is_cons_decl, Z3_func_decl *head_decl, Z3_func_decl *tail_decl)
Create a list sort.
Z3_mk_rem
Z3_ast Z3_API Z3_mk_rem(Z3_context c, Z3_ast arg1, Z3_ast arg2)
Create an AST node representing arg1 rem arg2.
Z3_mk_int_to_str
Z3_ast Z3_API Z3_mk_int_to_str(Z3_context c, Z3_ast s)
Integer to string conversion.
Z3_get_numeral_uint
bool Z3_API Z3_get_numeral_uint(Z3_context c, Z3_ast v, unsigned *u)
Similar to Z3_get_numeral_string, but only succeeds if the value can fit in a machine unsigned int....
Z3_get_numeral_string
Z3_string Z3_API Z3_get_numeral_string(Z3_context c, Z3_ast a)
Return numeral value, as a decimal string of a numeric constant term.
Z3_solver_propagate_fixed
void Z3_API Z3_solver_propagate_fixed(Z3_context c, Z3_solver s, Z3_fixed_eh fixed_eh)
register a callback for when an expression is bound to a fixed value. The supported expression types ...
Z3_close_log
void Z3_API Z3_close_log(void)
Close interaction log.
Z3_func_interp_add_entry
void Z3_API Z3_func_interp_add_entry(Z3_context c, Z3_func_interp fi, Z3_ast_vector args, Z3_ast value)
add a function entry to a function interpretation.
Z3_is_well_sorted
bool Z3_API Z3_is_well_sorted(Z3_context c, Z3_ast t)
Return true if the given expression t is well sorted.
Z3_mk_bvuge
Z3_ast Z3_API Z3_mk_bvuge(Z3_context c, Z3_ast t1, Z3_ast t2)
Unsigned greater than or equal to.
Z3_mk_as_array
Z3_ast Z3_API Z3_mk_as_array(Z3_context c, Z3_func_decl f)
Create array with the same interpretation as a function. The array satisfies the property (f x) = (se...
Z3_apply_result_to_string
Z3_string Z3_API Z3_apply_result_to_string(Z3_context c, Z3_apply_result r)
Convert the Z3_apply_result object returned by Z3_tactic_apply into a string.
Z3_solver_to_string
Z3_string Z3_API Z3_solver_to_string(Z3_context c, Z3_solver s)
Convert a solver into a string.
Z3_solver_get_reason_unknown
Z3_string Z3_API Z3_solver_get_reason_unknown(Z3_context c, Z3_solver s)
Return a brief justification for an "unknown" result (i.e., Z3_L_UNDEF) for the commands Z3_solver_ch...
Z3_get_numeral_binary_string
Z3_string Z3_API Z3_get_numeral_binary_string(Z3_context c, Z3_ast a)
Return numeral value, as a binary string of a numeric constant term.
Z3_get_quantifier_bound_sort
Z3_sort Z3_API Z3_get_quantifier_bound_sort(Z3_context c, Z3_ast a, unsigned i)
Return sort of the i'th bound variable.
Z3_disable_trace
void Z3_API Z3_disable_trace(Z3_string tag)
Disable tracing messages tagged as tag when Z3 is compiled in debug mode. It is a NOOP otherwise.
Z3_tactic_repeat
Z3_tactic Z3_API Z3_tactic_repeat(Z3_context c, Z3_tactic t, unsigned max)
Return a tactic that keeps applying t until the goal is not modified anymore or the maximum number of...
Z3_string_ptr
Z3_string * Z3_string_ptr
Definition: z3_api.h:86
Z3_goal_formula
Z3_ast Z3_API Z3_goal_formula(Z3_context c, Z3_goal g, unsigned idx)
Return a formula from the given goal.
Z3_mk_divides
Z3_ast Z3_API Z3_mk_divides(Z3_context c, Z3_ast t1, Z3_ast t2)
Create division predicate.
Z3_mk_int_symbol
Z3_symbol Z3_API Z3_mk_int_symbol(Z3_context c, int i)
Create a Z3 symbol using an integer.
Z3_func_interp_get_num_entries
unsigned Z3_API Z3_func_interp_get_num_entries(Z3_context c, Z3_func_interp f)
Return the number of entries in the given function interpretation.
Z3_get_numeral_rational_int64
bool Z3_API Z3_get_numeral_rational_int64(Z3_context c, Z3_ast v, int64_t *num, int64_t *den)
Similar to Z3_get_numeral_string, but only succeeds if the value can fit as a rational number as mach...
Z3_probe_const
Z3_probe Z3_API Z3_probe_const(Z3_context x, double val)
Return a probe that always evaluates to val.
Z3_goal_to_string
Z3_string Z3_API Z3_goal_to_string(Z3_context c, Z3_goal g)
Convert a goal into a string.
Z3_mk_atmost
Z3_ast Z3_API Z3_mk_atmost(Z3_context c, unsigned num_args, Z3_ast const args[], unsigned k)
Pseudo-Boolean relations.
Z3_is_eq_sort
bool Z3_API Z3_is_eq_sort(Z3_context c, Z3_sort s1, Z3_sort s2)
compare sorts.
Z3_del_config
void Z3_API Z3_del_config(Z3_config c)
Delete the given configuration object.
Z3_get_numeral_double
double Z3_API Z3_get_numeral_double(Z3_context c, Z3_ast a)
Return numeral as a double.
Z3_inc_ref
void Z3_API Z3_inc_ref(Z3_context c, Z3_ast a)
Increment the reference counter of the given AST. The context c should have been created using Z3_mk_...
Z3_tactic_and_then
Z3_tactic Z3_API Z3_tactic_and_then(Z3_context c, Z3_tactic t1, Z3_tactic t2)
Return a tactic that applies t1 to a given goal and t2 to every subgoal produced by t1.
Z3_mk_real2int
Z3_ast Z3_API Z3_mk_real2int(Z3_context c, Z3_ast t1)
Coerce a real to an integer.
Z3_model_get_func_interp
Z3_func_interp Z3_API Z3_model_get_func_interp(Z3_context c, Z3_model m, Z3_func_decl f)
Return the interpretation of the function f in the model m. Return NULL, if the model does not assign...
Z3_reset_memory
void Z3_API Z3_reset_memory(void)
Reset all allocated resources.
Z3_solver_inc_ref
void Z3_API Z3_solver_inc_ref(Z3_context c, Z3_solver s)
Increment the reference counter of the given solver.
Z3_is_app
bool Z3_API Z3_is_app(Z3_context c, Z3_ast a)
Z3_mk_forall
Z3_ast Z3_API Z3_mk_forall(Z3_context c, unsigned weight, unsigned num_patterns, Z3_pattern const patterns[], unsigned num_decls, Z3_sort const sorts[], Z3_symbol const decl_names[], Z3_ast body)
Create a forall formula. It takes an expression body that contains bound variables of the same sorts ...
Z3_probe_and
Z3_probe Z3_API Z3_probe_and(Z3_context x, Z3_probe p1, Z3_probe p2)
Return a probe that evaluates to "true" when p1 and p2 evaluates to true.
Z3_is_re_sort
bool Z3_API Z3_is_re_sort(Z3_context c, Z3_sort s)
Check if s is a regular expression sort.
Z3_get_domain_size
unsigned Z3_API Z3_get_domain_size(Z3_context c, Z3_func_decl d)
Return the number of parameters of the given declaration.
Z3_mk_string_sort
Z3_sort Z3_API Z3_mk_string_sort(Z3_context c)
Create a sort for 8 bit strings.
Z3_mk_ext_rotate_right
Z3_ast Z3_API Z3_mk_ext_rotate_right(Z3_context c, Z3_ast t1, Z3_ast t2)
Rotate bits of t1 to the right t2 times.
Z3_get_numeral_decimal_string
Z3_string Z3_API Z3_get_numeral_decimal_string(Z3_context c, Z3_ast a, unsigned precision)
Return numeral as a string in decimal notation. The result has at most precision decimal places.
Z3_global_param_get
Z3_bool Z3_API Z3_global_param_get(Z3_string param_id, Z3_string_ptr param_value)
Get a global (or module) parameter.
Z3_get_sort
Z3_sort Z3_API Z3_get_sort(Z3_context c, Z3_ast a)
Return the sort of an AST node.
Z3_get_datatype_sort_constructor_accessor
Z3_func_decl Z3_API Z3_get_datatype_sort_constructor_accessor(Z3_context c, Z3_sort t, unsigned idx_c, unsigned idx_a)
Return idx_a'th accessor for the idx_c'th constructor.
Z3_mk_bvredor
Z3_ast Z3_API Z3_mk_bvredor(Z3_context c, Z3_ast t1)
Take disjunction of bits in vector, return vector of length 1.
Z3_mk_seq_nth
Z3_ast Z3_API Z3_mk_seq_nth(Z3_context c, Z3_ast s, Z3_ast index)
Retrieve from s the element positioned at position index. The function is under-specified if the inde...
Z3_mk_seq_contains
Z3_ast Z3_API Z3_mk_seq_contains(Z3_context c, Z3_ast container, Z3_ast containee)
Check if container contains containee.
Z3_solver_reset
void Z3_API Z3_solver_reset(Z3_context c, Z3_solver s)
Remove all assertions from the solver.
Z3_is_algebraic_number
bool Z3_API Z3_is_algebraic_number(Z3_context c, Z3_ast a)
Return true if the given AST is a real algebraic number.