def transform_Forall(self, node: Forall): var_refs, conds = unzip( map(extract_var_cond, map(self.transform, node.var_preds))) return ir.Complement( ir.Exists(var_refs, conds, ir.Complement(self.transform(node.pred))))
def transform_Exists(self, node: Exists): var_refs, conds = unzip( map(extract_var_cond, map(self.transform, node.var_preds))) return ir.Exists(var_refs, conds, self.transform(node.pred))
def __init__(self, var_preds, pred): super().__init__() self.var_preds = var_preds self.vars, self.conds = unzip(map(extract_var_cond, var_preds)) self.pred = pred