def walk_bv_not(self, formula, args, **kwargs): z3term = z3.Z3_mk_bvnot(self.ctx.ref(), args[0]) z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term
def walk_bv_constant(self, formula, **kwargs): value = formula.constant_value() z3term = z3.Z3_mk_numeral(self.ctx.ref(), str(value), self.z3BitVecSort(formula.bv_width()).ast) z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term
def walk_bv_extract(self, formula, args, **kwargs): z3term = z3.Z3_mk_extract(self.ctx.ref(), formula.bv_extract_end(), formula.bv_extract_start(), args[0]) z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term
def walk_toreal(self, formula, args, **kwargs): z3term = z3.Z3_mk_int2real(self.ctx.ref(), args[0]) z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term
def walk_function(self, formula, args, **kwargs): z3func = self._z3_func_decl(formula.function_name()) _args, sz = self._to_ast_array(args) z3term = z3.Z3_mk_app(self.ctx.ref(), z3func, sz, _args) z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term
def walk_int_constant(self, formula, **kwargs): assert is_pysmt_integer(formula.constant_value()) const = str(formula.constant_value()) z3term = z3.Z3_mk_numeral(self.ctx.ref(), const, self.z3IntSort.ast) z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term
def walk_bool_constant(self, formula, **kwargs): _t = z3.BoolVal(formula.constant_value(), ctx=self.ctx) z3term = _t.as_ast() z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term
def walk_nary(self, formula, args, **kwargs): _args, sz = self._to_ast_array(args) z3term = func(self.ctx.ref(), sz, _args) z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term
def walk_binary(self, formula, args, **kwargs): z3term = func(self.ctx.ref(), args[0], args[1]) z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term
def walk_bv_tonatural(self, formula, args, **kwargs): z3term = z3.Z3_mk_bv2int(self.ctx.ref(), args[0], False) z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term
def walk_array_store(self, formula, args, **kwargs): z3term = z3.Z3_mk_store(self.ctx.ref(), args[0], args[1], args[2]) z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term
def walk_bv_sext(self, formula, args, **kwargs): z3term = z3.Z3_mk_sign_ext(self.ctx.ref(), formula.bv_extend_step(), args[0]) z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term
def walk_algebraic_constant(self, formula, **kwargs): rep = str(formula.constant_value()) z3term = z3.Z3_mk_numeral(self.ctx.ref(), rep, self.z3RealSort.ast) z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term
def walk_str_indexof(self, formula, args, **kwargs): z3term = z3.Z3_mk_seq_index(self.ctx.ref(), args[0], args[1], args[2]) z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term
def walk_str_substr(self, formula, args, **kwargs): z3term = z3.Z3_mk_seq_extract(self.ctx.ref(), args[0], args[1], args[2]) z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term
def walk_str_length(self, formula, args, **kwargs): z3term = z3.Z3_mk_seq_length(self.ctx.ref(), args[0]) z3.Z3_inc_ref(self.ctx.ref(), z3term) return z3term