Fixed regression in simplifying predicates with more than one argument.
This commit is contained in:
@@ -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");
|
||||
}
|
||||
}
|
||||
|
@@ -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");
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user