def test_substituter_conditions(self): x = Symbol("x") y = Symbol("y") and_x_x = And(x, x) ftype = FunctionType(BOOL, [BOOL]) f = Symbol("f", ftype) # 1. All arguments must be terms args_good = {x: y} args_bad = {x: f} substitute(and_x_x, args_good) with self.assertRaisesRegex(TypeError, " substitutions"): substitute(and_x_x, args_bad) # 2. All arguments belong to the manager of the substituter. new_mgr = FormulaManager(get_env()) new_x = new_mgr.Symbol("x") self.assertNotEqual(x, new_x) args_1 = {x: new_x} args_2 = {new_x: new_x} with self.assertRaisesRegex(TypeError, "Formula Manager"): substitute(and_x_x, args_1) with self.assertRaisesRegex(TypeError, "Formula Manager."): substitute(and_x_x, args_2) with self.assertRaisesRegex(TypeError, "substitute()"): substitute(f, {x: x})
def test_formula_in_formula_manager(self): x = self.mgr.FreshSymbol() and_x_x = self.mgr.And(x, x) new_mgr = FormulaManager(get_env()) y = new_mgr.FreshSymbol() and_y_y = new_mgr.And(y, y) self.assertTrue(x in self.mgr) self.assertFalse(y in self.mgr) self.assertTrue(and_x_x in self.mgr) self.assertFalse(and_y_y in self.mgr)