Support hiding auxiliary predicates

This commit is contained in:
2020-05-13 07:41:01 +02:00
parent 84031c483b
commit 82422cc28f
10 changed files with 528 additions and 29 deletions

View File

@@ -1,6 +1,4 @@
# Auxiliary predicate to determine whether a variable is integer. is_int/1 is declared as an input
# predicate so that anthem doesnt generate its completed definition
input: is_int/1.
# Auxiliary predicate to determine whether a variable is integer
axiom: forall X (is_int(X) <-> exists N X = N).
# Perform the proofs under the assumption that n is a nonnegative integer input constant. n stands
@@ -11,6 +9,10 @@ assume: n >= 0.
# s/2 is the input predicate defining the sets for which the program searches for exact covers
input: s/2.
# Only the in/1 predicate is an actual output, s/2 is an input and covered/1 and is_int/1 are
# auxiliary
output: in/1.
# Perform the proofs under the assumption that the second parameter of s/2 (the number of the set)
# is always an integer
assume: forall X, Y (s(X, Y) -> is_int(Y)).

View File

@@ -1 +1,3 @@
input: p/2.
assert: exists X, Y p(X, Y) <-> exists X q(X).

View File

@@ -1,3 +1,5 @@
input: p/1.
assert:
forall N
(