我只是对喇叭子句的定义感到困惑。“~A=>B”是喇叭子句吗?如果我们将其转换为析取形式,它将是“AvB”,它不是喇叭子句。
所以我想知道它是否是一个喇叭子句。谢谢。
~AvB 将是一个喇叭子句。相当于 A=>B。(最多一个正面字面量)
Horn 子句是文字与最多一个肯定文字的析取,即
~p1(...) \/ ~p2(...) \/ ... \/ ~pn(...) [ \/ p(...) ]
为了便于阅读,这可以写成
p(...) <= p1(...), p2(...), ..., pn(...).
因此,如果 A 和 B 是原子,B <= ~A
则不是Horn 子句,因为这对应于A \/ B
具有两个正字面量的逻辑形式。
反之亦然,只允许以“”和逗号书写的形式使用肯定文字=>
,并且在暗示的头部最多有一个文字/原子。如果头部没有原子,则该子句是一个查询子句,也是合法的。