def test2b(): x = SyExp("x", []) y = SyExp("y", []) e1 = SyExp("and", [x, y]) e2 = SyExp("or", [x, SyExp("not", [y])]) e3 = SyExp("eqv", [e1, e2]) t = TseitinCNF(e3, 1) vids, names = t.get_primitive_vars() print(vids) print(names) cnf = t.cnfs cnf.append([t.get_overall_id()]) status = qbf([1], cnf) print(e3, cnf) print("qbf: ", status) assert status is True status = qbf([1, 2], cnf) print("qbf: ", status) assert status is False
def test0(): x = SyExp("x", []) y = SyExp("y", []) e1 = SyExp("and", [x, y]) t = TseitinCNF(e1, 1) vids, names = t.get_primitive_vars() print(vids) print(names) cnf = t.cnfs cnf.append([t.get_overall_id()]) status = qbf([1], cnf) print(e1, cnf) print("qbf: ", status) assert status is False
def test1b(): x = SyExp("x", []) y = SyExp("y", []) e1 = SyExp("and", [x, y]) e2 = SyExp("eqv", [e1, x]) t = TseitinCNF(e2, 1) vids, names = t.get_primitive_vars() print(vids) print(names) cnf = t.cnfs cnf.append([t.get_overall_id()]) print(e2, cnf) # forall x, x /\y === x status = qbf([2], cnf) print("qbf: ", status) assert status is True