霍恩子句

Horn子句是一个逻辑不连贯的字词,其中最多一个字词是正数,而其他字词都是负数。它是以Alfred Horn的名字命名的,他在1951年的一篇文章中描述了它们。

恰好有一个积极字面的Horn从句是定语从句;没有消极字面的定语从句有时称为"事实";没有积极字面的Horn从句有时称为目标句。这三种Horn分句在下面的命题例子中得到了说明。

定语从句¬ p ¬ q ¬ t u {\displaystyle \neg p\lor \neg qvee \cdots \vee \neg t u}。 {\displaystyle \neg p\lor \neg q\vee \cdots \vee \neg t\vee u}

事实u {/displaystyle u}。 {\displaystyle u}

目标句¬ p ¬ q ¬ t {\displaystyle \neg p\lor \neg q\vee \cdots \neg t}。 {\displaystyle \neg p\lor \neg q\vee \cdots \vee \neg t}

在非命题的情况下,一个分句中的所有变量都被隐含地统一量化,范围是整个分句。因此,例如:

¬人 ( X ) 凡人 ( X ) {\displaystyle {neg {text{human}}(X)\lor {text{mortal}}(X)}. {\displaystyle \neg {\text{human}}(X)\lor {\text{mortal}}(X)}

代表:

X ( ¬人 ( X ) 凡人 ( X ) ) ){displaystyle \forall X(\neg {\text{human}}(X)\lor {\text{mortal}}(X))}。 {\displaystyle \forall X(\neg {\text{human}}(X)\lor {\text{mortal}}(X))}

这在逻辑上等同于:

X ( 人类 ( X ) → 凡人 ( X ) ) 。{displaystyle \forall X({text{human}}(X)\rightarrow {text{mortal}}(X)).} {\displaystyle \forall X({\text{human}}(X)\rightarrow {\text{mortal}}(X)).}

Horn子句在构造逻辑和计算逻辑中起着基本的作用。它们在一阶解析的自动定理证明中非常重要,因为两个Horn子句的解析子本身就是一个Horn子句,一个目标子句和一个定语从句的解析子也是一个目标子句。Horn子句的这些特性可以使定理的证明效率更高(用目标子句的否定来表示)。

喇叭子句也是逻辑程序设计的基础,在逻辑程序设计中,通常以内涵的形式写定语从句。

( p q t ) → u {\displaystyle (p\wedge q\wedge \cdots \wedge t)\rightarrow u}。 {\displaystyle (p\wedge q\wedge \cdots \wedge t)\rightarrow u}

事实上,用定语从句解析目标从句产生新的目标从句是SLD解析推理规则的基础,用于实现逻辑编程和编程语言Prolog。

在逻辑编程中,一个定语从句表现为一个目标还原过程。例如,上面写的Horn子句就表现为一个程序。

显示u {displaystyle u}{\displaystyle u},显示p {displaystyle p}{\displaystyle p}和显示q {displaystyle q}q {displaystyle cdots }。{\displaystyle \cdots }并显示t {\displaystyle t{\displaystyle t}}

为了强调这种倒装句的用法,常常写成倒装句。

u ← ( p q t ) {\displaystyle u\leftarrow (p\land q\land \cdots \land t)}。 {\displaystyle u\leftarrow (p\land q\land \cdots \land t)}

在Prolog中,这写成。

u :- pq...t

Prolog的符号其实是有歧义的,"目标子句"这个词有时也被含糊地使用。目标子句中的变量可以理解为普遍性的,也可以理解为存在性的量化,推导出"假"既可以解释为推导出矛盾,也可以解释为推导出要解决的问题的成功解。

Van Emden和Kowalski(1976)在逻辑程序设计的背景下研究了Horn子句的模型理论特性,表明每一个定语从句集D都有一个唯一的最小模型M.一个原子式A如果且仅当AM中为真时,就会被D逻辑地隐含,由此可见,一个由正字的存在性量化连接表示的问题P如果且仅当PM中为真时,就会被D逻辑地隐含,Horn子句的最小模型语义是逻辑程序稳定模型语义的基础。

命题角子句在计算复杂性方面也很有意义,其中寻找真值赋值以使命题角子句的连接为真的问题是一个P-完全问题(事实上是可以在线性时间内解决的),有时称为HORNSAT。然而非限制性布尔可满足性问题是一个NP-完全问题)。一阶Horn子句的可满足性是不可决定的。

问题和答案

问:什么是角子句?
答:角子句是一个逻辑上的字词拆分,其中最多只有一个字词是正数,其他都是负数。

问:谁首先描述了它们?
答:Alfred Horn在1951年的一篇文章中首次描述了它们。

问:什么是定语从句?
答:一个正好有一个正字的霍恩子句被称为定语从句。

问:什么是事实?
答:一个没有否定字词的定语从句有时被称为 "事实"。

问:什么是目标句?
答:一个没有正字的角子句有时被称为目标句。

问:非命题情况下的变量是如何工作的?
答:在非命题情况下,一个子句中的所有变量都是隐含的普遍量化的,范围是整个子句。这意味着,它们适用于语句的每一部分。

问:霍恩子句在构造逻辑和计算逻辑中扮演什么角色?答:霍恩子句在一阶解析的自动定理证明中起着重要的作用,因为两个霍恩子句的解析或一个目标子句和一个确定子句之间的解析可以用来在证明代表其目标子句的否定的东西时创造更大的效率。它们也被用作逻辑编程语言(如Prolog)的基础,在那里它们的行为类似于目标还原程序。

AlegsaOnline.com - 2020 / 2023 - License CC3