以下内容使一个或多个文字正确:
a,b,c :- condition.
a;b;c :- condition.
在上面,a,b,c中的条件是有效的模型,但也可以是(a,条件),(a,b,条件)等。我希望a,b,c都真实,并且始终,如果条件为真。
我可以编写以下内容来强制a,b,c始终为真。
:- condition, a, not b.
:- condition, b, not c.
:- condition, c, not a.
但是对于复杂的规则,它们变得非常冗长且易于出错。
答案 0 :(得分:1)
你可以写
3 { a ; b ; c } 3 :- condition.
这意味着如果条件为true,则将大括号中的至少3个原子和最多3个原子定义为true。
您编写的约束含义非常不同,例如,第一个约束要求一些其他规则不得定义条件的真相,除非另有规则将b定义为是的。