def expr(self, use_reals): """ cannot make this as property because z3 expr is ctype, not compat with multiprocessing Queue also, cannot save this to sel._expr """ return Z3.parse(str(self.inv), use_reals)
def expr(self, use_reals): """ # sage: x, y, z = sage.all.var('x y z') # sage: mp = MPInv.mk_max_ieq((x-10, y-3), (y, 5)) # sage: mp.expr(use_reals=False) # If(x + -10 >= y + -3, If(y >= 5, x + -10 <= y, x + -10 <= 5), # If(y >= 5, y + -3 <= y, y + -3 <= 5)) # sage: MPInv.mk_max_ieq((x,), (y,z,0)).expr(use_reals=False) # If(And(y >= z, y >= 0), x <= y, If(z >= 0, x <= z, x <= 0)) """ a = tuple(Z3.parse(str(x), use_reals) for x in self.term.a) b = tuple(Z3.parse(str(x), use_reals) for x in self.term.b) expr = self.mp2df_expr(a, b, 0, self.term.is_max, self.is_ieq) return expr
def expr(self, use_reals): try: return self._expr except AttributeError: self._expr = Z3.parse(str(self.sageExpr), use_reals) return self._expr