我想在 LogicBlox 中编码“暗示”逻辑。我有一个谓词:
Number(n),hasNumberName(n:i)->int(i).
isTrue[n] = i -> Number(n), boolean(i).
我在该谓词中添加了一些数据:
+Number(1).
现在,我想按照以下逻辑规则创建数字 2 和数字 3,以及这两个数字的真值:
如果 isTrue[1] 为真,则 isTrue[2] 为真或 isTrue[3] 为真。(isTrue[1] 暗示 (isTrue[2] 或 isTrue[3]))
所以我创建了一个谓词:
implies[n1,n2,n3] = e -> Number(n1), Number(n2), Number(n3),boolean(e).
然后我尝试创建这样的规则:
isTrue[n2] = true;isTrue[n3] = true <- isTrue[n1] = true,implies[n1,n2,n3] = true.
但是 LogicBlox 报告:“错误:规则头部不支持析取”
那么我如何编码这意味着LogicBlox中的逻辑?