Reimplement integer variable detection

This is a reimplementation of the integer variable detection procedure.
The idea is to iteratively assume variables to be noninteger, and to
prove that this would lead to a false or erroneous result. If the proof
is successful, the variable is integer as a consequence.
This commit is contained in:
2018-04-20 16:12:54 +02:00
parent 7ba48044ee
commit 2245e139b2
4 changed files with 410 additions and 210 deletions

View File

@@ -1,3 +1,6 @@
#show p/2.
#external integer(n(0)).
{p(1..n, 1..n)}.
:- p(X, Y1), p(X, Y2), Y1 != Y2.
@@ -8,5 +11,3 @@ q2(Y) :- p(_, Y).
:- not q1(X), X = 1..n.
:- not q2(Y), Y = 1..n.
#show p/2.