程序的答案集——为什么空集不是答案集?

Answer set of a program - why is the empty set not an answer set?

我对答案集的定义有点困惑。

如果S是P的最小模型,则S是P的答案集。

当我有节目时

b :- a
a.

然后我知道我的答案集必须是{a,b},因为a是事实。

如果我遇到类似

的情况会怎样
a :- b

在我找到的幻灯片中,他们声明 a 是一个答案集。但据我了解,当 b = true 意味着 a = true 时,规则得到满足。

所以如果我设置 a = false 和 b = false 那么规则也会被满足。

为什么空集不是答案集? (因为它将是 {a} 的子集)

空集a :- b.的答案集。在线尝试 运行 您的示例:https://potassco.org/clingo/run/

clingo version 5.3.0
Reading from stdin
-:1:6-7: info: atom does not occur in any rule head:
  b

Solving...
Answer: 1

SATISFIABLE

Models       : 1

(注意 "Answer: 1" 和 "SATISFIABLE" 之间的空行 -> 空集)