Cláusula da buzina

Uma cláusula de Horn é uma disjunção lógica dos literais, onde no máximo um dos literais é positivo, e todos os outros são negativos. O seu nome vem de Alfred Horn, que os descreveu num artigo de 1951.

Uma cláusula Horn com exactamente um literal positivo é uma cláusula definitiva; uma cláusula definitiva sem um literal negativo é por vezes chamada "facto"; e uma cláusula Horn sem um literal positivo é por vezes chamada cláusula de objectivo. Estes três tipos de cláusulas de Trompa são ilustrados no seguinte exemplo proposicional:

cláusula definitiva: ¬ p q ∨ ⋯ ∨ ∨ ∨ u u ∨ u ∨ u u u u {\displaystyle \neg p\lor \neg q\vee \cdots \vee \neg t\vee u}

facto: u {\displaystyle u} {\displaystyle u}

cláusula de objectivo: ¬ p ∨ ∨ q ⋯ ∨ ∨ ∨ ∨ t {\i1}displaystyle p?rneg p?rneg q\iq q\iq q\iq q\iq ue dcdots {\displaystyle \neg p\lor \neg q\vee \cdots \vee \neg t}

No caso não proposicional, todas as variáveis de uma cláusula são implicitamente universalmente quantificadas com o alcance de toda a cláusula. Assim, por exemplo:

¬ humano ( X ) mortal ( X ) estilo de jogo Negativo ( X ) texto (humano)(X)ou texto (mortal)(X){\i}(X){\i} {\displaystyle \neg {\text{human}}(X)\lor {\text{mortal}}(X)}

representa:

X ( ¬ humano ( X ) mortal ( X ) ) estilo de jogo para todos os X(negosxtoshumanos)(X)ou X(mortal)(X))ou X(mortal) {\displaystyle \forall X(\neg {\text{human}}(X)\lor {\text{mortal}}(X))}

o que é logicamente equivalente a:

X ( humano ( X ) → mortal ( X ) ) . X(texto humano)(X)righttarrow(X)righttarrow(X)). } {\displaystyle \forall X({\text{human}}(X)\rightarrow {\text{mortal}}(X)).}

As cláusulas de trompa desempenham um papel básico na lógica construtiva e na lógica computacional. São importantes no teorema automatizado provado por resolução de primeira ordem, porque a resolução de duas cláusulas de Trompa é em si uma cláusula de Trompa, e a resolução de uma cláusula de objectivo e de uma cláusula definida é uma cláusula de objectivo. Estas propriedades das cláusulas Horn podem levar a uma maior eficiência na prova de um teorema (representado como a negação de uma cláusula de objectivo).

As cláusulas trompa são também a base da programação lógica, onde é comum escrever cláusulas definitivas sob a forma de uma implicação:

( p q ∧ ⋯ → ∧ t ) → u {\i1}displaystyle (p=dots da Suécia q=cdots da Suécia t)righttarrow u} {\displaystyle (p\wedge q\wedge \cdots \wedge t)\rightarrow u}

De facto, a resolução de uma cláusula de objectivo com uma cláusula definida para produzir uma nova cláusula de objectivo é a base da regra de inferência da resolução SLD, utilizada para implementar a programação lógica e a linguagem de programação Prolog.

Na programação lógica, uma cláusula definida comporta-se como um procedimento de redução de objectivos. Por exemplo, a cláusula Horn escrita acima comporta-se como o procedimento:

para mostrar u {\an8} {\displaystyle u}, mostrar p {\an8} {\displaystyle p}e mostrar q {\an8} qe {\an8}displaystyle u{\an8} {\displaystyle \cdots }e mostrar t {\i1} {\displaystyle t}.

Para enfatizar esta utilização retrógrada da cláusula, ela é frequentemente escrita na forma retrógrada:

u ← ( p q ∧ ⋯ ∧ t ) {\i1}displaystyle u{\i1}leftarrow (p³land q³land q³cdots {\i}land t)} {\displaystyle u\leftarrow (p\land q\land \cdots \land t)}

Em Prolog isto está escrito como:

u :- p, q, ..., t.

A notação Prolog é na realidade ambígua, e o termo "cláusula de objectivo" é por vezes também utilizado de forma ambígua. As variáveis de uma cláusula de objectivo podem ser lidas como universalmente ou existencialmente quantificadas, e derivar "falso" pode ser interpretado como derivando uma contradição ou como derivando uma solução bem sucedida do problema a ser resolvido.

Van Emden e Kowalski (1976) investigaram as propriedades teóricas do modelo de cláusulas Horn no contexto da programação lógica, mostrando que cada conjunto de cláusulas definidas D tem um modelo mínimo único M. Uma fórmula atómica A é logicamente implícita por D se e só se A for verdadeira em M. Segue-se que um problema P representado por uma conjunção existencialmente quantificada de literais positivos é logicamente implícito por D se e só se P for verdadeira em M. A semântica do modelo mínimo de cláusulas Horn é a base para a semântica estável do modelo de programas lógicos.

As cláusulas proposicionais Horn são também de interesse na complexidade computacional, onde o problema de encontrar atribuições de valores de verdade para tornar verdadeira uma conjunção de cláusulas proposicionais Horn é um problema P-completo (de facto solvível em tempo linear), por vezes chamado HORNSAT. (O problema de satisfação Booleana sem restrições é, no entanto, um problema NP-completo). A satisfação das cláusulas de trompa de primeira ordem é indecidível.

Perguntas e Respostas

P: O que é uma cláusula Horn?


R: Uma cláusula de Horn é uma disjunção lógica dos literais, onde no máximo um dos literais é positivo e todos os outros são negativos.

P: Quem as descreveu primeiro?


R: Alfred Horn os descreveu pela primeira vez em um artigo em 1951.

P: O que é uma cláusula definitiva?


R: Uma cláusula do Horn com exatamente um literal positivo é chamada de cláusula definitiva.

P: O que é um fato?


R: Uma cláusula definitiva sem literal negativo é às vezes referida como um "fato".

P: O que é uma cláusula de objetivo?


R: Uma cláusula de Horn sem um literal positivo é às vezes chamada de cláusula de gol.

P: Como funcionam as variáveis em casos não proposicionais?


R: No caso não proposicional, todas as variáveis de uma cláusula são implicitamente universalmente quantificadas com escopo a cláusula inteira. Isso significa que elas se aplicam a cada parte da declaração.

P: Que papel as cláusulas do Horn desempenham na lógica construtiva e na lógica computacional? R: As cláusulas Horn desempenham um papel importante no teorema automatizado, provando por resolução de primeira ordem, porque a resolução de duas cláusulas Horn ou entre um objetivo e um clausse definido pode ser usada para criar maior eficiência ao provar algo representado como a negação de seu clausse de objetivo. Elas também são usadas como base para linguagens de programação lógica, como o Prolog, onde se comportam como procedimentos de redução de metas.

AlegsaOnline.com - 2020 / 2023 - License CC3