def pp_map(self, a, d, xs): r = [] sz = 0 f = z3.get_map_func(a) r.append(to_format(f.name())) for child in a.children(): r.append(self.pp_expr(child, d+1, xs)) sz = sz + 1 if sz > self.max_args: r.append(self.pp_ellipses()) break return seq1(self.pp_name(a), r)
def translate_head_func_decl(expr): decl = expr.decl() assert isinstance(decl,z3.FuncDeclRef) s = str(decl) if s == '==': return '=' elif z3.is_K(expr): #s == 'K': # Const array => Must include type return '(as const {})'.format(smt_sort_str(decl.range())) elif z3.is_map(expr): # FIXME: Not general enough for data maps? return '(_ map {})'.format(str(z3.get_map_func(expr)).lower()) else: return s.lower()
def pp_map(self, a, d, xs): f = z3.get_map_func(a) return self.pp_fdecl(f, a, d, xs)