Подсчет количества истинных предикатов и ограничение

Есть ли особый способ ограничить количество истинных предикатов, доступных с использованием указанного факта?

На данный момент у меня всего (2). как факт. Я думал, что это сработает:

:- total(N), #count{x:something_to_limit(x)} = K, K=N.

Однако это не ограничивает количество предикатов something_to_limit указанным фактом total(2), где N будет равно 2.

Любая помощь будет принята с благодарностью :)


person Jared    schedule 25.01.2017    source источник


Ответы (1)


x в x:something_to_limit(x) является постоянным символом, вы, вероятно, захотите использовать переменные X. Ограничение

:- total(N), #count{X:something_to_limit(X)} = K, K=N.

должно сработать.

person tkrennwa    schedule 26.01.2017
comment
Это устранит все наборы ответов, в которых предикат something_to_limit истинен ровно для 2 констант (с total(2)). Если вы хотите иметь решения, в которых верны ровно 2 атома, вам нужно добавить not перед #count. - person peschü; 26.01.2017