我希望能够在 ASP/cligo 中制定以下 FOL 语句:
∀ X. prop(X) ⇐ (∃ Y. ∀ V. ∃ A.
(p(Y, V, A) ∧ q(X, V, A))
)
两者的域X
由Y
给出dom/1
。的域A
由 给出domA/1
。的域V
是1..n
。
对我来说,问题是混合量化。现在,当然,我可以扩展∀ V
并得到如下内容:
prop(X) :- p(Y, 1, A_1), q(X, 1, A_1), domA(A_1),
p(Y, 2, A_2), q(X, 1, A_2), domA(A_2),
...,
p(Y, n, A_n), q(X, n, A_n), domA(A_n)
dom(X), dom(Y).
但是,当我n
直到运行时才知道(我将它作为参数传递给 cligo)时,这并不能很好地工作。
有没有办法用 cligo 方便又干净地做到这一点?还是应该改用 Python/Lua 脚本功能?如果是这样,怎么做?