UNPKG

dtk-z3-solver-deno-v2

Version:

This directory contains JavaScript code to automatically derive TypeScript bindings for the C API, which are published on npm as [z3-solver](https://www.npmjs.com/package/z3-solver).

681 lines 60.6 kB
import { Z3_symbol, Z3_config, Z3_context, Z3_sort, Z3_func_decl, Z3_ast, Z3_app, Z3_pattern, Z3_model, Z3_constructor, Z3_constructor_list, Z3_params, Z3_param_descrs, Z3_parser_context, Z3_goal, Z3_tactic, Z3_simplifier, Z3_probe, Z3_stats, Z3_solver, Z3_solver_callback, Z3_ast_vector, Z3_ast_map, Z3_apply_result, Z3_func_interp, Z3_func_entry, Z3_fixedpoint, Z3_optimize, Z3_rcf_num, Z3_lbool, Z3_symbol_kind, Z3_parameter_kind, Z3_sort_kind, Z3_ast_kind, Z3_decl_kind, Z3_param_kind, Z3_ast_print_mode, Z3_error_code, Z3_goal_prec } from './types.__GENERATED__'; type unsigned = number; type int = number; type uint64_t = bigint; type int64_t = bigint; type double = number; type float = number; export declare function init(initModule: any): Promise<{ em: any; Z3: { mk_context: (c: Z3_config) => Z3_context; mk_context_rc: (c: Z3_config) => Z3_context; global_param_set: (param_id: string, param_value: string) => void; global_param_reset_all: () => void; global_param_get: (param_id: string) => string | null; mk_config: () => Z3_config; del_config: (c: Z3_config) => void; set_param_value: (c: Z3_config, param_id: string, param_value: string) => void; del_context: (c: Z3_context) => void; inc_ref: (c: Z3_context, a: Z3_ast) => void; dec_ref: (c: Z3_context, a: Z3_ast) => void; update_param_value: (c: Z3_context, param_id: string, param_value: string) => void; get_global_param_descrs: (c: Z3_context) => Z3_param_descrs; interrupt: (c: Z3_context) => void; enable_concurrent_dec_ref: (c: Z3_context) => void; mk_params: (c: Z3_context) => Z3_params; params_inc_ref: (c: Z3_context, p: Z3_params) => void; params_dec_ref: (c: Z3_context, p: Z3_params) => void; params_set_bool: (c: Z3_context, p: Z3_params, k: Z3_symbol, v: boolean) => void; params_set_uint: (c: Z3_context, p: Z3_params, k: Z3_symbol, v: unsigned) => void; params_set_double: (c: Z3_context, p: Z3_params, k: Z3_symbol, v: double) => void; params_set_symbol: (c: Z3_context, p: Z3_params, k: Z3_symbol, v: Z3_symbol) => void; params_to_string: (c: Z3_context, p: Z3_params) => string; params_validate: (c: Z3_context, p: Z3_params, d: Z3_param_descrs) => void; param_descrs_inc_ref: (c: Z3_context, p: Z3_param_descrs) => void; param_descrs_dec_ref: (c: Z3_context, p: Z3_param_descrs) => void; param_descrs_get_kind: (c: Z3_context, p: Z3_param_descrs, n: Z3_symbol) => Z3_param_kind; param_descrs_size: (c: Z3_context, p: Z3_param_descrs) => unsigned; param_descrs_get_name: (c: Z3_context, p: Z3_param_descrs, i: unsigned) => Z3_symbol; param_descrs_get_documentation: (c: Z3_context, p: Z3_param_descrs, s: Z3_symbol) => string; param_descrs_to_string: (c: Z3_context, p: Z3_param_descrs) => string; mk_int_symbol: (c: Z3_context, i: int) => Z3_symbol; mk_string_symbol: (c: Z3_context, s: string) => Z3_symbol; mk_uninterpreted_sort: (c: Z3_context, s: Z3_symbol) => Z3_sort; mk_type_variable: (c: Z3_context, s: Z3_symbol) => Z3_sort; mk_bool_sort: (c: Z3_context) => Z3_sort; mk_int_sort: (c: Z3_context) => Z3_sort; mk_real_sort: (c: Z3_context) => Z3_sort; mk_bv_sort: (c: Z3_context, sz: unsigned) => Z3_sort; mk_finite_domain_sort: (c: Z3_context, name: Z3_symbol, size: uint64_t) => Z3_sort; mk_array_sort: (c: Z3_context, domain: Z3_sort, range: Z3_sort) => Z3_sort; mk_array_sort_n: (c: Z3_context, domain: Z3_sort[], range: Z3_sort) => Z3_sort; mk_tuple_sort: (c: Z3_context, mk_tuple_name: Z3_symbol, field_names: Z3_symbol[], field_sorts: Z3_sort[]) => { rv: Z3_sort; mk_tuple_decl: Z3_func_decl; proj_decl: Z3_func_decl[]; }; mk_enumeration_sort: (c: Z3_context, name: Z3_symbol, enum_names: Z3_symbol[]) => { rv: Z3_sort; enum_consts: Z3_func_decl[]; enum_testers: Z3_func_decl[]; }; mk_list_sort: (c: Z3_context, name: Z3_symbol, elem_sort: Z3_sort) => { rv: Z3_sort; 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: Z3_func_decl; }; mk_constructor: (c: Z3_context, name: Z3_symbol, recognizer: Z3_symbol, field_names: Z3_symbol[], sorts: Z3_sort[], sort_refs: unsigned[]) => Z3_constructor; constructor_num_fields: (c: Z3_context, constr: Z3_constructor) => unsigned; del_constructor: (c: Z3_context, constr: Z3_constructor) => void; mk_datatype: (c: Z3_context, name: Z3_symbol, constructors: Z3_constructor[]) => Z3_sort; mk_datatype_sort: (c: Z3_context, name: Z3_symbol) => Z3_sort; mk_constructor_list: (c: Z3_context, constructors: Z3_constructor[]) => Z3_constructor_list; del_constructor_list: (c: Z3_context, clist: Z3_constructor_list) => void; mk_datatypes: (c: Z3_context, sort_names: Z3_symbol[], constructor_lists: Z3_constructor_list[]) => Z3_sort[]; query_constructor: (c: Z3_context, constr: Z3_constructor, num_fields: unsigned) => { constructor: Z3_func_decl; tester: Z3_func_decl; accessors: Z3_func_decl[]; }; mk_func_decl: (c: Z3_context, s: Z3_symbol, domain: Z3_sort[], range: Z3_sort) => Z3_func_decl; mk_app: (c: Z3_context, d: Z3_func_decl, args: Z3_ast[]) => Z3_ast; mk_const: (c: Z3_context, s: Z3_symbol, ty: Z3_sort) => Z3_ast; mk_fresh_func_decl: (c: Z3_context, prefix: string, domain: Z3_sort[], range: Z3_sort) => Z3_func_decl; mk_fresh_const: (c: Z3_context, prefix: string, ty: Z3_sort) => Z3_ast; mk_rec_func_decl: (c: Z3_context, s: Z3_symbol, domain: Z3_sort[], range: Z3_sort) => Z3_func_decl; add_rec_def: (c: Z3_context, f: Z3_func_decl, args: Z3_ast[], body: Z3_ast) => void; mk_true: (c: Z3_context) => Z3_ast; mk_false: (c: Z3_context) => Z3_ast; mk_eq: (c: Z3_context, l: Z3_ast, r: Z3_ast) => Z3_ast; mk_distinct: (c: Z3_context, args: Z3_ast[]) => Z3_ast; mk_not: (c: Z3_context, a: Z3_ast) => Z3_ast; mk_ite: (c: Z3_context, t1: Z3_ast, t2: Z3_ast, t3: Z3_ast) => Z3_ast; mk_iff: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_implies: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_xor: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_and: (c: Z3_context, args: Z3_ast[]) => Z3_ast; mk_or: (c: Z3_context, args: Z3_ast[]) => Z3_ast; mk_add: (c: Z3_context, args: Z3_ast[]) => Z3_ast; mk_mul: (c: Z3_context, args: Z3_ast[]) => Z3_ast; mk_sub: (c: Z3_context, args: Z3_ast[]) => Z3_ast; mk_unary_minus: (c: Z3_context, arg: Z3_ast) => Z3_ast; mk_div: (c: Z3_context, arg1: Z3_ast, arg2: Z3_ast) => Z3_ast; mk_mod: (c: Z3_context, arg1: Z3_ast, arg2: Z3_ast) => Z3_ast; mk_rem: (c: Z3_context, arg1: Z3_ast, arg2: Z3_ast) => Z3_ast; mk_power: (c: Z3_context, arg1: Z3_ast, arg2: Z3_ast) => Z3_ast; mk_abs: (c: Z3_context, arg: Z3_ast) => Z3_ast; mk_lt: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_le: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_gt: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_ge: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_divides: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_int2real: (c: Z3_context, t1: Z3_ast) => Z3_ast; mk_real2int: (c: Z3_context, t1: Z3_ast) => Z3_ast; mk_is_int: (c: Z3_context, t1: Z3_ast) => Z3_ast; mk_bvnot: (c: Z3_context, t1: Z3_ast) => Z3_ast; mk_bvredand: (c: Z3_context, t1: Z3_ast) => Z3_ast; mk_bvredor: (c: Z3_context, t1: Z3_ast) => Z3_ast; mk_bvand: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvor: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvxor: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvnand: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvnor: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvxnor: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvneg: (c: Z3_context, t1: Z3_ast) => Z3_ast; mk_bvadd: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvsub: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvmul: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvudiv: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvsdiv: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvurem: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvsrem: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvsmod: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvult: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvslt: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvule: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvsle: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvuge: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvsge: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvugt: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvsgt: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_concat: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_extract: (c: Z3_context, high: unsigned, low: unsigned, t1: Z3_ast) => Z3_ast; mk_sign_ext: (c: Z3_context, i: unsigned, t1: Z3_ast) => Z3_ast; mk_zero_ext: (c: Z3_context, i: unsigned, t1: Z3_ast) => Z3_ast; mk_repeat: (c: Z3_context, i: unsigned, t1: Z3_ast) => Z3_ast; mk_bit2bool: (c: Z3_context, i: unsigned, t1: Z3_ast) => Z3_ast; mk_bvshl: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvlshr: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvashr: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_rotate_left: (c: Z3_context, i: unsigned, t1: Z3_ast) => Z3_ast; mk_rotate_right: (c: Z3_context, i: unsigned, t1: Z3_ast) => Z3_ast; mk_ext_rotate_left: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_ext_rotate_right: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_int2bv: (c: Z3_context, n: unsigned, t1: Z3_ast) => Z3_ast; mk_bv2int: (c: Z3_context, t1: Z3_ast, is_signed: boolean) => Z3_ast; mk_bvadd_no_overflow: (c: Z3_context, t1: Z3_ast, t2: Z3_ast, is_signed: boolean) => Z3_ast; mk_bvadd_no_underflow: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvsub_no_overflow: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvsub_no_underflow: (c: Z3_context, t1: Z3_ast, t2: Z3_ast, is_signed: boolean) => Z3_ast; mk_bvsdiv_no_overflow: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_bvneg_no_overflow: (c: Z3_context, t1: Z3_ast) => Z3_ast; mk_bvmul_no_overflow: (c: Z3_context, t1: Z3_ast, t2: Z3_ast, is_signed: boolean) => Z3_ast; mk_bvmul_no_underflow: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => Z3_ast; mk_select: (c: Z3_context, a: Z3_ast, i: Z3_ast) => Z3_ast; mk_select_n: (c: Z3_context, a: Z3_ast, idxs: Z3_ast[]) => Z3_ast; mk_store: (c: Z3_context, a: Z3_ast, i: Z3_ast, v: Z3_ast) => Z3_ast; mk_store_n: (c: Z3_context, a: Z3_ast, idxs: Z3_ast[], v: Z3_ast) => Z3_ast; mk_const_array: (c: Z3_context, domain: Z3_sort, v: Z3_ast) => Z3_ast; mk_map: (c: Z3_context, f: Z3_func_decl, args: Z3_ast[]) => Z3_ast; mk_array_default: (c: Z3_context, array: Z3_ast) => Z3_ast; mk_as_array: (c: Z3_context, f: Z3_func_decl) => Z3_ast; mk_set_has_size: (c: Z3_context, set: Z3_ast, k: Z3_ast) => Z3_ast; mk_set_sort: (c: Z3_context, ty: Z3_sort) => Z3_sort; mk_empty_set: (c: Z3_context, domain: Z3_sort) => Z3_ast; mk_full_set: (c: Z3_context, domain: Z3_sort) => Z3_ast; mk_set_add: (c: Z3_context, set: Z3_ast, elem: Z3_ast) => Z3_ast; mk_set_del: (c: Z3_context, set: Z3_ast, elem: Z3_ast) => Z3_ast; mk_set_union: (c: Z3_context, args: Z3_ast[]) => Z3_ast; mk_set_intersect: (c: Z3_context, args: Z3_ast[]) => Z3_ast; mk_set_difference: (c: Z3_context, arg1: Z3_ast, arg2: Z3_ast) => Z3_ast; mk_set_complement: (c: Z3_context, arg: Z3_ast) => Z3_ast; mk_set_member: (c: Z3_context, elem: Z3_ast, set: Z3_ast) => Z3_ast; mk_set_subset: (c: Z3_context, arg1: Z3_ast, arg2: Z3_ast) => Z3_ast; mk_array_ext: (c: Z3_context, arg1: Z3_ast, arg2: Z3_ast) => Z3_ast; mk_numeral: (c: Z3_context, numeral: string, ty: Z3_sort) => Z3_ast; mk_real: (c: Z3_context, num: int, den: int) => Z3_ast; mk_real_int64: (c: Z3_context, num: int64_t, den: int64_t) => Z3_ast; mk_int: (c: Z3_context, v: int, ty: Z3_sort) => Z3_ast; mk_unsigned_int: (c: Z3_context, v: unsigned, ty: Z3_sort) => Z3_ast; mk_int64: (c: Z3_context, v: int64_t, ty: Z3_sort) => Z3_ast; mk_unsigned_int64: (c: Z3_context, v: uint64_t, ty: Z3_sort) => Z3_ast; mk_bv_numeral: (c: Z3_context, bits: boolean[]) => Z3_ast; mk_seq_sort: (c: Z3_context, s: Z3_sort) => Z3_sort; is_seq_sort: (c: Z3_context, s: Z3_sort) => boolean; get_seq_sort_basis: (c: Z3_context, s: Z3_sort) => Z3_sort; mk_re_sort: (c: Z3_context, seq: Z3_sort) => Z3_sort; is_re_sort: (c: Z3_context, s: Z3_sort) => boolean; get_re_sort_basis: (c: Z3_context, s: Z3_sort) => Z3_sort; mk_string_sort: (c: Z3_context) => Z3_sort; mk_char_sort: (c: Z3_context) => Z3_sort; is_string_sort: (c: Z3_context, s: Z3_sort) => boolean; is_char_sort: (c: Z3_context, s: Z3_sort) => boolean; mk_string: (c: Z3_context, s: string) => Z3_ast; mk_lstring: (c: Z3_context, len: unsigned, s: string) => Z3_ast; mk_u32string: (c: Z3_context, chars: unsigned[]) => Z3_ast; is_string: (c: Z3_context, s: Z3_ast) => boolean; get_string: (c: Z3_context, s: Z3_ast) => string; get_string_length: (c: Z3_context, s: Z3_ast) => unsigned; get_string_contents: (c: Z3_context, s: Z3_ast, length: unsigned) => unsigned[]; mk_seq_empty: (c: Z3_context, seq: Z3_sort) => Z3_ast; mk_seq_unit: (c: Z3_context, a: Z3_ast) => Z3_ast; mk_seq_concat: (c: Z3_context, args: Z3_ast[]) => Z3_ast; mk_seq_prefix: (c: Z3_context, prefix: Z3_ast, s: Z3_ast) => Z3_ast; mk_seq_suffix: (c: Z3_context, suffix: Z3_ast, s: Z3_ast) => Z3_ast; mk_seq_contains: (c: Z3_context, container: Z3_ast, containee: Z3_ast) => Z3_ast; mk_str_lt: (c: Z3_context, prefix: Z3_ast, s: Z3_ast) => Z3_ast; mk_str_le: (c: Z3_context, prefix: Z3_ast, s: Z3_ast) => Z3_ast; mk_seq_extract: (c: Z3_context, s: Z3_ast, offset: Z3_ast, length: Z3_ast) => Z3_ast; mk_seq_replace: (c: Z3_context, s: Z3_ast, src: Z3_ast, dst: Z3_ast) => Z3_ast; mk_seq_at: (c: Z3_context, s: Z3_ast, index: Z3_ast) => Z3_ast; mk_seq_nth: (c: Z3_context, s: Z3_ast, index: Z3_ast) => Z3_ast; mk_seq_length: (c: Z3_context, s: Z3_ast) => Z3_ast; mk_seq_index: (c: Z3_context, s: Z3_ast, substr: Z3_ast, offset: Z3_ast) => Z3_ast; mk_seq_last_index: (c: Z3_context, s: Z3_ast, substr: Z3_ast) => Z3_ast; mk_seq_map: (c: Z3_context, f: Z3_ast, s: Z3_ast) => Z3_ast; mk_seq_mapi: (c: Z3_context, f: Z3_ast, i: Z3_ast, s: Z3_ast) => Z3_ast; mk_seq_foldl: (c: Z3_context, f: Z3_ast, a: Z3_ast, s: Z3_ast) => Z3_ast; mk_seq_foldli: (c: Z3_context, f: Z3_ast, i: Z3_ast, a: Z3_ast, s: Z3_ast) => Z3_ast; mk_str_to_int: (c: Z3_context, s: Z3_ast) => Z3_ast; mk_int_to_str: (c: Z3_context, s: Z3_ast) => Z3_ast; mk_string_to_code: (c: Z3_context, a: Z3_ast) => Z3_ast; mk_string_from_code: (c: Z3_context, a: Z3_ast) => Z3_ast; mk_ubv_to_str: (c: Z3_context, s: Z3_ast) => Z3_ast; mk_sbv_to_str: (c: Z3_context, s: Z3_ast) => Z3_ast; mk_seq_to_re: (c: Z3_context, seq: Z3_ast) => Z3_ast; mk_seq_in_re: (c: Z3_context, seq: Z3_ast, re: Z3_ast) => Z3_ast; mk_re_plus: (c: Z3_context, re: Z3_ast) => Z3_ast; mk_re_star: (c: Z3_context, re: Z3_ast) => Z3_ast; mk_re_option: (c: Z3_context, re: Z3_ast) => Z3_ast; mk_re_union: (c: Z3_context, args: Z3_ast[]) => Z3_ast; mk_re_concat: (c: Z3_context, args: Z3_ast[]) => Z3_ast; mk_re_range: (c: Z3_context, lo: Z3_ast, hi: Z3_ast) => Z3_ast; mk_re_allchar: (c: Z3_context, regex_sort: Z3_sort) => Z3_ast; mk_re_loop: (c: Z3_context, r: Z3_ast, lo: unsigned, hi: unsigned) => Z3_ast; mk_re_power: (c: Z3_context, re: Z3_ast, n: unsigned) => Z3_ast; mk_re_intersect: (c: Z3_context, args: Z3_ast[]) => Z3_ast; mk_re_complement: (c: Z3_context, re: Z3_ast) => Z3_ast; mk_re_diff: (c: Z3_context, re1: Z3_ast, re2: Z3_ast) => Z3_ast; mk_re_empty: (c: Z3_context, re: Z3_sort) => Z3_ast; mk_re_full: (c: Z3_context, re: Z3_sort) => Z3_ast; mk_char: (c: Z3_context, ch: unsigned) => Z3_ast; mk_char_le: (c: Z3_context, ch1: Z3_ast, ch2: Z3_ast) => Z3_ast; mk_char_to_int: (c: Z3_context, ch: Z3_ast) => Z3_ast; mk_char_to_bv: (c: Z3_context, ch: Z3_ast) => Z3_ast; mk_char_from_bv: (c: Z3_context, bv: Z3_ast) => Z3_ast; mk_char_is_digit: (c: Z3_context, ch: Z3_ast) => Z3_ast; mk_linear_order: (c: Z3_context, a: Z3_sort, id: unsigned) => Z3_func_decl; mk_partial_order: (c: Z3_context, a: Z3_sort, id: unsigned) => Z3_func_decl; mk_piecewise_linear_order: (c: Z3_context, a: Z3_sort, id: unsigned) => Z3_func_decl; mk_tree_order: (c: Z3_context, a: Z3_sort, id: unsigned) => Z3_func_decl; mk_transitive_closure: (c: Z3_context, f: Z3_func_decl) => Z3_func_decl; mk_pattern: (c: Z3_context, terms: Z3_ast[]) => Z3_pattern; mk_bound: (c: Z3_context, index: unsigned, ty: Z3_sort) => Z3_ast; mk_forall: (c: Z3_context, weight: unsigned, patterns: Z3_pattern[], sorts: Z3_sort[], decl_names: Z3_symbol[], body: Z3_ast) => Z3_ast; mk_exists: (c: Z3_context, weight: unsigned, patterns: Z3_pattern[], sorts: Z3_sort[], decl_names: Z3_symbol[], body: Z3_ast) => Z3_ast; mk_quantifier: (c: Z3_context, is_forall: boolean, weight: unsigned, patterns: Z3_pattern[], sorts: Z3_sort[], decl_names: Z3_symbol[], body: Z3_ast) => Z3_ast; mk_quantifier_ex: (c: Z3_context, is_forall: boolean, weight: unsigned, quantifier_id: Z3_symbol, skolem_id: Z3_symbol, patterns: Z3_pattern[], no_patterns: Z3_ast[], sorts: Z3_sort[], decl_names: Z3_symbol[], body: Z3_ast) => Z3_ast; mk_forall_const: (c: Z3_context, weight: unsigned, bound: Z3_app[], patterns: Z3_pattern[], body: Z3_ast) => Z3_ast; mk_exists_const: (c: Z3_context, weight: unsigned, bound: Z3_app[], patterns: Z3_pattern[], body: Z3_ast) => Z3_ast; mk_quantifier_const: (c: Z3_context, is_forall: boolean, weight: unsigned, bound: Z3_app[], patterns: Z3_pattern[], body: Z3_ast) => Z3_ast; mk_quantifier_const_ex: (c: Z3_context, is_forall: boolean, weight: unsigned, quantifier_id: Z3_symbol, skolem_id: Z3_symbol, bound: Z3_app[], patterns: Z3_pattern[], no_patterns: Z3_ast[], body: Z3_ast) => Z3_ast; mk_lambda: (c: Z3_context, sorts: Z3_sort[], decl_names: Z3_symbol[], body: Z3_ast) => Z3_ast; mk_lambda_const: (c: Z3_context, bound: Z3_app[], body: Z3_ast) => Z3_ast; get_symbol_kind: (c: Z3_context, s: Z3_symbol) => Z3_symbol_kind; get_symbol_int: (c: Z3_context, s: Z3_symbol) => int; get_symbol_string: (c: Z3_context, s: Z3_symbol) => string; get_sort_name: (c: Z3_context, d: Z3_sort) => Z3_symbol; get_sort_id: (c: Z3_context, s: Z3_sort) => unsigned; sort_to_ast: (c: Z3_context, s: Z3_sort) => Z3_ast; is_eq_sort: (c: Z3_context, s1: Z3_sort, s2: Z3_sort) => boolean; get_sort_kind: (c: Z3_context, t: Z3_sort) => Z3_sort_kind; get_bv_sort_size: (c: Z3_context, t: Z3_sort) => unsigned; get_finite_domain_sort_size: (c: Z3_context, s: Z3_sort) => uint64_t | null; get_array_arity: (c: Z3_context, s: Z3_sort) => unsigned; get_array_sort_domain: (c: Z3_context, t: Z3_sort) => Z3_sort; get_array_sort_domain_n: (c: Z3_context, t: Z3_sort, idx: unsigned) => Z3_sort; get_array_sort_range: (c: Z3_context, t: Z3_sort) => Z3_sort; get_tuple_sort_mk_decl: (c: Z3_context, t: Z3_sort) => Z3_func_decl; get_tuple_sort_num_fields: (c: Z3_context, t: Z3_sort) => unsigned; get_tuple_sort_field_decl: (c: Z3_context, t: Z3_sort, i: unsigned) => Z3_func_decl; get_datatype_sort_num_constructors: (c: Z3_context, t: Z3_sort) => unsigned; get_datatype_sort_constructor: (c: Z3_context, t: Z3_sort, idx: unsigned) => Z3_func_decl; get_datatype_sort_recognizer: (c: Z3_context, t: Z3_sort, idx: unsigned) => Z3_func_decl; get_datatype_sort_constructor_accessor: (c: Z3_context, t: Z3_sort, idx_c: unsigned, idx_a: unsigned) => Z3_func_decl; datatype_update_field: (c: Z3_context, field_access: Z3_func_decl, t: Z3_ast, value: Z3_ast) => Z3_ast; get_relation_arity: (c: Z3_context, s: Z3_sort) => unsigned; get_relation_column: (c: Z3_context, s: Z3_sort, col: unsigned) => Z3_sort; mk_atmost: (c: Z3_context, args: Z3_ast[], k: unsigned) => Z3_ast; mk_atleast: (c: Z3_context, args: Z3_ast[], k: unsigned) => Z3_ast; mk_pble: (c: Z3_context, args: Z3_ast[], coeffs: int[], k: int) => Z3_ast; mk_pbge: (c: Z3_context, args: Z3_ast[], coeffs: int[], k: int) => Z3_ast; mk_pbeq: (c: Z3_context, args: Z3_ast[], coeffs: int[], k: int) => Z3_ast; func_decl_to_ast: (c: Z3_context, f: Z3_func_decl) => Z3_ast; is_eq_func_decl: (c: Z3_context, f1: Z3_func_decl, f2: Z3_func_decl) => boolean; get_func_decl_id: (c: Z3_context, f: Z3_func_decl) => unsigned; get_decl_name: (c: Z3_context, d: Z3_func_decl) => Z3_symbol; get_decl_kind: (c: Z3_context, d: Z3_func_decl) => Z3_decl_kind; get_domain_size: (c: Z3_context, d: Z3_func_decl) => unsigned; get_arity: (c: Z3_context, d: Z3_func_decl) => unsigned; get_domain: (c: Z3_context, d: Z3_func_decl, i: unsigned) => Z3_sort; get_range: (c: Z3_context, d: Z3_func_decl) => Z3_sort; get_decl_num_parameters: (c: Z3_context, d: Z3_func_decl) => unsigned; get_decl_parameter_kind: (c: Z3_context, d: Z3_func_decl, idx: unsigned) => Z3_parameter_kind; get_decl_int_parameter: (c: Z3_context, d: Z3_func_decl, idx: unsigned) => int; get_decl_double_parameter: (c: Z3_context, d: Z3_func_decl, idx: unsigned) => double; get_decl_symbol_parameter: (c: Z3_context, d: Z3_func_decl, idx: unsigned) => Z3_symbol; get_decl_sort_parameter: (c: Z3_context, d: Z3_func_decl, idx: unsigned) => Z3_sort; get_decl_ast_parameter: (c: Z3_context, d: Z3_func_decl, idx: unsigned) => Z3_ast; get_decl_func_decl_parameter: (c: Z3_context, d: Z3_func_decl, idx: unsigned) => Z3_func_decl; get_decl_rational_parameter: (c: Z3_context, d: Z3_func_decl, idx: unsigned) => string; app_to_ast: (c: Z3_context, a: Z3_app) => Z3_ast; get_app_decl: (c: Z3_context, a: Z3_app) => Z3_func_decl; get_app_num_args: (c: Z3_context, a: Z3_app) => unsigned; get_app_arg: (c: Z3_context, a: Z3_app, i: unsigned) => Z3_ast; is_eq_ast: (c: Z3_context, t1: Z3_ast, t2: Z3_ast) => boolean; get_ast_id: (c: Z3_context, t: Z3_ast) => unsigned; get_ast_hash: (c: Z3_context, a: Z3_ast) => unsigned; get_sort: (c: Z3_context, a: Z3_ast) => Z3_sort; is_well_sorted: (c: Z3_context, t: Z3_ast) => boolean; get_bool_value: (c: Z3_context, a: Z3_ast) => Z3_lbool; get_ast_kind: (c: Z3_context, a: Z3_ast) => Z3_ast_kind; is_app: (c: Z3_context, a: Z3_ast) => boolean; is_ground: (c: Z3_context, a: Z3_ast) => boolean; get_depth: (c: Z3_context, a: Z3_ast) => unsigned; is_numeral_ast: (c: Z3_context, a: Z3_ast) => boolean; is_algebraic_number: (c: Z3_context, a: Z3_ast) => boolean; to_app: (c: Z3_context, a: Z3_ast) => Z3_app; to_func_decl: (c: Z3_context, a: Z3_ast) => Z3_func_decl; get_numeral_string: (c: Z3_context, a: Z3_ast) => string; get_numeral_binary_string: (c: Z3_context, a: Z3_ast) => string; get_numeral_decimal_string: (c: Z3_context, a: Z3_ast, precision: unsigned) => string; get_numeral_double: (c: Z3_context, a: Z3_ast) => double; get_numerator: (c: Z3_context, a: Z3_ast) => Z3_ast; get_denominator: (c: Z3_context, a: Z3_ast) => Z3_ast; get_numeral_small: (c: Z3_context, a: Z3_ast) => { num: int64_t; den: int64_t; } | null; get_numeral_int: (c: Z3_context, v: Z3_ast) => int | null; get_numeral_uint: (c: Z3_context, v: Z3_ast) => unsigned | null; get_numeral_uint64: (c: Z3_context, v: Z3_ast) => uint64_t | null; get_numeral_int64: (c: Z3_context, v: Z3_ast) => int64_t | null; get_numeral_rational_int64: (c: Z3_context, v: Z3_ast) => { num: int64_t; den: int64_t; } | null; get_algebraic_number_lower: (c: Z3_context, a: Z3_ast, precision: unsigned) => Z3_ast; get_algebraic_number_upper: (c: Z3_context, a: Z3_ast, precision: unsigned) => Z3_ast; pattern_to_ast: (c: Z3_context, p: Z3_pattern) => Z3_ast; get_pattern_num_terms: (c: Z3_context, p: Z3_pattern) => unsigned; get_pattern: (c: Z3_context, p: Z3_pattern, idx: unsigned) => Z3_ast; get_index_value: (c: Z3_context, a: Z3_ast) => unsigned; is_quantifier_forall: (c: Z3_context, a: Z3_ast) => boolean; is_quantifier_exists: (c: Z3_context, a: Z3_ast) => boolean; is_lambda: (c: Z3_context, a: Z3_ast) => boolean; get_quantifier_weight: (c: Z3_context, a: Z3_ast) => unsigned; get_quantifier_skolem_id: (c: Z3_context, a: Z3_ast) => Z3_symbol; get_quantifier_id: (c: Z3_context, a: Z3_ast) => Z3_symbol; get_quantifier_num_patterns: (c: Z3_context, a: Z3_ast) => unsigned; get_quantifier_pattern_ast: (c: Z3_context, a: Z3_ast, i: unsigned) => Z3_pattern; get_quantifier_num_no_patterns: (c: Z3_context, a: Z3_ast) => unsigned; get_quantifier_no_pattern_ast: (c: Z3_context, a: Z3_ast, i: unsigned) => Z3_ast; get_quantifier_num_bound: (c: Z3_context, a: Z3_ast) => unsigned; get_quantifier_bound_name: (c: Z3_context, a: Z3_ast, i: unsigned) => Z3_symbol; get_quantifier_bound_sort: (c: Z3_context, a: Z3_ast, i: unsigned) => Z3_sort; get_quantifier_body: (c: Z3_context, a: Z3_ast) => Z3_ast; simplify: (c: Z3_context, a: Z3_ast) => Z3_ast; simplify_ex: (c: Z3_context, a: Z3_ast, p: Z3_params) => Z3_ast; simplify_get_help: (c: Z3_context) => string; simplify_get_param_descrs: (c: Z3_context) => Z3_param_descrs; update_term: (c: Z3_context, a: Z3_ast, args: Z3_ast[]) => Z3_ast; substitute: (c: Z3_context, a: Z3_ast, from: Z3_ast[], to: Z3_ast[]) => Z3_ast; substitute_vars: (c: Z3_context, a: Z3_ast, to: Z3_ast[]) => Z3_ast; substitute_funs: (c: Z3_context, a: Z3_ast, from: Z3_func_decl[], to: Z3_ast[]) => Z3_ast; translate: (source: Z3_context, a: Z3_ast, target: Z3_context) => Z3_ast; mk_model: (c: Z3_context) => Z3_model; model_inc_ref: (c: Z3_context, m: Z3_model) => void; model_dec_ref: (c: Z3_context, m: Z3_model) => void; model_eval: (c: Z3_context, m: Z3_model, t: Z3_ast, model_completion: boolean) => Z3_ast | null; model_get_const_interp: (c: Z3_context, m: Z3_model, a: Z3_func_decl) => Z3_ast; model_has_interp: (c: Z3_context, m: Z3_model, a: Z3_func_decl) => boolean; model_get_func_interp: (c: Z3_context, m: Z3_model, f: Z3_func_decl) => Z3_func_interp; model_get_num_consts: (c: Z3_context, m: Z3_model) => unsigned; model_get_const_decl: (c: Z3_context, m: Z3_model, i: unsigned) => Z3_func_decl; model_get_num_funcs: (c: Z3_context, m: Z3_model) => unsigned; model_get_func_decl: (c: Z3_context, m: Z3_model, i: unsigned) => Z3_func_decl; model_get_num_sorts: (c: Z3_context, m: Z3_model) => unsigned; model_get_sort: (c: Z3_context, m: Z3_model, i: unsigned) => Z3_sort; model_get_sort_universe: (c: Z3_context, m: Z3_model, s: Z3_sort) => Z3_ast_vector; model_translate: (c: Z3_context, m: Z3_model, dst: Z3_context) => Z3_model; is_as_array: (c: Z3_context, a: Z3_ast) => boolean; get_as_array_func_decl: (c: Z3_context, a: Z3_ast) => Z3_func_decl; add_func_interp: (c: Z3_context, m: Z3_model, f: Z3_func_decl, default_value: Z3_ast) => Z3_func_interp; add_const_interp: (c: Z3_context, m: Z3_model, f: Z3_func_decl, a: Z3_ast) => void; func_interp_inc_ref: (c: Z3_context, f: Z3_func_interp) => void; func_interp_dec_ref: (c: Z3_context, f: Z3_func_interp) => void; func_interp_get_num_entries: (c: Z3_context, f: Z3_func_interp) => unsigned; func_interp_get_entry: (c: Z3_context, f: Z3_func_interp, i: unsigned) => Z3_func_entry; func_interp_get_else: (c: Z3_context, f: Z3_func_interp) => Z3_ast; func_interp_set_else: (c: Z3_context, f: Z3_func_interp, else_value: Z3_ast) => void; func_interp_get_arity: (c: Z3_context, f: Z3_func_interp) => unsigned; func_interp_add_entry: (c: Z3_context, fi: Z3_func_interp, args: Z3_ast_vector, value: Z3_ast) => void; func_entry_inc_ref: (c: Z3_context, e: Z3_func_entry) => void; func_entry_dec_ref: (c: Z3_context, e: Z3_func_entry) => void; func_entry_get_value: (c: Z3_context, e: Z3_func_entry) => Z3_ast; func_entry_get_num_args: (c: Z3_context, e: Z3_func_entry) => unsigned; func_entry_get_arg: (c: Z3_context, e: Z3_func_entry, i: unsigned) => Z3_ast; open_log: (filename: string) => boolean; append_log: (string: string) => void; close_log: () => void; toggle_warning_messages: (enabled: boolean) => void; set_ast_print_mode: (c: Z3_context, mode: Z3_ast_print_mode) => void; ast_to_string: (c: Z3_context, a: Z3_ast) => string; pattern_to_string: (c: Z3_context, p: Z3_pattern) => string; sort_to_string: (c: Z3_context, s: Z3_sort) => string; func_decl_to_string: (c: Z3_context, d: Z3_func_decl) => string; model_to_string: (c: Z3_context, m: Z3_model) => string; benchmark_to_smtlib_string: (c: Z3_context, name: string, logic: string, status: string, attributes: string, assumptions: Z3_ast[], formula: Z3_ast) => string; parse_smtlib2_string: (c: Z3_context, str: string, sort_names: Z3_symbol[], sorts: Z3_sort[], decl_names: Z3_symbol[], decls: Z3_func_decl[]) => Z3_ast_vector; parse_smtlib2_file: (c: Z3_context, file_name: string, sort_names: Z3_symbol[], sorts: Z3_sort[], decl_names: Z3_symbol[], decls: Z3_func_decl[]) => Z3_ast_vector; eval_smtlib2_string: (c: Z3_context, str: string) => string; mk_parser_context: (c: Z3_context) => Z3_parser_context; parser_context_inc_ref: (c: Z3_context, pc: Z3_parser_context) => void; parser_context_dec_ref: (c: Z3_context, pc: Z3_parser_context) => void; parser_context_add_sort: (c: Z3_context, pc: Z3_parser_context, s: Z3_sort) => void; parser_context_add_decl: (c: Z3_context, pc: Z3_parser_context, f: Z3_func_decl) => void; parser_context_from_string: (c: Z3_context, pc: Z3_parser_context, s: string) => Z3_ast_vector; get_error_code: (c: Z3_context) => Z3_error_code; set_error: (c: Z3_context, e: Z3_error_code) => void; get_error_msg: (c: Z3_context, err: Z3_error_code) => string; get_version: () => { major: unsigned; minor: unsigned; build_number: unsigned; revision_number: unsigned; }; get_full_version: () => string; enable_trace: (tag: string) => void; disable_trace: (tag: string) => void; reset_memory: () => void; finalize_memory: () => void; mk_goal: (c: Z3_context, models: boolean, unsat_cores: boolean, proofs: boolean) => Z3_goal; goal_inc_ref: (c: Z3_context, g: Z3_goal) => void; goal_dec_ref: (c: Z3_context, g: Z3_goal) => void; goal_precision: (c: Z3_context, g: Z3_goal) => Z3_goal_prec; goal_assert: (c: Z3_context, g: Z3_goal, a: Z3_ast) => void; goal_inconsistent: (c: Z3_context, g: Z3_goal) => boolean; goal_depth: (c: Z3_context, g: Z3_goal) => unsigned; goal_reset: (c: Z3_context, g: Z3_goal) => void; goal_size: (c: Z3_context, g: Z3_goal) => unsigned; goal_formula: (c: Z3_context, g: Z3_goal, idx: unsigned) => Z3_ast; goal_num_exprs: (c: Z3_context, g: Z3_goal) => unsigned; goal_is_decided_sat: (c: Z3_context, g: Z3_goal) => boolean; goal_is_decided_unsat: (c: Z3_context, g: Z3_goal) => boolean; goal_translate: (source: Z3_context, g: Z3_goal, target: Z3_context) => Z3_goal; goal_convert_model: (c: Z3_context, g: Z3_goal, m: Z3_model) => Z3_model; goal_to_string: (c: Z3_context, g: Z3_goal) => string; goal_to_dimacs_string: (c: Z3_context, g: Z3_goal, include_names: boolean) => string; mk_tactic: (c: Z3_context, name: string) => Z3_tactic; tactic_inc_ref: (c: Z3_context, t: Z3_tactic) => void; tactic_dec_ref: (c: Z3_context, g: Z3_tactic) => void; mk_probe: (c: Z3_context, name: string) => Z3_probe; probe_inc_ref: (c: Z3_context, p: Z3_probe) => void; probe_dec_ref: (c: Z3_context, p: Z3_probe) => void; tactic_and_then: (c: Z3_context, t1: Z3_tactic, t2: Z3_tactic) => Z3_tactic; tactic_or_else: (c: Z3_context, t1: Z3_tactic, t2: Z3_tactic) => Z3_tactic; tactic_par_or: (c: Z3_context, ts: Z3_tactic[]) => Z3_tactic; tactic_par_and_then: (c: Z3_context, t1: Z3_tactic, t2: Z3_tactic) => Z3_tactic; tactic_try_for: (c: Z3_context, t: Z3_tactic, ms: unsigned) => Z3_tactic; tactic_when: (c: Z3_context, p: Z3_probe, t: Z3_tactic) => Z3_tactic; tactic_cond: (c: Z3_context, p: Z3_probe, t1: Z3_tactic, t2: Z3_tactic) => Z3_tactic; tactic_repeat: (c: Z3_context, t: Z3_tactic, max: unsigned) => Z3_tactic; tactic_skip: (c: Z3_context) => Z3_tactic; tactic_fail: (c: Z3_context) => Z3_tactic; tactic_fail_if: (c: Z3_context, p: Z3_probe) => Z3_tactic; tactic_fail_if_not_decided: (c: Z3_context) => Z3_tactic; tactic_using_params: (c: Z3_context, t: Z3_tactic, p: Z3_params) => Z3_tactic; mk_simplifier: (c: Z3_context, name: string) => Z3_simplifier; simplifier_inc_ref: (c: Z3_context, t: Z3_simplifier) => void; simplifier_dec_ref: (c: Z3_context, g: Z3_simplifier) => void; solver_add_simplifier: (c: Z3_context, solver: Z3_solver, simplifier: Z3_simplifier) => Z3_solver; simplifier_and_then: (c: Z3_context, t1: Z3_simplifier, t2: Z3_simplifier) => Z3_simplifier; simplifier_using_params: (c: Z3_context, t: Z3_simplifier, p: Z3_params) => Z3_simplifier; get_num_simplifiers: (c: Z3_context) => unsigned; get_simplifier_name: (c: Z3_context, i: unsigned) => string; simplifier_get_help: (c: Z3_context, t: Z3_simplifier) => string; simplifier_get_param_descrs: (c: Z3_context, t: Z3_simplifier) => Z3_param_descrs; simplifier_get_descr: (c: Z3_context, name: string) => string; probe_const: (x: Z3_context, val: double) => Z3_probe; probe_lt: (x: Z3_context, p1: Z3_probe, p2: Z3_probe) => Z3_probe; probe_gt: (x: Z3_context, p1: Z3_probe, p2: Z3_probe) => Z3_probe; probe_le: (x: Z3_context, p1: Z3_probe, p2: Z3_probe) => Z3_probe; probe_ge: (x: Z3_context, p1: Z3_probe, p2: Z3_probe) => Z3_probe; probe_eq: (x: Z3_context, p1: Z3_probe, p2: Z3_probe) => Z3_probe; probe_and: (x: Z3_context, p1: Z3_probe, p2: Z3_probe) => Z3_probe; probe_or: (x: Z3_context, p1: Z3_probe, p2: Z3_probe) => Z3_probe; probe_not: (x: Z3_context, p: Z3_probe) => Z3_probe; get_num_tactics: (c: Z3_context) => unsigned; get_tactic_name: (c: Z3_context, i: unsigned) => string; get_num_probes: (c: Z3_context) => unsigned; get_probe_name: (c: Z3_context, i: unsigned) => string; tactic_get_help: (c: Z3_context, t: Z3_tactic) => string; tactic_get_param_descrs: (c: Z3_context, t: Z3_tactic) => Z3_param_descrs; tactic_get_descr: (c: Z3_context, name: string) => string; probe_get_descr: (c: Z3_context, name: string) => string; probe_apply: (c: Z3_context, p: Z3_probe, g: Z3_goal) => double; tactic_apply: (c: Z3_context, t: Z3_tactic, g: Z3_goal) => Z3_apply_result; tactic_apply_ex: (c: Z3_context, t: Z3_tactic, g: Z3_goal, p: Z3_params) => Z3_apply_result; apply_result_inc_ref: (c: Z3_context, r: Z3_apply_result) => void; apply_result_dec_ref: (c: Z3_context, r: Z3_apply_result) => void; apply_result_to_string: (c: Z3_context, r: Z3_apply_result) => string; apply_result_get_num_subgoals: (c: Z3_context, r: Z3_apply_result) => unsigned; apply_result_get_subgoal: (c: Z3_context, r: Z3_apply_result, i: unsigned) => Z3_goal; mk_solver: (c: Z3_context) => Z3_solver; mk_simple_solver: (c: Z3_context) => Z3_solver; mk_solver_for_logic: (c: Z3_context, logic: Z3_symbol) => Z3_solver; mk_solver_from_tactic: (c: Z3_context, t: Z3_tactic) => Z3_solver; solver_translate: (source: Z3_context, s: Z3_solver, target: Z3_context) => Z3_solver; solver_import_model_converter: (ctx: Z3_context, src: Z3_solver, dst: Z3_solver) => void; solver_get_help: (c: Z3_context, s: Z3_solver) => string; solver_get_param_descrs: (c: Z3_context, s: Z3_solver) => Z3_param_descrs; solver_set_params: (c: Z3_context, s: Z3_solver, p: Z3_params) => void; solver_inc_ref: (c: Z3_context, s: Z3_solver) => void; solver_dec_ref: (c: Z3_context, s: Z3_solver) => void; solver_interrupt: (c: Z3_context, s: Z3_solver) => void; solver_push: (c: Z3_context, s: Z3_solver) => void; solver_pop: (c: Z3_context, s: Z3_solver, n: unsigned) => void; solver_reset: (c: Z3_context, s: Z3_solver) => void; solver_get_num_scopes: (c: Z3_context, s: Z3_solver) => unsigned; solver_assert: (c: Z3_context, s: Z3_solver, a: Z3_ast) => void; solver_assert_and_track: (c: Z3_context, s: Z3_solver, a: Z3_ast, p: Z3_ast) => void; solver_from_file: (c: Z3_context, s: Z3_solver, file_name: string) => void; solver_from_string: (c: Z3_context, s: Z3_solver, str: string) => void; solver_get_assertions: (c: Z3_context, s: Z3_solver) => Z3_ast_vector; solver_get_units: (c: Z3_context, s: Z3_solver) => Z3_ast_vector; solver_get_trail: (c: Z3_context, s: Z3_solver) => Z3_ast_vector; solver_get_non_units: (c: Z3_context, s: Z3_solver) => Z3_ast_vector; solver_get_levels: (c: Z3_context, s: Z3_solver, literals: Z3_ast_vector, levels: unsigned[]) => void; solver_congruence_root: (c: Z3_context, s: Z3_solver, a: Z3_ast) => Z3_ast; solver_congruence_next: (c: Z3_context, s: Z3_solver, a: Z3_ast) => Z3_ast; solver_congruence_explain: (c: Z3_context, s: Z3_solver, a: Z3_ast, b: Z3_ast) => Z3_ast; solver_solve_for: (c: Z3_context, s: Z3_solver, variables: Z3_ast_vector, terms: Z3_ast_vector, guards: Z3_ast_vector) => void; solver_next_split: (c: Z3_context, cb: Z3_solver_callback, t: Z3_ast, idx: unsigned, phase: Z3_lbool) => boolean; solver_propagate_declare: (c: Z3_context, name: Z3_symbol, domain: Z3_sort[], range: Z3_sort) => Z3_func_decl; solver_propagate_register: (c: Z3_context, s: Z3_solver, e: Z3_ast) => void; solver_propagate_register_cb: (c: Z3_context, cb: Z3_solver_callback, e: Z3_ast) => void; solver_propagate_consequence: (c: Z3_context, cb: Z3_solver_callback, fixed: Z3_ast[], eq_lhs: Z3_ast[], eq_rhs: Z3_ast[], conseq: Z3_ast) => boolean; solver_set_initial_value: (c: Z3_context, s: Z3_solver, v: Z3_ast, val: Z3_ast) => void; solver_check: (c: Z3_context, s: Z3_solver) => Z3_lbool; solver_check_assumptions: (c: Z3_context, s: Z3_solver, assumptions: Z3_ast[]) => Z3_lbool; get_implied_equalities: (c: Z3_context, s: Z3_solver, terms: Z3_ast[]) => { rv: Z3_lbool; class_ids: unsigned[]; }; solver_get_consequences: (c: Z3_context, s: Z3_solver, assumptions: Z3_ast_vector, variables: Z3_ast_vector, consequences: Z3_ast_vector) => Z3_lbool; solver_cube: (c: Z3_context, s: Z3_solver, vars: Z3_ast_vector, backtrack_level: unsigned) => Z3_ast_vector; solver_get_model: (c: Z3_context, s: Z3_solver) => Z3_model; solver_get_proof: (c: Z3_context, s: Z3_solver) => Z3_ast; solver_get_unsat_core: (c: Z3_context, s: Z3_solver) => Z3_ast_vector; solver_get_reason_unknown: (c: Z3_context, s: Z3_solver) => string; solver_get_statistics: (c: Z3_context, s: Z3_solver) => Z3_stats; solver_to_string: (c: Z3_context, s: Z3_solver) => string; solver_to_dimacs_string: (c: Z3_context, s: Z3_solver, include_names: boolean) => string; stats_to_string: (c: Z3_context, s: Z3_stats) => string; stats_inc_ref: (c: Z3_context, s: Z3_stats) => void; stats_dec_ref: (c: Z3_context, s: Z3_stats) => void; stats_size: (c: Z3_context, s: Z3_stats) => unsigned; stats_get_key: (c: Z3_context, s: Z3_stats, idx: unsigned) => string; stats_is_uint: (c: Z3_context, s: Z3_stats, idx: unsigned) => boolean; stats_is_double: (c: Z3_context, s: Z3_stats, idx: unsigned) => boolean; stats_get_uint_value: (c: Z3_context, s: Z3_stats, idx: unsigned) => unsigned; stats_get_double_value: (c: Z3_context, s: Z3_stats, idx: unsigned) => double; get_estimated_alloc_size: () => uint64_t; algebraic_is_value: (c: Z3_context, a: Z3_ast) => boolean; algebraic_is_pos: (c: Z3_context, a: Z3_ast) => boolean; algebraic_is_neg: (c: Z3_context, a: Z3_ast) => boolean; algebraic_is_zero: (c: Z3_context, a: Z3_ast) => boolean; algebraic_sign: (c: Z3_context, a: Z3_ast) => int; algebraic_add: (c: Z3_context, a: Z3_ast, b: Z3_ast) => Z3_ast; algebraic_sub: (c: Z3_context, a: Z3_ast, b: Z3_ast) => Z3_ast; algebraic_mul: (c: Z3_context, a: Z3_ast, b: Z3_ast) => Z3_ast; algebraic_div: (c: Z3_context, a: Z3_ast, b: Z3_ast) => Z3_ast; algebraic_root: (c: Z3_context, a: Z3_ast, k: unsigned) => Z3_ast; algebraic_power: (c: Z3_context, a: Z3_ast, k: unsigned) => Z3_ast; algebraic_lt: (c: Z3_context, a: Z3_ast, b: Z3_ast) => boolean; algebraic_gt: (c: Z3_context, a: Z3_ast, b: Z3_ast) => boolean; algebraic_le: (c: Z3_context, a: Z3_ast, b: Z3_ast) => boolean; algebraic_ge: (c: Z3_context, a: Z3_ast, b: Z3_ast) => boolean; algebraic_eq: (c: Z3_context, a: Z3_ast, b: Z3_ast) => boolean; algebraic_neq: (c: Z3_context, a: Z3_ast, b: Z3_ast) => boolean; algebraic_roots: (c: Z3_context, p: Z3_ast, a: Z3_ast[]) => Z3_ast_vector; algebraic_eval: (c: Z3_context, p: Z3_ast, a: Z3_ast[]) => int; algebraic_get_poly: (c: Z3_context, a: Z3_ast) => Z3_ast_vector; algebraic_get_i: (c: Z3_context, a: Z3_ast) => unsigned; mk_ast_vector: (c: Z3_context) => Z3_ast_vector; ast_vector_inc_ref: (c: Z3_context, v: Z3_ast_vector) => void; ast_vector_dec_ref: (c: Z3_context, v: Z3_ast_vector) => void; ast_vector_size: (c: Z3_context, v: Z3_ast_vector) => unsigned; ast_vector_get: (c: Z3_context, v: Z3_ast_vector, i: unsigned) => Z3_ast; ast_vector_set: (c: Z3_context, v: Z3_ast_vector, i: unsigned, a: Z3_ast) => void; ast_vector_resize: (c: Z3_context, v: Z3_ast_vector, n: unsigned) => void; ast_vector_push: (c: Z3_context, v: Z3_ast_vector, a: Z3_ast) => void; ast_vector_translate: (s: Z3_context, v: Z3_ast_vector, t: Z3_context) => Z3_ast_vector; ast_vector_to_string: (c: Z3_context, v: Z3_ast_vector) => string; mk_ast_map: (c: Z3_context) => Z3_ast_map; ast_map_inc_ref: (c: Z3_context, m: Z3_ast_map) => void; ast_map_dec_ref: (c: Z3_context, m: Z3_ast_map) => void; ast_map_contains: (c: Z3_context, m: Z3_ast_map, k: Z3_ast) => boolean; ast_map_find: (c: Z3_context, m: Z3_ast_map, k: Z3_ast) => Z3_ast; ast_map_insert: (c: Z3_context, m: Z3_ast_map, k: Z3_ast, v: Z3_ast) => void; ast_map_erase: (c: Z3_context, m: Z3_ast_map, k: Z3_ast) => void; ast_map_reset: (c: Z3_context, m: Z3_ast_map) => void; ast_map_size: (c: Z3_context, m: Z3_ast_map) => unsigned; ast_map_keys: (c: Z3_context, m: Z3_ast_map) => Z3_ast_vector; ast_map_to_string: (c: Z3_context, m: Z3_ast_map) => string; mk_fixedpoint: (c: Z3_context) => Z3_fixedpoint; fixedpoint_inc_ref: (c: Z3_context, d: Z3_fixedpoint) => void; fixedpoint_dec_ref: (c: Z3_context, d: Z3_fixedpoint) => void; fixedpoint_add_rule: (c: Z3_context, d: Z3_fixedpoint, rule: Z3_ast, name: Z3_symbol) => void; fixedpoint_add_fact: (c: Z3_context, d: Z3_fixedpoint, r: Z3_func_decl, args: unsigned[]) => void; fixedpoint_assert: (c: Z3_context, d: Z3_fixedpoint, axiom: Z3_ast) => void; fixedpoint_query: (c: Z3_context, d: Z3_fixedpoint, query: Z3_ast) => Z3_lbool; fixedpoint_query_relations: (c: Z3_context, d: Z3_fixedpoint, relations: Z3_func_decl[]) => Z3_lbool; fixedpoint_get_answer: (c: Z3_context, d: Z3_fixedpoint) => Z3_ast; fixedpoint_get_reason_unknown: (c: Z3_context, d: Z3_fixedpoint) => string; fixedpoint_update_rule: (c: Z3_context, d: Z3_fixedpoint, a: Z3_ast, name: Z3_symbol) => void; fixedpoint_get_num_levels: (c: Z3_context, d: Z3_fixedpoint, pred: Z3_func_decl) => unsigned; fixedpoint_get_cover_delta: (c: Z3_context, d: Z3_fixedpoint, level: int, pred: Z3_func_decl) => Z3_ast; fixedpoint_add_cover: (c: Z3_context, d: Z3_fixedpoint, level: int, pred: Z3_func_decl, property: Z3_ast) => void; fixedpoint_get_statistics: (c: Z3_context, d: Z3_fixedpoint) => Z3_stats; fixedpoint_register_relation: (c: Z3_context, d: Z3_fixedpoint, f: Z3_func_decl) => void; fixedpoint_set_predicate_representation: (c: Z3_context, d: Z3_fixedpoint, f: Z3_func_decl, relation_kinds: Z3_symbol[]) => void; fixedpoint_get_rules: (c: Z3_context, f: Z3_fixedpoint) => Z3_ast_vector; fixedpoint_get_assertions: (c: Z3_context, f: Z3_fixedpoint) => Z3_ast_vector; fixedpoint_set_params: (c: Z3_context, f: Z3_fixedpoint, p: Z3_params) => void; fixedpoint_get_help: (c: Z3_context, f: Z3_fixedpoint) => string; fixedpoint_get_param_descrs: (c: Z3_context, f: Z3_fixedpoint) => Z3_param_descrs; fixedpoint_to_string: (c: Z3_context, f: Z3_fixedpoint, queries: Z3_ast[]) => string; fixedpoint_from_string: (c: Z3_context, f: Z3_fixedpoint, s: string) => Z3_ast_vector; fixedpoint_from_file: (c: Z3_context, f: Z3_fixedpoint, s: string) => Z3_ast_vector; mk_fpa_rounding_mode_sort: (c: Z3_context) => Z3_sort; mk_fpa_round_nearest_ties_to_even: (c: Z3_context) => Z3_ast; mk_fpa_rne: (c: Z3_context) => Z3_ast; mk_fpa_round_nearest_ties_to_away: (c: Z3_context) => Z3_ast; mk_fpa_rna: (c: Z3_context) => Z3_ast; mk_fpa_round_toward_positive: (c: Z3_context) => Z3_ast; mk_fpa_rtp: (c: Z3_context) => Z3_ast; mk_fpa_round_toward_negative: (c: Z3_context) => Z3_ast; mk_fpa_rtn: (c: Z3_context) => Z3_ast; mk_fpa_round_toward_zero: (c: Z3_context) => Z3_ast; mk_fpa_rtz: (c: Z3_context) => Z3_ast; mk_fpa_sort: (c: Z3_context, ebits: unsigned, sbits: unsigned) => Z3_sort; mk_fpa_sort_half: (c: Z3_context) => Z3_sort; mk_fpa_sort_16: (c: Z3_context) => Z3_sort; mk_fpa_sort_single: (c: Z3_context) => Z3_sort; mk_fpa_sort_32: (c: Z3_context) => Z3_sort; mk_fpa_sort_double: (c: Z3_context) => Z3_sort; mk_fpa_sort_64: (c: Z3_context) => Z3_sort; mk_fpa_sort_quadruple: (c: Z3_context) => Z3_sort; mk_fpa_sort_128: (c: Z3_context) => Z3_sort; mk_fpa_nan: (c: Z3_context, s: Z3_sort) => Z3_ast; mk_fpa_inf: (c: Z3_context, s: Z3_sort, negative: boolean) => Z3_ast; mk_fpa_zero: (c: Z3_context, s: Z3_sort, negative: boolean) => Z3_ast; mk_fpa_fp: (c: Z3_context, sgn: Z3_ast, exp: Z3_ast, sig: Z3_ast) => Z3_ast; mk_fpa_numeral_float: (c: Z3_context, v: float, ty: Z3_sort) => Z3_ast; mk_fpa_numer