def add_expr(self, e): """Add first-order formula.""" # the bitblaster understands priming # the prefix parser treats primed bits as fresh # so suffice it for t to contain unprimed only t = self.vars s = bv.bitblast(e, t) u = sym_bdd.add_expr(s, self.bdd) return u
def add_expr(self, e, with_ops=False): """Add first-order predicate. A predicate is a Boolean-valued formula. """ assert stx.isinstance_str(e), e # optional because current implementation is slow if with_ops: defs = self.op else: defs = None s = bv.bitblast(e, vrs=self.vars, defs=defs) assert stx.isinstance_str(s), s # was `e` a predicate ? return sym_bdd.add_expr(s, self.bdd)
def f(x): return bv.bitblast(x, t)
def add_expr(self, e): """Add first-order formula.""" t = self.vars s = bv.bitblast(e, t) u = sym_bdd.add_expr(s, self.bdd) return u