Fixed regression in simplifying predicates with more than one argument.

This commit is contained in:
2017-06-12 18:27:39 +02:00
parent 64c9a741c4
commit 5f8c144628
3 changed files with 31 additions and 0 deletions

View File

@@ -166,4 +166,14 @@ TEST_CASE("[completion] Rules are completed", "[completion]")
"forall V1, V2 (a(V1, V2) <-> b(c((V1 + V2)), d((1 + V2))))\n"
"forall V3, V4 not b(V3, V4)\n");
}
SECTION("predicate with more than one argument")
{
input << "p(X, Y, Z).";
anthem::translate("input", input, context);
// TODO: simplify further
CHECK(output.str() ==
"forall V1, V2, V3 (p(V1, V2, V3) <-> #true)\n");
}
}

View File

@@ -171,4 +171,17 @@ TEST_CASE("[hidden predicate elimination] Hidden predicates are correctly elimin
"not (s and not t)\n"
"not (not #false and not #false and #false)\n");
}
SECTION("predicate with more than one argument is hidden correctly")
{
input <<
"a(X, Y, Z) :- p(X, Y, Z).\n"
"p(X, Y, Z).\n"
"#show a/3.";
anthem::translate("input", input, context);
// TODO: simplify further
CHECK(output.str() ==
"forall V1, V2, V3 (a(V1, V2, V3) <-> #true)\n");
}
}