6 #ifndef CHC_INV_CALLBACK_FN_H__
7 #define CHC_INV_CALLBACK_FN_H__
9 #include <ilang/smt-inout/chc_inv_in.h>
26 smtlib2_term proxy_push_quantifier_scope(smtlib2_parser_interface* p);
29 smtlib2_term proxy_pop_quantifier_scope(smtlib2_parser_interface* p);
32 smtlib2_term proxy_make_forall_term(smtlib2_parser_interface* parser,
36 smtlib2_term proxy_make_exists_term(smtlib2_parser_interface* parser,
40 void proxy_assert_formula(smtlib2_parser_interface* parser, smtlib2_term term);
43 void proxy_define_func(smtlib2_parser_interface* parser,
const char* name,
44 smtlib2_vector* params, smtlib2_sort sort,
47 smtlib2_sort proxy_make_sort(smtlib2_parser_interface* p,
const char* sortname,
48 smtlib2_vector* index);
50 void proxy_declare_variable(smtlib2_parser_interface* p,
const char* name,
53 void proxy_declare_function(smtlib2_parser_interface* p,
const char* name,
56 void proxy_check_sat(smtlib2_parser_interface* p);
59 smtlib2_term proxy_mk_function(smtlib2_context ctx,
const char* symbol,
60 smtlib2_sort sort, smtlib2_vector* index,
61 smtlib2_vector* args);
63 smtlib2_term proxy_mk_number(smtlib2_context ctx,
const char* rep,
64 unsigned int width,
unsigned int base);
67 #define SMTLIB2_VERILOG_DECLHANDLER(name) \
68 smtlib2_term smt_to_vlg_mk_##name(smtlib2_context ctx, const char* symbol, \
69 smtlib2_sort sort, smtlib2_vector* idx, \
72 SMTLIB2_VERILOG_DECLHANDLER(and);
73 SMTLIB2_VERILOG_DECLHANDLER(or);
74 SMTLIB2_VERILOG_DECLHANDLER(not);
75 SMTLIB2_VERILOG_DECLHANDLER(implies);
76 SMTLIB2_VERILOG_DECLHANDLER(eq);
77 SMTLIB2_VERILOG_DECLHANDLER(ite);
78 SMTLIB2_VERILOG_DECLHANDLER (xor);
79 SMTLIB2_VERILOG_DECLHANDLER(nand);
81 SMTLIB2_VERILOG_DECLHANDLER(
true);
82 SMTLIB2_VERILOG_DECLHANDLER(
false);
84 SMTLIB2_VERILOG_DECLHANDLER(concat);
85 SMTLIB2_VERILOG_DECLHANDLER(bvnot);
86 SMTLIB2_VERILOG_DECLHANDLER(bvand);
87 SMTLIB2_VERILOG_DECLHANDLER(bvnand);
88 SMTLIB2_VERILOG_DECLHANDLER(bvor);
89 SMTLIB2_VERILOG_DECLHANDLER(bvnor);
90 SMTLIB2_VERILOG_DECLHANDLER(bvxor);
91 SMTLIB2_VERILOG_DECLHANDLER(bvxnor);
92 SMTLIB2_VERILOG_DECLHANDLER(bvult);
93 SMTLIB2_VERILOG_DECLHANDLER(bvslt);
94 SMTLIB2_VERILOG_DECLHANDLER(bvule);
95 SMTLIB2_VERILOG_DECLHANDLER(bvsle);
96 SMTLIB2_VERILOG_DECLHANDLER(bvugt);
97 SMTLIB2_VERILOG_DECLHANDLER(bvsgt);
98 SMTLIB2_VERILOG_DECLHANDLER(bvuge);
99 SMTLIB2_VERILOG_DECLHANDLER(bvsge);
100 SMTLIB2_VERILOG_DECLHANDLER(bvcomp);
101 SMTLIB2_VERILOG_DECLHANDLER(bvneg);
102 SMTLIB2_VERILOG_DECLHANDLER(bvadd);
103 SMTLIB2_VERILOG_DECLHANDLER(bvsub);
104 SMTLIB2_VERILOG_DECLHANDLER(bvmul);
105 SMTLIB2_VERILOG_DECLHANDLER(bvudiv);
106 SMTLIB2_VERILOG_DECLHANDLER(bvsdiv);
107 SMTLIB2_VERILOG_DECLHANDLER(bvsmod);
108 SMTLIB2_VERILOG_DECLHANDLER(bvurem);
109 SMTLIB2_VERILOG_DECLHANDLER(bvsrem);
110 SMTLIB2_VERILOG_DECLHANDLER(bvshl);
111 SMTLIB2_VERILOG_DECLHANDLER(bvlshr);
112 SMTLIB2_VERILOG_DECLHANDLER(bvashr);
113 SMTLIB2_VERILOG_DECLHANDLER(extract);
114 SMTLIB2_VERILOG_DECLHANDLER(bit2bool);
115 SMTLIB2_VERILOG_DECLHANDLER(repeat);
116 SMTLIB2_VERILOG_DECLHANDLER(zero_extend);
117 SMTLIB2_VERILOG_DECLHANDLER(sign_extend);
118 SMTLIB2_VERILOG_DECLHANDLER(rotate_left);
119 SMTLIB2_VERILOG_DECLHANDLER(rotate_right);
121 #undef SMTLIB2_VERILOG_DECLHANDLER
126 #endif // CHC_INV_CALLBACK_FN_H__