Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando...

164

Transcript of Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando...

Page 1: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

Universidade Estadual de Campinas

Instituto de Filosofia e Ciências Humanas

Kleidson Êglicio Carvalho da Silva Oliveira

Programação LógicaParaconsistente em Lógicas Três e

Quatro Valoradas

CAMPINAS

2017

Page 2: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade
Page 3: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

Kleidson Êglicio Carvalho da Silva Oliveira

PROGRAMAÇÃO LÓGICA PARACONSISTENTE EM

LÓGICAS TRÊS E QUATRO VALORADAS

Tese apresentada ao Instituto de Filosofia e

Ciências Humanas da Universidade Estadual

de Campinas como parte dos requisitos

exigidos para obtenção do título de Doutor

em Filosofia.

Supervisor/Orientador: Prof. Dr. Marcelo Esteban Coniglio

ESTE EXEMPLAR CORRESPONDE À VERSÃO

FINAL DA TESE DEFENDIDA PELO ALUNO

KLEIDSON ÊGLICIO CARVALHO DA SILVA

OLIVEIRA E ORIENTADA PELO PROF. DR.

MARCELO ESTEBAN CONIGLIO.

______________________________________

CAMPINAS

2017

Page 4: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

Agência(s) de fomento e nº(s) de processo(s): FAPESP, 2013/04555-7

Ficha catalográficaUniversidade Estadual de Campinas

Biblioteca do Instituto de Filosofia e Ciências HumanasPaulo Roberto de Oliveira - CRB 8/6272

Oliveira, Kleidson Êglicio Carvalho da Silva, 1987- OL41p OliProgramação lógica paraconsistente em lógicas três e quatro valoradas /

Kleidson Êglicio Carvalho da Silva Oliveira. – Campinas, SP : [s.n.], 2017.

OliOrientador: Marcelo Esteban Coniglio. OliTese (doutorado) – Universidade Estadual de Campinas, Instituto de

Filosofia e Ciências Humanas.

Oli1. Programação lógica. 2. Lógica paraconsistente. 3. Lógica a múltiplos

valores. I. Coniglio, Marcelo Esteban,1963-. II. Universidade Estadual deCampinas. Instituto de Filosofia e Ciências Humanas. III. Título.

Informações para Biblioteca Digital

Título em outro idioma: Paraconsistent logic programming in three and four valued logicsPalavras-chave em inglês:Logic programmingParaconsistent logicMany-valued logicsÁrea de concentração: FilosofiaTitulação: Doutor em FilosofiaBanca examinadora:Marcelo Esteban Coniglio [Orientador]José Carlos MagossiRenata WassermannLuiz Henrique da Cruz SilvestriniEduardo FerméData de defesa: 30-03-2017Programa de Pós-Graduação: Filosofia

Powered by TCPDF (www.tcpdf.org)

Page 5: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

Universidade Estadual de Campinas

Instituto de Filosofia e Ciências Humanas

A Comissão Julgadora dos trabalhos de Defesa de Tese de Doutorado, composta pelos

Professores Doutores a seguir descritos, em sessão pública realizada em 30 de março de

2017, considerou o candidato Kleidson Êglicio Carvalho da Silva Oliveira aprovado.

Prof. Dr. Marcelo Esteban Coniglio

Prof. Dr. Eduardo Fermé

Prof. Dr. Luiz Henrique da Cruz Silvestrini

Profa. Dra. Renata Wassermann

Prof. Dr. José Carlos Magossi

A Ata de Defesa, assinada pelos membros da Comissão Examinadora, consta

no processo de vida acadêmica do aluno.

Page 6: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade
Page 7: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

Aos meus pais,

À minha avó

E à Viviane.

Page 8: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade
Page 9: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

Agradecimentos

Gostaria de fazer meus sinceros agradecimentos às pessoas que me apoiaram

nesse trabalho e sem as quais eu não teria chegado até este ponto:

- Ao orientador e amigo, Marcelo Esteban Coniglio, pela orientação sem prece-

dentes, pelas várias horas gastas na ajuda em teoremas e correções essenciais, pelo auxílio

sobre quais artigos e textos deveriam ser lidos cuidadosamente, assim como os demais

conselhos sobre como trilhar esse trabalho.

- Aos professores Walter A. Carnielli e Ítala M. L. D'Ottaviano, pelas discipli-

nas que tanto me ajudaram a amadurecer para que este trabalho fosse elaborado.

- Aos professores Luiz H. da C. Silvestrini e Marcelo Finger, pelas correções e

apontamentos realizados durante o Exame de Quali�cação que me ajudaram a melhorar

o trabalho.

- Aos professores Eduardo Fermé, Luiz H. da C. Silvestrini, Renata Wasser-

mann e José C. Magossi, por aceitarem participar do Exame de Defesa e pelas correções

e apontamentos realizados.

- Aos professores Hércules A. Feitosa, Marcelo Finger e Ítala M. L. D'Ottaviano

que aceitaram serem suplentes do Exame de Defesa.

- Aos amigos Viviane, Herman, Ana Cláudia, Allan, Ângela e João, que me

ouviram e aconselharam sempre que necessário, fosse sobre o texto ou outro assunto qual-

quer.

- Aos demais colegas do Centro de Lógica, Epistemologia e História da Ciência

(CLE), com quem convivi durante todos esses anos, aprendendo cada vez mais sobre os

Page 10: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

seus respectivos trabalhos através dos seminários de programa.

- Aos funcionários do CLE, sem os quais a estrutura necessária para o apren-

dizado não seria possível.

- Ao programa de Pós-graducação em Filoso�a e Ciências Humanas (IFCH).

- À FAPESP, pela bolsa de estudos concedida no processo número 2013/04555-

7.

- A Deus, por me dar força e vida para continuar esse projeto.

Muito Obrigado.

Page 11: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

Resumo

A partir da interação entre áreas como Ciência da Computação, Lógica e De-

dução Automática nasce uma importante nova área denominada Programação Lógica.

Esta vem sendo utilizada continuamente no estudo teórico e em aplicações concretas em

diversos ramos da Inteligência Arti�cial. Após o aumento do número de tipos de lógicas

não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a

necessidade de fazer programação lógica com outros tipos de raciocínios além do clássico.

Um dos tipos que vem sendo bastante estudado é o raciocínio paraconsistente, isto é, to-

lerante a contradições. Porém, apesar de existirem diversas lógicas paraconsistentes com

semânticas variadas, a sua aplicação a programação lógica é mais delicada do que pode

parecer, sendo necessário um profundo estudo sobre o que pode ou não ser transferido

diretamente da lógica clássica de primeira ordem para outros tipos de lógica. Com base

nos estudos de Rodrigues [Rod10] sobre os fundamentos da Programação Lógica Paracon-

sistente para algumas Lógicas da Inconsistência Formal LFIs, este trabalho tem o intuito

de retomar a pesquisa de Rodrigues [Rod10] e situá-la no contexto mais especí�co de

LFIs com semântica três e quatro valoradas que resultam interessantes do ponto de vista

computacional, como as apresentadas em Silvestrini [Sil11] e Coniglio e Figallo [CF12].

Este estudo visa de�nir, a partir de técnicas originais, sistemas de programação lógica

paraconsistente bem fundados baseados em lógicas já conhecidas, contrastando com as

abordagens ad hoc existentes na literatura para esta questão.

Palavras Chaves: Programação lógica, Lógica paraconsistente, Lógica a múltiplos va-

lores.

Page 12: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade
Page 13: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

Abstract

From the interaction among areas such as Computer Science, Logic and Auto-

mated Deduction arises an important new area called Logic Programming. This has been

used continuously in the theoretical study and practical applications in various �elds of

Arti�cial Intelligence. After increasing the number of types of non-classical logics, and

understanding the limitations of classical �rst-order logic, became necessary to consider

logic programming with other types of reasonings than the classical. One type that has

been studied extensively is the paraconsistent reasoning, that is, reasoning tolerant to

contradictions. However, although there are many paraconsistent logics with varying se-

mantics, its application to logic programming is more delicate than it appears at �rst

sight, requiring a thorough study of what can or can not be transferred directly from

the classical �rst-order logic for other types of logic. Based on studies of [Rod10] on

the foundations of Paraconsistent Logic Programming for some Logics of Formal Incon-

sistency (LFIs), this work is intended to resume the research of [Rod10] and place it in

the speci�c context of LFIs with three and four valued semantics, which are interesting

of the computational point of view, as presented in Silvestrini [Sil11] and Coniglio and

Figallo [CF12]. This study aims to de�ne, from original techniques, well-founded systems

of paraconsistent logic programming based on well-know logics, in contrast to the ad hoc

approaches in the literature found to this question.

Keywords: Logic programming, Paraconsistent logic, Many-valued logics.

Page 14: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade
Page 15: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

Sumário

Introdução 17

1 Programação Lógica Clássica 25

1.1 Uni�cação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

1.2 Pontos Fixos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

1.3 Cláusulas e Interpretações de Herbrand . . . . . . . . . . . . . . . . . . . . 32

1.4 Semântica Declarativa e Resolução-SLD . . . . . . . . . . . . . . . . . . . 39

2 Programação Lógica Disjuntiva 43

2.1 Programação Lógica Disjuntiva Clássica . . . . . . . . . . . . . . . . . . . 43

2.2 Resolução-SLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

2.3 Correção e Completude da Resolução-SLI . . . . . . . . . . . . . . . . . . . 60

3 Uma Programação Lógica Paraconsistente 3-valorada 65

3.1 Lógicas da Inconsistência Formal . . . . . . . . . . . . . . . . . . . . . . . 65

3.2 A lógica 3-valorada MPT0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

3.3 A lógica de predicados 3-valorada QMPT0 . . . . . . . . . . . . . . . . . . 75

3.4 O Cálculo de Resolução RPT para QMPT0 . . . . . . . . . . . . . . . . . . 94

3.5 Semântica Declarativa para RPT . . . . . . . . . . . . . . . . . . . . . . . 98

4 Uma Programação Lógica Paranormal 4-valorada 113

4.1 A lógica 4-valorada BD∼ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

4.2 A Lógica de predicados 4-valorada QBD∼ . . . . . . . . . . . . . . . . . . 120

4.3 O Cálculo de Resolução RQBD para QBD∼ . . . . . . . . . . . . . . . . . . 129

4.4 Semântica Declarativa para RQBD . . . . . . . . . . . . . . . . . . . . . . . 132

Considerações Finais 137

Page 16: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

Referências 143

Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

Apêndice A - Demonstração dos Resultados Principais do Capítulo 1 153

Apêndice B - Demonstração dos Resultados Principais do Capítulo 2 157

Page 17: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

17

Introdução

Com o advento dos computadores digitais, existia certa expectativa sobre o

desenvolvimento da utilização do formalismo lógico como instrumento para �fazer� ma-

temática, através de deduções automáticas de teoremas matemáticos, realizadas pelos

computadores digitais. Neste contexto, a lógica clássica de primeira ordem in�uenciou

intensamente a área de automatização de demonstrações desde seu começo, e em seguida,

a Programação Lógica. Um dos motivos que tornou a lógica de primeira ordem como

principal alvo no desenvolvimento de deduções automáticas foi seu formalismo sintático

universalmente reconhecido. Na parte semântica, era consenso a utilização da concepção

tarskiana de verdade para linguagens formalizadas [Tar99]. Outro fator que contribuiu

para a adoção da lógica de primeira ordem foi a possibilidade de reduzir todas as sentenças

à forma conjuntiva. Essa característica foi profundamente utilizada por um importante

método na área de dedução automática: o procedimento de resolução introduzido por Ro-

binson em [Rob65], uma regra de inferência especialmente desenvolvida para utilização em

computadores. Tal método, pertencente à classe dos métodos de refutação, tirava proveito

das capacidades de cálculos dos computadores baseando-se no Teorema de Herbrand.

Antes de adentrarmos no Teorema de Herbrand, devemos trazer à luz a no-

ção de Skolemização de uma fórmula. Em 1928, Skolem [Sko28] (traduzido como "On

Mathematical Logic"em [Hei77]), reduziu o problema da satisfatibilidade de uma fórmula

ao fragmento das fórmulas com apenas quanti�cadores universais. Assim, toda fórmula é

satisfatível em um domínio se, e somente se, sua versão Skolemizada também o é. Usando

essa técnica, Skolem conseguiu um procedimento de refutação que não dependia de um sis-

tema dedutivo particular. O método consistia em substituir, ordenadamente, as variáveis

universalmente quanti�cadas por todos os termos formados pelas constantes e símbolos

funcionais da linguagem da fórmula em questão. O Teorema de Herbrand, por sua vez,

diz que a fórmula é insatisfatível se, e somente se, alguma conjunção dessas substituições

é falsa, no sentido do cálculo proposicional. Depois desses primeiros trabalhos, Herbrand

apurou este resultado de modo que passou a funcionar com qualquer fórmula, e não apenas

Page 18: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

18

com aquelas Skolemizadas. A demonstração de Herbrand se dá a partir da derivação de

um sistema de primeira ordem, com o qual se constrói outra derivação, de uma disjunção

de fórmulas livres de quanti�cadores e fechadas (ver De�nição 1.3.7). Após a demons-

tração dessa disjunção, pode-se obter a demonstração da fórmula original. Deste modo,

a versão que lida com provabilidade dá-se o nome de Teorema de Herbrand, enquanto a

versão que lida com insatisfatibilidade é chamada Teorema de Skolem-Herbrand-Gödel.

Com a resolução de Robinson [Rob65] foi possível fundamentar um método de

refutação que algumas vezes determina a satisfatibilidade de certas fórmulas de primeira

ordem (não sempre, já que esse problema é indecidível),1 e que permite decidir a insatis-

fatibilidade de fórmulas de primeira ordem. O método de Robinson consiste em assumir

como entrada um número �nito de cláusulas na qual cada uma delas é interpretada como

o fechamento universal da disjunção de seus literais e um conjunto de cl ausulas2 como a

conjunção de seus elementos. Em termos gerais, podemos assumir assim como dito em

Rodrigues:

A resolução é um método de refutação que computacontra-exemplos para um conjunto �nito de cláusulas.Isto é, trata-se de um método para computar substitui-ções para as variáveis que falsi�quem alguma das cláu-sulas de entrada. Os contra-exemplos computados estãorestritos unicamente aos termos formados pelos símbo-los funcionais já presentes na entrada. Pelo teoremade Herbrand, o método todo tem sucesso exatamentequando a entrada é insatisfatível. ([Rod10], p.12)

Apesar de parecer estranho determinar a insatisfatibilidade através de contra-

exemplos, o teorema de Herbrand possibilita reduzir o espaço de busca pela insatisfati-

bilidade aos termos formados pelo material sintático já presente nas fórmulas. Posteri-

ormente, a resolução sofreu uma restrição que torna o processo de seleção mais e�ciente.

Esta nova resolução foi denominada resolução SLD3 e ela se restringe às Cláusulas de

Horn.4 Deste modo, os programas lógicos são conjuntos de cláusulas de Horn com no

máximo um literal positivo, as regras. Chamamos de consultas as cláusulas que não apre-

sentam nenhum literal positivo. Assim, a resolução SLD recebe um programa lógico P1Os trabalhos de Church [Chu36] e Turing [Tur37] demonstram por absurdo a inexistência de um

procedimento �nitário para o problema da decisão (de�nido por Hilbert e Ackermann [HA28] como umprocesso "que permita decidir a validade de expressões lógicas em um número �nito de operações"([HA28],p. 72-73)), citado em Soare ([Soa96], p. 6).

2Cada cláusula consiste de um conjunto �nito de literais, que por sua vez são fórmulas atômicas(literais positivos) ou negação de fórmulas atômicas (literais negativos)

3Abreviação de Selection-rule driven Linear resolution for De�nite Clauses.4Cláusulas que possuem no máximo um literal positivo.

Page 19: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

19

e uma regra N como entrada para depois efetuar a resolução entre a consulta e alguma

regra de P . A e�ciência maior deste processo deve-se ao fato de que para cada regra

pode-se selecionar um único literal (o positivo) para a resolução com N.

Deste modo, o surgimento da programação lógica deve-se à aplicação da reso-

lução SLD a uma área relacionada à Inteligência Arti�cial: o processamento de linguagem

natural. O método SLD introduzido em [Kow74] é completo e constitui a única regra de

inferência do sistema chamado na época de PROLOG.5

O fragmento das cláusulas de Horn da lógica de primeira ordem é su�ciente

para a de�nição de qualquer função computável, porém, temos que nenhum literal negado

é consequência lógica de um programa lógico, assim, está fora do alcance da lógica clássica

lidar com deduções de informações negativas a partir de programas lógicos.

Este é um grande problema quando queremos que os programas lógicos de-

duzam consequências simples. Como exemplo, tome um conjunto de cláusulas (átomos)

C�lho com os seguintes fatos:

C�lho = {{filho(Pedro,Maria), {filho(Marcos, Pedro)}}}

indicando que Pedro é �lho de Maria e que Marcos é �lho de Pedro. Esperaríamos que as

seguintes deduções pudessem ser feitas:

C�lho ` ¬filho(Maria, Pedro)

C�lho ` ¬filho(Marcos,Maria)

Contudo, isto é impossível do ponto de vista da lógica clássica baseada na

linguagem dos programas lógicos. Portanto, precisamos de duas maneiras de deduzir

negações: Uma implícita6 e uma explícita.7 A forma de dedução implícita recebe diversos

nomes na literatura, por exemplo:

É chamada de �conversão para a representação deinformação negativa� por Nicolas e Gallaire,8 a �supo-sição de mundo fechado (CWA)� por Reiter,9 e �inter-pretando a negação como Falha�, como discutido no ca-pítulo de Clark.10([GMN78], p.23. Tradução nossa)

5Abreviação de PROgramation in LOGique, cf. [[CR96], p. 331]6Para o tratamento de informação negativa em base de dados (sistemas usados em computação para

armazenar informações) e sistemas de representação de conhecimento.7Comum aos sistemas lógicos.8[NG78]9[Rei78]10[Cla78]

Page 20: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

20

Deduzimos a negação de um fato, do ponto de vista implícito, a partir da falta

de indícios de sua veracidade. Um exemplo interessante é dado a seguir:

Considere como primitivo o predicado monádico é

inocente. Em regimes de exceção, não é incomum queas pessoas sejam tomadas por culpadas, isto é, não

são inocentes, até que provem o contrário. Ou seja,na falta de informações mais detalhadas, caso não sejapossível a demonstração de inocência, a�rma-se a não

inocência. Logo, em ditaduras, os julgamentos de culpa(entendida formalmente como não inocência) são for-mulados através de uma interpretação implícita da ne-gação. ([Rod10], p.18)

Uma das primeiras propostas para lidar com a dedução de literais negativos

foi introduzida em [Cla78] e é chamada de negação por falha, a qual possui um caráter

não-monotônico, outra proposta sobre a implementação da negação em programas lógicos

pode ser vista em [Le92]. O operador apresentado em [Cla78] (representado aqui por �)

permite deduzir a negação de uma fórmula atômica A (representada por � A), a partir de

um programa lógico P apenas se todas as derivações SLD feitas a partir de P∪{← A}11

falham �nitamente. A extensão da resolução SLD pela regra de negação por falha é

denominada SLDNF, ela é usada com a função de deduzir o fechamento existencial de

alguma consulta geral12 a partir de um programa lógico geral.13

Por estar intimamente ligada ao ramo da Inteligência Arti�cial, a programação

lógica necessita de métodos de dedução sobre vários tipos de raciocínios, pois a IA tem

como um dos objetivos simular características que se assemelham à inteligência humana,

como por exemplo, a habilidade de adquirir novas informações e corrigir sua atuação

frente às novidades. Graças a resultados como o Teorema de Herbrand, que garantem que

a expressividade da lógica de primeira ordem é de certa forma redutível a da máquina

(computadores digitais), pode-se fazer programas lógicos que derivem certas consequên-

cias. Porém, quando estamos lidando com literais negativos, vimos que necessitamos

expandir o método para deduzirmos novidades.

Raciocínios não-monotônicos permitem lidar com informações incompletas de

modo que se um programa receber um acréscimo de informações pode deixar de derivar

algo anteriormente deduzido e passar a derivar novas consequências. Contudo, as infor-

mações podem não ser apenas incompletas, mas também contraditórias, deste modo, a

introdução de um tipo de negação denominada explícita (�1) está relacionada ao evento

11Notação Clausal.12Uma conjunção de literais de negação não-monotônica.13Permite a negação por falhas nas literais do corpo de suas regras.

Page 21: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

21

de que ao se admitir ocorrências explicitamente negadas, não se pode deixar de deduzi-las

quando aparecem contradições. Informações introduzidas explicitamente não podem ser

facilmente descartadas: logo, tal negação tem caráter monotônico, pois, uma vez deduzida,

não se pode deixar de derivá-la. Dessa maneira surgiu a programação lógica estendida,

admitindo dois tipos de negação nos corpos das regras dos programas e apenas a negação

explícita na cabeça das regras (ver De�nição 1.3.9).

No artigo de Damásio e Pereira, intitulado "A survey of paraconsistent se-

mantics for logic programs"([DP98], p. 242) os autores a�rmam que há três maneiras de

lidar com informações contraditórias: a explosiva,14 a de revisão de crenças15 e a paracon-

sistente. Após isto, citam vários autores que trabalham com raciocínio paraconsistente

de maneiras diferentes, utilizando semânticas distintas, como Belnap [Bel77b], Rescher e

Brandom [RB80], Almukdad e Nelson [AN84] e Priest, Routley e Norman [PRN88], assim,

ao invés de analisar cada semântica de maneira separada, eles tentam entender o que elas

possuem em comum, tentando ajustar cada semântica a semânticas bem-fundadas ou a

modelos semânticos estáveis. Complementam o estudo dessas variadas semânticas com

uma curta análise das teorias lógicas multivaloradas subjacentes a cada uma.

Nesta tese, apresentaremos uma nova abordagem paraconsistente de lidar com

informações contraditórias em base de dados, que permite que se admitam contradições

sem trivialização, levando isto em conta durante as deduções. Exemplos da necessidade

de utilização da abordagem paraconsistente pode ser encontrado em [DP98] e em [Rod10].

Aceitando que uma abordagem paraconsistente se faça necessária, a maioria

dos autores começa o desenvolvimento de programas lógicos admitindo que todas as variá-

veis estão instanciadas por todos os possíveis termos fechados da linguagem. O problema

ao se fazer isto é que se assume implicitamente alguma forma de teorema de Herbrand

para a lógica original, que é necessariamente paraconsistente. Deste modo, os autores

assumem que os resultados válidos para a lógica clássica também o são para a lógica

paraconsistente subjacente.

Um trabalho no viés do projeto apresentado nesta Tese pode ser encontrado

em [Rod10]. Naquela Dissertação de Mestrado, Rodrigues apresentou uma versão do

Teorema de Herbrand para algumas das lógicas pertencentes às LFIs.

As LFIs, Lógicas da Inconsistência Formal, foram introduzidas por Carnielli

e Marcos em [CM02] a partir de uma generalização dos sistemas lógicos paraconsistentes

de da Costa16 e aprofundadas depois em [CCM07] e [CC16]. Nas LFIs, noções como

14Abordagem clássica, na qual todas as fórmulas são dedutíveis a partir de uma contradição.15Abordagem que permite que a base de dados seja revisada de forma a obter novamente a consistência.16Ver [dC93].

Page 22: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

22

consistência e inconsistência são internalizadas na linguagem objeto através de novos

conectivos ◦ e •, sendo que a fórmula ◦α denota que a fórmula α é consistente e •α denota

que a fórmula α é inconsistente. As propriedades básicas das LFIs são as seguintes:

1. α, ¬α 0 β em geral, porém, α,¬α, ◦α ` β sempre;

2. α,¬α ` •α sempre.

As propriedades em (1) instituem que uma LFI é paraconsistente, visto que a

partir de uma contradição não podemos inferir, em geral, qualquer outra fórmula, mas,

a partir da contradição e da informação de que a fórmula contraditória é consistente,

inferimos qualquer outra fórmula. A propriedade (2) designa que de uma contradição

implica que a fórmula é inconsistente.17

As LFIs, uma vez que são subsistemas da lógica clássica, nunca demonstram

contradições. Deste modo, é impossível provar uma sentença A ∧ ¬A em uma LFI. Por

outro lado, é possível derivar conclusões não triviais de uma contradição, diferentemente

da lógica clássica.

Uma característica importante das LFIs é que, em geral, não podemos de�nir

um conectivo através de outro, além de que muitas das propriedades da implicação ma-

terial não são válidas. Por exemplo, α→ β e ¬α∨ β não são equivalentes, assim como as

fórmulas α→ β e ¬β → ¬α também não o são.

O trabalho de Rodrigues versou particularmente sobre duas LFIs,mbC emCi,

introduzidas em [Rod10], e suas versões de primeira ordem, respectivamente, QmbC e

QmCi,18 introduzidas em [Pod08] e estudadas em detalhes em [CCPR48]. Após apre-

sentar as lógicas citadas, o autor fez um detalhado estudo até conseguir a prova de uma

versão restrita19 do Teorema de Herbrand para QmbC mostrando que é possível o tra-

tamento da programação lógica paraconsistente de forma rigorosa e bem-fundada, com

resultados que validem os programas feitos com alguma LFI como lógica subjacente.

Uma LFI importante para esta Tese é a lógica LPT1 apresentada na Tese de

Doutorado de [Sil11] e estudada posteriormente em [CS14] e em [Con]. A base proposicio-

nal dessa LFI, denominada LPT, é equivalente a lógica paraconsistente MPT0 apresentada

em [CC16], assim como às lógicas J3 de D'Ottaviano e da Costa [DdC70] e LFI1 de Car-

nielli, Marcos e de Amo [CMdA00]. MPT0 será a base proposicional deste trabalho, por

17O inverso vale apenas nas LFIs em que esta propriedade é estipulada explicitamente.18As quatro LFIs (mbC,mCi, QmbC eQmCi) estão apresentadas com detalhes também em [Rod10].19Versão restrita no sentido de que trata apenas com fórmulas Π2 (fórmulas constituídas por uma

sequência de quanti�cadores universais seguidos por uma sequência de existenciais e, ao �nal, uma fórmulalivre de quanti�cadores). Isto acontece pois nas LFIs não é possível o tratar como conectivos primitivosapenas �¬� �∨� �∃� e também �∀� para fórmulas prenexas como feito por Herbrand em [Her30].

Page 23: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

23

conta de sua semântica de matrizes tri-valorada que se resulta interessante do ponto de

vista computacional. Um dos motivos da escolha de MPT0 para este trabalho é o fato

de que, sendo ela uma LFI, a partir de uma contradição paraconsistente (ver Observação

3.2.2) não entramos em colapso dedutivo. Outra razão para esta escolha é a possibilidade

de seu uso em Banco de Dados. Assim, quando deduzimos uma impossibilidade lógica,

consideramos que temos uma contradição paraconsistente, uma contradição fraca, que não

fará o sistema entrar em colapso, devendo apenas ser analisada para que outras conclusões

sejam realizadas. Um terceiro motivo para a escolha dessa lógica é a transformação ob-

tida para programas lógicos paraconsistentes, de modo a recuperarmos programas lógicos

clássicos (ver Lema 3.5.14).

Após os estudos sobre MPT0 e sua extensão à primeira ordem (denominada

QMPT0), realizaremos uma análise de uma expansão da lógica quatro valorada de Belnap-

Dunn (ver [DP98]). Expandiremos a lógica de Belnap-Dunn com uma negação clássica

e com uma implicação clássica de modo que ela seja ao mesmo tempo, paraconsistente e

paracompleta, denotando a base proposicional dessa expansão por BD∼. A importância

desta lógica surge do fato de ser uma extensão da lógica de N. Belnap [Bel77b] que, de

acordo com [DP98], é a base de todas as abordagens à Programação Lógica Paraconsis-

tente.

Desse modo, esta Tese �cou organizada da seguinte maneira:

No primeiro Capítulo, introduzimos o arcabouço teórico necessário para o es-

tudo da Programação Lógica Clássica seguindo o livro clássico de Lloyd [Llo87]. Necessi-

tamos desses resultados básicos para que possamos estender e/ou adaptar seus conceitos

para as lógicas paraconsistentes com as quais trabalharemos.

No segundo Capítulo, apresentamos um estudo acerca da Programação Lógica

Disjuntiva, seguindo o livro de Lobo, Minker e Rajasekar [LMR92]. A Programação

Lógica Disjuntiva será de suma importância neste trabalho, pois ela permite que existam

disjunções na cabeça de cláusulas de programas lógicos (ver De�nição 2.1.2), situação que

ocorrerá na programação lógica paraconsistente 3-valorada devido à validade do princípio

do terceiro excluído na lógica que será estudada no terceiro capítulo.

No terceiro Capítulo, após uma breve introdução sobre os aspectos essenciais

das LFIs, apresentaremos uma LFI básica denominadambC e começaremos a fundamen-

tar o cerne deste trabalho através da lógica MPT0 e de resultados originais obtidos para

sua extensão à primeira ordem denominada QMPT0, seus aspectos sintáticos e semânti-

cos, incluindo uma prova original da completude de QMPT0. Em seguida, iniciaremos a

construção de uma Programação Lógica Paraconsistente para QMPT0, tentando adequar

Page 24: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

24

os teoremas e lemas das Programações Lógica Clássica e Disjuntiva a esta nova realidade.

Dentre os resultados alcançados temos um cálculo de resolução correto e completo para

QMPT0 e a de�nição de uma semântica do ponto �xo (caracterização do mínimo modelo

de Herbrand) para este sistema baseado em QMPT0.

No quarto Capítulo estudaremos uma extensão de primeira ordem da lógica

4-valorada de Belnap-Dunn, denominada QBD∼, desenvolvendo uma programação lógica

paraconsistente e paracompleta seguindo os passos do capítulo anterior e tendo por base

os recentes estudos de Coniglio [Con]. De modo similar ao terceiro capítulo, mostrare-

mos uma prova original da correção e completude de QBD∼, assim como um cálculo de

resolução correto e completo e a de�nição de uma semântica do ponto �xo para QBD∼.

No último capítulo da Tese, elaboraremos os últimos apontamentos sobre o

que foi desenvolvido ao longo do trabalho, assim como algumas perspectivas dos próximos

passos a serem realizados para continuação deste estudo.

Page 25: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

25

Capítulo 1

Programação Lógica Clássica

Neste capítulo apresentaremos os conceitos básicos necessários da programação

lógica clássica, tais como de�nição e exemplo de uni�cação, pontos �xos, cláusulas e in-

terpretações de Herbrand e uma semântica declarativa para programação lógica clássica.

Ressaltamos que todos os resultados aqui descritos podem ser encontrados em [Llo87].

Como se trata de um capítulo introdutório que pode facilmente ser encontrado na li-

teratura colocamos a maioria das demonstrações deste capítulo no Apêndice A desta

Tese, com o intuito de facilitar a conferência para aqueles não tão familiarizados com este

conteúdo. Começaremos a seção seguinte tratando de Uni�cação.

1.1 Uni�cação

Descreveremos nesta seção um processo chamado de uni�cação, utilizado na

programação lógica, discutiremos ainda sobre uni�cadores e sobre a existência de um

algoritmo de uni�cação. Como uni�car uma fórmula é um procedimento independente

da linguagem de primeira ordem que se esteja usando, nesta Tese mostraremos apenas

as de�nições mais importantes que serão utilizadas. Para que todas as propriedades de

substituições e uni�cação sejam vistas, a referência [Llo87] pode ser consultada.

De�nição 1.1.1. Uma substituição1 θ é um conjunto �nito da forma {v1/t1, . . . , vn/tn}

onde cada vi é uma variável distinta de cada termo ti e v1, . . . , vn são distintos entre si.

Cada elemento vi/ti é chamado de uma ligação2 para vi. Chamamos θ de substituição

básica3 se todos os ti são termos básicos, isto é, sem variáveis. Chamamos θ de substituição

1Em inglês: Substituition2Em inglês: binding3Em inglês: ground substituition

Page 26: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

26

de variáveis-puras4 se todos os ti são variáveis.

De�nição 1.1.2. Uma expressão5 é um termo, ou um literal, ou uma conjunção ou

disjunção de literais. Uma expressão simples6 ou é um termo, ou um átomo.

De�nição 1.1.3. Seja θ = {v1/t1, . . . , vn/tn} uma substituição e E uma expressão. Então

Eθ (uma instância7 de E por θ) é a expressão obtida pela substituição simultânea de cada

variável vi em E por um termo ti correspondente. Se Eθ é básico, então ele é chamado de

instância básica8 de E. É importante observar que se S = {E1, . . . , En} é um conjunto

�nito de expressões, então Sθ denota o conjunto {E1θ, . . . , Enθ}.

Temos o exemplo abaixo para ilustrar as de�nições acima.

Exemplo 1.1.4. Seja E = q(x, y, g(b)) e θ = {x/a, y/x}, então Eθ = q(a, x, g(b)).

De�nição 1.1.5. Sejam θ = {u1/s1, . . . , um/sm} e σ = {v1/t1, . . . , vn/tn} duas substitui-

ções. Temos que a composição9 θσ de θ e σ é a substituição obtida do conjunto

{u1/s1σ, . . . , um/smσ, v1/t1, . . . , vn/tn}

deletando qualquer ligação ui/siσ para qual ui = siσ e deletando qualquer ligação vj/tj

para qual vj ∈ {u1, . . . , um}.

Exemplo 1.1.6. Seja θ = {z/f(x), x/y} e σ = {z/a, x/b, y/x}.

Então, fazendo todas substituições e acréscimos, temos, θσ = {z/f(b), x/x, z/a, x/b, y/x}.

Agora, deletando todo ui = siσ, temos:

θσ = {z/f(b), z/a, x/b, y/x}, �nalmente, deletando todos vj ∈ {u1, . . . , um}, temos, por

�m:

θσ = {z/f(b), y/x}

De�nição 1.1.7. A substituição dada pelo conjunto vazio é chamada de substituição

identidade10.4Em inglês: variable-pure substituition5Em inglês: expression6Em inglês: simple expression7Em inglês: instance8Em inglês: ground instance9Em inglês: composition10Em inglês: identity substituition

Page 27: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

27

Denotamos a substituição identidade por ε. Observamos que para qualquer

expressão E, Eε = E.

De�nição 1.1.8. Seja E uma expressão e V um conjunto de variáveis que ocorrem

em E. Um renomeamento de variáveis11 para E é uma substituição de variáveis-puras

{x1/y1, . . . , xn/yn} tal que {x1, . . . , xn} ⊆ V , os yi são distintos e (V \ {x1, . . . , xn}) ∩

{y1, . . . , yn} = ∅.

De�nição 1.1.9. Sejam E e F expressões. Dizemos que E e F são variantes12 se existem

θ e σ substituições tais que E = Fθ e F = Eσ. Dizemos também que E é uma variante

de F ou F é uma variante de E.

Estamos interessados nas uni�cações, ou seja, nas substituições que uni�cam

um certo conjunto de expressões, fazendo com que cada expressão em um conjunto seja

sintaticamente idêntica as outras. O conceito de uni�cação já era interessante para Her-

brand [Her79] desde 1930, mas, foi Robinson [Rob65] em 1963 que a utilizou em sua regra

de resolução. Conjuntos �nitos de expressões simples, de�nidas em 1.1.2 são o enfoque

deste trabalho.

De�nição 1.1.10. Seja S um conjunto �nito de expressões simples. Uma substituição θ

é chamada de um uni�cador 13 para S se Sθ é um conjunto unitário (a menos de renome-

amento de variáveis). Um uni�cador θ para S é chamado o uni�cador mais geral14 (mgu)

para S se para cada uni�cador σ de S, existe uma substituição γ tal que σ = θγ.

Exemplo 1.1.11. {p(f(x), a), p(y, f(w))} não é uni�cável, pois p(y, f(w)) não pode ser

uni�cável.

{p(f(x), z), p(w, a)} é uni�cável, pois σ = {w/f(a), x/a, z/a} é um uni�cador. Um

exemplo de uni�cador mais geral é θ = {w/f(x), z/a}. Note que σ = θ{x/a}.

{p(f(a), g(x)), p(y, y)} não é uni�cável uma vez que teremos de ter o mesmo uni�cador

para p(Y, Y ).

{p(a, x, h(g(z))); p(z, h(y), h(y))} é uni�cável. Um exemplo de uni�cador mais geral é

θ = {z/a, x/h(y), y/g(a)}.

De�nição 1.1.12. Seja S um conjunto �nito de expressões simples. O conjunto desa-

cordo15 de S é de�nido da seguinte maneira:11Em inglês: renaming substituition12Em inglês: variants13Em inglês: uni�er14Em inglês: most general uni�er15Em inglês: Disagreement set

Page 28: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

28

Localize o símbolo que ocorre mais a esquerda ao qual nem todas expressões em S tem

o mesmo símbolo e extraia de cada expressão em S a subexpressão começando naquele

símbolo. O conjunto de todas as subexpressões é o conjunto desacordo.

Dadas essas de�nições, garantimos a existência de um algoritmo de uni�cação

(dado um conjunto �nito de expressões simples S), que toma como entrada (input) S e

nos dá como saída (output) um mgu se o conjunto é uni�cável, caso contrário, reporta-nos

o fato desse conjunto não ser uni�cável. Esse algoritmo pode ser visto em [Llo87].

ALGORITMO DE UNIFICAÇÃO

1. Sejam k = 0 e σ0 = ε.

2. Se Sσk é única, então pare; σk é um mgu de S. Caso contrário, ache o conjunto

desacordo Dk de Sσk.

3. Se existem v e t em Dk tal que v é uma variável que não ocorre em t, então coloque

σk+1 = σk{v/t}, incrementando k e indo para 2. Caso contrário, pare; S não é

uni�cável.

No passo 3 do algoritmo de uni�cação uma checagem é feita para ver se v

ocorre ou não em t. Isto é chamado de checagem de ocorrência16.

Abaixo temos dois exemplos, um de quando não encontramos um mgu e outro

de quando o encontramos usando o algoritmo de uni�cação.

Exemplo 1.1.13. Seja S = {p(f(a), g(x)), p(y, y)} e D = {D0, D1, . . . , Dn} a denotação

do conjunto desacordo.

(a) σ0 = ε.

(b) D0 = {f(a), y}, σ1 = {y/f(a)} e Sσ1 = {p(f(a), g(x)), p(f(a), f(a))}.

(c) D1 = {g(x), f(a)}. Deste modo, S não é uni�cável.

Exemplo 1.1.14. Seja S = {p(a, x, h(g(z))), p(z, h(y), h(y))}.

(a) σ0 = ε.

(b) D0 = {a, z}, σ1 = {z/a} e Sσ1 = {p(a, x, h(g(a))), p(a, h(y), h(y)))}.16Em Inglês: Occur check

Page 29: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

29

(c) D1 = {x, h(y)}, σ2 = {z/a, x/h(y)} e Sσ2 = {p(a, h(y), h(g(a))), p(a, h(y), h(y))}.

(d) D2 = {y, g(a)}, σ3 = {z/a, x/h(g(a)), y/g(a)} e Sσ3 = {p(a, h(g(a)), h(g(a)))}.

Assim, S é uni�cável e σ3 é um mgu.

Teorema 1.1.15. (Teorema da Uni�cação)

Seja S um conjunto �nito de expressões simples. Se S é uni�cável, então existe um

algoritmo de uni�cação que termina e gera um mgu para S. Se S não é uni�cável, então

o algoritmo de uni�cação termina e reporta esse fato.

Outros algoritmos de uni�cação podem ser vistos em [MM76] e [PW76]. Po-

rém, este apresentado acima sem a checagem de ocorrência é o mais utilizado em sistemas

PROLOG.

1.2 Pontos Fixos

Nesta seção apresentaremos as de�nições de ordem parcial, reticulado, reticu-

lado completo, etc., necessárias para se atingir o conceito de ponto �xo, que será extre-

mamente útil nos sistemas PROLOG, pois cada programa de�nido está associado a uma

função monotônica que interpreta um papel muito importante na teoria.

De�nição 1.2.1. Seja S um conjunto. Uma relação binária R em S é um subconjunto

de S×S.

Usualmente utilizamos a notação xRy para representar que (x,y) ∈ R.

De�nição 1.2.2. Uma relação R em um conjunto S é uma ordem parcial sse satisfaz as

seguintes condições:

(a) xRx, para todo x ∈ S.

(b) xRy e yRx então x=y, para todo x,y ∈ S.

(c) xRy e yRz implica xRz, para todo x,y,z ∈ S.

O símbolo ≤ é utilizado para denotar uma ordem parcial para a relação R.

De�nição 1.2.3. Seja S um conjunto com uma ordem parcial ≤. Então a ∈ S é um

limitante superior de um subconjunto X de S se x ≤ a, para todo x ∈ X. Analogamente,

b ∈ S é um limitante inferior de um subconjunto X de S se b ≤ x, para todo x ∈ X.

Page 30: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

30

De�nição 1.2.4. Seja S um conjunto com uma ordem parcial ≤. Então a ∈ S é o supremo

de um subconjunto X de S se a é um limitante superior de X e, para todo limitante superior

a' de X, temos a ≤ a'. Analogamente, b ∈ S é o ín�mo de um subconjunto X de S se b é

um limitante inferior de X e, para todo limitante inferior b' de X, temos b' ≤ b.

Proposição 1.2.5. Se o supremo de um conjunto X existir, ele é único.

Demonstração. Suponha que temos dois supremos a e b de um conjunto X. Logo, pela

De�nição 1.2.4, como a é supremo e b é um limitante superior, a ≤ b, mas também temos

que, como b é supremo e a é um limitante superior, b ≤ a. Logo, a=b.

Analogamente é demonstrado que se o ín�mo de um conjunto X existir ele é

único. Denotaremos o supremo de X por SUP(X) e o ín�mo por INF(X).

De�nição 1.2.6. Um conjunto parcialmente ordenado L é um reticulado completo se

SUP(X) e INF(X) existem para todo subconjunto X de L.

Para um reticulado completo L, temos que > denota o SUP(L) e ⊥ denota o

INF(L).

De�nição 1.2.7. Seja L um reticulado completo e T: L→L uma função. Dizemos que T

é uma função monotônica se T(x) ≤ T(y), para quaisquer x ≤ y.

De�nição 1.2.8. Seja L um reticulado completo e X ⊆ L. Dizemos que X é dirigido17 se

todo subconjunto �nito de X tem um limitante superior em X.

De�nição 1.2.9. Seja L um reticulado completo e T: L→L uma função. Dizemos que T

é contínua se T(SUP(X)) = SUP(T(X)), para todo subconjunto dirigido X de L. Ou seja,

uma função é contínua se preserva supremos.

Agora, chegamos a de�nição de ponto �xo de funções de�nidas sobre reticula-

dos.

De�nição 1.2.10. Seja T: L→L uma função e L um reticulado completo. Dizemos que

a ∈ L é o mínimo ponto �xo de T, se a é um ponto �xo (ou seja, T(a) = a) e para todos

os pontos �xos b de T, temos a ≤ b. Analogamente, dizemos que c ∈ L é o máximo ponto

�xo de T se c é um ponto �xo e para todos os pontos �xos d de T, temos d ≤ c.

17Em inglês: directed

Page 31: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

31

Dadas as de�nições acima obtemos um importante resultado, uma versão fraca

de um teorema atribuído a Tarski, que generaliza um resultado anterior de Knaster-Tarski.

Proposição 1.2.11. Seja T: L→L uma função monotônica e L um reticulado completo.

Então T tem um mínimo ponto �xo, MIP(T), e um máximo ponto �xo, MAP(T). Mais

ainda, MIP(T) = INF{x : T (x) = x} = INF{x : T (x) ≤ x} e MAP(T) = SUP{x :

T (x) = x} = SUP{x : x ≤ T (x)}.

Proposição 1.2.12. Seja L um reticulado completo e T: L→L monotônica. Suponha que

a ∈ L e a ≤ T(a). Então existe um ponto �xo a' de T tal que a ≤ a'. Similarmente,

temos que se b ∈ L e T(b) ≤ b, então existe um ponto �xo b' de T tal que b' ≤ b.

Demonstração. Pela Proposição 1.2.11, é su�ciente que a'= MAP(T) e b' = MIP(T).

Neste ponto do trabalho, de�niremos potência de ordinais, para isso são neces-

sários os conceitos de números ordinais e indução trans�nita que podem ser encontrados

em manuais de Teoria de Conjuntos, por exemplo [Jec13].

De�nição 1.2.13. Seja L um reticulado completo e T: L→L monotônica. Então de�ni-

mos:

T↑0 = ⊥;

T↑α = T(T↑(α− 1)), se α é um ordinal sucessor;

T↑α = SUP{T↑β : β < α}, se α é um ordinal limite;

T↓0 = >;

T↓α = T(T↓(α− 1)), se α é um ordinal sucessor;

T↓α = INF{T↓β : β < α}, se α é um ordinal limite.

A seguir, daremos uma caracterização de MIP(T) e MAP(T) em termos de

potências de ordinais de T.

Proposição 1.2.14. Seja L um reticulado completo e T: L→L monotônica. Então, para

qualquer ordinal α, T↑α ≤ MIP(T) e T↓α ≥ MAP(T). Além disso, existem ordinais β1

e β2 tais que γ1 ≥ β1 implica T↑γ1 = MIP(T) e γ2 ≥ β2 implica T↓γ2 = MAP(T).

O menor α tal que T↑α = MIP(T) é chamado ordinal fecho de T. Kleene

mostrou o próximo resultado, demonstrando que sobre a forte suposição de que T é

contínua, o ordinal fecho de T é ≤ ω.

Page 32: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

32

Proposição 1.2.15. Seja L um reticulado completo e T: L→L contínua. Então MIP(T)

= T↑ω.

Um resultado análogo da Proposição 1.2.15 para MAP(T) não vale, isto é

MAP(T) pode não ser igual a T↓ω.

1.3 Cláusulas e Interpretações de Herbrand

Nesta seção, introduziremos os conceitos básicos para a introdução de cláusu-

las, tais como o que é um Universo de Herbrand, Interpretação de Herbrand e Modelos

de Herbrand.

De�nição 1.3.1. O escopo de ∀x, (respectivamente, ∃x) em ∀x F, (respectivamente, ∃x

F) é F. Uma variável x em uma fórmula possui ocorrência ligada se está no escopo de

um quanti�cador ou se x é uma variável de um quanti�cador na fórmula. Qualquer outra

ocorrência da variável é chamada livre.

De�nição 1.3.2. Uma fórmula fechada é uma fórmula que não contém ocorrências livres

de nenhuma variável.

De�nição 1.3.3. Se F é uma fórmula, o fecho universal de F é denotado por ∀(F), que

signi�ca que para cada variável livre em F foi acrescentado um quanti�cador universal,

tornando a variável ligada, e assim, a fórmula F fechada. De maneira similar, ∃(F)

denota o fecho existencial de F, assim, para cada variável livre em F acrescenta-se um

quanti�cador existencial, tornando F fechada.

Exemplo 1.3.4. Se F é p(x,y)∧q(y), então ∀(F) é ∀x∀y (p(x,y)∧q(y)).

De�nição 1.3.5. Dada a Lógica Clássica de Primeira Ordem (denotada apenas por CL

de agora em diante) e uma fórmula atômica A, dizemos que A é um literal positivo e que

∼A é um literal negativo.

De�nição 1.3.6. A todos literais positivos chamamos simplesmente de átomos.

Agora, com o conceito de literais positivos e negativos, podemos de�nir o que

é uma cláusula.

De�nição 1.3.7. Introduzimos as seguintes noções para a Lógica Clássica de Primeira

Ordem:

Page 33: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

33

- Uma cláusula de CL é uma fórmula fechada da forma:

∀x1 · · · ∀xn(L1 ∨ · · · ∨ Lk ∨ ∼Lk+1 ∨ · · · ∨ ∼Lk+m)

tal que cada Li é um literal positivo em CL e x1, . . . , xn são todas as variáveis que

ocorrem em (L1 ∨ . . .∨Lk ∨∼Lk+1 ∨ . . .∨∼Lk+m). A maneira usual que usaremos

para cláusulas, equivalente à acima apresentada, é:

∀x1 · · · ∀xn(L1 ∨ · · · ∨ Lk ← Lk+1 ∧ · · · ∧ Lk+m)

ou simplesmente

L1, . . . , Lk ← Lk+1, . . . , Lk+m

- Uma cláusula é chamada positiva (negativa) se contém apenas literais positivos (ne-

gativos).

De�nição 1.3.8. Uma subcláusula de uma cláusula C é uma cláusula formada pela eli-

minação de um ou mais literais de C.

De�nição 1.3.9. Uma cláusula de programa de�nida é uma cláusula da forma

L← K1, . . . , Kn

que contém precisamente um átomo em seu consequente. L é chamado cabeça eK1, . . . , Kn

é chamado corpo da cláusula de programa.

O signi�cado semântico informal de L ← K1, . . . , Kn é "para cada atribuição

de cada variável, se K1, . . . , Kn são todos verdadeiros, então L é verdadeiro". Assim, uma

cláusula de programa é condicional. Porém, um fato L← é incondicional. Seu signi�cado

semântico informal é "para cada atribuição de cada variável, L é verdadeiro".

De�nição 1.3.10. Um fato18 é uma cláusula da forma

L←

que é, uma cláusula de programa de�nido com o corpo vazio.

18Em inglês: unit clause

Page 34: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

34

De�nição 1.3.11. Uma consulta de�nida19 é uma cláusula da forma

← K1, . . . , Kn

isto é, uma cláusula com um consequente vazio. Cada Ki (i= 1,. . . ,n) é chamado subcon-

sulta de uma consulta.

De�nição 1.3.12. Um programa de�nido ou programa lógico de�nido P é um conjunto

�nito de cláusulas de programas de�nidos.

De�nição 1.3.13. Em um programa de�nido, o conjunto de todas as cláusulas de pro-

grama com o mesmo símbolo de predicado p na cabeça é chamado de�nição de p.

De�nição 1.3.14. A cláusula vazia, denotada por �, é a cláusula cujo consequente e

antecedente são vazios e pode ser interpretada como uma contradição em CL.

De�nição 1.3.15. Uma cláusula de Horn é uma cláusula cuja parte positiva possui, no

máximo, um literal.

Agora, podemos de�nir um processo pelo qual podemos inferir uma cláusula

nova a partir de duas outras.

De�nição 1.3.16. Dois literais de CL, L1 e L2, são ditos complementares se uma das

seguintes condições vale:

1. L1 é positivo e L2 é ∼L1.

2. L2 é positivo e L1 é ∼L2.

De�nição 1.3.17. Seja um conjunto de cláusulas S, com K1, K2 ∈ S. Sejam K1 =

L1,1∨ . . .∨L1,n e K2 = L2,1∨ . . .∨L2,r duas cláusulas. Uma cláusula K é obtida de K1 e

K2 através de um passo básico de resolução se existem literais L1 e L2, com Li ocorrendo

em Ki (i = 1, 2), e uma substituição σ tal que σ(L1) e σ(L2) são literais complementares,

sendo σ uni�cador mais geral com essa propriedade. Nesse caso, a resolvente éK = σ(K0),

onde K0 é a disjunção dos literais que aparecem em K1 (a menos de todas as ocorrências

de L1 como literal em K1) ou em K2 (a menos de todas as ocorrências de L2 como literal

em K2). Dizemos que K é uma resolvente básica de K1 e K2.

19Em inglês: de�nite goal

Page 35: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

35

De K1 e K2 obtemos K por um passo de resolução (geral) se existem renome-

amento de variáveis µ1 e µ2 tal que K pode ser obtido de µ1(K1) e µ2(K2) por um passo

básico de resolução.

Abaixo, vemos um exemplo da regra de resolução, uma vez que se aplicam os

renomeamento de variáveis, em primeiro lugar, e a substituição uni�cadora dos termos

complementares, em segundo lugar (aqui, n,m > 0):

L ∨∨ni=1A K ∨

∨mj=1∼A

L ∨K

Para a continuidade do estudo sobre cláusulas, são necessárias as de�nições de

interpretação e modelo.

De�nição 1.3.18. Uma pré-interpretação J de uma linguagem de primeira ordem L

consiste do seguinte:

(a) Um conjunto não-vazio D, chamado de domínio da pré-interpretação.

(b) Para cada constante c em L, a atribuição de um elemento cJ em D.

(c) Para cada símbolo de função n-ária f em L, a atribuição de uma função fJ de Dn

para D.

De�nição 1.3.19. Uma interpretação I de uma linguagem de primeira ordem L consiste

de uma pré-interpretação J de L com domínio D acrescentado do seguinte:

Para cada símbolo de predicado n-ário p em L, a atribuição de uma função pI : Dn →

{1, 0} ou, equivalentemente, uma relação pI em Dn.

Dizemos que I é baseada em J .

De�nição 1.3.20. Seja J uma pré-interpretação de uma linguagem de primeira ordem

L. Uma atribuição de variável20 (com relação a J) é uma atribuição para cada variável

em L de um elemento no domínio de J .20Em inglês: variable assignment

Page 36: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

36

De�nição 1.3.21. Dada uma linguagem de primeira ordem L, uma pré-interpretação J

com domínio D nessa linguagem e uma atribuição V de valores em D para as variáveis.

A interpretação de termos em L (com relação a J e V ) é de�nida da seguinte maneira:

(a) Para cada variável x é dada sua atribuição de acordo com V .

(b) Para cada constante c é dada sua atribuição de acordo com J .

(c) se (t1)JV , . . . , (tn)JV são as interpretações dos termos t1, . . . , tn em L (com relação a J e

V ), e fJ é a interpretação do símbolo de função n-ária f de L, então a interpretação

do termo f(t1, . . . , tn) em L (com relação a J e V ) é o elemento fJ((t1)JV , . . . , (tn)JV )

de D.

De�nição 1.3.22. Dada uma linguagem de primeira ordem L, uma pré-interpretação J

com domínio D nessa linguagem, uma atribuição de variável V com relação a J e um

átomo A, suponha que A é p(t1, . . . , tn) e d1, . . . , dn no domínio de J são as atribuições de

termos de t1, . . . , tn com relação a J e V. Chamamos AJ,V = p(d1, . . . , dn) a J-instância

de A com relação a V. Seja [A]J = {AJ,V :V é uma atribuição de variável com relação

a J}. Chamamos cada elemento de [A]J uma J-instância de A e cada p(d1, . . . , dn) uma

J-instância.

De�nição 1.3.23. Seja I uma interpretação com domínio D de uma linguagem de pri-

meira ordem L e V uma atribuição de variáveis. Então para uma fórmula em L pode ser

dado um valor de verdade, verdadeiro (1) ou falso (0), (com relação a I e V) como segue:

(a) Se a fórmula é uma atômica p(t1, . . . , tn), então o valor de verdade é obtido cal-

culando o valor de pI((t1)JV , . . . , (tn)JV ) em que pI é a função atribuída a p por I

e (t1)JV , . . . , (tn)JV são as interpretações dos termos t1, . . . , tn com relação a J e V .

Assim, o valor de p(t1, . . . , tn) é 1 se ((t1)JV , . . . , (tn)JV ) ∈ pI , 0 caso contrário.

(b) Se as fórmulas são da forma ∼F , F ∧ G, F ∨ G, F → G, F ↔ G, então o valor de

verdade da fórmula é dado pelas tabelas conhecidas de CL.

(c) Se uma fórmula tem a forma ∃xF ou ∀xF , então o valor de verdade da fórmula é

calculado como em CL. Assim, o valor de ∃xF é 1 se para algum d ∈ D F (d) tem

valor 1, 0 caso contrário. E o valor de ∀xF é 1 se para todo d ∈ D F (d) tem valor 1,

0 caso contrário.

Page 37: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

37

Como o valor de verdade de uma fórmula fechada não depende da atribuição de variáveis

podemos dizer que se o valor de verdade de uma fórmula fechada com relação a uma

interpretação é verdadeiro ou distinguido (respectivamente, Falso) dizemos que a fórmula

é distinguida (respectivamente, Falsa) com relação a uma interpretação.

De�nição 1.3.24. Dada uma linguagem de primeira ordem L, uma interpretação I de

L e um conjunto de fórmulas fechadas S. Dizemos que I é um modelo para S se I é um

modelo para cada fórmula de S.

De�nição 1.3.25. Dado um conjunto de fórmulas fechadas S e seja F uma fórmula

fechada de uma linguagem de primeira ordem L dizemos que F é uma consequência lógica

de S se, para toda interpretação I de L se I é um modelo para S então I é um modelo

para F .

Proposição 1.3.26. Seja S um conjunto de fórmulas fechadas e uma fórmula fechada F

de uma linguagem de primeira ordem L. Então F é uma consequência lógica de S se, se

somente se, S ∪ {∼ F} é insatisfatível.

De�nição 1.3.27. Um termo básico21 é um termo que não contém variáveis e um átomo

básico é um átomo que não contém variáveis.

De�nição 1.3.28. Seja L uma linguagem de primeira ordem. O Universo de Herbrand

UL para L é o conjunto de todos os termos básico que podem ser formados a partir das

constantes e símbolos de funções que aparecem em L.22

De�nição 1.3.29. Seja L uma linguagem de primeira ordem. A base de Herbrand BL é

o conjunto de todos os átomos básicos que podem ser formados utilizando os símbolos de

predicados de L com os termos básicos do Universo de Herbrand como parâmetros.

De�nição 1.3.30. Seja L uma linguagem de primeira ordem. A pré-interpretação de

Herbrand para L é a pré-interpretação dada pelo seguinte:

(a) O domínio da pré-interpretação é o Universo de Herbrand UL.

(b) Constantes em L são atribuídas a elas mesmas em UL21Em inglês: ground term22Se L não tiver constantes, adicionamos alguma, digamos, a, para formar os termos básicos

Page 38: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

38

(c) Se f é um símbolo de função n-ária em L, então a função de (UL)n em UL de�nida

por (t1, . . . , tn) 7→ f(t1, . . . , tn) é atribuída a f .

Dizemos que uma interpretação de Herbrand para L é qualquer interpretação

I baseada na pré-interpretação de Herbrand para L.Uma tal interpretação é dada especi�cando um subconjunto I de BL. Desta

maneira, um átomo básico A é satisfeito nessa interpretação se e somente se A ∈ I. Assim,

interpretações de Herbrand serão identi�cadas, daqui em diante, como subconjuntos I de

BL.

Com um certo abuso de linguagem, considerando um conjunto de fórmulas

S, podemos dizer que o Universo de Herbrand US e a base de Herbrand BS e também

a interpretação de Herbrand de S são subconjuntos da base de Herbrand de S. Em

particular, o conjunto de fórmulas frequentemente será um programa P , então podemos

referir ao Universo de Herbrand UP e a base de Herbrand BP de P .

De�nição 1.3.31. Seja L uma linguagem de primeira ordem. Seja S um conjunto de

fórmulas fechadas de L e seja P um programa lógico em L. Um modelo de Herbrand para

S (respectivamente P), denotado por M (com ou sem subscritos), é uma interpretação

de Herbrand para S (respectivamente P) que é um modelo para S (respectivamente P).

Proposição 1.3.32. Seja S um conjunto de cláusulas e suponha que S tem um modelo.

Então S tem um modelo de Herbrand.

Corolário 1.3.33. Seja S um conjunto de cláusulas e suponha que S um modelo de

Herbrand. Então S tem modelo.

Proposição 1.3.34. Seja S um conjunto de cláusulas. Então S é insatisfatível sse não

possui modelos de Herbrand.

Demonstração. De acordo com a Proposição 1.3.32 e com o Corolário 1.3.33, S é satisfa-

tível se, e somente se, tem modelo de Herbrand.

Sempre podemos provar essas duas proposições se S for um conjunto de cláu-

sulas, se por acaso S for um conjunto de fórmulas fechadas arbitrário então não é possível,

geralmente, mostrar a insatisfatibilidade de S através da interpretação de Herbrand.

Page 39: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

39

1.4 Semântica Declarativa e Resolução-SLD

Nesta seção introduziremos o mínimo modelo de Herbrand de um programa

de�nido, que é de grande importância nesta teoria. Mostraremos que esse mínimo modelo

de Herbrand será precisamente o conjunto de átomos básicos que são consequências lógicas

do programa dado. Obteremos também uma caracterização de ponto �xo para o mínimo

modelo de Herbrand.

Proposição 1.4.1. Seja P um programa lógico de�nido e {Mi}i∈I um conjunto não vazio

de modelos de Herbrand para P. Então ∩i∈IMi é um modelo de Herbrand para P.

Temos que a Base de Herbrand BP é um modelo de Herbrand, portanto, o

conjunto de todos modelos de Herbrand para um programa de�nido P não é vazio. A

intersecção de todos modelos, como mostrado acima, é um modelo também, chamado de

Mínimo Modelo de Herbrand para P e denotado por MP .

Daqui, temos o seguinte e importante teorema.

Teorema 1.4.2. Seja P um programa de�nido. Então,

MP = {A ∈ BP : A é consequência lógica de P}.

De�nição 1.4.3. Seja S um conjunto de fórmulas fechadas de uma linguagem de primeira

ordem L e P um programa lógico em L. Um modelo de Herbrand para S (respectivamente

P) é minimal se nenhum subconjunto próprio do modelo é um modelo de Herbrand para

S (respectivamente P). O conjunto de modelos minimais de Herbrand para S (respec-

tivamente P) é denotado MM(S) (respectivamente MM(P)). Quando existe apenas um

modelo minimal de Herbrand, ele é chamado também de mínimo modelo de Herbrand.

De�nição 1.4.4. Seja P um programa de�nido. A função TP : 2BP → 2BP , denominada

operador de consequência, é de�nida como segue.

TP(I) = {A ∈ BP : ∃c ∈ cláusulas-básicas (P)(A =cabeça(c) e corpo (c) ⊆ I)}

Claramente TP é monotônica, basta apenas ver se ela também é contínua.

Proposição 1.4.5. Seja P um programa de�nido, então a função TP é contínua.

Page 40: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

40

Proposição 1.4.6. Seja P um programa de�nido e I uma interpretação de Herbrand de

P. Então I é um modelo para P se, e somente se, TP(I) ⊆ I.

Agora, apresentaremos um importante teorema desta teoria. Este teorema,

que foi primeiramente demonstrado por Van Emden e Kowalski em [EK76], provê uma

caracterização de ponto �xo do modelo mínimo de Herbrand de um programa de�nido.

Teorema 1.4.7 (Caracterização do ponto �xo do Mínimo Modelo de Herbrand). Seja P

um programa de�nido. Então MP = MIP (TP) = TP↑ω

Vamos agora de�nir formalmente o que seria uma resposta correta de um pro-

grama P para uma consulta de�nida G. Este é um conceito central na programação lógica

e fornece grande parte do foco para o desenvolvimento teórico.

De�nição 1.4.8. Seja P um programa de�nido e G uma consulta de�nida. Uma resposta

para P ∪ {G} é uma substituição de variáveis de G.

Pode-se notar que a resposta não necessariamente contém uma ligação para

cada variável em G. Em particular, se G não tem variáveis a única possível resposta é a

substituição identidade.

De�nição 1.4.9. Seja P um programa de�nido, G uma consulta de�nida ←A1, . . . , Ak

e θ uma resposta para P ∪ {G}. Dizemos que θ é uma resposta correta para P ∪ {G} se

∀((A1 ∧ . . . ∧ Ak)θ) é uma consequência lógica de P .

Dada a validade da Proposição 1.3.26, temos que θ é uma resposta correta

sse P ∪ {∼∀((A1 ∧ . . . ∧ Ak)θ)} é insatisfatível. A de�nição acima de resposta correta

consegue capturar essa noção intuitiva deste conceito. Isto também provê uma descrição

declarativa da noção esperada de saída (output) de um programa de�nido.

O Teorema 1.4.2 e a de�nição de resposta correta sugerem que podemos forti-

�car o Teorema 1.4.2 mostrando que uma resposta θ é correta sse ∀((A1 ∧ . . . ∧ Ak)θ) é

verdadeiro com relação ao mínimo modelo de Herbrand do programa. Infelizmente, esse

resultado geralmente não vale, como mostrado no exemplo seguinte.

Exemplo 1.4.10. Considere o programa P

p(a)←

Page 41: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

41

Seja G a consulta ← p(x) e θ a substituição identidade. Então MP = {p(a)} e então

∀x p(x) é verdadeiro em MP . No entanto, θ não é uma resposta correta, desde que

∀x p(x)θ não é uma consequência lógica de P .

A razão para o problema é que ∼∀x p(x) não é uma cláusula e então não

podemos restringir a atenção às interpretações de Herbrand quando tentamos estabelecer

a insatisfatibilidade de {p(a) ←} ∪ {∼∀x p(x)}. No entanto, se �zermos uma restrição

em θ, obteremos um resultado que generaliza o Teorema 1.4.2.

Teorema 1.4.11. Seja P um programa de�nido e G uma consulta de�nida ←A1, . . . , Ak.

Suponha que θ é uma resposta para P ∪ {G} tal que (A1 ∧ . . .∧Ak)θ) é básico. Então os

seguintes são equivalentes:

(a) θ é correto.

(b) (A1 ∧ . . . ∧ Ak)θ) é verdadeiro com relação a todos modelos de Herbrand de P.

(c) (A1 ∧ . . . ∧ Ak)θ) é verdadeiro com relação ao Mínimo modelo de Herbrand de P.

Agora, introduziremos as de�nições para uma Resolução-SLD (Selective Li-

near De�nite clause resolution) para a lógica clássica de primeira ordem.

De�nição 1.4.12. Sejam G = ← A1, . . . , Am, . . . , Ak e C = A ← B1, . . . , Bq. Então G′

é derivado de G e C utilizando o mgu θ se valem as seguintes condições:

(a) Am é um átomo em G, chamado de átomo selecionado.

(b) θ é um mgu de Am e A.

(c) G′ é a consulta← (A1, . . . , Am−1, B1, . . . , Bq, Am+1, . . . , Ak)θ. G′ é denominado resol-

vente de G e C.

De�nição 1.4.13. Seja P um programa de�nido e G uma consulta de�nida. Uma

derivação-SLD de P ∪ {G} consiste de uma sequência de consultas (�nita ou in�nita)

G0 = G,G1, . . ., uma sequência C1, C2, . . . de variantes de cláusulas de programa de P e

uma sequência θ1, θ2, . . . de mgu's tal que cada Gi+1 é derivado de Gi e Ci + 1 utilizando

θi+1.

Page 42: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

42

Cada Ci é uma variante adequada da cláusula de programa correspondente de

modo que Ci não tenha quaisquer variáveis que já aparecem na derivação até Gi−1. Isto

pode ser alcançado, por exemplo, pela subinscrição de variáveis em G por 0 e variáveis

em Ci por i. Esse processo de renomeação de variáveis é chamado de padronização23 das

variáveis. Cada variante de cláusula de programa C1, C2, . . . é chamada uma cláusula de

entrada da derivação.

De�nição 1.4.14. Uma refutação-SLD de P ∪ {G} é uma derivação-SLD �nita de

P ∪ {G} que tem a cláusula vazia � como a última consulta na derivação. Se Gn = �,

então a derivação tem comprimento n.

De�nição 1.4.15. Seja P um programa de�nido. O conjunto sucesso de P é o conjunto

de todos A ∈ BP tal que P ∪ {← A} possui uma refutação-SLD

A correção e completude em detalhes da resolução-SLD pode ser vista no

Capítulo 2 de [Llo87]. No próximo capítulo apresentaremos a Resolução-SLI (Selective

Linear Inde�nite clause resolution), uma extensão da Resolução-SLD que funciona tanto

para Programação Lógica Clássica Disjuntiva quanto para Programação Lógica Clássica.

Portanto, o próximo capítulo será dedicado a Programação Lógica Disjuntiva, dado que

esta será também de utilidade para a proposta a ser apresentada no Capítulo 3.

23Em inglês: Standardising

Page 43: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

43

Capítulo 2

Programação Lógica Disjuntiva

Neste capítulo daremos especial atenção a um tipo diferente de Programação

Lógica, a Programação Lógica Disjuntiva, que constitui uma extensão da Programação

Lógica Clássica introduzida no capítulo anterior. Estudamos esse tipo de programação

pois, como poderá ser visto no capítulo seguinte, necessitamos de que seja possível ter-

mos um fato disjuntivo para que a programação lógica paraconsistente 3-valorada, a ser

proposta, seja bem sucedida. A seguir serão apresentadas as principais de�nições que

diferenciam a programação lógica da programação lógica disjuntiva. Para isso, utilizamos

em grande parte o livro Foundations of Disjunctive Logic Programming, de Lobo, Minker

e Rajasekar [LMR92]. Também foram utilizados como base dos estudo os artigos [Min89],

[MS02], [Ian06], [EG93] e [Wan01]. As demonstrações dos lemas e teoremas deste capítulo

podem ser encontradas em [LMR92] ou no Apêndice B desta Tese.

2.1 Programação Lógica Disjuntiva Clássica

O campo da programação lógica disjuntiva começou aproximadamente em 1982

com o artigo de Minker [Min82], no qual foi introduzida pela primeira vez uma teoria de

negação para os bancos de dados dedutivos disjuntivos (DDDBs). Nesse artigo, Minker

mostra que a resposta positiva a uma consulta em DDDBs depende que essa consulta

seja satisfeita em todo modelo minimal (ver De�nição 1.4.3). Minker também mostra

que, se dado um átomo básico A, A ∨ α pode ser provado pelo banco de dados implica

que α também pode ser provado (para α disjunção básica arbitrária de átomos), então

podemos a�rmar que A é falso. O operador de consequência que veremos neste capítulo

Page 44: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

44

é atribuído a Minker/Rajasekar [MR90], e é uma extensão do operador de consequência

apresentado anteriormente. Porém, esta extensão não é tão simples de ser realizada:

primeiro necessitamos de uma de�nição nova e importante de modelo-estado, para então

seguirmos o mesmo caminho apresentado para a programação lógica clássica.

É importante salientar que o operador de consequência apresentado aqui não é

o único já proposto na literatura para a programação lógica disjuntiva. Podemos citar, por

exemplo, o operador T INTP que pode ser visto em [FM91], [FM95] e [SMR97] que funciona

sobre conjuntos de interpretações de Herbrand. Não escolhemos o operador T INTP pelo

fato dele ser monotônico, porém não contínuo.

A maioria das de�nições já vistas são as mesmas quando tratamos de progra-

mas lógicos disjuntivos, por isso não a repetiremos aqui. Por exemplo, as de�nições de

cláusulas e cláusulas de programa, são exatamente as mesmas de�nidas anteriormente.

Temos, como uma novidade porém, a de�nição de uma cláusula de programa lógico dis-

juntivo, ou inde�nido:

De�nição 2.1.1. Uma cláusula de programa lógico disjuntivo ou inde�nido é uma cláu-

sula da forma:

L1 ∨ L2 ∨ . . . ∨ Lk ← K1, . . . , Kn

Com k ≥ 1 e n ≥ 0, na qual L1, L2, . . . , Lk, K1, . . . , Kn são átomos. Quando n = 0 temos

um fato disjuntivo.

Lembrando da De�nição 1.3.7, uma cláusula de programa disjuntivo é sim-

plesmente uma cláusula não negativa, enquanto que um fato disjuntivo é uma cláusula

positiva.

De�nição 2.1.2. Um programa lógico disjuntivo é um conjunto �nito de cláusulas de

programa.

Deste modo, recordando a De�nição 1.3.12 de programa lógico de�nido, um

programa lógico disjuntivo pode conter tanto cláusulas de programa lógico de�nido quanto

cláusulas de programa lógico disjuntivo, i.e., cláusulas não negativas.

De�nição 2.1.3. Um programa lógico é um programa lógico de�nido ou um programa

lógico disjuntivo.

Dadas essas de�nições e as introduzidas no capítulo anterior, podemos começar

os estudos acerca da semântica de programas lógicos disjuntivos.

Page 45: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

45

De�nição 2.1.4. Seja L uma linguagem de primeira ordem e PL um programa lógico

disjuntivo em L. A Base disjuntiva de Herbrand de L (respectivamente PL), denotada por

DHBL (respectivamente DHBPL), é o conjunto de todas as cláusulas básicas disjuntivas

positivas que podem ser formadas usando átomos básicos distintos da Base de Herbrand

para L (respectivamente PL), tal que duas cláusulas logicamente equivalentes não estão

no conjunto.

Exemplo 2.1.5. Seja PL o programa lógico disjuntivo abaixo:

PL = {irpara(X, Y ) ∨ irpara(X,Z)← caminho(X, Y, via(Z)), em(Y );

em(X)← irpara(Y,X)

caminho(saopaulo,marilia, via(campinas)) ∨ em(marilia)}

Para esse programa, temos:

DHBPL = {irpara(saopaulo,marilia), em(marilia)

irpara(saopaulo, campinas), em(campinas)

caminho(saopaulo, campinas, via(marilia)), em(campinas)

irpara(saopaulo,marilia) ∨ irpara(saopaulo, campinas)

irpara(saopaulo,marilia) ∨ em(marilia)

caminho(saopaulo,marilia, via(campinas)) ∨ em(marilia) . . .}Exigimos que duas cláusulas logicamente equivalentes não estejam em DHBPL

para evitar variantes sintáticas da mesma cláusula em DHBPL . Dada uma cláusula básica

positiva C, C está em DHBPL (C ∈ DHBPL) se C ou qualquer variante sintática de C for

parte de DHBPL .

De�nição 2.1.6. Seja S um conjunto de cláusulas básicas positivas. Então a forma

canônica de S, denotada por can(S), é de�nida como segue:

can(S) = {C ∈ S : 6 ∃C ′ ∈ S tal que C ′ é uma subcláusula de C}

Exemplo 2.1.7. Seja S o conjunto:

S = {irpara(saopaulo,marilia) ∨ em(saopaulo), em(marilia)

caminho(campinas, saopaulo) ∨ em(marilia)

irpara(campinas, saopaulo) ∨ em(saopaulo)

em(saopaulo)}

Page 46: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

46

Disso, temos que:

can(S) = {em(marilia), em(saopaulo)}

De�nição 2.1.8. Seja PL um programa lógico disjuntivo de uma lógica de primeira or-

dem L e S um conjunto de cláusulas básicas positivas em L (respectivamente PL). A

expansão de S, denotada por exp(S), é de�nida da seguinte maneira:

exp(s)={C ∈ DBHL : C ∈ S ou ∃C ′ ∈ S tal que C ′ é uma subcláusula de C}

Exemplo 2.1.9. Seja PL o programa dado no exemplo 2.1.5 e

S = {em(marilia), irpara(saopaulo,marilia)}.

exp(S) = {em(marilia), irpara(saopaulo,marilia),

em(marilia) ∨ em(saopaulo),

em(marilia) ∨ irpara(saopaulo, campinas),

irpara(saopaulo,marilia)∨

∨caminho(saopaulo,marilia, via(campinas)), . . .}

De�nição 2.1.10. Seja PL um programa lógico disjuntivo de uma lógica de primeira or-

dem L. Um estado de Herbrand (ou simplesmente um estado) S para L (respectivamente

PL) é um subconjunto da base disjuntiva de Herbrand de L (respectivamente PL).

De�nição 2.1.11. Seja PL um programa lógico disjuntivo de uma lógica de primeira

ordem L. Um estado expandido de Herbrand (ou simplesmente um estado expandido)

para L (respectivamente PL) é um estado S tal que S = exp(S), na qual exp(S) foi dado

na de�nição 2.1.8.

De�nição 2.1.12. Seja L uma lógica de primeira ordem, S um conjunto de fórmulas

fechadas de L e PL um programa lógico disjuntivo em L. Um modelo-estado para S

(respectivamente PL) é um estado expandido ST tal que:

1. Todo modelo de Herbrand de ST é um modelo de Herbrand de S (respectivamente

PL).

Page 47: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

47

2. Todo modelo Minimal de Herbrand de S (respectivamente PL) está contido em um

modelo minimal de ST.1

As consequências lógicas de um programa lógico de�nido P são caracteriza-

das, como já visto, pelo mínimo modelo de Herbrand MP . Porém, para um programa

lógico disjuntivo, temos que suas consequências lógicas são caracterizadas pelo conjunto

de modelos minimais, MMPL .

Teorema 2.1.13. Seja PL um programa lógico disjuntivo. Uma cláusula básica positiva

A é consequência lógica de PL se, e somente se, A é verdadeira em todo modelo minimal

de Herbrand de PL.

Agora, uma vez que o modelo-estado para um programa lógico disjuntivo con-

tém todos os modelos minimais do programa e utilizando o símbolo N como referência ao

conjunto dos números naturais, o seguinte teorema sobre a intersecção de modelos-estados

é válido.

Teorema 2.1.14. (Propriedade da intersecção de Modelos-estados) Seja PL um programa

lógico disjuntivo e {MSi}i∈N um conjunto não vazio de modelos-estados de PL. Então

∩i∈NMSi é um modelo-estado de PL.

Dado um programa lógico disjuntivo PL, a base disjuntiva de Herbrand DHBPLpara PL é um modelo-estado. Deste modo, o conjunto de modelos-estados não é vazio.

A intersecção de todos modelos-estados para um programa disjuntivo PL é um modelo

estado, chamado de mínimo modelo-estado e denotado por MSPL . Assim, o seguinte

teorema é válido para MSPL .

Teorema 2.1.15. Seja PL um programa lógico disjuntivo, então:

MSPL = {A ∈ DHBPL : A é consequência lógica de PL}

É importante salientar que, apesar de modelos de Herbrand consistirem de

átomos básicos enquanto os modelos-estados consistem de cláusulas disjuntivas básicas,

existe uma conexão entre eles que pode ser vista pelos próximos teoremas.

Teorema 2.1.16. Seja PL um programa lógico disjuntivo e seja A ∈ DHBPL. Então

C ∈MSPL sse ∀M ∈MM(PL),M |= A.2

1A de�nição de modelo minimal de ST é análoga à de�nição 1.4.32M é um modelo para A.

Page 48: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

48

Teorema 2.1.17. Seja P um programa lógico de�nido e seja A ∈ BP . Então se M é um

modelo de Herbrand para P existe um modelo-estado correspondente MS tal que:

1. A ∈M implica que A ∈MS

2. M = can(MS)

3. MP = can(MSP)

A seguir está a de�nição de um operador de consequência para programas

lógicos disjuntivos:

De�nição 2.1.18. Seja PL um programa lógico disjuntivo e seja D um estado de Her-

brand de PL. O operador de consequência disjuntivo TPL : 2DHBPL → 2DHBPL é de�nido

da seguinte maneira:

TPL(D) = {A ∈ DHBPL : A′ ← C1, C2, . . . , Cn é uma instância básica de uma cláu-

sula de programa em PL, existem A1, . . . , An (possivelmente nulos) tal que Ci ∨ Ai ∈ D

(para 1 ≤ i ≤ n) e A é o menor fator de A′ ∨ A1 ∨ A2 ∨ . . . ∨ An}.

As cláusulas A de TPL(D) são ditas consequências imediatas do operador TPLa partir de D.

Uma vez que a cláusula A consiste de uma disjunção de átomos distintos,

ela está em DHBPL . A De�nição 2.1.18 se reduz a De�nição 1.4.4 quando o programa

PL é de�nido e D é uma interpretação de Herbrand. Toda cláusula em TPL(D) é uma

consequência lógica de cláusulas em D. Isto acontece devido ao fato de que a operação

realizada por TPL é idêntica a regra de hiperresolução da lógica clássica de primeira

ordem. A forma proposicional da regra de hiperresolução3 estabelece que, dadas cláusulas

básicas C1 ∨A1 ∨ . . .∨Cn ∨An e uma regra básica A′ ← C1, C2, . . . , Cn, então a cláusula

A′ ∨ A1 ∨ A2 ∨ . . . ∨ An é uma consequência lógica das cláusulas. Esta regra é escrita da

seguinte maneira:

C1 ∨ A1 ∨ . . . ∨ Cn ∨ An;A′ ← C1, C2, . . . , CnA′ ∨ A1 ∨ A2 ∨ . . . ∨ An

Exemplo 2.1.19. Seja PL um programa lógico disjuntivo do exemplo 2.1.5 reescrito

abaixo3Em Inglês: Hyperresolution rule

Page 49: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

49

PL = {irpara(X, Y ) ∨ irpara(X,Z)← caminho(X, Y, via(Z)), em(Y );

em(X)← irpara(Y,X)

caminho(saopaulo,marilia, via(campinas)) ∨ em(marilia)}

e seja S1 o seguinte estado:

S1 = {caminho(saopaulo,marilia, via(campinas)) ∨ em(marilia)}.

Para calcular TPL(S1), considere o seguinte:

1. S1 é uma consequência de TPL(S1);

2. considerando caminho(saopaulo,marilia, via(campinas)), temos

irpara(saopaulo,marilia) ∨ irpara(saopaulo, campinas) ∨ em(marilia);

3. considerando em(marilia) não tiramos demais conclusões.

Assim,

TPL(S1) = {caminho(saopaulo,marilia, via(campinas)) ∨ em(marilia),

irpara(saopaulo,marilia) ∨ irpara(saopaulo, campinas) ∨ em(marilia)}

Agora, se S2 = TPL(S1), então:

1. S2 é uma consequência de TPL(S2);

2. considerando irpara(saopaulo,marilia), temos

em(marilia) ∨ irpara(saopaulo, campinas) ∨ em(marilia) que semanticamente é

igual a

em(marilia) ∨ irpara(saopaulo, campinas);

3. considerando irpara(saopaulo, campinas), temos

em(campinas) ∨ irpara(saopaulo,marilia) ∨ em(marilia).

4. considerando em(marilia) não temos consequências adicionais.

Assim,

TPL(S2) = {caminho(saopaulo,marilia, via(campinas)) ∨ em(marilia),

Page 50: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

50

irpara(saopaulo,marilia) ∨ irpara(saopaulo, campinas) ∨ em(marilia)

em(marilia) ∨ irpara(saopaulo, campinas)

em(campinas ∨ irpara(saopaulo,marilia) ∨ em(marilia))}.

Dado isto, temos uma série de lemas e teoremas análogos aos da seção 1.4 cujas

demonstrações podem ser encontradas em [LMR92].

Lema 2.1.20. Seja X um subconjunto dirigido de 2DBHPL . Então, para qualquer conjunto

de cláusulas básicas positivas {A1, . . . , An},

{A1, . . . , An} ⊆ SUP (X) sse {A1, . . . , An} ⊆ I para algum I ∈ X.

Teorema 2.1.21. Seja PL um programa lógico disjuntivo, então a função TPL é contínua

e monotônica.

Teorema 2.1.22. Seja PL um programa lógico disjuntivo e seja S um estado de Herbrand

de PL. Então S é um modelo-estado de PL sse TPL(S) ⊆ S.

O que nos leva a uma caracterização do ponto �xo para o mínimo modelo-

estado.

Teorema 2.1.23. Seja PL um programa lógico disjuntivo. Então,

can(MSPL) = can(MIP (TPL)) = can(TPL↑ω).

Como pode ser visto, estendendo alguns conceitos, muitos dos teoremas válidos

para programação lógica clássica são também válidos na programação lógica disjuntiva.

Assim, a última é uma generalização da primeira.

Na próxima seção, iniciaremos o estudos sobre uma resolução-SLI para a pro-

gramação lógica disjuntiva. É importante observar que como a resolução-SLI é uma

extensão da resolução-SLD, a resolução-SLI também é válida para a programação lógica

clássica.

2.2 Resolução-SLI

Nessa seção estudaremos uma extensão da resolução-SLD (ver [Llo87]) deno-

minada resolução-SLI, própria para programação lógica disjuntiva. Sendo uma extensão,

a resolução-SLI pode ser utilizada para a programação lógica clássica. A escolha desse

tipo de extensão se deve aos seguintes motivos:

Page 51: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

51

1. A resolução-SLI é um sistema de inferência correto e completo, como será mostrado

mais adiante, e portanto, provê um procedimento de refutação linear.

2. Assim como na resolução-SLD, ela permite a escolha de um literal arbitrário em

uma cláusula.

3. Possibilita o desenvolvimento de um procedimento para responder consultas nega-

tivas.

4. Quando restrita às cláusulas de�nidas, a resolução-SLI pode ser reduzida a resolução-

SLD.

Observação 2.2.1. Não podemos utilizar a resolução-SLD para a programação lógica

disjuntiva porque a aplicação de um passo a uma consulta na resolução-SLD não neces-

sariamente produz outra consulta.

De�nição 2.2.2. Seja S um conjunto de cláusulas e C0 ∈ S. Uma derivação linear de

Cn de S com a cláusula-topo C0 é uma sequencia �nita de cláusulas C0, . . . , Cn tal que

Ci+1 ou é um fator de Ci ou uma resolvente de Ci com uma cláusula Bi para algum i,

0 ≤ i ≤ n− 1, na qual Bi ou é um fator de uma cláusula em S ou uma cláusula Cj para

algum j, 0 ≤ j ≤ i.

A resolução linear é um procedimento correto e completo, ou seja, se o con-

junto de cláusulas S é inconsistente, então existe uma derivação linear da cláusula vazia.

Quando Bi é uma cláusula Cj para algum j, j ≤ i, chamamos o passo de derivação de

resolução ancestral . Quando Ci+1 é um fator de Ci, chamamos o passo de derivação de

fatoração. Assim como para a resolução-SLD, para a resolução-SLI utilizamos árvores

para representação básica das cláusulas. Utilizamos as t-cláusulas para representar as

cláusulas de programa e consultas. Cada ramo na árvore é um literal da linguagem do

programa ou o símbolo especial ε. Literais em uma t-cláusula são classi�cados como mar-

cados ou não marcados. Um ramo não terminal é sempre um literal marcado enquanto

que um literal terminal pode tanto ser um literal marcado, como um não marcado.

Usaremos o exemplo abaixo para mostrar a representação de programas em

t-cláusulas.

Exemplo 2.2.3. Seja S o conjunto de cláusulas abaixo.

Page 52: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

52

S = {irpara(X, Y ) ∨ irpara(X,Z)← caminho(X, Y, via(Z));

em(X)← irpara(Y,X)

caminho(saopaulo,marilia, via(campinas)) ∨ em(marilia)}

Em notação de t-cláusula representamos as cláusulas em S da seguinte maneira:

ε*

irpara(X,Y) irpara(X,Z) ∼caminho(X,Y,via(Z))

ε*

em(X) ∼irpara(Y,X)

ε*

caminho(saopaulo,marilia,via(campinas)) em(marilia)

Utilizamos o símbolo ε* acima de todos os literais das t-cláusulas. Quando

utilizamos um literal, o marcamos com o símbolo *. Em um passo de derivação SLI

resolvemos duas t-cláusulas para formar uma outra t-cláusula que pode ser utilizada no

próximo passo. Durante a derivação, selecionamos um dos literais no começo da árvore

ou uma t-cláusula derivada. O literal é uni�cado com um literal complementar em uma

cláusula de programa; assim, o literal complementar em questão é removido da t-cláusula

na subárvore gerada e o original é marcado com o *. Marcar um literal é útil de duas

maneiras diferentes: primeiro, evita que você selecione literais que já foram selecionados

anteriormente, e, segundo, permite que visualize os ancestrais de literais em uma derivação

de t-cláusula. Em uma cláusula derivada, um literal marcado denota que ele já foi utilizado

para expansão e um não marcado denota que está pronto para expansão.

De�nição 2.2.4. Uma t-cláusula C é um par ordenado 〈C, m〉 no qual:

1. C é uma árvore rotulada cuja base é rotulada com o símbolo ε e cujos ramos são

rotulados com literais, e

2. m é uma relação de marcação unária do ramo tal que todo ramo não terminal em

C é marcado.

Page 53: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

53

Podemos representar uma árvore através de uma pré-ordem bem-parentizada.

Exemplo 2.2.5. Representamos a árvore a seguir através de pré-ordem bem-parentizada.4

ε*

p(X) q(Y)*

∼p(Y)

∼r(X,Y)

Esta árvore é representada por (ε* p(X) (q(Y)* ∼p(Y)) ∼r(X,Y)). Uma cláusula de pro-

grama da formaA1∨. . .∨An ← B1, . . . , Bm é representado por (ε*A1 . . . An ∼B1 . . .∼Bm).

Uma consulta também pode ser transformada em uma t-cláusula e é denominada t-

cláusula topo, utilizamos esta para dar começo a derivação SLI. Podemos utilizar a con-

sulta na t-cláusula topo mais de uma vez, fazendo as devidas substituições em cada caso.

Quando transformamos (fazendo as devidas substituições) um conjunto de cláusulas de

programa e uma cláusula de consulta em uma t-cláusula, referimo-nos a este conjunto

transformado como o conjunto input .

Em uma derivação SLI, começamos com uma t-cláusula de consulta que pode

virar uma t-cláusula (não necessariamente de consulta). Por isso, devemos de�nir dois

conjuntos, γL e δL para um literal L em uma t-cláusula, que serão utilizados enquanto

fazemos a resolução ancestral e fatoração.

De�nição 2.2.6. Dado um literal L1(ou L2) em uma t-cláusula, chamamos L2(ou L1) de

irmão5 de L1(ou L2) se ambos possuem um literal ancestral L imediatamente como seu

antecessor.

L

L1 L2

L1 e L2 são irmãos.

4Em Inglês: Parenthesized pre-order5Em inglês: sibling

Page 54: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

54

De�nição 2.2.7. Seja L um literal não marcado em uma t-cláusula.

γL = {N: N é um literal marcado e um ancestral de L};

δL = {M: M é um literal não marcado e um irmão de um ancestral de L}.

Observação 2.2.8. O símbolo especial ε é um ancestral de um literal L, porém não é

um literal, portanto, não está em δL.

Exemplo 2.2.9. Considere a t-cláusula.

ε*

r(Z,b)*

p1(Z,b) ∼s(a)*

t(a,b)*

s1(g(a), f(b))∗

p(X)

q1(l(X))

p2(f(a),a)*

∼ s2(g(b,a))*

r(a,b) ∼q(Z)*

s(c) ∼s(a)*

q(Y)

Temos o seguinte:

δL(X) = {p1(Z,b), q1(l(X))}

δL(Y ) = { r(a,b), s(c)}

γL(X) = {s1(g(a),f(b))), t(a,b), ∼s(a), r(Z,b)}

γL(Y ) = {∼s(a), ∼q(Z), ∼ s2(g(b,a)), p2(f(a),a)}.

A resolução ancestral pode ser realizada em alguns dos literais do conjunto

δL, enquanto a fatoração pode ser executada em alguns dos literais do conjunto γL. O

conjunto δL é útil na procura de derivações in�nitas, uma vez que, se L aparece no

conjunto de seus ancestrais, δL, temos um loop de derivações e, portanto, podemos parar

a derivação. O conjunto γL é útil na detecção da derivação de tautologias, uma vez que,

se ∼L aparece em γL, temos a derivação de uma tautologia, e portanto, podemos parar a

derivação.

Page 55: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

55

De�nição 2.2.10. Uma t-cláusula satisfaz a condição de admissibilidade (CA) se, para

toda ocorrência de qualquer literal L não marcado a seguinte condição ocorre:

1. Nunca dois literais de γL e L têm átomos idênticos (a menos de renomeamento de

variáveis)

2. Nunca dois literais de δL e L têm átomos idênticos (a menos de renomeamento de

variáveis)

Em uma t-cláusula, se existe um ramo terminal marcado, então este literal já

foi resolvido, e portanto, pode ser removido da t-cláusula. A esta remoção damos o nome

de truncação.

De�nição 2.2.11. Uma t-cláusula satisfaz a condição de minimalidade (CM) se não

existe ramo terminal marcado.

Exemplo 2.2.12. Considere as seguintes t-cláusulas:

ε*

p(b,a)*

r(a) s(a)*

ε*

p(b,a)*

r(a) q(a)*

∼p(b,a) s(a)

s(a)

(a) (b)

A t-cláusula (a) satisfaz CA e a t-cláusula (b) não satisfaz por dois motivos,

primeiro, porque γs(a) contém s(a) (Def. 2.2.10(1)) e, segundo, porque δ∼p(b,a) contém

p(b,a) (Def. 2.2.10(2)).

Page 56: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

56

ε*

p(a) q(b)*

r(c)*

s(d)

r(e)

ε*

p(a) q(b)*

r(c)* r(e)

s(f(d))

(c) (d)

A t-cláusula (c) satisfaz CM e a t-cláusula (d) não satisfaz, pois r(c)* é um

ramo terminal (Def. 2.2.11).

Com estas últimas de�nições temos o arcabouço necessário para descrever o

processo de resolução-SLI. Primeiro, de�niremos a derivação-tranfac, que efetua trunca-

ção, resolução ancestral e fatoração em uma t-cláusula.

De�nição 2.2.13. Seja C0 uma t-cláusula. A t-cláusula Cn é uma derivação-tranfac

(truncação, resolução ancestral e fatoração) de C0 quando existe uma sequência de t-

cláusulas C0, C1, . . . , Cn e substituições θ0, θ1, . . . , θn−1 tais que para todo i, 0 ≤ i ≤ n,

Ci+1 é obtido de Ci por t-fatoração, t-ancestralidade ou t-truncação com substituição θi.

Ci+1 é obtido de Ci por t-fatoração sse:

1. Ci é (α1 L α2 M α3) ou (α1 M α2 L α3);

2. Mθi = Lθi, onde θi é uma substituição;

3. L está em γM ;

4. Ci+1 é (α1 L α2 α3)θi ou Ci+1 é (α1 α2 L α3)θi.

Ci+1 é obtido de Ci por t-ancestralidade sse:

1. Ci é (α1 (L* α2 M α3) α4);

2. Lθi = ∼Mθi, onde θi é uma substituição;

Page 57: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

57

3. L está em δM ;

4. Ci+1 é (α1 (L* α2 (α3 α4) α5) α6)θi.

Ci+1 é obtido de Ci por t-truncação com θi substituição identidade sse Ci é

(α (L*) β) e Ci+1 é (α β) ou Ci é (ε*) e Ci+1 é �.

Exemplo 2.2.14. Considere as seguintes t-cláusulas.

ε*

p q*

t r*

t

s

ε*

p q*

t r*

s

(a) (b)

Após t-fatoração a t-cláusula (b) é obtida da t-cláusula (a).

ε*

p q*

t r*

∼q

s

ε*

p q*

t r*

s

(c) (d)

Após t-ancestralidade a t-cláusula (d) é obtida da t-cláusula (c).

ε*

p q*

t r*

s

ε*

p q*

t

s

(e) (f)

Page 58: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

58

Após t-truncação a t-cláusula (f) é obtida da t-cláusula (e).

Uma derivação resolve uma t-cláusula admissível e minimal através de uma

t-cláusula input para obter uma t-cláusula admissível e minimal.

De�nição 2.2.15. Seja a t-cláusula Ci = (ε* α1 L β1). Seja Bi+1 = (ε* α2 M β2) uma

outra t-cláusula com as devidas substituições realizadas. Então Ci+1 é t-derivada de Ci e

Bi+1 usando a substituição θi se valem as seguintes condições:

1. Lθ′i = ∼Mθ

′i onde θ

′i é uma substituição (mais geral);

2. Ci+1 é (ε* α1 (L* α2 β2)β1)θ′i;

3. Ou Ci+1 é uma derivação-tranfac de C′i+1 com substituição θ

′′i ou é C

′i+1 e, neste

caso θ′′i = ε;

4. θi = θ′i · θ

′′i ;

5. Ci+1 deve satisfazer as condições de admissibilidade e minimalidade.

Observação 2.2.16. Seja PL o programa {(ε* p(X) ∼ p(y))} e seja C a t-cláusula (ε*

p(Z)). Devido a condição (5) na de�nição acima não existem t-derivações começando com

C e com o conjunto input PL ∪ {C}. Se não tivéssemos a condição 5 poderíamos obter

C1 = {(ε*(p(Z)* p(X))) que não satisfaz a condição de admissibilidade. Esta condição

previne o acontecimento de loops in�nitos.

De�nição 2.2.17. Seja S um conjunto input de t-cláusulas e seja C uma t-cláusula em

S. Uma derivação-SLI de uma t-cláusula E de S com t-cláusula topo C é uma sequência

de t-cláusulas (C1, . . . , Cn) tal que:

1. Ou C1 é C ou uma tranfac-derivação de C, e Cn é E;

2. Para todos i, 1 ≤ i ≤ n− 1, Ci+1 é t-derivado de Ci e uma t-cláusula Bi+1 em S.

Dado um programa lógico disjuntivo PL e uma consulta G o conjunto input

será PL′ ∪ {G′}, que são as t-cláusulas transformadas de PL e G.

Page 59: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

59

De�nição 2.2.18. Seja S um conjunto input de t-cláusulas e seja C uma t-cláusula em

S. Uma refutação-SLI de S com t-cláusula topo C é uma derivação-SLI de uma cláusula

vazia �. Se existe uma refutação-SLI de uma cláusula C com conjunto input S, então

escrevemos S `SLI∼C ′, onde C ′ é a cláusula que representa a t-cláusula C.

Observação 2.2.19. No processo de refutação-SLI sublinhamos o literal que iremos

�refutar� no próximo passo. Fazemos isso para que �que mais evidente que estamos

utilizando uma cláusula que contém o literal complementar ao sublinhado.

Temos o seguinte exemplo para ilustrar o processo de refutação-SLI.

Exemplo 2.2.20. Seja PL um programa lógico disjuntivo dado na fórmula de t-cláusula

abaixo:

1. {(ε* a ∼c ∼d ∼e);

2. (ε* ∼d c);

3. (ε* f e ∼g);

4. (ε* a ∼f);

5. (ε* d);

6. (ε* g)};

e seja a cláusula de consulta.

7. (ε* ∼a).

Uma possível refutação-SLI para a cláusula de consulta é descrita a seguir.

Page 60: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

60

7. (ε* ∼a) cláusula de consulta

8. (ε* (∼a* ∼c ∼d ∼e)) derivação (7,1)

9. (ε* (∼a* ∼c ∼d (∼e* f ∼g))) derivação (8,3)

10. (ε* (∼a* (∼c* ∼d) ∼d (∼e* f ∼g))) derivação (9,2)

11. (ε* (∼a* (∼c)* ∼d (∼e* f ∼g))) t-fatoração (10)

12. (ε* (∼a* ∼d (∼e* f ∼g))) t-truncação (11)

13. (ε* (∼a* ∼d (∼e* (f* a) ∼g))) derivação (12,4)

14. (ε* (∼a* ∼d (∼e* (f*) ∼g))) t-ancestralidade (13)

15. (ε* (∼a* ∼d (∼e* ∼g))) t-truncação (14)

16. (ε* (∼a* (∼d*) (∼e* ∼g))) derivação (15,5)

17. (ε* (∼a* (∼e* ∼g))) t-truncação (16)

18. (ε* (∼a* (∼e* (∼g*)))) derivação (17,6)

19. � t-truncação (18)

De�nição 2.2.21. Seja PL um programa lógico disjuntivo e seja G uma consulta em

forma de t-cláusula e utilizada como t-cláusula topo em uma refutação-SLI. Seja a t-

cláusula de consulta utilizada n vezes durante a refutação-SLI com as correspondentes

renomeações de variáveis σ1, . . . , σn. Seja θ a composição de substituições computada

para as variáveis em G durante a refutação-SLI e sejam θ1, . . . , θn substituições tais que

para todo i, 1 ≤ i ≤ n, θi é obtida pela restrição de θ às variáveis em σi. Então uma

resposta computada SLI6 é dada por:

{θ1 · σ1, . . . , θn · σn}

Na próxima seção mostraremos a correção e completude da resolução SLI

2.3 Correção e Completude da Resolução-SLI

Nesta seção mostramos a correção e completude da resolução-SLI com relação

às consequências lógicas. Para provar isto, precisamos de algumas de�nições auxiliares.

De�nição 2.3.1. Seja I uma interpretação de uma linguagem de primeira ordem L. Um

conjunto S de fórmulas fechadas em L é minimamente insatisfatível7 com respeito a I se,6Em Inglês: SLI computed answer7Em Inglês: minimally unsatis�able

Page 61: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

61

e somente se, S é insatisfatível com respeito a I, mas nenhum subconjunto próprio de S

é insatisfatível com respeito a I.

De�nição 2.3.2. Seja PL um programa lógico disjuntivo. Uma interpretação de Herbrand

M de PL é um modelo de uma t-cláusula C (ou simplesmente um t-modelo de C), se, e

somente se, existe um literal não marcado L em C tal que para todos K ∈ δL, M |= K e

M |= L.

Apenas conseguimos assegurar que todos os ancestrais do literal L são satis-

feitos pelo modelo M através da admissão de que K ∈ δL e M |= K. Isto implica que a

t-cláusula da qual a t-cláusula C é derivada também é um modelo de M .

O seguinte lema mostra que uma t-cláusula mínima e admissível tem um t-

modelo.

Lema 2.3.3. Se uma t-cláusula S satisfaz CA e CM, então S tem no mínimo um t-

modelo.

De�nição 2.3.4. Seja PL um programa lógico disjuntivo. Uma interpretação de Herbrand

M de PL é um t-modelo de um conjunto S de t-cláusulas (denotado por M |= S) se, e

somente se, M é um t-modelo de toda t-cláusula em S.

Teorema 2.3.5. (Correção da resolução-SLI) Seja S um conjunto input de t-cláusulas.

Se C é derivável de S por uma derivação-SLI então para todo t-modelo M , se M |= S

então M |= C.

O próximo teorema é uma modi�cação do teorema acima e é baseado em

refutação. Ele mostra que a composição de substituições feita às variáveis em C durante

o processo de refutação corresponde a uma resposta correta.

Teorema 2.3.6. (Correção forte da resolução-SLI) Seja PL um programa lógico disjun-

tivo e seja G a consulta = ← A. Seja C = (ε* ∼A) a t-cláusula representando G e

seja S o conjunto input de t-cláusulas obtido de PL. Então toda resposta computada SLI

com C como cláusula-topo e S ∪ {C} como conjunto input é uma resposta correta para

PL ∪ {G}.

Para a demonstração da completude da resolução-SLI primeiro é necessário

mostrar que a resolução-SLI é completa para um input de t-cláusulas básicas e depois

estender o resultado para o caso não básico.

Page 62: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

62

Lema 2.3.7. Seja S um conjunto minimamente insatisfatível de input de t-cláusulas bá-

sicas, e seja C uma t-cláusula em S. Então existe uma refutação-SLI de S com cláusula

topo C.

Para demonstrar a completude para cláusulas não-básicas, o teorema de Her-

brand e o lema de levantamento são necessários. Como os autores da referência [LMR92]

não demonstraram o Teorema de Herbrand, abaixo temos uma demonstração adaptada

de [CL73].

Teorema 2.3.8. (Teorema de Herbrand) Seja S um conjunto de cláusulas. S é insatis-

fatível se, e somente se, existe um conjunto insatisfatível �nito S ′ de instâncias básicas

de cláusulas de S.

Demonstração. ⇒ Suponha que S é insatisfatível. Sendo S um conjunto input de t-

cláusulas insatisfatível, suponha que C seja uma t-cláusula em S. Então existe uma

refutação-SLI de S com t-cláusula topo C. Como essa refutação existe (uma vez que S é

insatisfatível) e é �nita, chamemos de S ′ o conjunto das t-cláusulas usadas nessa refutação,

claramente S ′ é �nito, e, como dele conseguimos a refutação-SLI de S com cláusula topo

C, ele também é insatisfatível.

⇐ Suponha que existe um conjunto insatisfatível �nito S ′ de instâncias básicas

de cláusulas em S. Uma vez que toda interpretação I de S contém uma interpretação

I' de S ′, se I' falsi�ca S ′, então I deve falsi�car S ′. No entanto, S ′ é falsi�cado por

toda interpretação I'. Consequentemente, S ′ é falsi�cado por toda interpretação I de S.

Portanto, S é falsi�cado por toda interpretação de S. Assim, S é insatisfatível.

Lema 2.3.9. (Lema do T-levantamento) Sejam C ′1 e C′2 duas cláusulas que são instâncias

de cláusulas C1 e C2, respectivamente, tais que C ′1 = C1σ e C ′2 = C2σ para alguma

substituição σ. Se C ′ é t-derivada (De�nição 2.2.15) de C ′1 e C′2 então existe uma cláusula

t-derivada C de C1 e C2 tal que C ′ é uma instâncias de C. Além disso, se θ′ é o mgu

utilizado para derivar C ′ de C ′1 e C ′2 e θ é o mgu utilizado para derivar C de C1 e C2,

existe uma substituição γ tal que θ′ = θ · γ e C ′θ′ = C ′σ · θ · γ.

Demonstração. A demonstração pode ser vista em [CL73].

Page 63: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

63

Teorema 2.3.10. (Teorema da Completude para t-cláusulas) Seja PL um programa lógico

disjuntivo (e S o correspondente conjunto de t-cláusulas), e seja C =← A uma consulta

(Com a correspondente t-cláusula C = (ε* ∼A)). Se S ∪ {C} é insatisfatível, então

existe uma refutação-SLI de S com t-cláusula topo C. Além disso, se {θ1, . . . , θn} é uma

resposta correta para PL ∪ {G}, então existe uma resposta computada SLI {σ, . . . , σk} de

uma refutação-SLI de S com cláusula topo C tal que para todo i, i = 1, . . . , k, temos

Cθi = Cσi · γi para alguma substituição γi.

Corolário 2.3.11. Seja PL um programa lógico disjuntivo. A resolução-SLI é um pro-

cedimento correto e completo para computar consequências lógicas de PL.

Demonstração. A demonstração é direta dos Teoremas 2.3.6 e 2.3.10.

No próximo Capítulo apresentaremos o cerne desta Tese, um estudo sobre uma

programação lógica paraconsistente para a lógica 3-valorada QMPT0.

Page 64: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

64

Page 65: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

65

Capítulo 3

Uma Programação Lógica

Paraconsistente 3-valorada

Neste capítulo, primeiro apresentaremos alguns aspectos das Lógicas da In-

consistência Formal (LFI's), uma vez que a lógica subjacente utilizada neste trabalho faz

parte desse conjunto de lógicas. A seguir, a partir das perspectivas apresentadas em [Sil11],

[Rod10], [Con], [CCM07], [Sch86], [CS14] e [Llo87], apresentaremos a lógica tri valorada

MPT0, que contém duas negações, uma forte e uma fraca. Após isto, apresentaremos a ex-

tensão de MPT0 à primeira ordem, a lógica QMPT0. As de�nições introdutórias e alguns

Teoremas iniciais deste Capítulo podem ser vistos em [CC16], as provas de completude

de QMPT0, assim como os demais desenvolvimentos apresentados, são originais.

3.1 Lógicas da Inconsistência Formal

Nesta seção apresentaremos as características básicas das Lógicas da Inconsis-

tencia Formal, de�nindo uma LFI básica chamada mbC, a partir da qual obteremos a

axiomatização da lógica MPT0.

As lógicas paraconsistentes são um tipo de lógica na qual as contradições nem

sempre levam a trivialidade, ao contrário do que acontece com a lógica clássica, na qual

uma contradição geralmente tem um efeito "explosivo", de modo que a partir de con-

tradições tudo é derivado. As lógicas paraconsistentes foram primeiramente propostas

por Jáskowski [Ja±48] e Nelson [Nel00]. Newton da Costa iniciou a hoje conhecida como

"Escola Brasileira de Paraconsistência"com sua hierarquia de lógicas Cn (ver [dC93]).

Em 2002, Carnielli e Marcos [CM02] introduziram uma generalização dos sistemas de da

Costa, as chamadas Lógicas da Inconsistencia Formal. Continuações desse trabalho foram

Page 66: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

66

desenvolvidas em [CCM07] e [CC16]. Nas LFI's as noções de consistência e inconsistência

são internalizadas, na linguagem objeto, através dos conectivos ◦ e •, respectivamente.

Assim, para uma fórmula α, ◦α signi�ca que α é consistente enquanto •α quer dizer que

α é inconsistente.

As propriedade básicas das LFI's são, em termos formais,

1. α,¬α 6` β, mas α,¬α, ◦α ` β, para toda α e β.

2. α,¬α ` •α, para toda α.

A primeira propriedade estabelece a paraconsistência de uma LFI, uma vez que

dada uma contradição apenas, não podemos derivar, em geral, qualquer fórmula. Porém,

acrescentando a informação adicional de que a fórmula em que apresenta a contradição

é também é consistente, toda outra fórmula pode ser derivada. A segunda propriedade

estabelece que a partir de uma contradição em α, a sentença α é inconsistente. A recíproca

dessa propriedade não vale em todas LFI's.

Agora, para a continuação deste trabalho, apresentaremos uma LFI básica

chamada mbC.

De�nição 3.1.1. Seja V um conjunto enumerável de variáveis proposicionais. A lógica

proposicional mbC (gerada por V) é a lógica de�nida sobre o conjunto For de fórmulas

gerado pela assinatura {∧,∨,→,¬, ◦} como segue:

Axiomas:

(A1) α→ (β → α)

(A2) (α→ β)→ ((α→ (β → γ))→ (α→ γ))

(A3) α→ (β → (α ∧ β))

(A4) (α ∧ β)→ α

(A5) (α ∧ β)→ β

(A6) α→ (α ∨ β)

(A7) β → (α ∨ β)

(A8) (α→ γ)→ ((β → γ)→ ((α ∨ β)→ γ))

Page 67: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

67

(A9) α ∨ (α→ β)

(A10) α ∨ ¬α

(bc1) ◦α→ (α→ (¬α→ β))

Com apenas uma Regra de Inferência:

(MP)α, α→ β

β

Observe que (A1)-(A9) mais (MP) constitui um cálculo de Hilbert para a lógica

clássica positiva.

Na próxima seção apresentaremos uma LFI fundamental para os estudos em

programação lógica paraconsistente desenvolvidos nesta Tese.

3.2 A lógica 3-valorada MPT0

Consideramos, a partir daqui, dois símbolos para negações, ¬ e ∼, sendo que

¬ representa a negação fraca (paraconsistente) e ∼ representa a negação forte (explosiva).

Deste modo, temos as tabelas de verdade para MPT0.

De�nição 3.2.1. A lógica matricial 3-valorada MPT0 (ver [CC16]) é de�nida sobre a

assinatura {∧,∨,→,¬,∼} no domínio {1, B, 0} em que D = {1, B} é o conjunto de

valores distinguidos. As tabelas que interpretam os conectivos são as seguintes:

→ 1 B 0

1 1 B 0

B 1 B 0

0 1 1 1

∧ 1 B 0

1 1 B 0

B B B 0

0 0 0 0

∨ 1 B 0

1 1 1 1

B 1 B B

0 1 B 0

p ¬p

1 0

B B

0 1

p ∼p

1 0

B 0

0 1

Page 68: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

68

Observação 3.2.2. Sobre o conjunto de valores de verdade {1, B, 0}, observe que 1 e

0 representam a verdade e falsidade clássicas, enquanto que B é um valor intermediário

(não clássico). Observe também que MPT0 possui duas negações, ¬ e ∼, sendo que ¬

representa a negação fraca e ∼ representa a negação forte. Dado que terceiro valor �B�

(both) é distinguido, a negação fraca de B é B mesmo e a negação forte é 0. Por este

motivo ¬ é uma negação paraconsistente, enquanto que ∼ é explosiva.

O conectivo de equivalência ≡ é de�nido como (α ≡ β) =def (α→ β) ∧ (β →α), cuja tabela é a seguinte:

≡ 1 B 0

1 1 B 0

B B B 0

0 0 0 1

A lógica MPT0 é equivalente a lógica LPT (ver [CS14]), a base proposicional

de LPT1. MPT0 também coincide com a lógica LFI1 (ver [CMdA00]) que, por sua vez,

coincide com a conhecida lógica J3 de da Costa e D'Ottaviano (ver [DdC70]) a menos da

linguagem.

Agora, um cálculo Hilbertiano correto e completo para MPT0, chamado LPT0

será de�nido, conforme [CC16].

De�nição 3.2.3. Seja Σ1 a assinatura proposicional Σ1 = {∧,∨,→,¬,∼}. O cálculo

Hilbertiano LPT0 sobre Σ1 é de�nido considerando os esquemas de axioma (A1)-(A10)

de mbC apresentados na de�nição 3.1.1, mais Modus Ponens, junto com os seguintes

esquemas de axiomas:

Page 69: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

69

(TND) α ∨ ∼α

(exp) α→(∼α→ β

)(dneg) ¬∼α→ α

(cf) ¬¬α→ α

(ce) α→ ¬¬α

(neg∨1) ¬(α ∨ β)→ (¬α ∧ ¬β)

(neg∨2) (¬α ∧ ¬β)→ ¬(α ∨ β)

(neg∧1) ¬(α ∧ β)→ (¬α ∨ ¬β)

(neg∧2) (¬α ∨ ¬β)→ ¬(α ∧ β)

(Ir→) ¬(α→ β)→ (α ∧ ¬β)

(Ip→) (α ∧ ¬β)→ ¬(α→ β)

Este sistema é apresentado na De�nição 4.4.52 do livro de Carnielli e Coniglio

[CC16].

Seja LΣ1 a linguagem proposicional gerada por Σ1 a partir do conjunto V ar = {p1, p2, . . .}de variáveis proposicionais. Introduziremos uma valoração-LPT0 para o cálculo Hilberti-

ano LPT0, seguindo a de�nição 4.4.53 em [CC16].

De�nição 3.2.4 (valoração-LPT0). Uma função v : LΣ1 →{

0, 1}é uma valoração-LPT0

se satisfaz as seguintes condições:

(vOr) v(α ∨ β) = 1 ⇐⇒ v(α) = 1 ou v(β) = 1

(vAnd) v(α ∧ β) = 1 ⇐⇒ v(α) = 1 e v(β) = 1

(vImp) v(α→ β) = 1 ⇐⇒ v(α) = 0 ou v(β) = 1

(vNeg) v(α) = 0 =⇒ v(¬α) = 1

(vNot) v(α) = 0 ⇐⇒ v(∼α) = 1

(vNegE1) v(¬∼α) = 1 =⇒ v(α) = 1

(vNegE2) v(¬¬α) = v(α)

(vDM∧) v(¬(α ∧ β)) = 1 ⇐⇒ v(¬α) = 1 ou v(¬β) = 1

Page 70: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

70

(vDM∨) v(¬(α ∨ β)) = 1 ⇐⇒ v(¬α) = v(¬β) = 1

(vCIp→) v(¬(α→ β)) = 1 ⇐⇒ v(α) = v(¬β) = 1

Seja |=LPT0 a relação de consequência de LPT0 com relação a valorações-LPT0.

A demonstração do seguinte resultado é direta, usando as técnicas usuais utilizadas em

[CCM07] e [CC16].

Teorema 3.2.5 (Correção e Completude de LPT0 com relação a valorações-LPT0).

Para todo Γ ∪ {ϕ} ⊆ LΣ1:

Γ `LPT0 ϕ ⇐⇒ Γ |=LPT0 ϕ

O próximo Lema é necessário para se mostrar a equivalência entre o cálculo

LPT0 e MPT0.

Lema 3.2.6. Seja v uma valoração-LPT0. Então existe uma valoração h para MPT0

tal que, para toda fórmula α ∈ LΣ1, v(α) = 1 sse h(α) ∈ {1, B}.

Demonstração. Por indução na complexidade de uma fórmula α em LΣ1 . No Lema 4.4.55

de [CC16] é demonstrado o seguinte:

h(α) =

1 sse v(α) = 1, e v(¬α) = 0

B sse v(α) = 1, e v(¬α) = 1

0 sse v(α) = 0, e v(¬α) = 1

Para toda α ∈ LΣ1 .

A partir do Lema anterior, a equivalência entre MPT0 e a lógica gerada pelo

cálculo Hilbertiano LPT0 é imediata. Ou seja, o cálculo LPT0 é correto e completo com

relação as matrizes 3-valoradas da lógica MPT0. Apresentaremos, a seguir, uma prova

original deste resultado.

Teorema 3.2.7. A lógica LPT0 coincide com a lógica MPT0, ou seja, LPT0 é correto e

completo com relação as matrizes de MPT0: para todo Γ∪ {α} ⊆ LΣ1, Γ `LPT0 α ⇐⇒

Γ |=MPT0 α.

Page 71: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

71

Demonstração. A demonstração será dividida em duas partes, correção e completude.

(Correção) É evidente que todos os axiomas de LPT0 são tautologias em MPT0. Além

disso, se h(α) ∈ {1, B} e h(α → β) ∈ {1, B}, então h(β) ∈ {1, B} para toda valoração

h de MPT0. Assim, por indução no comprimento da derivação é fácil provar que se

Γ `LPT0 α então Γ |=MPT0 α.

(Completude) Suponha que Γ |=MPT0 α, e seja v uma valoração-LPT0 tal que v[Γ] ⊆ {1}.

Utilizando o Lema 3.2.6, existe uma valoração h para MPT0 tal que, para toda β ∈ LΣ1 ,

v(β) = 1 sse h(β) ∈ {1, B}. Disso, h[Γ] ⊆ {1, B} e então, por hipótese, h(α) ∈ {1, B}.

Portanto, v(α) = 1, mostrando que Γ |=LPT0 α, e então, pelo Teorema 3.2.5, Γ ∪ {α}.

Neste ponto, introduziremos alguns conceitos que serão utilizados com frequên-

cia a partir daqui.

De�nição 3.2.8. Em MPT0 introduzimos as seguintes noções:

- Um literal é uma fórmula da forma A, ¬A, ∼A ou ∼¬A, na qual A é uma fórmula

atômica. Em cada caso é dito que o literal contém a fórmula atômica A.

- Literais da forma A ou ¬A, onde A é atômica, são chamados positivos, os outros

são chamados negativos.

- Uma fórmula atômica A é também chamada de átomo.

- Uma cláusula de MPT0 é uma fórmula da forma:

L1 ∨ · · · ∨ Lk ∨ ∼Lk+1 ∨ · · · ∨ ∼Lk+m

tal que cada Li é um literal positivo em MPT0.

- Uma cláusula é chamada positiva (negativa) se contém apenas literais positivos (ne-

gativos).

- Um conjunto S de cláusulas é chamado satisfatível se existe uma valoração h em

MPT0 tal que h(K) ∈ {1, B} para todas as cláusulas K em S. Neste caso h é

chamado de modelo de S.

Page 72: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

72

- Uma cláusula K é consequência em MPT0 de um conjunto de cláusulas S (denotado

S |=MPT0 K), se para todas as valorações h, se h(S) ⊆ D então também vale que

h(K) ∈ D.

- Sejam α e β duas fórmulas de MPT0, dizemos que α ≡ β se, e somente se h(α) =

h(β) para toda valoração h de MPT0.

Deste modo, temos:

Lema 3.2.9. As seguintes equivalências são válidas em MPT0:

1. ¬¬A ≡ A

2. ∼∼A ≡ A

3. ¬ ∼A ≡ A

4. (A ∧ B) ∨ C ≡ (A ∨ C) ∧ (B ∨ C)

5. (A ∨ B) ∧ C ≡ (A ∧ C) ∨ (B ∧ C)

6. ¬(A ∨ B) ≡ ¬A ∧ ¬B

7. ¬(A ∧ B) ≡ ¬A ∨ ¬B

8. ∼(A ∨ B) ≡ ∼A ∧ ∼B

9. ∼(A ∧ B) ≡ ∼A ∨ ∼B

Demonstração. A demonstração é realizada através das tabelas de verdade e da de�nição

de equivalência em MPT0.

A seguir, estabeleceremos alguns resultados sobre cláusulas em MPT0:

Lema 3.2.10. Dada uma variável p, existem exatamente quatro literais em MPT0 base-

ados em p, a menos de equivalência lógica: p, ¬p, ∼p e ∼¬p.

Demonstração. Primeiro, analisemos a tabela abaixo:

Page 73: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

73

p ¬p ∼p ∼¬p ¬∼p ¬∼¬p ∼¬∼p ∼¬∼¬p ¬∼¬∼p

1 0 0 1 1 0 0 1 1

B B 0 0 1 1 0 0 1

0 1 1 0 0 1 1 0 0

Nela, vemos que ¬∼p ≡ p, ¬∼¬p ≡ ¬p, (∼¬)np ≡ ∼¬p e (¬∼)np ≡ p, para n ≥ 2.

Isto é, os únicos quatro literais baseados em p (a menos de equivalência) são p, ¬p, ∼p e

∼¬p.

A seguir, mostraremos que é possível de�nir em MPT0 formas normais con-

juntivas e disjuntivas.

Comecemos pela forma normal disjuntiva. Observemos que é possível de�nir

em MPT0 fórmulas numa variável, αx(p), que representam cada um dos valores de ver-

dade x, para x ∈ {1, B, 0}. De fato, considere a seguinte tabela:

p α1(p) = ∼¬p αB(p) = p ∧ ¬p α0(p) = ∼p

1 1 0 0

B 0 B 0

0 0 0 1

Lema 3.2.11. Para todo x ∈ {1, B, 0} e para toda valoração h, h(αx(p)) ∈ {1, B} sse

h(p) = x.

Demonstração. Imediata.

Logo, h(αx(p)) = 0 see h(p) 6= x.

Dada uma sequência de átomos distintos p1, . . . , pn e ~x = (x1, . . . , xn) ∈{1, B, 0}n, seja Ψ~x(p1, . . . , pn) =

∧ni=1 αxi(pi).

Observe que Ψ~x é uma conjunção de literais de MPT0.

Proposição 3.2.12. Seja h uma valoração, p1, . . . , pn uma sequência de átomos distintos

e ~x = (x1, . . . , xn) ∈ {1, B, 0}n. Então h(Ψ~x(p1, . . . , pn)) ∈ {1, B} sse h(pi) = xi para

1 ≤ i ≤ n.

Demonstração. É uma consequência imediata do Lema 3.2.11 e do fato de que h(γ1∧γ2) ∈

{1, B} sse h(γ1) ∈ {1, B} e h(γ2) ∈ {1, B}, para toda γ1 e γ2.

Page 74: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

74

De�nição 3.2.13. Seja ϕ(p1, . . . , pn). Uma sequência ~x = (x1, . . . , xn) ∈ {1, B, 0}n

satisfaz ϕ se, para toda valoração h, se h(pi) = xi para 1 ≤ i ≤ n então h(ϕ) ∈ {1, B}.

Seja Mod(ϕ) o conjunto de sequências em {1, B, 0}n que satisfazem ϕ. Obvi-

amente Mod(ϕ) é �nito.

De�nição 3.2.14. A Forma Normal Disjuntiva (FND) para ϕ(p1, . . . , pn) em MPT0 é

dada por Φϕ(p1, . . . , pn) =∨~x∈Mod(ϕ) Ψ~x(p1, . . . , pn).

Claramente Φϕ é uma disjunção de conjunções de literais de MPT0.

Teorema 3.2.15 (Formal Normal Disjuntiva em MPT0).

Para toda fórmula ϕ em MPT0, ϕ ≡ Φϕ.

Demonstração. Seja h uma valoração em MPT0. Suponha que h(ϕ) ∈ {1, B}, e seja ~x =

(h(p1), . . . , h(pn)). Logo, ~x ∈Mod(ϕ). Pela Proposição 3.2.12, temos que h(Ψ~x) ∈ {1, B}

e então h(Φϕ) ∈ {1, B}. Reciprocamente, se h(Φϕ) ∈ {1, B} então existe ~x ∈ Mod(ϕ)

tal que h(Ψ~x) ∈ {1, B}. Pela Proposição 3.2.12, h(pi) = xi, para 1 ≤ i ≤ n, e então

h(ϕ) ∈ {1, B}, pela De�nição 3.2.13. Daqui, ϕ ≡ Φϕ.

Analisaremos agora a forma normal conjuntiva. Começaremos observando que

é possível de�nir em MPT0 fórmulas numa variável, βx(p), que representam dualmente

cada um dos valores de verdade x, para x ∈ {1, B, 0}, no sentido do Lema 3.2.16 abaixo.

Considere a seguinte tabela:

p β1(p) = ¬p βB(p) = ∼p ∨ ∼¬p β0(p) = p

1 0 1 1

B B 0 B

0 1 1 0

Lema 3.2.16. Para todo x ∈ {1, B, 0} e para toda valoração h, h(βx(p)) = 0 see h(p) = x.

Demonstração. Imediata.

Logo, h(αx(p)) ∈ {1, B} see h(p) 6= x.

Dada uma sequência de átomos distintos p1, . . . , pn e ~x = (x1, . . . , xn) ∈{1, B, 0}n, seja δ~x(p1, . . . , pn) =

∨ni=1 βxi(pi).

Observe que δ~x é uma disjunção de literais de MPT0.

Page 75: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

75

Proposição 3.2.17. Seja h uma valoração, p1, . . . , pn uma sequência de átomos distintos

e ~x = (x1, . . . , xn) ∈ {1, B, 0}n. Então h(δ~x(p1, . . . , pn)) = 0 sse h(pi) = xi para 1 ≤ i ≤ n.

Demonstração. É uma consequência imediata do Lema 3.2.16 e do fato de que h(γ1∨γ2) =

0 sse h(γ1) = 0 e h(γ2) = 0, para toda γ1 e γ2.

De�nição 3.2.18. Seja ϕ(p1, . . . , pn). Uma sequência ~x = (x1, . . . , xn) ∈ {1, B, 0}n refuta

ϕ se, para toda valoração h, se h(pi) = xi para 1 ≤ i ≤ n então h(ϕ) = 0.

Seja Ref(ϕ) o conjunto de sequências em {1, B, 0}n que refutam ϕ. Obvia-

mente Ref(ϕ) é �nito.

De�nição 3.2.19. A Forma Normal Conjuntiva (FNC) para ϕ(p1, . . . , pn) em MPT0 é

dada por Φϕ(p1, . . . , pn) =∧~x∈Ref(ϕ) δ~x(p1, . . . , pn).

Claramente Φϕ é uma conjunção de disjunções de literais de MPT0.

Teorema 3.2.20 (Formal Normal Conjuntiva em MPT0).

Para toda fórmula ϕ em MPT0, ϕ ≡ Φϕ.

Demonstração. Seja h uma valoração em MPT0. Assuma que h(ϕ) = 0, e seja ~x =

(h(p1), . . . , h(pn)). Logo, ~x ∈ Ref(ϕ). Pela Proposição 3.2.17, temos que h(δ~x) = 0

e então h(Φϕ) = 0. Reciprocamente, se h(Φϕ) = 0 então existe ~x ∈ Ref(ϕ) tal que

h(δ~x) = 0. Pela Proposição 3.2.17, h(pi) = xi, para 1 ≤ i ≤ n, e então h(ϕ) = 0, pela

De�nição 3.2.18. Daqui, ϕ ≡ Φϕ.

Na próxima seção introduziremos a extensão de MPT0 a primeira-ordem.

3.3 A lógica de predicados 3-valorada QMPT0

A extensão de MPT0 a primeira ordem será denominada QMPT0 e é equiva-

lente à lógica conhecida como QLFI1◦ (ver De�nição 7.9.14 em [CC16]), só que de�nida

numa assinatura levemente diferente, a saber: a assinatura de MPT0 estendida por quanti-

�cadores. A semântica de QMPT0 é dada pelas chamadas estruturas pragmáticas. Antes

de adentrarmos esse assunto em particular, várias outras de�nições e lemas devem ser

dados. Começamos com a de�nição de variante de uma fórmula.

De�nição 3.3.1. Dado duas fórmulas ϕ e ψ, se ϕ pode ser obtida de ψ pela adição ou

exclusão de quanti�cadores vazios (sem variáveis ligadas), ou pela substituição de variáveis

Page 76: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

76

ligadas (deixar as mesmas variáveis livres nos mesmos lugares), dizemos que ϕ e ψ são

variantes uma da outra.

De�nição 3.3.2 (Assinatura de primeira ordem). Seja Σ1 a assinatura proposicional para

MPT0, e os símbolos ∀ (quanti�cador universal) e ∃ (quanti�cador existencial), assim

como sinais de pontuação (vírgulas e parênteses). Seja V ari = {v1, v2, . . .} um conjunto

enumerável de variáveis individuais. Uma assinatura de primeira-ordem Θ é composta

dos seguintes elementos:

• um conjunto C de constantes individuais;

• para cada n ≥ 1, um conjunto de símbolos de função de aridade n;

• para cada n ≥ 1, um conjunto de símbolos de predicados de aridade n.

De�nição 3.3.3 (Estruturas). Seja Θ uma assinatura de primeira-ordem. Uma estrutura

(de primeira ordem) sobre Θ é um par A = 〈A, IA〉 tal que A é um conjunto não vazio

(domínio da estrutura) e IA é uma função interpretação que atribui para cada constante

individual c ∈ C, um elemento IA(c) de A; para cada símbolo de função f n-ário, uma

função IA(f) : An → A; e para cada símbolo de predicado P n-ário, uma relação IA(P ) ⊆

An.

De�nição 3.3.4 (Linguagem Diagrama e estruturas estendidas). Considere uma estru-

tura A sobre Θ. A linguagem diagrama1 de A, denotada por LΘ(A), ou simplesmente

L(A), é de�nida sobre a assinatura ΘA obtida de Θ pelo acréscimo de uma nova cons-

tante individual a para cada elemento a do domínio A de A. Denotaremos por TΘ(A), ou

simplesmente por T (A), o conjunto de termos da linguagem diagrama de A.

A estrutura A é naturalmente estendida para uma estrutura A = 〈A, IA〉 sobre

ΘA pela de�nição de IA(a) = a para cada a ∈ A.

De�nição 3.3.5. Seja A uma estrutura para uma assinatura Θ, e −→x = x1, . . . , xn

uma sequência de diferentes variáveis. O conjunto de fórmulas de L(A) cujas variáveis

livres ocorrem na sequência −→x é denotado por L(A)−→x e dizemos que −→x é um contexto

para as fórmulas em L(A)−→x . Analogamente, podemos de�nir o conjunto L(A)Θ−→x de

todas as fórmulas de LΘ com contexto −→x . Dada uma sequência −→a = a1, . . . , an de

1Em Inglês: Diagram language

Page 77: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

77

elementos em D e ϕ ∈ L(A)−→x , denotamos por ϕ[−→x /−→a ] a sentença em SL(A) obtida de

ϕ pela substituição múltipla2 de toda ocorrência livre de variável xi pela constante ai,

para 1 ≤ i ≤ n. Do mesmo modo, se t é um termo sobre a assinatura ΘA cujas variáveis

ocorrem na sequência ~x, então t[~x/~a] é o termo fechado obtido de t pela substituição

simultânea de toda ocorrência de variável xi pela constante ai, para 1 ≤ i ≤ n; neste caso,

dizemos que ~x é um contexto para t. O conjunto de todos os termos da assinatura ΘA de

L(A) com contexto ~x será denotada por T (A)~x.

Observação 3.3.6. Para n = 1 na de�nição de substituição do Capítulo 1 temos que

ϕ[x/a] denota a substituição da constante a pela variável x. Mas para a De�nição 3.3.5

ϕ[x/a] (considerando x como contexto) denota a mesma fórmula. Como será conveniente

identi�car (informalmente) um elemento b de A com a constante b de ΘA essa ambiguidade

não é problemática e já aparece na de�nição seguinte.

De�nição 3.3.7. Seja Σ2 a assinatura {∧,∨,→,¬,∼,∀,∃} e seja Θ uma assinatura de

primeira ordem. O cálculo Hilbertiano QMPT0 sobre Σ2 e Θ é de�nido considerando os

esquemas de axioma (A1)-(A10) de mbC apresentados na de�nição 3.1.1, mais os axio-

mas de MPT0 apresentados na De�nição 3.2.3, maisModus Ponens, junto dos seguintes:

(Ax11) α[x/t]→ ∃xα, se t é um termo livre para x em α

(Ax12) ∀xα→ α[x/t], se t é um termo livre para x em α

(Ax13) α→ β sempre que α for uma variante de β

(AxExUn) ¬∀xϕ←→ ∃x¬ϕ.

(AxExEq) ¬∃xϕ←→ ∀x¬ϕ.

(AxExUnN) ∼∀xϕ←→ ∃x∼ϕ.

(AxExEqN) ∼∃xϕ←→ ∀x∼ϕ.

Regras de Inferência

2Em Inglês: Multiple substituition

Page 78: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

78

(∀ − in) α→ β

α→ ∀xβ, se x não é livre em α.

(∃ − in) α→ β

∃xα→ β, se x não é livre em β.

De�nição 3.3.8 (valoração-QMPT0). Seja A uma estrutura sobre Θ com domínio A.

Uma função v : SL(A) →{

0, 1}é uma valoração-QMPT0 sobre A se satisfaz as seguintes

condições:

(vPred) v(P (t1, . . . , tn)) = 1 ⇐⇒ 〈 tA1 , . . . , tAn 〉 ∈ IA(P ), para P (t1, . . . , tn) ∈ AtΘA

(vOr) v(α ∨ β) = 1 ⇐⇒ v(α) = 1 ou v(β) = 1

(vAnd) v(α ∧ β) = 1 ⇐⇒ v(α) = 1 e v(β) = 1

(vImp) v(α→ β) = 1 ⇐⇒ v(α) = 0 ou v(β) = 1

(vNeg) v(α) = 0 =⇒ v(¬α) = 1

(vNot) v(α) = 0 ⇐⇒ v(∼α) = 1

(vNegE1) v(¬∼α) = 1 =⇒ v(α) = 1

(vNegE2) v(¬¬α) = v(α)

(vDM∧) v(¬(α ∧ β)) = 1 ⇐⇒ v(¬α) = 1 ou v(¬β) = 1

(vDM∨) v(¬(α ∨ β)) = 1 ⇐⇒ v(¬α) = v(¬β) = 1

(vCIp→) v(¬(α→ β)) = 1 ⇐⇒ v(α) = v(¬β) = 1

(vVar) v(φ) = v(ψ) sempre que φ é uma variante de ψ

(vEx) v(∃xφ) = 1 ⇐⇒ v(φ[x/a]) = 1 para algum a ∈ A

(vUni) v(∀xφ) = 1 ⇐⇒ v(φ[x/a]) = 1 para todo a ∈ A

(vExUni1) v(¬∀xφ) = v(∃x¬φ)

(vExUni2) v(¬∃xφ) = v(∀x¬φ)

(sNeg) Para todos os contextos (~x; z) e (~x; ~y), para toda sequência (~a;~b) em A interpre-

tando (~x; ~y), para toda ϕ ∈ L(A)~x;z e para todo t ∈ T (A)~x;~y tal que t é livre para z em ϕ,

Page 79: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

79

se ϕ[z/t] ∈ L(A)~x;~y e b = (t[~x; ~y/~a;~b])A então:

v((ϕ[z/t])[~x; ~y/~a;~b]) = v(ϕ[~x; z/~a; b]) =⇒

v((¬ϕ[z/t])[~x; ~y/~a;~b]) = v(¬ϕ[~x; z/~a; b])

Observação 3.3.9. A cláusula (sNeg) possui um caráter inteiramente técnico. Ela es-

tabelece que se duas fórmulas na linguagem diagrama envolvendo substituições tem o

mesmo valor de verdade, então essa igualdade deve ser preservada através do conectivo

não-vero-funcional ¬. Por exemplo, seja P um símbolo para um predicado unário e f um

símbolo para uma função unária. Seja ~x um contexto vazio (então ~a também é vazio);

~y = x (uma simples variável), ~b = a (um simples elemento de A), ϕ = P (z) (na qual z é

uma variável) e t = f(x). Seja b = (t[x/a])A = f(a)A = fA(a). Então,

v((P (z)[z/t])[x/a]) = v(P (t)[x/a]) = v(P (f(x))[x/a]) = v(P (f(a))),

enquanto que

v(P (z)[z/b]) = v(P (b)) = v(P(fA(a)

)).

Por (vPred), v(P (f(a))) e v(P(fA(a)

))coincidem. No entanto a cláusula (sNeg)

pode garantir que v(¬P (f(a))) = v(¬P

(fA(a)

)), como esperado. Esta característica

será fundamental na demonstração do Lema da Substituição 3.3.13 abaixo que, por sua

vez, é fundamental na demonstração da correção de QMPT0 com respeito a interpretações.

De�nição 3.3.10. Dada a assinatura Σ2 de QMPT0 e uma assinatura de primeira ordem

Θ, uma interpretação para QMPT0 é um par 〈A, v〉, tal que A é uma estrutura sobre Θ

e v : SL(A) → {0, 1} é uma valoração-QMPT0.

De�nição 3.3.11 (Relação de Consequência Semântica). Uma interpretação 〈A, v〉 para

QMPT0 sobre Θ satisfaz uma sentença ϕ ∈ SL(A), que denotamos por A, v |= ϕ, se

v(ϕ) = 1. Se Γ ⊆ SL(A) então A, v |= Γ signi�ca que A, v |= γ para todo γ ∈ Γ.

Uma fórmula ϕ é dita consequência semântica de Γ (denotado por Γ |= ϕ se, dado

Γ ∪ {ϕ} ⊆ SL(A), A, v |= Γ implica que A, v |= ϕ, para toda interpretação 〈A, v〉.

De�nição 3.3.12 (Valoração estendida). Seja A uma estrutura sobre Θ, ~x um contexto

e ~a uma sequência de elementos em A interpretando ~x. Se v : SL(A) →{

0, 1}é uma

Page 80: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

80

valoração-QMPT0 sobre A, sua extensão v~a~x : L(A)~x →{

0, 1}é de�nida como segue:

v~a~x(ϕ) = v(ϕ[~x/~a]), para toda ϕ ∈ L(A)~x.

Teorema 3.3.13 (Lema da Substituição). Seja t um termo livre para a variável z na

fórmula ϕ. Suponha que (~x; z) e (~x; ~y) são contextos para ϕ e ϕ[z/t], respectivamente.

Seja 〈A, v〉 uma interpretação para QMPT0. Se b = (t[~x; ~y/~a;~b])A Então:

v~a;~b~x;~y(ϕ[z/t]) = v~a;b

~x;z(ϕ)

Demonstração. A demonstração é idêntica a da lógica clássica e pode ser vista para

QmbC em [CC16].

Agora, provaremos que, para sentenças, QMPT0 é correta e completa com

respeito a sua semântica de interpretações paraconsistentes Tarskianas. Isso quer dizer

que, se ∆ ∪ {ϕ} é um conjunto de sentenças, então

∆ `QMPT0 ϕ⇐⇒ ∆ � ϕ

O guia da correção e completude será dado apenas para sentenças fechadas, pois é o foco

deste trabalho. Porém, a mesma demonstração pode ser utilizada para provar a correção e

completude envolvendo fórmulas com variáveis livres, nesse caso, a de�nição de valorações

estendidas seria necessária.

Abaixo temos os passos necessários para a demonstração da correção de QMPT0

com respeito a interpretações, os detalhes podem ser facilmente adaptados da Seção 7 de

[CC16]

Teorema 3.3.14 (Correção de QMPT0 com respeito a interpretações). Para todo con-

junto de sentenças ∆ ∪ {ϕ}: se ∆ `QMPT0 ϕ Então ∆ � ϕ.

Demonstração. A demonstração se dá por indução no comprimento n de uma derivação

ϕ1, . . . , ϕn de ϕ a partir de ∆ em QMPT0, prova-se que, dado uma estrutura A, cada

valoração-QMPT0 v sobre A, tal que A, v � ∆, satisfaz o seguinte: v~a~x(ϕi) = 1 para toda

sequência ~a em A interpretando ~x e toda 1 ≤ i ≤ n, onde ~x é um contexto para cada ϕi

(1 ≤ i ≤ n). Em particular, prova-se que v(ϕ) = 1, como desejado.

Para atingir esse resultado, é su�ciente provar os quatro seguintes itens:

(i) v~a~x(ψ) = 1 para toda ~a e toda instância ψ de um esquema de axioma de QMPT0.

Page 81: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

81

(ii) Se v~a~x(ψ1) = 1 e v~a~x(ψ1 → ψ2) = 1 para toda ~a então v~a~x(ψ2) = 1 para toda ~a

(iii) Se v~a;b~x;y(ψ1 → ψ2) = 1 para toda (~a; b), e se a variável y não ocorre livre em ψ1, então

v~a~x(ψ1 → ∀yψ2) = 1 para toda ~a

(iv) Se v~a;b~x;y(ψ1 → ψ2) = 1 para toda (~a; b), e se a variável y não ocorre livre em ψ1, então

v~a~x(∃yψ1 → ψ2) = 1 para toda ~a.

Agora, começaremos os passos para a demonstração da completude de QMPT0

com relação a interpretações.

De�nição 3.3.15 (Teoria). Dada uma assinatura de primeira ordem Θ, qualquer conjunto

de sentenças em LΘ será chamado de uma teoria.

A demonstração da completude de QMPT0 é análoga a da lógica clássica:

dada uma teoria Γ que não deduz uma sentença dada ϕ (portanto, não-trivial), uma

interpretação canônica será construída que satisfaz Γ mas não satisfaz ϕ, provando o

seguinte:

Γ 6`QMPT0 ϕ⇒ Γ 6� ϕ

Para isto, necessitamos que a teoria original Γ seja conservativamente estendida

a uma teoria Henkin ∆ (De�nição 3.3.19 abaixo) em uma assinatura estendida, isto é, a

uma teoria contendo uma testemunha3 para cada sentença existencial. Como ∆ é uma

extensão conservativa de Γ, então ela não deriva ϕ. Deste modo, utilizando um resultado

clássico e geral de Lindenbaum-�os, ∆ será estendida a uma teoria maximal ∆ que não

deriva ϕ e ainda é uma teoria Henkin. Utilizando uma estrutura canônica gerada a partir

de ∆, a função característica de ∆ constituirá uma valoração-QMPT0 que satisfaz Γ mas

não satisfaz ϕ.

De�nição 3.3.16. Dada uma lógica Tarskiana L sobre uma linguagem L, seja Γ∪{ϕ} ⊆

L. O conjunto Γ é maximalmente não-trivial com respeito a ϕ em L se Γ 6`L ϕ, mas

Γ, ψ `L ϕ para qualquer ψ 6∈ Γ.

Abaixo, temos o Teorema de Lindenbaum-�os que é valido para QMPT0 com

relação a sentenças fechadas.

3Em Inglês: Witness

Page 82: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

82

Teorema 3.3.17 (Teorema de Lindenbaum-�os). Seja L uma lógica Tarskiana e �nitária

sobre uma linguagem L. Seja Γ ∪ {ϕ} ⊆ L tal que Γ 6`L ϕ. Existe então um conjunto ∆

maximalmente não trivial com respeito a ϕ em L tal que Γ ⊆ ∆ ⊆ L.

Demonstração. A demonstração desse Teorema pode ser vista no Teorema 2.2.6 de [CC16].

Corolário 3.3.18. Seja Γ ∪ {ϕ} ⊆ SL um conjunto de sentenças tal que Γ 0QMPT0 ϕ.

Então, existe um conjunto de sentenças ∆ ⊆ SL que estende Γ e que é maximalmente não

trivial com respeito a ϕ em QMPT0 (pela restrição de `QMPT0 a sentenças).

De�nição 3.3.19 (Teoria Henkin). Considere uma teoria ∆ ⊆ SL e um conjunto não

vazio C de constantes da assinatura Θ de L. Então, ∆ é dita uma C-Teoria Henkin

em QMPT0 se satisfaz o seguinte: para toda sentença da forma ∃xφ em SL, existe uma

constante c em C tal que se ∆ ` ∃xφ então ∆ ` φ[x/c].

O conjunto C é chamado um conjunto de testemunhas de ∆.

Teorema 3.3.20 (Teorema das Constantes). Seja ∆ ⊆ SL uma teoria em QMPT0 sobre

uma assinatura Θ, e seja `CQMPT0 a relação de consequência de QMPT0 sobre a assinatura

ΘC, que é obtida de Θ pela adição de um conjunto C de novas constantes individuais.

Então, para toda ϕ ∈ SL,

∆ `QMPT0 ϕ sse ∆ `CQMPT0 ϕ.

Isto é, QMPT0 (sobre ΘC) é uma extensão conservativa de QMPT0 (sobre Θ).

Demonstração. A demonstração é análoga a para lógica clássica de primeira ordem:

Dada uma derivação π de ϕ a partir de Γ em QMPT0 sobre ΘC , as constantes de C que

ocorrem em π são substituídas uniformemente pelas novas variáveis, obtendo assim, uma

sequência �nita π′ de fórmulas sobre Θ. Deste modo as instâncias sobre ΘC de axiomas de

QMPT0 que ocorrem em π se tornam instâncias sobre Θ de axiomas de QMPT0, o mesmo

vale para as instâncias de regras de inferência. Portanto, π′ é de fato uma derivação de ϕ

a partir de Γ em QMPT0 sobre Θ. A recíproca é imediata.

Teorema 3.3.21. Toda teoria ∆ ⊆ SL em QMPT0 sobre uma assinatura Θ pode ser

conservativamente estendida a uma C-Teoria Henkin ∆H em QMPT0 sobre uma assina-

tura ΘC (ver Teorema 3.3.20). Isto é, ∆ ⊆ ∆H e se ϕ ∈ SL. então ∆ `QMPT0 ϕ sse

Page 83: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

83

∆H `CQMPT0 ϕ. Além disso, qualquer extensão de ∆H por sentenças na assinatura ΘC

também é uma C-Teoria Henkin.

Demonstração. A demonstração é análoga a apresentada no Teorema 7.5.3 em [CC16].

Teorema 3.3.22 (Interpretação Canônica). Seja ∆ ⊆ SL um conjunto de sentenças sobre

uma assinatura Θ contendo pelo menos uma constante individual. Assuma que ∆ é uma

C-teoria Henkin em QMPT0 para um conjunto não vazio C de constantes individuais

de Θ, e que ∆ é também maximalmente não-trivial com respeito a ϕ em QMPT0, para

alguma sentença ϕ. Então ∆ induz uma estrutura canônica A e uma valoração-QMPT0

canônica v : SL(A) →{

0, 1}sobre A tal que, para toda sentença ψ ∈ SL:

A, v � ψ ⇐⇒ ∆ `QMPT0 ψ

Demonstração. Abaixo estão os passos necessários para demonstração, para mais detalhes

pode ser consultado o Teorema 7.5.5 de [CC16].

Primeiro, Dado A = CTΘ, conjunto de termos fechados sobre a assinatura Θ, de�ne-se

uma estrutura A = 〈A, IA〉 sobre Θ como segue: IA(c) = c, se c é uma constante individual;

se f é um símbolo de função, então IA(f) : An → A é tal que IA(f)(t1, . . . , tn) =

f(t1, . . . , tn). Finalmente, de�nimos a interpretação dos símbolos de predicados como

segue:

〈t1, . . . , tn〉 ∈ IA(P )⇐⇒ ∆ `QMPT0 P (t1, . . . , tn)

Segundo, dado que t é uma nova constante introduzida para cada termo fechado t ∈ CTΘ e

dado CT (A), o conjunto de termos fechados da linguagem L(A), de�ne-se recursivamente

a função ∗ : CT (A)→ CTΘ da seguinte maneira: (t)* = t se t ∈ CTΘ; c* = c se c é uma

constante individual de Θ; e (f(t1, . . . , tn))∗ = f(t∗1, . . . , t∗n) se f é um símbolo de função

de Θ.

Terceiro, estende-se essa função naturalmente para sentenças através da função ∗ : SL(A) →

SL recursivamente de�nida como segue: (P (t1, . . . , tn))∗ = P (t∗1, . . . , t∗n) se P (t1, . . . , tn) é

atômica; (#ψ)∗ = #(ψ∗) se # ∈ {¬,∼}; (ϕ#ψ)∗ = (ϕ∗#ψ∗) se # ∈ {∧,∨,→}; e (Qx ψ)*

= Qx(ψ*) se Q ∈ {∀,∃}. Deste modo, temos que ϕ∗ é a sentença de LΘ obtida de ϕ pela

substituição de toda ocorrência de uma constante t pelo próprio termo t.

Page 84: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

84

Quarto, de�ne-se a função v : SL(A) →{

0, 1}como segue:

v(ϕ) = 1⇐⇒ ∆ `QMPT0 ϕ∗

Por quinto e último, mostra-se que v é de fato uma valoração-QMPT0.

A seguir está o teorema da completude de QMPT0 com respeito a interpreta-

ções, com os passos necessários para sua demonstração.4

Teorema 3.3.23 (Completude de QMPT0 com respeito a interpretações). Para todo

conjunto de sentenças ∆ ∪ {ϕ} sobre uma assinatura Θ, se ∆ � ϕ então ∆ `QMPT0 ϕ.

Demonstração. Primeiro, Suponha que ∆ ∪ {ϕ} ⊆ SL tal que ∆ 6`QMPT0 ϕ.

Segundo, estenda a teoria ∆ a uma C-teoria Henkin ∆H de�nida sobre uma assinatura

ΘC que conservativamente estende ∆, isto é; para toda sentença ψ ∈ SL, ∆ `QMPT0 ψ

sse ∆H `CQMPT0 ψ.

Terceiro, estenda ∆ a um conjunto de sentenças ∆H sobre a assinatura ΘC de tal modo

que ∆H seja maximalmente não-trivial com respeito a ϕ em QMPT0 e também uma C-

teoria Henkin.

Quarto, utilizando o Teorema 3.3.22 de�na uma interpretação canônica 〈A, v〉 sobre ΘC

tal que, para toda sentença ψ sobre ΘC ,

A, v � ψ ⇐⇒ ∆H `CQMPT0 ψ

Em particular, A, v � ∆ (como ∆ ⊆ ∆H) e A, v 6� ϕ (como ∆H 6`CQMPT0 ϕ).

Finalmente, seja A o reduto de A para a assinatura Θ.5 Isto é, IA coincide com IAsobre Θ (e então somente `esquece' a interpretação das constantes individuais em C).

4Os detalhes da demonstração para outras lógicas semelhantes podem ser vistos em [CC16]5Como usual, se Θ é uma subassinatura de outra assinatura Θ′, então qualquer estrutura A sobre Θ′

pode ser vista como uma estrutura sobre Θ, pelo `esquecimento' da interpretação de símbolos em Θ′ quenão pertencem a Θ. Tal que uma estrutura sobre Θ é chamada de reduto(Em Inglês: reduct) de A paraΘ (ver [CK90]).

Page 85: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

85

Seja v a restrição de v ao conjunto de sentenças SL(A ) da linguagem diagrama de A.

Claramente, A, v � ψ sse A, v � ψ, para toda sentença ψ ∈ SL(A ). Portanto, 〈A, v〉 é

uma interpretação para QMPT0 sobre Θ tal que A, v � ∆ mas A, v 6� ϕ. Isto mostra que

∆ 6� ϕ, como requerido.

Dados esses resultados, começaremos o estudo de QMPT0 a partir de estrutu-

ras pragmáticas.

Uma estrutura pragmática (ou parcial) é uma estrutura A = 〈A, (·)A〉 ade-quada para interpretar linguagens de primeira ordem no estilo Tarskiano, em que A é

um conjunto não vazio (o domínio de A) e (·)A interpreta os símbolos da linguagem da

maneira usual, com a seguinte diferença: cada predicado n-ário R da linguagem é in-

terpretado como uma tripla RA = 〈RA+, R

A−, R

AB〉 tal que R+, R− e RB são conjuntos

mutuamente disjuntos tais que R+∪R−∪RB = An. Os elementos de R+, R− e RB são as

n-uplas que satisfazem R, não satisfazem R, e as que simultaneamente satisfazem e não

satisfazem R, respectivamente. A de�nição formal virá a seguir.

De�nição 3.3.24. Seja Θ uma assinatura de primeira ordem.

1. Seja A um conjunto não vazio. Uma relação parcial k-ária R de�nida sobre A é

uma tripla ordenada 〈R+, R−, RB〉, onde R+, R− e RB são dois a dois disjuntos e

R+ ∪R− ∪RB = Ak tal que:

a. R+ é o conjunto de k-tuplas que pertencem a R;

b. R− é o conjunto de k-tuplas que não pertencem a R;

c. RB é o conjunto de k-tuplas que ao mesmo tempo pertencem e não pertencem a

R;

2. Uma estrutura pragmática (ou parcial) sobre a assinatura Θ é um par ordenado

A = 〈A, (·)A〉 na qual A é um conjunto não vazio e (·)A é uma função de-

�nida sobre LΣ2 tal que, para todo símbolo R para uma relação k-ária em Σ2,

RA =⟨RA

+, RA−, R

AB

⟩é uma relação parcial k-ária.

De�nição 3.3.25. Seja ϕ uma fórmula sobre uma assinatura de primeiro ordem Σ2,−→x = x1, . . . , xk um contexto para ϕ, A = 〈A, (·)A〉 uma estrutura pragmática sobre Σ

e −→a uma sequência em A interpretando −→x . Dizemos que A satisfaz ϕ em −→x e −→a com

relação a QMPT0, denotado por A |=QMPT0−→x ϕ[−→a ] nas seguintes situações:

Page 86: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

86

1. A |=QMPT0−→x R(t1, . . . , tm)[−→a ] sse (tA1 [−→a ], . . . , tAm[−→a ]) ∈ RA

+∪RAB, sempre queR(t1, . . . , tm)

for atômica.

2. A |=QMPT0−→x ¬R(t1, . . . , tm)[−→a ] sse (tA1 [−→a ], . . . , tAm[−→a ]) ∈ RA

−∪RAB, sempre queR(t1, . . . , tm)

for atômica.

3. A |=QMPT0−→x ¬¬ψ[−→a ] sse A |=QMPT0

−→x ψ[−→a ].

4. A |=QMPT0−→x ¬(ϕ ∧ ψ)[−→a ] sse A |=QMPT0

−→x ¬ϕ[−→a ] ou A |=QMPT0−→x ¬ψ[−→a ].

5. A |=QMPT0−→x ¬(ϕ ∨ ψ)[−→a ] sse A |=QMPT0

−→x ¬ϕ[−→a ] e A |=QMPT0−→x ¬ψ[−→a ].

6. A |=QMPT0−→x ¬(ϕ→ ψ)[−→a ] sse A |=QMPT0

−→x ϕ[−→a ] e A |=QMPT0−→x ¬ψ[−→a ].

7. A |=QMPT0−→x ¬(∀xϕ)[−→a ] sse A |=QMPT0

−→x ,y ¬ϕ[x/y][−→a ; b], para algum b ∈ A, onde y é a

primeira variável que não ocorre nem em −→x ou em ϕ.

8. A |=QMPT0−→x ¬(∃xϕ)[−→a ] sse A |=QMPT0

−→x ,y ¬ϕ[x/y][−→a ; b], para todo b ∈ A, onde y é a

primeira variável que não ocorre nem em −→x ou em ϕ.

9. A |=QMPT0−→x (ϕ ∧ ψ)[−→a ] sse A |=QMPT0

−→x ϕ[−→a ] e A |=QMPT0−→x ψ[−→a ].

10. A |=QMPT0−→x (ϕ ∨ ψ)[−→a ] sse A |=QMPT0

−→x ϕ[−→a ] ou A |=QMPT0−→x ψ[−→a ].

11. A |=QMPT0−→x (ϕ→ ψ)[−→a ] sse A 6|=QMPT0

−→x ϕ[−→a ] ou A |=QMPT0−→x ψ[−→a ].

Page 87: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

87

12. A |=QMPT0−→x (∀xϕ)[−→a ] sse A |=QMPT0

−→x ,y ϕ[x/y][−→a ; b], para todo b ∈ A, onde y é a

primeira variável que não ocorre nem em −→x ou em ϕ.

13. A |=QMPT0−→x (∃xϕ)[−→a ] sse A |=QMPT0

−→x ,y ϕ[x/y][−→a ; b], para algum b ∈ A, onde y é a

primeira variável que não ocorre nem em −→x ou em ϕ.

O contexto −→x será omitido quando conveniente e quando −→x = ∅ escrevere-mos A |=QMPT0 ϕ ao invés de A |=QMPT0

∅ ϕ[∅].

De�nição 3.3.26. Seja Γ ∪ {ϕ} um conjunto de fórmulas no contexto −→x . Então ϕ é

consequência de Γ em QMPT0 (com relação às estruturas pragmáticas), denotado por

Γ |=QMPT0−→x ϕ, se para toda estrutura pragmática A:

A |=QMPT0−→x Γ =⇒ A |=QMPT0

−→x ϕ

No caso que −→x = ∅, escrevemos Γ |=QMPT0 ϕ no lugar de Γ |=QMPT0∅ ϕ.

São de�nidas operações adequadas entre este tipo de triplas para interpretar

os conectivos e os quanti�cadores. Assim, uma fórmula ϕ com variáveis livres x1, . . . , xn

gera uma tripla ϕA = 〈ϕA+, ϕ

A−, ϕ

AB〉 tal que

- ϕA+ = {~a ∈ An : A |=QMPT0

−→x ϕ[~a] e A 6|=QMPT0−→x ¬ϕ[~a]};

- ϕA− = {~a ∈ An : A 6|=QMPT0

−→x ϕ[~a] e A |=QMPT0−→x ¬ϕ[~a]};

- ϕAB = {~a ∈ An : A |=QMPT0

−→x ϕ[~a] e A |=QMPT0−→x ¬ϕ[~a]};

- ϕA+ ∪ ϕA

B = {~a ∈ An : A |=QMPT0−→x ϕ[~a]};

- ϕA− ∪ ϕA

B = {~a ∈ An : A |=QMPT0−→x ¬ϕ[~a]}.

As triplas são de�nidas como segue, seguindo [CC16]:

(T1) (R(t1, . . . , tm))A = 〈S+, S−, SB〉 tal que, para ∗ ∈ {+,−, B},

S∗ ={~a ∈ Ak : (tA1 [~a], . . . , tAm[~a]) ∈ RA

∗}

;

(T2) (¬ϕ)A =⟨ϕA−, ϕ

A+, ϕ

AB

⟩;

Page 88: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

88

(T3) (∼ϕ)A =⟨ϕA−, ϕ

A+ ∪ ϕA

B, ∅⟩;

(T4) (ϕ ∧ ψ)A =⟨ϕA

+ ∩ ψA+, ϕ

A− ∪ ψA

−, Ak −

[(ϕA

+ ∩ ψA+

)∪(ϕA− ∪ ψA

−)]⟩

;

(T5) (ϕ ∨ ψ)A =⟨ϕA

+ ∪ ψA+, ϕ

A− ∩ ψA

−, Ak −

[(ϕA

+ ∪ ψA+

)∪(ϕA− ∩ ψA

−)]⟩

;

(T6) (ϕ→ ψ)A =⟨ϕA− ∪ ψA

+,(ϕA

+ ∪ ϕAB

)∩ ψA

−, S⟩

onde S = Ak −[(ϕA− ∪ ψA

+

)∪((ϕA

+ ∪ ϕAB

)∩ ψA

−)];

(T7) (∀xϕ)A~x =⟨∀((ϕ[x/y]A+

)~x;y

),∃((ϕ[x/y]A−

)~x;y

), S⟩

onde S = Ak −[∀((ϕ[x/y]A+

)~x;y

)∪ ∃

((ϕ[x/y]A−

)~x;y

)]e y é a primeira variável que

não ocorre nem em ~x ou em ϕ;

(T8) (∃xϕ)A~x =⟨∃((ϕ[x/y]A+

)~x;y

),∀((ϕ[x/y]A−

)~x;y

), S⟩

onde S = Ak −[∃((ϕ[x/y]A+

)~x;y

)∪ ∀

((ϕ[x/y]A−

)~x;y

)]e y é a primeira variável que

não ocorre nem em ~x ou em ϕ.

Assim, A |=QMPT0−→x ϕ[~a] se e somente se ~a ∈ ϕA

+ ∪ ϕAB. No caso em que n (o

número de variáveis livres de ϕ) é zero, ϕ é uma sentença fechada que gera, portanto,

três possíveis valores de verdade quando interpretada na estrutura pragmática A. Esses

são, justamente, os valores de verdade das matrizes de MPT0. Por causa disso, a base

proposicional de QMPT0 (isto é, a lógica das suas sentenças fechadas) é a lógica 3-valorada

MPT0.

Para sentenças, o seguinte corolário é válido:

Corolário 3.3.27. Seja A = 〈A, (·)A〉 uma estrutura parcial sobre Θ e seja ϕ uma

sentença de LΘ. Então:

(i) ϕA ∈ {1, B} sse A |=QMPT0 ϕ;

(ii) ϕA ∈ {0, B} sse A |=QMPT0 ¬ϕ;

(iii) ϕA = 1 sse A 6|=QMPT0 ¬ϕ;

(iv) ϕA = 0 sse A 6|=QMPT0 ϕ;

(v) ϕA = B sse A |=QMPT0 ϕ e A |=QMPT0 ¬ϕ.

De�nição 3.3.28 (Estrutura Parcial associada a uma interpretação para QMPT0). Seja

I = 〈A, v〉 uma interpretação para QMPT0 sobre a assinatura Θ, onde A = 〈A, IA〉. A

estrutura parcial sobre Θ associada a I é B(I) = 〈A, (·)B(I)〉 tal que fB(I) = IA(f) e

Page 89: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

89

cB(I) = IA(c), para todo símbolo para função f e toda constante c, respectivamente. Se

R é um símbolo para uma relação k-ária, então

RB(I)+ =

{~a ∈ Ak : v(R(~a)) = 1, v(¬R(~a)) = 0

}R

B(I)− =

{~a ∈ Ak : v(R(~a)) = 0, v(¬R(~a)) = 1

}R

B(I)B =

{~a ∈ Ak : v(R(~a)) = 1, v(¬R(~a)) = 1

}.

Proposição 3.3.29. Seja I e B = B(I) como na de�nição 3.3.28. Então, para toda

sentença ϕ em LΘ(A) = LΘ(B):

ϕB =

1 sse v(ϕ) = 1 and v(¬ϕ) = 0;

0 if v(ϕ) = 0 and v(¬ϕ) = 1;

B if v(ϕ) = 1 and v(¬ϕ) = 1.

Demonstração. A demonstração é feita por indução na complexidade da sentença ϕ e

pode ser vista na Proposição 7.9.21 em [CC16], apenas trocando o valor 12por B

Agora, �nalmente, temos o Teorema da Completude de QMPT0 com respeito

a estruturas parciais:

Teorema 3.3.30 (Completude de QMPT0 com respeito a estruturas parciais para MPT0).

Para todo conjunto de sentenças ∆ ∪ {ϕ} sobre Θ:

∆ |=QMPT0 ϕ =⇒ ∆ `QMPT0 ϕ

Demonstração. Seja ∆ ∪ {ϕ} um conjunto de sentenças, e assuma que ∆ 0QMPT0 ϕ.

Pela completude de QMPT0 com respeito a interpretações (Teorema 3.3.23), existe

uma interpretação I = 〈A, v〉 para QMPT0 tal que v(γ) = 1, para todo γ ∈ ∆, mas

v(ϕ) = 0. Seja B(I) a estrutura parcial sobre Θ associada a I (ver De�nição 3.3.28).

Pela Proposição 3.3.29, B(I) |=QMPT0 γ, para toda γ ∈ ∆, mas B(I) 6|=QMPT0 ϕ. Disso,

∆ 6|=QMPT0 ϕ.

Agora, após termos a completude de QMPT0 com respeito a estruturas par-

ciais, começaremos o estudo clausal para uma programação lógica 3-valorada utilizando

QMPT0.

Page 90: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

90

De�nição 3.3.31. Em QMPT0 introduzimos as seguintes noções:

- Um literal é uma fórmula da forma A, ¬A, ∼A ou ∼¬A, na qual A é uma fórmula

atômica de primeira ordem. Em cada caso é dito que o literal contém a fórmula

atômica A.

- Literais da forma A ou ¬A são chamados positivos, os outros são chamados negativos.

- Uma fórmula atômica A é também chamada de átomo.

- Uma cláusula de QMPT0 é uma fórmula fechada da forma:

∀x1 · · · ∀xn(L1 ∨ · · · ∨ Lk ∨ ∼Lk+1 ∨ · · · ∨ ∼Lk+m)

tal que cada Li é um literal positivo em QMPT0 e x1, . . . , xn são todas as variáveis

que ocorrem em (L1∨. . .∨Lk∨∼Lk+1∨. . .∨∼Lk+m). A maneira usual que usaremos

para cláusulas, equivalente à acima apresentada, é:

∀x1 · · · ∀xn(L1 ∨ · · · ∨ Lk ← Lk+1 ∧ · · · ∧ Lk+m)

ou simplesmente

L1, . . . , Lk ← Lk+1, . . . , Lk+m

- Uma cláusula é chamada positiva (negativa) se contém apenas literais positivos (ne-

gativos).

- Um conjunto S de cláusulas é chamado satisfatível se existe uma estrutura pragmá-

tica A tal que A |= K para todas as cláusulas K em S. Neste caso A é chamado de

modelo de S.

- Uma cláusula K é consequência em QMPT0 de um conjunto de cláusulas S (deno-

tado S |=QMPT0 K), se para todos os modelos A de S também vale que A |= K.6

Um literal fechado será também denominado de básico.

De�nição 3.3.32. Uma cláusula de programa de�nida é uma cláusula da forma

L← K1, . . . , Kn

6Observe que esta noção coincide com a da De�nição 3.3.26

Page 91: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

91

que contém precisamente um átomo em seu consequente. O literal positivo L é chamado

cabeça e K1, . . . , Kn é chamado corpo da cláusula de programa.

Alternativamente, uma cláusula de programa de�nida pode ser representada

como

(¬)P ← (¬)P1, . . . , (¬)Pn

onde (¬)P denota um dos literais P (fórmula atômica) ou ¬P (negação paraconsistente

de fórmula atômica). Desta maneira as cláusulas de programa, na presente abordagem,

permitem a inclusão explícita da negação ¬ (mas não da negação ∼).

De�nição 3.3.33. Um programa de�nido P é um conjunto �nito de cláusulas de progra-

mas de�nidos.

De�nição 3.3.34. Em um programa de�nido, o conjunto de todas as cláusulas de pro-

grama com o mesmo símbolo de predicado p na cabeça é chamado de�nição de p.

De�nição 3.3.35. Uma consulta de�nida é uma cláusula da forma

← K1, . . . , Kn

isto é, uma cláusula com um consequente vazio. Cada Ki (i= 1,. . . ,n) é chamado subcon-

sulta de uma consulta.

De�nição 3.3.36. A cláusula vazia, denotada por �, é a cláusula cujo consequente

e antecedente são vazios e pode ser interpretada como uma fórmula insatisfatível em

QMPT0.

De�nição 3.3.37. Uma cláusula de Horn é uma cláusula cuja parte positiva possui, no

máximo, um literal.

De�nição 3.3.38. Seja α uma fórmula de primeira ordem sem quanti�cadores numa

assinatura com ao menos uma constante de indivíduo. De�nimos Sα = {α : α é uma

instância básica de α}. Se Γ é um conjunto de fórmulas sem quanti�cadores, então

Γ =⋃{Sα : α ∈ Γ}.

Observação 3.3.39. Assumamos uma assinatura enumerável de primeira ordem Θ com

ao menos uma constante de indivíduo. As fórmulas da linguagem de primeira ordem

Page 92: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

92

gerada por Θ sem variáveis livres e sem quanti�cadores podem ser pensadas como cons-

tituindo uma linguagem proposicional na assinatura proposicional de MPT0 (isto é, na

assinatura ∨, ∧, →, ¬ e ∼) gerada pelo conjunto enumerável VΘ das fórmulas atômicas

de primeira ordem, que são da forma p(t1, . . . , tn) para p um símbolo de predicado n-ário

e t1, . . . , tn termos sem variáveis.

De�nição 3.3.40. Seja Θ uma assinatura como na Observação 3.3.39, e v uma valo-

ração proposicional de MPT0 de�nida sobre o conjunto VΘ das variáveis proposicionais.

De�nimos a estrutura pragmática Av induzida por v como segue:

- O domínio de Av é o conjunto T de termos básicos sobre Θ;

- Se c é constante individual, então cAv = c;

- Se f é símbolo de função n-ário, fAv é dada por fAv(t1, . . . , tn) = f(t1, . . . , tn);

- Se R é símbolo de relação n-ária, RAv é a tripla RAv = 〈RAv+ , RAv

− , RAvB 〉 de�nida da

seguinte maneira:

RAv+ = {(t1, . . . , tn) ∈ T n : v(p(t1, . . . , tn)) = 1}

RAv− = {(t1, . . . , tn) ∈ T n : v(p(t1, . . . , tn)) = 0}

RAvB = {(t1, . . . , tn) ∈ T n : v(p(t1, . . . , tn)) = B}

Observe que as componentes de RAv são conjuntos de n-uplas de T , dois a dois

disjuntos, cuja união é T n. Assim, Av é uma estrutura pragmática induzida por v para

QMPT0.

Lema 3.3.41. Seja K uma cláusula e K ∈ SK (ver De�nição 3.3.38). Dada uma va-

loração v de MPT0 na linguagem proposicional gerada (ver Observação 3.3.39), então

Av |= K sse v(K) ⊆ D.

Demonstração. Faremos a demonstração por indução na complexidade no número de dis-

juntos de K.

Casos bases: K = p(t1, . . . , tn) atômica, logo K = p(t1, . . . , t).

Então, Av |= K sse (t1, . . . , tn) ∈ RAv+ ∪RAv

B sse v(K) ∈ {1, B}.

Page 93: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

93

K = ¬p(t1, . . . , tn), logo K = ¬p(t1, . . . , t).

Então, Av |= K sse (t1, . . . , tn) ∈ RAv− ∪RAv

B sse v(p(t1, . . . , t)) ∈ {0, B} sse v(K) ∈ {1, B}.

K = ∼p(t1, . . . , tn), logo K = ∼p(t1, . . . , t).

Então, Av |= K sse Av 6|= p(t1, . . . , t) sse (t1, . . . , tn) ∈ RAv− sse v(p(t1, . . . , t)) = 0 sse

v(K) = 1.

K = ∼¬p(t1, . . . , tn), logo K = ∼¬p(t1, . . . , t).

Então, Av |= K sse Av 6|= ¬p(t1, . . . , t) sse (t1, . . . , tn) ∈ RAv+ sse v(p(t1, . . . , t)) = 1 sse

v(K) = 1.

Hipótese de indução: para K = K1 ∨ . . . ∨Kn, A |= K sse v(K) ∈ D. Vamos provar que

vale para K = K1 ∨ . . . ∨Kn ∨Kn+1, ou seja, quando K =∨n+1i=1 Ki.

Suponha que Av |= K, então existe i tal que Av |= Ki. Por hipótese de indução,

v(Ki) ∈ D, então v(K) ∈ D.

Suponha que v(K) ∈ D, então, existe i tal que v(Ki) ∈ D. Por hipótese de indução,

Av |= Ki, então Av |= K.

Lema 3.3.42. Considere um conjunto de cláusulas S, K ∈ S, v uma valoração de MPT0

na linguagem proposicional gerada, e Av a estrutura pragmática induzida por v. Então,

v(SK) ⊆ D sse Av |= (∀)K.

Demonstração. Av |= (∀)K sse Av |= K para todo K ∈ SK sse, pelo Lema 3.3.41,

v(SK) ⊆ D.

Corolário 3.3.43. Seja S um conjunto de cláusulas e v uma valoração de MPT0 na

linguagem proposicional gerada. Então v(S) ⊆ D see Av |= S.

Demonstração. É uma consequência imediata do lema anterior, considerando que S =⋃{SK : K ∈ S}.

Corolário 3.3.44. Dado um conjunto de cláusulas S, se S é satisfatível em MPT0 (como

cláusulas proposicionais), então S é satisfatível em QMPT0.

Page 94: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

94

Demonstração. É uma consequência imediata do corolário anterior.

Na próxima seção introduziremos um cálculo de resolução para QMPT0.

3.4 O Cálculo de Resolução RPT para QMPT0

Inspirado na abordagem via resolução clausal 3-valorada apresentada em [Sch86]

e nas de�nições anteriores, introduziremos nesta seção um cálculo de resolução para

QMPT0, denominado RPT . O cálculo descrito a seguir trabalha exclusivamente com

cláusulas de QMPT0, contando apenas com uma única regra de inferência, chamada de

regra básica de resolução, similar à da De�nição 1.3.17 (observe que o que muda é a noção

de literais complementares). As cláusulas estão implicitamente quanti�cadas universal-

mente, de acordo com a De�nição 3.3.31 e os literais complementares são dois pares de

literais de QMPT0 da forma (A, ∼A) ou (¬A, ∼¬A).Abaixo vemos dois típicos exemplos das regras de resolução, uma vez que se

aplicam os renomeamento de variáveis, em primeiro lugar, e a substituição uni�cadora

dos termos complementares, em segundo lugar (aqui, n,m > 0):

L ∨∨ni=1A K ∨

∨mj=1∼A

L ∨KL ∨

∨ni=1 ¬A K ∨

∨mj=1∼¬A

L ∨K

Observação 3.4.1. Como consequência da semântica da negação, se L1 e L2 são literais

complementares básicos então

v(L1 ∧ L2) = 0 e v(L1 ∨ L2) = {1, B}, para toda valoração v de MPT0.

Qualquer outra combinação de literais não satisfaz simultaneamente as duas propriedades

acima. Por exemplo v(P ∨ ∼¬P ) = 0 se v(P ) = 0; v(¬P ∨ ∼P ) = 0 se v(P ) = 1; e

v(∼P ∨ ∼¬P ) = 0 se v(P ) = B. Assim, uma cláusula contendo os literais {P,∼¬P},

{¬P,∼P} ou {∼P,∼¬P} não é necessariamente válida, não devendo ser descartada de

um conjunto de cláusulas, dado que pode ter conteúdo informacional. Por outro lado

v(P ∧¬P ) = B se v(P ) = B; v(P ∧∼¬P ) = 1 se v(P ) = 1; e v(¬P ∧∼P ) = 1 se v(P ) = 0.

Page 95: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

95

Logo, os conjuntos de literais {P,¬P}, {P,∼¬P} e {¬P,∼P} não são insatisfatíveis, não

fazendo sentido de�nir resolução através destes tipo de pares de literais.

De�nição 3.4.2. Para um conjunto S de cláusulas:

- Res(S) denota o fecho de S por resolução

- Subst(S) é o conjunto de todas as substituições de instâncias de cláusulas em S.

Lema 3.4.3. Em QMPT0 vale o seguinte, para todo conjunto S de cláusulas:

1. Subst(Res(S)) = Res(Subst(S)).

2. Para toda instância livre de variável de uma cláusula K em Res(S) − S existem

cláusulas K1 e K2 em Subst(S) tal que K é um resolvente de K1 e K2.

Lema 3.4.4. Em QMPT0, um conjunto de cláusulas S é satisfatível sse Res(S) é satis-

fatível.

Demonstração. Como S é um subconjunto de Res(S), a parte �se� é trivial. Para pro-

var a parte �somente se�, considere uma estrutura pragmática A que seja modelo de S.

A�rmamos que A também é modelo de Res(S). Pelo Lema 3.4.3 podemos assumir que S

contém apenas cláusulas livres de variável. Assim, é su�ciente provar que as duas aplica-

ções típicas de resolução mostradas na tabela acima preservam satisfatibilidade.

Caso 1: L ∨K é a resolvente das cláusulas L ∨∨ni=1A e K ∨

∨mj=1∼A, com n,m > 0.

Suponha que A satisfaz L ∨∨ni=1 A e K ∨

∨mj=1∼A. Temos que A |= A ou A |=∼A, mas

não podem acontecer as duas situações simultaneamente, pela de�nição da negação forte

∼. Se A |= A então A 6|=∼A, e assim A |= K, dado que A |= K ∨∨mj=1∼A. Daqui

inferimos que A |= L ∨K. Por outro lado, se A |=∼A então A 6|= A. Raciocinando como

antes, inferimos que A |= L ∨K.

Caso 2: L∨K é a resolvente das cláusulas L∨∨ni=1 ¬A e K ∨

∨mj=1∼¬A, com n,m > 0.

A prova é análoga à prova do Caso 1.

A partir destas considerações, e pela de�nição de Res(S), se A satisfaz S então,

por indução, pode ser demostrado facilmente que A satisfaz Res(S).

Para provar os principais resultados desta seção precisamos introduzir alguns

conceitos.

Page 96: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

96

De�nição 3.4.5. Dado um conjunto �nito de cláusulas S (respectivamente P), de�nimos

o suporte de S (respectivamente P) como o conjunto

Supp(S) = {A : A é fórmula atômica e existem K,K ′ ∈ S, e uma substituição θ tal que

A ocorre em Kθ e ¬A ocorre em K ′θ}

(de�nição análoga para Supp(P)). Temos que Supp(S) coleta as potenciais aplicações

do terceiro excluído.

De�niremos agora o conjunto Supp(S), onde S denota a instanciação de toda

fórmula em S, ou seja, estaremos tratando com programas básicos.

De�nição 3.4.6. Dado um conjunto de cláusulas S, de�nimos o suporte básico de S como

o conjunto Supp(S) = {A : A é instância básica de algum elemento de Supp(S)}.

Observação 3.4.7. Adotando a prática usual da literatura mais recente de Programação

Lógica, consideraremos nos exemplos programas básicos, isto é, já instanciados em termos

sem variáveis. Isto facilita a compreensão e não perde a generalidade. Para isso, temos

os seguintes resultados.

De�nição 3.4.8. Seja S um conjunto de cláusulas, de�nimos S+ como o conjunto S ∪

{L(x1, . . . , xn) ∨ ¬L(x1, . . . , xn) : L(x1, . . . , xn) ∈ Supp(S)}. Ou seja, S+ denota a união

de S com as apropriadas instâncias do terceiro excluído.

Teorema 3.4.9. Seja S um conjunto de cláusulas. Então, S+ é satisfatível sse a cláusula

vazia não é um elemento de Res(S+).

Demonstração. A parte �somente se� é uma consequência imediata dos resultados e ob-

servações anteriores. Para a parte �se�, provaremos primeiro que o conjunto Res(S+ ) de

cláusulas proposicionais é satisfatível em MPT0. Assim, dada a linguagem proposicional

derivada da assinatura Σ de S (ver Observação 3.3.39), considere o seguinte:

- Seja {An : n > 0} uma enumeração de VΣ, o conjunto das fórmulas atômicas da

linguagem proposicional derivada de Σ.

- Para n > 0 seja Cln o conjunto de cláusulas de MPT0 (na linguagem derivada) cujos

literais contém somente as fórmulas atômicas Ai, com i < n. Deste modo, Cl1 = ∅

e Cli ⊆ Clj, para i ≤ j.

Page 97: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

97

A primeira parte da demonstração consiste na construção de um análogo 3-valorado das

estruturas de Herbrand, o que equivale à especi�cação de um valor de verdade v(An) para

cada n. Assuma indutivamente que v(Ai) já esta bem de�nido para i < n. O valor de

v(An) é determinado pelas seguintes instruções executadas na ordem dada:7

1. v(An) = 0 see existe em Res(S+ ) uma cláusula negativa K ' K1 ∨K2 com K1 ∈

Cln, v(K1) = 0 e

(a) K2 =k∨i=1

∼An∨s∨j=1

∼¬An para k, s > 0 e em Res(S+ ) não existe uma cláusula

negativa K ′ ' K ′1 ∨ K ′2, com K ′1 ∈ Cln, v(K ′1) = 0 e K ′2 =s∨i=1

∼¬An, para

s > 0, ou

(b) K2 =k∨i=1

∼An, para k > 0

(portanto, An só ocorre em K2).

2. v(An) = 1 see existe em Res(S+ ) uma cláusula negativa K ' K1 ∨K2 com K1 ∈

Cln, v(K1) = 0 e K2 =s∨i=1

∼¬An, para s > 0 (portanto An só ocorre em K2).

3. v(An) = B, caso contrário.

De�nimos ClSn como o conjunto Cln ∩Res(S+ ).

É possível provar por indução em n que, para todo n, v(An) é bem de�nido e v(Clsn+1) ⊆

D.

Provaremos agora que Res(S+ ) é satisfatível em MPT0. Observe que Res(S+ ) =⋃n>0Cl

Sn . Seja S0 ⊆ Res(S+ ) �nito. Dado que ClSn ⊆ ClSn+1 para todo n, existe n0

tal que S0 ⊆ ClSn0. Pelo fato de que a valoração v construída acima satisfaz ClSn0

, in-

ferimos que v também satisfaz S0. Pelo teorema da compacidade para MPT0 (obtido

pela prova de correção e completude com relação ao sistema de Hilbert LPT, ver [CS14],

p. 25) deduzimos que Res(S+ ) é satisfatível em MPT0. Daqui, Res(S+) é satisfatível

em MPT0, pois Res(S+) ⊆ Res(S+ ). Pelo Corolário 3.3.44, Res(S+) é satisfatível em

QMPT0.

7No escopo da demonstração deste teorema, usaremos o símbolo �'� para representar exclusivamenteequivalências entre cláusulas de MPT0 que diferem apenas na ordem dos seus literais.

Page 98: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

98

Lema 3.4.10. Seja S um conjunto �nito de cláusulas, então Res(S+) não deriva a cláu-

sula vazia sse Res(S+ ) não deriva a cláusula vazia.

Na demonstração do Teorema 3.4.9 utilizamos o passo de resolução apenas nos

casos em que uma das cláusulas envolvidas era negativa. Isto é chamado de resolução

negativa. Denotamos por NRes(S) o fecho de S por resoluções negativas. Obtemos assim

o seguinte corolário:

Corolário 3.4.11. S é satisfatível sse NRes(S) não contém a cláusula vazia.

Como consequência dos resultados anteriores obtemos a completude da reso-

lução clausal em QMPT0:

Teorema 3.4.12 (Completude da resolução clausal em QMPT0). Seja S um conjunto

de cláusulas satisfatível em QMPT0, e L um literal básico. Logo, se S |=QMPT0 L então∨ki=1 L ∈ Res(S+), para algum k ≥ 1.

Demonstração. Suponha que S |=QMPT0 L. Logo, S ′ = S ∪ {∼L} é insatisfatível em

QMPT0, pela de�nição de consequência semântica. Daqui, S ′+ é insatisfatível em QMPT0.

Pelo Teorema 3.4.9, a cláusula vazia pertence a Res(S ′+). Dado que S é satisfatível

em QMPT0, então S ′+ = (S ∪ {∼L})+ = S+ ∪ {∼L} (caso contrário, p(x1, . . . , xn) ∨

¬p(x1, . . . , xn) pertenceria a S ′+ mas não a S+ ∪ {∼L}, onde p é o predicado que ocorre

em L; mas neste caso p não ocorreria em S, portanto S seria insatisfatível, por causa

da insatisfatibilidade de S ′, uma contradição). Desta forma Res(S ′+) = Res(S+ ∪ {∼L})

e então a cláusula vazia pertence a Res(S+ ∪ {∼L}). Usando novamente que S é sa-

tisfativel (e, portanto, S+ é satisfatível), a cláusula vazia não pertence a Res(S+), pelo

Teorema 3.4.9. Isto signi�ca que∨ki=1 L ∈ Res(S+), para algum k ≥ 1.

3.5 Semântica Declarativa para RPT

Nesta seção discutiremos sobre as interpretações e modelos para uma progra-

mação lógica baseada na lógica 3-valorada QMPT0, concentrando-nos em uma importante

classe chamada interpretações de Herbrand. Para isso, daremos informações complemen-

tares às apresentadas na seção anterior. Também iremos adaptar os teoremas do capítulo

anterior, com o intuito de conseguir uma caracterização de ponto �xo para a programação

lógica proposta.

Page 99: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

99

A única regra de inferência que usaremos será a já apresentada regra de reso-

lução. Deste modo, suponhamos que queremos provar que a fórmula

∃y1 . . . ∃yr(A1 ∧ . . . ∧ An)

é uma consequência lógica de um programa P . Para provar isso devemos adicionar aos

axiomas da fórmula a negação forte que estamos querendo provar. Após expandir o

programa dado para um programa P+, uma impossibilidade lógica deveria ser derivada.

Negando a fórmula acima, temos a seguinte consulta

← A1, . . . , An

Utilizamos a consulta acima para derivar outras consultas. Se a cláusula vazia é eventu-

almente derivada, então encontramos a impossibilidade lógica e podemos assumir que

∃y1 . . . ∃yr(A1 ∧ . . . ∧ An)

é realmente uma consequência lógica de P .Do ponto de vista da programação, estamos interessados em saber quais liga-

ções são realizadas para as variáveis y1, . . . , yn, pois estas nos dão o output do processo do

programa. Isso é contrário ao ideal de programação, que seria apenas a visualização do

input-output mostrado ao �nal. O trabalho interno deveria ser invisível ao programador,

porém, muitos programas podem ser entendidos apenas de uma maneira procedimental

por razão dos caminhos que usa, assim como os aspectos não-lógicos.

Iremos agora lembrar algumas de�nições e adaptar outras para a lógica QMPT0.

De�nição 3.5.1. Um termo básico é um termo que não contém variáveis; um átomo

básico é um átomo que não contém variáveis, e um literal positivo básico é um literal

positivo que não contém variáveis.

As de�nições de Universo de Herbrand, Base de Herbrand e pré-interpretação

de Herbrand são as mesmas apresentadas anteriormente, apenas mudando os átomos

básicos para os de QMPT0. Lembramos as notações que utilizamos: UL denota o universo

de Herbrand e BL denota a base de Herbrand.

De�nição 3.5.2. Uma interpretação (pragmática) de Herbrand para L é um subconjunto

I de BL com a seguinte propriedade: para cada A ∈ B+L , ou A ∈ I ou ¬A ∈ I.

Page 100: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

100

Observação 3.5.3. Dado que A ∨ ¬A é uma fórmula válida em QMPT0 (por causa

do axioma (A10) da De�nição 3.1.1), a de�nição de interpretação de Herbrand para

QMPT0 muda drasticamente em relação à da lógica clássica: nem todo subconjunto

de BL é admissível. Esta característica de QMPT0 trará importantes consequências e

complicações técnicas no desenvolvimento a seguir.

A ideia de uma interpretação de Herbrand I é que ela gera de fato uma estru-

tura pragmática A baseada na pré-interpretação de Herbrand para L, da maneira seguinte:

para cada símbolo de predicado n-ário p,

- pA+ = {(t1, . . . , tn) ∈ UnL : p(t1, . . . , tn) ∈ I e ¬p(t1, . . . , tn) 6∈ I};

- pA− = {(t1, . . . , tn) ∈ UnL : p(t1, . . . , tn) 6∈ I e ¬p(t1, . . . , tn) ∈ I};

- pAB = {(t1, . . . , tn) ∈ UnL : p(t1, . . . , tn) ∈ I e ¬p(t1, . . . , tn) ∈ I}.

Quanto a prova da insatisfatibilidade de um conjunto de cláusulas, é su�ciente

considerar apenas interpretações de Herbrand, como podemos ver no que se segue.

Proposição 3.5.4. Seja S um conjunto de cláusulas e suponha que S tem modelo. Então

S tem um modelo de Herbrand.

Demonstração. Seja A uma interpretação pragmática. De�nimos uma interpretação de

Herbrand I da seguinte maneira:

I = {L ∈ BL : A |= L}

Disto temos diretamente que se A é um modelo de S, então a estrutura pragmática AI

gerada por I também é modelo de S.

Proposição 3.5.5. Seja S um conjunto de cláusulas. Então S é insatisfatível sse não

possui modelos de Herbrand.

Demonstração. De acordo com a proposição anterior, se S é satisfatível então tem modelo

de Herbrand.

Agora, baseado no capítulo anterior, adaptaremos noções e resultados clássi-

cos para caraterizar o conjunto de literais básicos que são consequências lógicas de um

programa lógico em QMPT0. Esse conjunto de literais será chamado, por razões que

vão �car claras depois, de mínimo modelo parcial de Herbrand do programa dado. A

Page 101: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

101

partir da técnica, bastante utilizada na literatura da programação lógica paraconsistente

(ver [DP98]), de interpretar os literais da forma ¬p(t1, . . . , tn) como se fossem novas fór-

mulas atômicas de um programa lógico clássico, podemos caracterizar o mínimo modelo

parcial de Herbrand a partir dos resultados da programação lógica clássica. A caracteri-

zação, no caso de QMPT0, será dada a partir de diversas extensões do programa dado,

decorrentes do uso do suporte, como foi mencionado anteriormente. Cada uma dessas

interseções será interpretada como um programa lógico clássico, portanto a interseção do

conjunto de pontos �xos do operador associado a cada um desses programas clássicos vai

constituir o mínimo modelo parcial de Herbrand do programa de QMPT0. Como veremos

a seguir, diferentemente do caso clássico, não existe um único modelo mínimo de Herbrand

para um programa, mas uma família de modelos minimais de Herbrand, cuja interseção

produz o mínimo modelo parcial de Herbrand.

De�nição 3.5.6. Dado um programa P , um subconjunto I de BP é dito uma interpre-

tação parcial de Herbrand. Se I contém todos os literais básicos que são consequência

lógica do programa P em QMPT0, I é dito um modelo parcial de Herbrand.

De�nição 3.5.7. Dado um programa P , o Mínimo Modelo Parcial de P é o conjunto

MP = {L ∈ BP : P |=QMPT0 L}.

O próximo objetivo é caracterizar o mínimo modelo parcial de Herbrand de

um programa lógico de QMPT0 em termos do ponto �xo de um operador monotônico.

Por causa das peculiaridades da lógica QMPT0, que, como foi mencionado na Observa-

ção 3.5.3, satisfaz o princípio do terceiro excluído para a negação paraconsistente (que

pode ocorrer explicitamente nos programas), deveremos considerar diversas extensões do

programa dado e a interseção dos respectivos pontos �xos dos operadores associados.

De�nição 3.5.8. Seja λ(P) o cardinal de Supp(P), e seja Supp(P) = {Ai : i < λ(P)}

uma enumeração de Supp(P). De�nimos

P+ = P ∪ {Ai ∨ ¬Ai : i < λ(P)}.

Finalmente, para γ ∈ 2λ(P) seja

Lγi =

Ai se γ(i) = 0

¬Ai se γ(i) = 1

Page 102: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

102

Seja IPγ = {Lγi : i < λ(P)}.

Com isso obtemos o programa estendido Pγ = P ∪ IPγ , para cada γ ∈ 2λ(P).

A partir das de�nições, é imediato provar o seguinte:

Proposição 3.5.9. Seja P um programa de�nido e K uma cláusula sem variáveis. Logo:

K ∈ Res(P+) implica que K ∈ Res(P+).

Precisamos agora estabelecer alguns resultados técnicos auxiliares sobre a ló-

gica clássica CL de primeira ordem e a sua relação com QMPT0. Para diferenciar os

sistemas de resolução, denotaremos por ResQMPT0 e ResCL os operadores de resolução

clausal de primeira ordem em QMPT0 e em CL, respectivamente.

Lema 3.5.10. Seja S∪{K} um conjunto de cláusulas de QMPT0. Para cada ¬p(t1, . . . , tn) ∈

S ∪ {K}, seja p′(t1, . . . , tn) uma fórmula atômica nova.8 Seja S ′ ∪ {K ′} o conjunto de

cláusulas obtido pela substituição de ¬p(t1, . . . , tn) por p′(t1, . . . , tn) da seguinte forma:

¬p(t1, . . . , tn) é substituído por p′(t1, . . . , tn) e

∼¬p(t1, . . . , tn) é substituído por ∼p′(t1, . . . , tn).

Então K ∈ ResQMPT0(S) sse K ′ ∈ ResCL(S ′).9

Demonstração. Imediata a partir da construção de S ′∪{L′} e da de�nição dos operadores

ResQMPT0 e ResCL.

De�nição 3.5.11. Seja {Ai ∨ A′i : i < λ} um conjunto de cláusulas de primeira ordem

em CL. Dado γ ∈ 2λ de�na

Aγi =

Ai se γ(i) = 0

A′i se γ(i) = 1

e seja I ′γ = {Aγi : i < λ}.

Observação 3.5.12. I ′γ = (Iγ)′, usando no lado direito da equação a notação do Lema 3.5.10.

Lema 3.5.13. Seja S ′ ∪ {Ai ∨ A′i : i < λ} ∪ {L′} um conjunto de cláusulas de CL. Se

S ′ ∪ {Ai ∨ A′i : i < λ} |=CL L′, então S ′ ∪ I ′γ |=CL L

′, para todo γ ∈ 2λ.

8A rigor, estamos considerando um predicado novo, p′, para substituir todas as fórmulas da forma¬p(t1, . . . , tn).

9Observe que esta sentença faz sentido, pois todas as negações paraconsistentes foram eliminadas emS′ ∪ {K ′}, restando apenas conectivos que QMPT0 compartilha com CL.

Page 103: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

103

Demonstração. Suponha que S ∪ {Ai ∨ A′i : i < λ} |=CL L′, e �xe γ ∈ 2λ. Seja A

uma estrutura Tarskiana clássica e s uma atribuição em A para as variáveis individuais

tal que A |=s S′ ∪ I ′γ. Então, pela construção de I ′γ e pela semântica da disjunção,

A |=s {Ai ∨ A′i : i < λ}.

Logo, A |=s S′∪{Ai∨A′i : i < λ}, o que implica, usando a hipótese original, que A |=s L

′.

Portanto, S ′ ∪ I ′γ |=CL L′.

Finalmente, adaptaremos o Teorema 1.4.7 da programação lógica clássica para

a lógica QMPT0. A formulação é mais complicada, por causa das potenciais aplicações

do princípio do terceiro excluído, o que obriga a considerar todas as extensões Pγ do

programa original P . Precisamos previamente estabelecer um lema adicional:

Lema 3.5.14. Seja P um programa de�nido em QMPT0, e seja P ′ o programa de�nido

em CL obtido pela transformação (·)′ indicada no Lema 3.5.10. Então, para todo literal

positivo básico L, L ∈ TP↑ω see L′ ∈ TP ′↑ω.

Demonstração. Imediata, a partir das de�nições.

É interessante observar que BP ′ = (BP)′.

Teorema 3.5.15 (Caracterização de ponto �xo do Mínimo Modelo Parcial de Herbrand

em QMPT0).

Seja P um programa de�nido em QMPT0, e L um literal positivo básico. Então,

P |=QMPT0 L see L ∈⋂

γ∈2λ(P)

TPγ↑ω.

Demonstração. [⇒] Seja L um literal positivo básico, e suponha que P |=QMPT0 L.

Então∨ki=1 L ∈ Res(P+) para algum k ≥ 1, pelo Teorema 3.4.12. Logo, usando a Pro-

posição 3.5.9,∨ki=1 L ∈ Res(P+). Pelo Lema 3.5.10,

∨ki=1 L

′ ∈ ResCL((P+)′). Pela

correção da resolução clausal em CL, e pela semântica da disjunção, (P+)′ |=CL L′. Isto

é, P ′ ∪ {Ai ∨ A′i : i < λ(P)} |=CL L′, onde {Ai ∨ A′i : i < λ(P)} é construído a

partir das de�nições 3.5.8 e 3.5.11. Daqui, pelo Lema 3.5.13, P ′ ∪ I ′γ |=CL L′, para todo

γ ∈ 2λ(P). Pela De�nição 3.5.8 de Pγ e pela Observação 3.5.12, temos que P ′∪I ′γ = (Pγ)′,

para todo γ ∈ 2λ(P). Assim, (Pγ)′ |=CL L′, para todo γ ∈ 2λ(P). Pela caracterização do

Modelo Mínimo de Herbrand de programas lógicos em CL (Teorema 1.4.7) inferimos que

L′ ∈ T(Pγ)′↑ω, para todo γ ∈ 2λ(P). Portanto, pelo Lema 3.5.14, L ∈ TPγ↑ω, para todo

Page 104: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

104

γ ∈ 2λ(P). Isto é, L ∈⋂γ∈2λ(P) TPγ↑ω.

[⇐] Suponhamos agora que L é um literal positivo básico na intersecção dos TPγ↑ω, para

todo γ ∈ 2λ(P). Seja A uma estrutura pragmática em QMPT0 tal que A |= P . De�nimos

uma função γ : λ(P)→ 2 da maneira seguinte:

γ(i) =

0 se A |= Ai

1 se A |= ¬Ai mas A 6|= Ai

(utilizando a notação da De�nição 3.5.8). Observe que cada Ai é um átomo básico, por-

tanto A |= Ai ou A |= ¬Ai (talvez ambas simultaneamente), para cada i. Daqui, a função

γ está bem de�nida. Pela de�nição de γ e de Pγ, temos que A |= Pγ. Daqui, A |= TPγ↑1.

Por indução em n, podemos provar que A é modelo de TPγ↑n, para todo n ∈ ω (lembrando

que TPγ↑0 = ∅). Isto é o resultado imediato da de�nição do operador TPγ e pelo fato de

que A |= Pγ.

Provaremos agora que A |= TPγ↑ω. Suponha, por contradição, que A 6|= TPγ↑ω. Logo,

deve existir um literal positivo básico L0 ∈ TPγ↑ω tal que A 6|= L0. Mas TPγ↑ω =⋃n≥1 TPγ↑n e então deve existir n0 ≥ 1 tal que L0 ∈ TPγ↑n0. Mas isto contradiz o fato de

que A |= TPγ↑n0.

Assim, A |= TPγ↑ω. Dado que L ∈⋂γ∈2λ(P) TPγ↑ω, então L ∈ TPγ↑ω, portanto A |= L.

Daqui, P |=QMPT0 L.

Isto conclui a demonstração.

Exemplo 3.5.16. Seja P o programa lógico abaixo. A seguir encontraremos o conjunto

dos literais básicos que são consequência dele, usando a caracterização dada pelo teorema

anterior. Para simpli�car a exposição, vamos supor que o programa é proposicional e

�nito.10

10Isto vai ao encontro da prática usual da literatura mais recente de Programação Lógica, em quesomente são considerados programas básicos, isto é, já instanciados em termos sem variáveis. Isto facilitaa compreensão e não perde a generalidade.

Page 105: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

105

P =

A←− H

C ←− ¬H

D ←− C

A←− D,¬G

A←− G,¬E

¬E ←−

Observe que o conjunto dos literais básicos dedutíveis de P é {¬E,A}. Porém,

para deduzir A, são necessárias duas aplicações do princípio do terceiro excluído: H∨¬H

e G ∨ ¬G. Assim, de�niremos o seguinte:

Supp(P) = {H,G} = {A0, A1}

λ(P) = 2 = {0, 1}

A0 = H e A1 = G

2λ(P) = {(0, 0), (0, 1), (1, 0), (1, 1)}

I(0,0) = {H,G}, I(0,1) = {H,¬G}, I(1,0) = {¬H,G}, I(1,1) = {¬H,¬G}.

TP(0,0)↑0 = ∅

TP(0,0)↑1 = {¬E,H,G}

TP(0,0)↑2 = TP(0,0)

({¬E,H,G}) = {¬E,A,H,G} = TP(0,0)↑ω.

TP(0,1)↑0 = ∅

TP(0,1)↑1 = {¬E,H,¬G}

TP(0,1)↑2 = TP(0,1)({¬E,H,¬G}) = {¬E,A,H,¬G} = TP(0,1)↑ω.

TP(1,0)↑0 = ∅

TP(1,0)↑1 = {¬E,¬H,G}

TP(1,0)↑2 = TP(1,0)

(¬E,¬H,G) = {¬E,¬H,G,A,C}

TP(1,0)↑3 = TP(1,0)

({¬E,¬H,G,A,C}) = {¬E,¬H,G,A,C,D} = TP(1,0)↑ω.

TP(1,1)↑0 = ∅

TP(1,1)↑1 = {¬E,¬H,¬G}

TP(1,1)↑2 = TP(1,1)

({¬E,¬H,¬G}) = {¬E,C,¬H,¬G}

Page 106: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

106

TP(1,1)↑3 = TP(1,1)

({¬E,C,¬H,¬G}) = {¬E,C,D,¬H,¬G}

TP(1,1)↑4 = TP(1,1)

({¬E,C,D,¬H,¬G}) = {¬E,C,D,¬H,¬G,A} = TP(1,1)↑ω.

Finalmente,⋂TPγ↑ω = {¬E,A} = MP

Observação 3.5.17. Lembramos que nem sempre, dada uma cláusula na forma A1 ←

C1, . . . Cn, a polaridade oposta de literais ocorre somente no corpo, ou somente na cabeça.

No exemplo abaixo vemos que pode ocorrer que A esteja na cabeça e ¬A no corpo, e ainda

assim precisaremos de A ∨ ¬A para obtermos as consequências lógicas do programa:

P =

C ←− ¬A

A←− C

Claramente MP = {A}. E isso somente é derivável fazendo uso do conjunto Supp(P).

Outro exemplo ainda mais curto que mostra esse comportamento de um literal que ocorre

no corpo e outro na cabeça é o programa que só contém a cláusula C ←− ¬C.

Exemplo 3.5.18. Seja agora P o programa lógico abaixo que diferencia mamíferos de

pássaros a partir de propriedades básicas. Encontraremos o conjunto dos literais básicos

que são consequência dele, usando a caracterização dada pelo Teorema 3.5.15.

P =

passaro(X)←− bico(X), sanguequente(X), ovíparo(X)

mamífero(X)←− pelos(X), sanguequente(X)

¬mamífero←− passaro

¬passaro←− mamífero

O conjunto dos literais básicos dedutíveis de P dependerá do animal analisado e de suas

características, por exemplo, se forem adicionadas as informações relevantes para as va-

cas (va) (sanguequente(va) e pelos(va)) teremos como consequência lógica que vacas são

mamíferos e não são pássaros.

Considere, porém, o ornitorrinco como o animal a ser analisado. Primeiro, faremos as

duas aplicações do princípio do terceiro excluído: mamífero ∨ ¬mamífero e passaro ∨

¬passaro. Então, temos o seguinte:

Supp(P) = {mamífero, passaro} = {A0, A1}

λ(P) = 2 = {0, 1}

Page 107: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

107

A0 = mamífero e A1 = passaro

2λ(P) = {(0, 0), (0, 1), (1, 0), (1, 1)}

I(0,0) = {mamífero, passaro}, I(0,1) = {mamífero,¬passaro}, I(1,0) = {¬mamífero, passaro},

I(1,1) = {¬mamífero,¬passaro}.

Se forem adicionadas as informações relevantes para os Ornitorrincos (O):

bico(O), sanquequente(O), ovíparo(O) e pelos(O), temos:

TP(0,0)↑0 = ∅

TP(0,0)↑1 = {mamífero(O), passaro(O)}

TP(0,0)↑2 = TP(0,0)

({mamífero(O), passaro(O)}) =

= {mamífero(O), passaro(O),¬mamífero(O),¬passaro(O)} =

= TP(0,0)↑ω.

TP(0,1)↑0 = ∅

TP(0,1)↑1 = {mamífero(O),¬passaro(O)}

TP(0,1)↑2 = TP(0,1)({mamífero(O),¬passaro(O)}) =

= {mamífero(O),¬passaro(O), passaro(O)}

TP(0,1)↑3 = TP(0,1)({mamífero(O),¬passaro(O), passaro(O)}) =

= {mamífero(O),¬passaro(O), passaro(O),¬mamífero(O)} =

= TP(0,1)↑ω.

TP(1,0)↑0 = ∅

TP(1,0)↑1 = {¬mamífero(O), passaro(O)}

TP(1,0)↑2 = TP(1,0)

(¬mamífero(O), passaro(O)) =

= {¬mamífero(O), passaro(O),mamífero(O)}

TP(1,0)↑3 = TP(1,0)

({¬mamífero(O), passaro(O),mamífero(O)}) =

= {¬mamífero(O), passaro(O),mamífero(O),¬passaro(O)} =

= TP(1,0)↑ω.

TP(1,1)↑0 = ∅

TP(1,1)↑1 = {¬mamífero(O),¬passaro(O)}

TP(1,1)↑2 = TP(1,1)

({¬mamífero(O),¬passaro(O)}) =

Page 108: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

108

= {¬mamífero(O),¬passaro(O),mamífero(O), passaro(O)} =

= TP(1,1)↑ω.

Finalmente,⋂TPγ↑ω

= {mamífero(O),¬mamífero(O), passaro(O),¬passaro(O)} = MP .

Ou seja, para este programa, um ornitorrinco é um pássaro e um mamífero ao mesmo

tempo em que não é um pássaro e não é um mamífero. Desta forma, é fundamental uma

interpretação paraconsistente para que não sejam deduzidas, a partir destas contradições,

fatos arbitrários sobre vacas e outros animais analisados, pois, se considerássemos uma

abordagem clássica para este mesmo exemplo, teríamos a validade de qualquer literal,

uma vez que existe a contradição, garantindo a explosão clássica.

Agora utilizaremos os resultados obtidos no capítulo anterior para provar a

correção e completude de uma resolução-SLI para QMPT0.

Com efeito, dado que programas lógicos em QMPT0 podem ser usados como

casos particulares de programas lógicos disjuntivos clássicos (via uma tradução) em que

somente cláusulas disjuntivas da forma A ∨ ¬A ocorrem, a resolução-SLI constitui um

método de decisão correto e completo para a programação lógica baseada em QMPT0.

De�nição 3.5.19. Uma refutação-SLI para QMPT0 é possível como pode ser visto no

Exemplo a seguir. Os seguintes passos devem ser seguidos para que a resolução funcione.

1. Dado um programa P de QMPT0, primeiro uni�camos o programa através do mgu

θ. Denotaremos esse novo programa por Pθ;

2. Dado Pθ, estendemos o programa com as instâncias do terceiro excluído necessá-

rias, criando assim novos fatos para o programa estendido Pθ, denominaremos esta

extensão de Pθ+, seguindo a notação da De�nição 3.4.8;

3. Aplicamos a transformação do Lema 3.5.14 em Pθ+, obtendo P 'θ+;

4. Fazemos a refutação-SLI normalmente como apresentado na Seção 2.2.

Um exemplo de resolução-SLI para um programa lógico paraconsistente pode

ser visto a seguir:

Page 109: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

109

Exemplo 3.5.20. Dado o programa P do Exemplo 3.5.16 e a consulta← A ilustraremos

a refutação-SLI adaptada em forma de árvore através do programa lógico disjuntivo PLcorrespondente:

PL =

A←− H

C ←− H ′

D ←− C

A←− D,G′

A←− G,E ′

H ∨H ′ ←−

G ∨G′ ←−

E ′ ←−

Page 110: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

110

(1) (2) (3) (4) (5) (6)

ε*

∼A

ε*

∼A*

∼H

ε*

∼A*

∼H*

H ′

ε*

∼A*

∼H*

H ′*

C

ε*

∼A*

∼H*

H ′*

C*

D

ε*

∼A*

∼H*

H ′*

C*

D*

A ∼G′

(7) (8) (9) (10) (11) (12)

ε*

∼A*

∼H*

H ′*

C*

D*

∼G′

ε*

∼A*

∼H*

H ′*

C*

D*

∼G′*

G

ε*

∼A*

∼H*

H ′*

C*

D*

∼G′*

G*

A ∼E ′

ε*

∼A*

∼H*

H ′*

C*

D*

∼G′*

G*

∼E ′

ε*

∼A*

∼H*

H ′*

C*

D*

∼G′*

G*

∼E ′*

Nesta demonstração só foram utilizadas t-ancestralidade e t-truncação.

Dado que o processo de refutação-SLI é adaptado pela De�nição 3.5.19 para

QMPT0, todos os lemas consequentes, incluindo os de correção e completude e o Teorema

de Herbrand, são válidos para QMPT0 seguindo os procedimentos acima. As regras para

Page 111: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

111

a resolução-SLI são as mesmas utilizadas para a lógica clássica de primeira ordem; a

demonstração de todos os lemas e teoremas pode ser vista na Seção 2.3.

O sistema de programação lógica baseado em QMPT0 introduzido neste ca-

pítulo funciona satisfatoriamente do ponto de vista teórico. Por causa da validade em

QMPT0 do princípio do terceiro excluído para a negação paraconsistente ¬, tivemos que

lidar com delicados aspectos técnicos que não aparecem na abordagem dual, paracompleta

(onde não vale a lei do terceiro excluído), proposta por Schmitt em [Sch86] (lembrando

que Schmitt apenas propôs o cálculo de resolução clausal, sem entrar nos detalhes da

programação lógica). Consideramos que a solução original proposta para lidar com esta

particularidade da lógica subjacente é satisfatória

No próximo Capítulo apresentaremos as lógicas 4-valoradas BD∼ e QBD∼,

utilizando os resultados anteriores para obter também uma resolução-SLI adaptada, com

os correspondentes Teoremas de Herbrand, de Correção e de Completude.

Page 112: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

112

Page 113: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

113

Capítulo 4

Uma Programação Lógica Paranormal

4-valorada

Neste capítulo, apresentaremos uma lógica 4-valorada que estende tanto MPT0

como a lógica apresentada por Schmitt [Sch86]. A lógica 4-valorada apresentada é baseada

nos trabalhos de Belnap [Bel77b] e Dunn, assim como nos artigos de Maªuszynski, Szaªas

e Vitória [MSV08] e [VSM08]. Sendo simultaneamente paraconsistente e paracompleta, a

lógica de base é dita paranormal.

4.1 A lógica 4-valorada BD∼

Começaremos esta seção introduzindo o novo valor não distinguido N (de

Neither, signi�cando que não é nem verdadeiro nem falso), acrescentado ao conjunto de

valores anteriores 1, 0, e B. Abaixo temos a de�nição da lógica matricial 4-valorada

BD∼. Assim como no capítulo anterior, ¬ representa a negação fraca e ∼ representa a

negação forte. Esse tipo de negação pode ser visto no artigo de De e Omori [DO15]. Deste

modo, temos:

De�nição 4.1.1. A lógica matricial 4-valorada BD∼ é de�nida sobre o conjunto de

conectivos {∧,∨,→,¬,∼} no domínio {1, B,N, 0} em que D = {1, B} é o conjunto de

valores distinguidos. As tabelas que interpretam os conectivos são as seguintes:

Page 114: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

114

→ 1 B N 0

1 1 B N 0

B 1 B N 0

N 1 1 1 1

0 1 1 1 1

∧ 1 B N 0

1 1 B N 0

B B B 0 0

N N 0 N 0

0 0 0 0 0

∨ 1 B N 0

1 1 1 1 1

B 1 B 1 B

N 1 1 N N

0 1 B N 0

p ¬p

1 0

B B

N N

0 1

p ∼p

1 0

B 0

N 1

0 1

Observe que continuamos com as duas negações, ∼ e ¬, e apenas acrescentamos o quarto

valor N não distinguido. Logo, enquanto a negação fraca de N é N , a negação forte de N

é 1. Com isso, podemos dizer que a negação ¬ é paranormal, isto é, não valida o terceiro

excluído.

Assumimos que B e N são valores intermediários (não comparáveis entre si)

entre 0 e 1. É importante observar também que BD∼ é uma LFI onde o operador ◦ podeser de�nido como ◦α = ¬(α ∧ ¬α).

O conectivo de equivalência ≡ é de�nido como (α ≡ β) =def (α→ β) ∧ (β →α), cuja tabela é a seguinte:

≡ 1 B N 0

1 1 B N 0

B B B N 0

N N N 1 B

0 0 0 B 1

Na �gura abaixo é possível observar o grá�co de Conhecimento (Knowledge)

× Verdade (Truth) apresentado por Damásio e Pereira em [DP98]. É claro que houve

adaptação para os valores de verdade de BD∼, pois Damásio e Pereira estavam se referindo

a lógica de Belnap-Dunn apresentada em [Bel77b] e [Bel77a]. Segundo os estudos de

Page 115: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

115

Damásio e Pereira, a lógica 4-valorada de Belnap-Dunn é a base de todos os sistemas de

programação lógica paraconsistentes existentes na literatura.

Analisando a �gura acima, podemos olhar de duas maneiras diferentes: po-

demos ter um olhar acerca da Verdade das sentenças ou do Conhecimento acerca das

sentenças. No primeiro caso, o menor valor seria 0 (sentença falsa), passando pelos va-

lores intermediários N (nem verdadeira e nem falsa) e B (verdadeira e falsa), até chegar

ao maior valor 1, a certeza da validade da sentença. Do ponto de vista de conhecimento,

o menor valor seria N (nem verdadeira e nem falsa), onde não possuímos informação ne-

nhuma sobre a sentença, os valores intermediários seriam 0 (falsa) e 1 (verdadeira), onde

possuímos o conhecimento clássico acerca da sentença, até chegar ao máximo de conheci-

mento possível B, onde a sentença é ao mesmo tempo verdadeira e falsa.

Observação 4.1.2. No artigo de De e Omori [DO15], além da negação forte já apre-

sentada, é considerada uma outra negação que não será estudada nesta Tese, mas a

apresentaremos abaixo para efeito de comparação:

p ∼1p

1 0

B N

N B

0 1

Considerando o domínio como P({0, 1}) (o conjunto das partes de {0, 1}), a

negação ∼1 corresponde ao complemento de conjuntos.

A seguir, estabeleceremos alguns resultados sobre os literais de BD∼:

Page 116: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

116

Lema 4.1.3. Dada uma variável p, existem exatamente quatro literais em BD∼ baseados

em p, a menos de equivalência lógica: p, ¬p, ∼p e ∼¬p.

Demonstração. Primeiro, analisemos a tabela abaixo:

p ¬p ∼p ∼¬p ¬∼p ¬∼¬p ∼¬∼p ∼¬∼¬p ¬∼¬∼p

1 0 0 1 1 0 0 1 1

B B 0 0 1 1 0 0 1

N N 1 1 0 0 1 1 0

0 1 1 0 0 1 1 0 0

Na tabela, vemos que ¬∼p ≡ p, ¬∼¬p ≡ ¬p, (∼¬)np ≡ ∼¬p e (¬∼)np ≡ p, para n ≥ 2.

Isto é, os únicos quatro literais baseados em p (a menos de equivalência) são p, ¬p, ∼p e

∼¬p.

De�nição 4.1.4. Seja Σ1 a assinatura1 {∧,∨,→,¬,∼}. O cálculo Hilbertiano LBD∼

sobre Σ1 é de�nido considerando os esquemas de axioma (A1)-(A9) de mbC apresenta-

dos na de�nição 3.1.1, mais os axiomas de MPT0 apresentados na de�nição 3.2.3, mais

Modus Ponens. Repare que nesse conjunto de axiomas não está incluso o axioma (A10)

α ∨ ¬α.

Agora introduziremos uma valoração-LBD∼ para o cálculo Hilbertiano LBD∼.

De�nição 4.1.5 (valoração-LBD∼). Uma função v : LΣ1 →{

0, 1}é uma valoração-

BD∼ se satisfaz as seguintes condições:

(vOr) v(α ∨ β) = 1 ⇐⇒ v(α) = 1 ou v(β) = 1

(vAnd) v(α ∧ β) = 1 ⇐⇒ v(α) = 1 e v(β) = 1

(vImp) v(α→ β) = 1 ⇐⇒ v(α) = 0 ou v(β) = 1

(vNot) v(α) = 0 ⇐⇒ v(∼α) = 1

(vNegE1) v(¬∼α) = 1 =⇒ v(α) = 1

1Utilizamos a designação assinatura na tradição algébrica da palavra, no âmbito proposicional ela serefere a um conjunto de conectivos

Page 117: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

117

(vNegE2) v(¬¬α) = v(α)

(vDM∧) v(¬(α ∧ β)) = 1 ⇐⇒ v(¬α) = 1 ou v(¬β) = 1

(vDM∨) v(¬(α ∨ β)) = 1 ⇐⇒ v(¬α) = v(¬β) = 1

(vCIp→) v(¬(α→ β)) = 1 ⇐⇒ v(α) = v(¬β) = 1

Note que, a partir de (vDM∧), (vDM∨) e (vCIp→) temos:

(vQM∧) v(¬(α ∧ β)) = 0 ⇐⇒ v(¬α) = v(¬β) = 0

(vQM∨) v(¬(α ∨ β)) = 0 ⇐⇒ v(¬α) = 0 ou v(¬β) = 0

(vQIp→) v(¬(α→ β)) = 0 ⇐⇒ v(¬α) = 1 e v(¬β) = 0

Seja |=LBD∼ a relação de consequência de LBD∼ com relação a valorações-

LBD∼. A demonstração do seguinte resultado é direta, usando as técnicas usuais.

Teorema 4.1.6 (Correção e Completude de LBD∼ com relação a valorações-LBD∼).

Para todo Γ ∪ {ϕ} ⊆ LΣ1:

Γ `LBD∼ ϕ ⇐⇒ Γ |=LBD∼ ϕ

O próximo Lema é necessário para se mostrar a equivalência entre o cálculo

LBD∼ e BD∼.

Lema 4.1.7. Seja v uma valoração-LBD∼. Então existe uma valoração h para BD∼ tal

que, para toda fórmula α ∈ LΣ1, v(α) = 1 sse h(α) ∈ {1, B}.

Demonstração. Seja v uma valoração-LBD∼. de�na a valoração h para BD∼ tal que,

para toda fórmula atômica q,

h(q) =

1 sse v(q) = 1, e v(¬q) = 0

B sse v(q) = 1, e v(¬q) = 1

N sse v(q) = 0, e v(¬q) = 0

0 sse v(q) = 0, e v(¬q) = 1

Page 118: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

118

Por indução na complexidade de uma fórmula α em LΣ1 demonstraremos o seguinte:

h(α) =

1 sse v(α) = 1, e v(¬α) = 0 (a)

B sse v(α) = 1, e v(¬α) = 1 (b)

N sse v(α) = 0, e v(¬α) = 0 (c)

0 sse v(α) = 0, e v(¬α) = 1 (d)

Demonstraremos apenas para o caso (c), uma vez que os outros casos são análogos a

MPT0.

Caso Base: α é atômica.

Então o resultado segue pela de�nição de h.

Assuma que o resultado vale para toda fórmula com complexidade k < n (hipótese de

indução, HI).

Caso 1: α = ¬β.

(⇒) Se h(α) = h(¬β) = N, então h(β) = N pela de�nição das tabelas de verdade de

¬. Por (HI), v(β) = 0 e v(¬β) = 0, então, v(α) = v(¬β) = 0. Temos também que

v(¬α) = v(¬¬β) = v(β) = 0.

(⇐) Se v(α) = v(¬α) = 0 então v(¬β) = v(β) = 0. Utilizando a (HI), h(β) =N, então

h(α) = h(¬β) = ¬h(β) =N.

Caso 2: α = β ∧ γ.

(⇒)

Caso 2.1 h(α) = h(β) ∧ h(γ)=N, então, h(β) = 1 e h(γ) = N . Por (HI), v(β) = 1,

v(¬β) = v(γ) = v(¬γ) =0. Logo v(α) = v(β ∧ γ) = 0 e v(¬α) = v(¬(β ∧ γ)) =

v(¬β ∨ ¬γ) = 0.

Caso 2.2 h(α) = h(β) ∧ h(γ)=N, então h(β) = N e h(γ) = 1 Análogo ao caso anterior.

Caso 2.3 h(α) = h(β)∧h(γ)=N, então, h(β) = N e h(γ) = N . Por (HI), v(β) = v(¬β) =

v(γ) = v(¬γ) =0. Logo v(α) = v(β ∧ γ) = 0 e v(¬α) = v(¬(β ∧ γ)) = v(¬β ∨ ¬γ) = 0.

(⇐)

Suponha v(α) = v(β ∧ γ) = 0 e v(¬α) = v(¬β ∨ ¬γ) = 0. Logo, v(β) = 0 ou v(γ) = 0,

e v(¬β) = v(¬γ) = 0. Por (HI), h(β), h(γ) ∈ {1, N} e h(β) = N ou h(γ) = N . Logo,

Page 119: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

119

h(α) = N .

Caso 3: α = β ∨ γ.

(⇒)

Caso 3.1 h(α) = h(β)∨ h(γ)=N, então h(β) = N e h(γ) = 0. Por (HI), v(β) = v(¬β) =

v(γ) = 0 e v(¬γ) =1. Logo v(α) = v(β∨γ) = 0 e v(¬α) = v(¬(β∨γ)) = v(¬β∧¬γ) = 0.

Caso 3.2 h(α) = h(β) ∨ h(γ)=N, então h(β) = 0 e h(γ) = N Análogo ao caso anterior.

Caso 3.3 h(α) = h(β)∨h(γ)=N, então h(β) = N e h(γ) = N . Por (HI), v(β) = v(¬β) =

v(γ) = v(¬γ) =0. Logo v(α) = v(β ∨ γ) = 0 e v(¬α) = v(¬(β ∨ γ)) = v(¬β ∧ ¬γ) = 0.

(⇐)

Suponha v(α) = v(β ∨ γ) = 0 e v(¬α) = v(¬β ∧ ¬γ) = 0. Logo, v(β) = v(γ) = 0, e

v(¬β) = 0 ou v(¬γ) = 0. Por (HI), h(β), h(γ) ∈ {0, N} e h(β) = N ou h(γ) = N . Logo,

h(α) = N .

Caso 4: α = β → γ.

(⇒)

Caso 4.1

h(α) = h(β)→ h(γ)=N, então h(β) = 1 e h(γ) = N . Por (HI), v(β) = 1, v(¬β) = v(γ) =

v(¬γ) =0. Logo v(α) = v(β → γ) = 0 e v(¬α) = v(¬(β → γ)) = v(β ∧ ¬γ) = 0.

Caso 4.2

h(α) = h(β) → h(γ)=N, então h(β) = B e h(γ) = N . Por (HI), v(β) = v(¬β) = 1 e

v(γ) = v(¬γ) =0. Logo v(α) = v(β → γ) = 0 e v(¬α) = v(¬(β → γ)) = v(β ∧ ¬γ) = 0.

(⇐)

Suponha v(α) = v(β → γ) = 0 e v(¬α) = v(¬(β → γ)) = 0. Logo, v(β) = 1 e v(γ) = 0,

e v(¬β) = 1 e v(¬γ) = 0. Por (HI), h(β) = B e h(γ) = N . Logo, h(α) = N .

A partir do Lema anterior, a equivalência entre BD∼ e a lógica gerada pelo

cálculo Hilbertiano LBD∼ é imediata. Ou seja, o cálculo LBD∼ é correto e completo com

relação as matrizes semânticas 4-valoradas da lógica BD∼.

Teorema 4.1.8. A lógica LBD∼ coincide com a lógica BD∼, ou seja, LBD∼ é correto e

completo com relação as matrizes de BD∼: para todo Γ ∪ {α} ⊆ LΣ1, Γ `LBD∼ α ⇐⇒

Page 120: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

120

Γ |=BD∼ α.

Demonstração. A demonstração é análoga a do Teorema 3.2.7.

Na próxima seção introduziremos a extensão de BD∼ a primeira ordem.

4.2 A Lógica de predicados 4-valorada QBD∼

Nesta seção apresentaremos a extensão de BD∼ a primeira ordem, denotada

por QBD∼. Seguiremos os mesmos passos da Seção 3.3 para construir um cálculo de

resolução para a lógica 4-valorada QBD∼.

De�nição 4.2.1. Seja Σ2 a assinatura {∧,∨,→,¬,∼,∀,∃} e Θ uma assinatura de pri-

meira ordem. O cálculo Hilbertiano QBD∼ sobre Θ é de�nido considerando os esquemas

de axioma (A1)-(A9) de mbC apresentados na de�nição 3.1.1, mais os axiomas de MPT0

apresentados na de�nição 3.2.3, mais os esquemas de axiomas e regras de inferências

apresentados na De�nição 3.3.7, mais Modus Ponens. Repare que nesse conjunto de

axiomas não possuímos o axioma (A10) α ∨ ¬α.

De�nição 4.2.2 (valoração-QBD∼). Seja A uma estrutura sobre Θ com domínio A.

Uma função v : SL(A) →{

0, 1}é uma valoração-QBD∼ sobre A se satisfaz as seguintes

condições:

(vPred) v(P (t1, . . . , tn)) = 1 ⇐⇒ 〈 tA1 , . . . , tAn 〉 ∈ IA(P ), para P (t1, . . . , tn) ∈ AtΘA

(vOr) v(α ∨ β) = 1 ⇐⇒ v(α) = 1 ou v(β) = 1

(vAnd) v(α ∧ β) = 1 ⇐⇒ v(α) = 1 e v(β) = 1

(vImp) v(α→ β) = 1 ⇐⇒ v(α) = 0 ou v(β) = 1

(vNot) v(α) = 0 ⇐⇒ v(∼α) = 1

(vNegE1) v(¬∼α) = 1 =⇒ v(α) = 1

(vNegE2) v(¬¬α) = v(α)

(vDM∧) v(¬(α ∧ β)) = 1 ⇐⇒ v(¬α) = 1 ou v(¬β) = 1

(vDM∨) v(¬(α ∨ β)) = 1 ⇐⇒ v(¬α) = v(¬β) = 1

Page 121: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

121

(vCIp→) v(¬(α→ β)) = 1 ⇐⇒ v(α) = v(¬β) = 1

(vVar) v(φ) = v(ψ) sempre que φ é uma variante de ψ

(vEx) v(∃xφ) = 1 ⇐⇒ v(φ[x/a]) = 1 para algum a ∈ A

(vUni) v(∀xφ) = 1 ⇐⇒ v(φ[x/a]) = 1 para todo a ∈ A

(vExUni1) v(¬∀xφ) = v(∃x¬φ)

(vExUni2) v(¬∃xφ) = v(∀x¬φ)

(sNeg) Para todos os contextos (~x; z) e (~x; ~y), para toda sequência (~a;~b) em A interpre-

tando (~x; ~y), para toda ϕ ∈ L(A)~x;z e para todo t ∈ T (A)~x;~y tal que t é livre para z em ϕ,

e ϕ[z/t] ∈ L(A)~x;~y se b = (t[~x; ~y/~a;~b])A então:

v((ϕ[z/t])[~x; ~y/~a;~b]) = v(ϕ[~x; z/~a; b]) =⇒

v((¬ϕ[z/t])[~x; ~y/~a;~b]) = v(¬ϕ[~x; z/~a; b])

De�nição 4.2.3. Dada uma assinatura de primeira ordem Θ, uma interpretação para

QBD∼ é um par 〈A, v〉, tal que A é uma estrutura sobre Θ e v : SL(A) → {0, 1} é uma

valoração-QBD∼.

A relação de consequência semântica para QBD∼ é a mesma apresentada na

De�nição 3.3.11, assim como a demonstração dos Lemas e Teoremas apresentados na

Seção 3.3. Deste modo, a correção e completude de QBD∼ com respeito a interpretações

também são válidas.

Teorema 4.2.4 (Correção de QBD∼ com respeito a interpretações). Para todo conjunto

de sentenças ∆ ∪ {ϕ}: se ∆ `QBD∼ ϕ Então ∆ � ϕ.

Teorema 4.2.5 (Completude de QBD∼ com respeito a interpretações). Para todo con-

junto de sentenças ∆ ∪ {ϕ} sobre uma assinatura Θ, se ∆ � ϕ então ∆ `QBD∼ ϕ.

Com esses resultados, começaremos o estudo de QBD∼ a partir de estruturas

pragmáticas.

De�nição 4.2.6. Seja Θ uma assinatura de primeira ordem.

1. Seja A um conjunto não vazio. Uma relação parcial k-ária R de�nida sobre A é

uma quadrupla ordenada 〈R+, R−, RB, RN〉, onde R+, R−, RB e RN são dois a dois

disjuntos e R+ ∪R− ∪RB ∪RN = Ak tal que:

Page 122: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

122

a. R+ é o conjunto de k-tuplas que pertencem a R;

b. R− é o conjunto de k-tuplas que não pertencem a R;

c. RB é o conjunto de k-tuplas que ao mesmo tempo pertencem e não pertencem a

R;

d. RN é o conjunto de k-tuplas que não pertencem a R e nem a ¬R;

2. Uma estrutura pragmática (ou parcial) sobre a assinatura Θ é um par ordenado

A = 〈A, (·)A〉 na qual A é um conjunto não vazio e (·)A é uma função de-

�nida sobre LΣ2 tal que, para todo símbolo R para uma relação k-ária em Σ2,

RA =⟨RA

+, RA−, R

AB, R

AN

⟩é uma relação parcial k-ária.

De�nição 4.2.7. Seja ϕ uma fórmula sobre uma assinatura de primeiro ordem Θ, −→x = x1, . . . , xk

um contexto para ϕ, A = 〈A, (·)A〉 uma estrutura pragmática sobre Θ e −→a uma sequência

em A interpretando −→x . Dizemos que A satisfaz ϕ em −→x e −→a com relação a QBD∼,

denotado por A |=QBD∼−→x ϕ[−→a ] nas seguintes situações:

1. A |=QBD∼−→x R(t1, . . . , tm)[−→a ] sse (tA1 [−→a ], . . . , tAm[−→a ]) ∈ RA

+∪RAB, sempre queR(t1, . . . , tm)

for atômica.

2. A |=QBD∼−→x ¬R(t1, . . . , tm)[−→a ] sse (tA1 [−→a ], . . . , tAm[−→a ]) ∈ RA

−∪RAB, sempre queR(t1, . . . , tm)

for atômica.

3. A |=QBD∼−→x ¬¬ψ[−→a ] sse A |=QBD∼

−→x ψ[−→a ].

4. A |=QBD∼−→x ¬(ϕ ∧ ψ)[−→a ] sse A |=QBD∼

−→x ¬ϕ[−→a ] ou A |=QBD∼−→x ¬ψ[−→a ].

5. A |=QBD∼−→x ¬(ϕ ∨ ψ)[−→a ] sse A |=QBD∼

−→x ¬ϕ[−→a ] e A |=QBD∼−→x ¬ψ[−→a ].

6. A |=QBD∼−→x ¬(ϕ→ ψ)[−→a ] sse A |=QBD∼

−→x ϕ[−→a ] e A |=QBD∼−→x ¬ψ[−→a ].

Page 123: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

123

7. A |=QBD∼−→x ¬(∀xϕ)[−→a ] sse A |=QBD∼

−→x ,y ¬ϕ[x/y][−→a ; b], para algum b ∈ A, onde y é a

primeira variável que não ocorre nem em −→x ou em ϕ.

8. A |=QBD∼−→x ¬(∃xϕ)[−→a ] sse A |=QBD∼

−→x ,y ¬ϕ[x/y][−→a ; b], para todo b ∈ A, onde y é a

primeira variável que não ocorre nem em −→x ou em ϕ.

9. A |=QBD∼−→x (ϕ ∧ ψ)[−→a ] sse A |=QBD∼

−→x ϕ[−→a ] e A |=QBD∼−→x ψ[−→a ].

10. A |=QBD∼−→x (ϕ ∨ ψ)[−→a ] sse A |=QBD∼

−→x ϕ[−→a ] ou A |=QBD∼−→x ψ[−→a ].

11. A |=QBD∼−→x (ϕ→ ψ)[−→a ] sse A 6|=QBD∼

−→x ϕ[−→a ] ou A |=QBD∼−→x ψ[−→a ].

12. A |=QBD∼−→x (∀xϕ)[−→a ] sse A |=QBD∼

−→x ,y ϕ[x/y][−→a ; b], para todo b ∈ A, onde y é a pri-

meira variável que não ocorre nem em −→x ou em ϕ.

13. A |=QBD∼−→x (∃xϕ)[−→a ] sse A |=QBD∼

−→x ,y ϕ[x/y][−→a ; b], para algum b ∈ A, onde y é a

primeira variável que não ocorre nem em −→x ou em ϕ.

O contexto −→x será omitido quando conveniente e quando −→x = ∅ escreveremos

A |=QBD∼ ϕ ao invés de A |=QBD∼∅ ϕ[∅].

Podem ser de�nidas operações adequadas entre este tipo de quadruplas para

interpretar os conectivos e os quanti�cadores. Assim, uma fórmula ϕ com variáveis livres

x1, . . . , xn gera uma quadrupla ϕA = 〈ϕA+, ϕ

A−, ϕ

AB, ϕ

AN〉 tal que

- ϕA+ = {~a ∈ An : A |=QBD∼

−→x ϕ[~a] e A 6|=QBD∼−→x ¬ϕ[~a]};

- ϕA− = {~a ∈ An : A 6|=QBD∼

−→x ϕ[~a] e A |=QBD∼−→x ¬ϕ[~a]};

- ϕAB = {~a ∈ An : A |=QBD∼

−→x ϕ[~a] e A |=QBD∼−→x ¬ϕ[~a]};

- ϕAN = {~a ∈ An : A 6|=QBD∼

−→x ϕ[~a] e A 6|=QBD∼−→x ¬ϕ[~a]};

- ϕA+ ∪ ϕA

B = {~a ∈ An : A |=QBD∼−→x ϕ[~a]};

Page 124: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

124

- ϕA− ∪ ϕA

B = {~a ∈ An : A |=QBD∼−→x ¬ϕ[~a]}.

- ϕA+ ∪ ϕA

N = {~a ∈ An : A 6|=QBD∼−→x ¬ϕ[~a]};

- ϕA− ∪ ϕA

N = {~a ∈ An : A 6|=QBD∼−→x ϕ[~a]}.

As quadruplas podem ser de�nidas explicitamente, como foi feito no Capítulo

3 para as triplas de QMPT0.

Assim como no Capítulo anterior, A |=QBD∼−→x ϕ[~a] se e somente se ~a ∈ ϕA

+∪ϕAB.

No caso em que n (o número de variáveis livres de ϕ) é zero, ϕ é uma sentença fechada

que gera, portanto, quatro possíveis valores de verdade quando interpretada na estrutura

pragmática A. Esses são, justamente, os valores de verdade das matrizes de QBD∼. Por

causa disso, a base proposicional de QBD∼ (isto é, a lógica das suas sentenças fechadas)

é a lógica 4-valorada BD∼.

Para sentenças, o seguinte corolário é válido:

Corolário 4.2.8. Seja A = 〈A, (·)A〉 uma estrutura parcial sobre Θ e seja ϕ uma sentença

de LΘ. Então:

(i) ϕA ∈ {1, B} sse A |=QBD∼ ϕ;

(ii) ϕA ∈ {0, B} sse A |=QBD∼ ¬ϕ;

(iii) ϕA ∈ {1, N} sse A 6|=QBD∼ ¬ϕ;

(iv) ϕA ∈ {0, N} sse A 6|=QBD∼ ϕ;

(v) ϕA = 1 sse A 6|=QBD∼ ¬ϕ;

(vi) ϕA = 0 sse A 6|=QBD∼ ϕ;

(vii) ϕA = B sse A |=QBD∼ ϕ e A |=QBD∼ ¬ϕ

(viii) ϕA = N sse A 6|=QBD∼ ϕ e A 6|=QBD∼ ¬ϕ.

De�nição 4.2.9 (Estrutura Parcial associada a uma interpretação para QBD∼). Seja

I = 〈A, v〉 uma interpretação para QBD∼ sobre a assinatura Θ, onde A = 〈A, IA〉. A

estrutura parcial sobre Θ associada a I é B(I) = 〈A, (·)B(I)〉 tal que fB(I) = IA(f) e

cB(I) = IA(c), para todo símbolo para função f e toda constante c, respectivamente. Se

R é um símbolo para uma relação k-ária, então

Page 125: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

125

RB(I)+ =

{~a ∈ Ak : v(R(~a)) = 1, v(¬R(~a)) = 0

}R

B(I)− =

{~a ∈ Ak : v(R(~a)) = 0, v(¬R(~a)) = 1

}R

B(I)B =

{~a ∈ Ak : v(R(~a)) = 1, v(¬R(~a)) = 1

}R

B(I)N =

{~a ∈ Ak : v(R(~a)) = 0, v(¬R(~a)) = 0

}.

Os detalhes da próxima proposição podem ser vistos na Proposição 7.9.21 em

[CC16], aqui faremos apenas a demonstração para quando temos o quarto valor "N".

Proposição 4.2.10. Seja I e B = B(I) como na de�nição 4.2.9. Então, para toda

sentença ϕ em LΘ(A) = LΘ(B):

ϕB =

1 sse v(ϕ) = 1 e v(¬ϕ) = 0;

0 se v(ϕ) = 0 e v(¬ϕ) = 1;

B se v(ϕ) = 1 e v(¬ϕ) = 1;

N se v(ϕ) = 0 e v(¬ϕ) = 0.

Demonstração. A demonstração é feita por indução na complexidade da sentença ϕ e

pode ser vista na Proposição 7.9.21 em [CC16], apenas trocando o valor 12por B. De-

monstraremos apenas o caso especial em que temos o valor "N".

É su�ciente provar que:

ϕB =

1 se v(ϕ) = 1 e v(¬ϕ) = 0 (a);

0 se v(ϕ) = 0 e v(¬ϕ) = 1 (b);

B se v(ϕ) = 1 e v(¬ϕ) = 1 (c);

N se v(ϕ) = 0 e v(¬ϕ) = 0 (d).

Deste modo, se ϕ é atômica, o resultado vale pela de�nição de A e De�nição 4.2.7. Agora,

suponha que o resultado vale para toda fórmula de complexidade igual ou menor que n,

para n ≥ 1 (hipótese de indução, HI).

Caso 1: ϕ = #ψ, com # ∈ {¬,∼} ou ϕ = β#ψ, para # ∈ {∧,∨,→}. A prova é análoga

ao Lema 4.1.7 e então será omitida.

Page 126: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

126

Caso 2: ϕ = ∀xψ. Então:

(d) ϕB = N sse B 6|=QBD∼ ¬∀xψ e B 6|=QBD∼ ∀xψ pelo Corolário 4.2.8, Item (viii),

sse B 6|=QBD∼y ¬ψ[x/y][b] para todo b ∈ A e B 6|=QBD∼

y ψ[x/y][b] para algum b ∈ A pela

De�nição 4.2.7, Itens (7) e (12), sse B 6|=QBD∼y ¬ψ[x/y][y/b] para toda b ∈ A e B |=QBD∼

y

ψ[x/y][y/b] para algum b ∈ A pelos resultados em [CC16], sse (ψ[x/b])B = 1 para toda

b ∈ A e sse (ψ[x/b])B = 0 para algum b ∈ A pelo Corolário 4.2.8 sse v(¬ψ[x/b]) = 0 para

toda b ∈ A e v(ψ[x/b]) = 0 para algum b ∈ A, por (HI), sse v(∃x¬ψ) = 0 e v(∀xψ) = 0,

pelas cláusulas (vEx) e (vUni) sse v(¬∀xψ) = 0, pela cláusula(vExUni1)

Caso 3: ϕ = ∃xψ. É provado como Caso 2.

Agora, �nalmente, temos o Teorema da Completude de QMPT0 com respeito

a estruturas parciais:

Teorema 4.2.11 (Completude de QBD∼ com respeito a estruturas parciais para BD∼).

Para todo conjunto de sentenças ∆ ∪ {ϕ} sobre Θ:

∆ |=QBD∼ ϕ =⇒ ∆ `QBD∼ ϕ

Demonstração. Seja ∆ ∪ {ϕ} um conjunto de sentenças, e assuma que ∆ 0QBD∼ ϕ.

Pela completude de QBD∼ com respeito a interpretações (Teorema 4.2.5), existe uma

interpretação I = 〈A, v〉 para QBD∼ tal que v(γ) = 1, para todo γ ∈ ∆, mas v(ϕ) =

0. Seja B(I) a estrutura parcial sobre Θ associada a I (ver De�nição 4.2.9). Pela

Proposição 4.2.10, B(I) |=QBD∼ γ, para toda γ ∈ ∆, mas B(I) 6|=QBD∼ ϕ. Disso,

∆ 6|=QBD∼ ϕ.

Com isto, temos a Completude de QBD∼ com relação a estruturas parciais.

As de�nições básicas para cláusulas são as mesmas apresentadas no Capítulo

3, relembradas abaixo.

De�nição 4.2.12. Em QBD∼ introduzimos as seguintes noções:

- Um literal é uma fórmula da forma A, ¬A, ∼A ou ∼¬A, na qual A é uma fórmula

atômica de primeira ordem. Em cada caso é dito que o literal contém a fórmula

atômica A.

- Literais da forma A ou ¬A são chamados positivos, os outros são chamados negativos.

Page 127: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

127

- Uma fórmula atômica A é também chamada de átomo.

- Uma cláusula de QBD∼ é uma fórmula fechada da forma:

∀x1 · · · ∀xn(L1 ∨ · · · ∨ Lk ∨ ∼Lk+1 ∨ · · · ∨ ∼Lk+m)

tal que cada Li é um literal positivo em QBD∼ e x1, . . . , xn são todas as variáveis

que ocorrem em (L1∨. . .∨Lk∨∼Lk+1∨. . .∨∼Lk+m). A maneira usual que usaremos

para cláusulas, equivalente à acima apresentada, é:

∀x1 · · · ∀xn(L1 ∨ · · · ∨ Lk ← Lk+1 ∧ · · · ∧ Lk+m)

ou simplesmente

L1, . . . , Lk ← Lk+1, . . . , Lk+m

- Uma cláusula é chamada positiva (negativa) se contém apenas literais positivos (ne-

gativos).

- Um conjunto S de cláusulas é chamado satisfatível se existe uma estrutura pragmá-

tica A tal que A |= K para todas as cláusulas K em S. Neste caso A é chamado de

modelo de S.

- Uma cláusulaK é consequência em QBD∼ de um conjunto de cláusulas S (denotado

S |=QBD∼ K), se para todos os modelos A de S também vale que A |= K.

As de�nições de cláusula de programa de�nida, fato, consulta, programa de�-

nido, consulta de�nida, cláusula vazia, cláusula de Horn e instância básica são as mesmas

apresentadas no capítulo anterior.

Deste modo, temos:

Lema 4.2.13. As seguintes equivalências são válidas em BD∼:

1. ¬¬A ≡ A

2. ∼∼A ≡ A

3. ¬ ∼A ≡ A

Page 128: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

128

4. (A ∧ B) ∨ C ≡ (A ∨ C) ∧ (B ∨ C)

5. (A ∨ B) ∧ C ≡ (A ∧ C) ∨ (B ∧ C)

6. ¬(A ∨ B) ≡ ¬A ∧ ¬B

7. ¬(A ∧ B) ≡ ¬A ∨ ¬B

8. ∼(A ∨ B) ≡ ∼A ∧ ∼B

9. ∼(A ∧ B) ≡ ∼A ∨ ∼B

Observação 4.2.14. Assumamos uma assinatura enumerável de primeira ordem Θ1 com

ao menos uma constante de indivíduo. As fórmulas da linguagem de primeira ordem

gerada por Θ1 sem variáveis livres e sem quanti�cadores podem ser pensadas como cons-

tituindo uma linguagem proposicional na assinatura proposicional de BD∼ (isto é, na

assinatura ∨, ∧, →, ¬ e ∼) gerada pelo conjunto enumerável VΘ1 das fórmulas atômicas

de primeira ordem, que são da forma p(t1, . . . , tn) para p um símbolo de predicado n-ário

e t1, . . . , tn termos sem variáveis.

De�nição 4.2.15. Seja Θ1 uma assinatura como na Observação 4.2.14, e v uma valo-

ração proposicional de BD∼ de�nida sobre o conjunto VΘ1 das variáveis proposicionais.

De�nimos a estrutura pragmática Bv induzida por v como segue:

- O domínio de Bv é o conjunto T de termos básicos sobre Θ1;

- Se c é constante individual, então cBv = c;

- Se f é símbolo de função n-ário, fBv é dada por fBv(t1, . . . , tn) = f(t1, . . . , tn);

- Se p é símbolo de relação n-ária, pBv é a quadrupla pBv = 〈pBv+ , pBv− , pBvB , pBvN 〉

de�nida da seguinte maneira:

pBv+ = {(t1, . . . , tn) ∈ T n : v(p(t1, . . . , tn)) = 1}

pBv− = {(t1, . . . , tn) ∈ T n : v(p(t1, . . . , tn)) = 0}

pBvB = {(t1, . . . , tn) ∈ T n : v(p(t1, . . . , tn)) = B}

pBvN = {(t1, . . . , tn) ∈ T n : v(p(t1, . . . , tn)) = N}

Page 129: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

129

Observe que as componentes de pBv são conjuntos de n-uplas de T , dois a dois

disjuntos, cuja união é T n. Assim, Bv é uma estrutura pragmática induzida por v para

QBD∼.

Deste modo, os Lemas 3.3.41 e 3.3.42 e Corolários 3.3.43 e 3.3.44 também são

válidos tendo como base a lógica QBD∼.

Na próxima seção introduziremos um cálculo de resolução para QBD∼.

4.3 O Cálculo de Resolução RQBD para QBD∼

O cálculo de resolução RQBD para a lógica QBD∼ é exatamente o mesmo uti-

lizado para QMPT0, incluindo os literais complementares. Abaixo lembramos os típicos

exemplos das regras de resolução, já aplicados os renomeamentos de variáveis e o uni�ca-

dor mais geral, com n,m > 0.

L ∨∨ni=1A K ∨

∨mj=1∼A

L ∨KL ∨

∨ni=1 ¬A K ∨

∨mj=1∼¬A

L ∨K

Dado um conjunto S de cláusulas, as de�nições de fecho de S por resolução

(Res(S)) e Subst(S) (De�nição 3.4.2) são exatamente as mesmas apresentadas no Capí-

tulo 3. Como as de�nições são semelhantes, os Lemas 3.4.3 e 3.4.4 tem a mesma validade,

levando em conta somente a nova estrutura pragmática necessária para demonstrá-los.

Do mesmo modo, a partir da De�nição 3.3.38 acerca de Sα e Γ e da Observação 4.2.14, o

Lema 3.3.41 tem a mesma demonstração, com o cuidado de, quando necessário, adicionar

o quarto valor N como parte dos valores não distinguidos. Desse modo, também obtemos

a validade do Corolário 3.3.44.

Assim, semelhante ao mostrado anteriormente e pela De�nição 3.4.2 deRes(S),

se a estrutura pragmática B satisfaz S então, por indução, pode ser demostrado facil-

mente que B satisfaz Res(S).

Neste ponto deste capítulo começa a principal diferença com o Capítulo 3, pois,

para a lógica QBD∼ não necessitamos da de�nição de suporte, uma vez que não temos a

validade da lei do terceiro excluído em QBD∼. Portanto, já podemos ir diretamente para

o próximo teorema, sem a necessidade de nenhuma de�nição auxiliar.

Page 130: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

130

Teorema 4.3.1. Seja S um conjunto de cláusulas. Então, S é satisfatível sse a cláusula

vazia não é um elemento de Res(S).

Demonstração. A parte �somente se� é uma consequência imediata dos resultados e ob-

servações anteriores. Para a parte �se�, provaremos primeiro que o conjunto Res(S ) de

cláusulas proposicionais é satisfatível em BD∼. Assim, dada a linguagem proposicional

derivada da assinatura Θ1 de S (ver Observação 4.2.14), considere o seguinte:

- Seja {An : n > 0} uma enumeração de VΘ1 , o conjunto das fórmulas atômicas da

linguagem proposicional derivada de Θ1.

- Para n > 0 seja Cln o conjunto de cláusulas de BD∼ (na linguagem derivada) cujos

literais contém somente as fórmulas atômicas Ai, com i < n. Deste modo, Cl1 = ∅

e Cli ⊆ Clj, para i ≤ j.

A primeira parte da demonstração consiste na construção de um análogo 4-valorado das

estruturas de Herbrand, o que equivale à especi�cação de um valor de verdade v(An) para

cada n. Assuma indutivamente que v(Ai) já esta bem de�nido para i < n. O valor de

v(An) é determinado pelas seguintes instruções executadas na ordem dada:2

1. v(An) = 0 see existe em Res(S ) uma cláusula negativa K ' K1∨K2 com K1 ∈ Cln,

v(K1) = 0 e K2 =k∨i=1

∼An ∨s∨j=1

∼¬An para k, s > 0 e em Res(S ) não existe uma

cláusula negativa K ′ ' K ′1 ∨K ′2, com K ′1 ∈ Cln, v(K ′1) = 0 e K ′2 =s∨i=1

∼¬An, para

s > 0 (portanto, An só ocorre em K2).

2. v(An) = N see existe emRes(S ) uma cláusula negativaK ' K1∨K2 comK1 ∈ Cln,

v(K1) = 0 e K2 =k∨i=1

∼An, para k > 0. (portanto An só ocorre em K2).

3. v(An) = 1 see existe em Res(S ) uma cláusula negativa K ' K1∨K2 com K1 ∈ Cln,

v(K1) = 0 e K2 =s∨i=1

∼¬An, para s > 0 (portanto An só ocorre em K2).

4. v(An) = B, caso contrário.

2No escopo da demonstração deste teorema, usaremos o símbolo �'� para representar exclusivamenteequivalências entre cláusulas de BD∼ que diferem apenas na ordem dos seus literais.

Page 131: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

131

De�nimos ClSn como o conjunto Cln ∩Res(S ).

É possível provar por indução em n que, para todo n, v(An) é bem de�nido e v(Clsn+1) ⊆

D.

Provaremos agora que Res(S ) é satisfatível em BD∼. Observe que Res(S ) =⋃n>0Cl

Sn .

Seja S0 ⊆ Res(S ) �nito. Dado que ClSn ⊆ ClSn+1 para todo n, existe n0 tal que S0 ⊆

ClSn0. Pelo fato de que a valoração v construída acima satisfaz ClSn0

, inferimos que v

também satisfaz S0. Pelo teorema da compacidade para BD∼ deduzimos que Res(S ) é

satisfatível em BD∼. Daqui, Res(S) é satisfatível em BD∼, pois Res(S) ⊆ Res(S ). Pelo

Corolário 3.3.44 (Que explicitamos acima que vale para essa lógica também), Res(S) é

satisfatível em QBD∼.

Lema 4.3.2. Seja S um conjunto �nito de cláusulas, então Res(S) não deriva a cláusula

vazia sse Res(S ) não deriva a cláusula vazia.

Na demonstração do Teorema 4.3.1 utilizamos o passo de resolução apenas nos

casos em que uma das cláusulas envolvidas era negativa. Isto é chamado de resolução

negativa. Denotamos por NRes(S) o fecho de S por resoluções negativas. Obtemos assim

o seguinte corolário:

Corolário 4.3.3. S é satisfatível sse NRes(S) não contém a cláusula vazia.

Como consequência dos resultados anteriores obtemos a completude da reso-

lução clausal em QBD∼:

Teorema 4.3.4 (Completude da resolução Clausal em QBD∼). Seja S um conjunto de

cláusulas satisfatível em QBD∼, e L um literal positivo básico. Logo, se S |=QBD∼ L

então L ∈ Res(S).

Demonstração. Suponha que S |=QBD∼ L. Logo, S ′ = S ∪ {∼L} é insatisfatível em

QBD∼, pela de�nição de consequência semântica. Daqui, S ′ é insatisfatível em QBD∼.

Pelo Teorema 4.3.1, a cláusula vazia pertence a Res(S ′). Como S ′ = S∪{∼L}, Res(S ′) =

Res(S ∪ {∼L}) e então a cláusula vazia pertence a Res(S ∪ {∼L}). Usando novamente

que S é satisfativel, a cláusula vazia não pertence a Res(S), pelo Teorema 4.3.1. Isto

signi�ca que L ∈ Res(S).

Page 132: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

132

4.4 Semântica Declarativa para RQBD

Assim como no capítulo anterior, nesta seção iremos discutir sobre as interpre-

tações e modelos para uma programação lógica utilizando QBD∼. O Universo e base de

Herbrand são construídos de maneira análoga a estudada até agora, por isso não neces-

sitamos de demais de�nições. Ao �nal, apresentaremos o operador de consequência que

deve ser usado em QBD∼ para se conseguir uma caracterização de ponto �xo.

Iremos agora lembrar algumas de�nições e adaptar outras para a lógica QBD∼.

As de�nições de termo básico, átomo básico, literal positivo básico, Universo de

Herbrand, Base de Herbrand e pré-interpretação de Herbrand são as mesmas apresentadas

anteriormente. Lembramos as notações que utilizamos: UL denota o universo de Herbrand

e BL denota a base de Herbrand. Quanto a interpretação de Herbrand e interpretação

parcial de Herbrand, não temos de nos preocupar com a lei do terceiro excluído, pois como

estamos tratando de uma lógica paraconsistente e paracompleta, não existe a necessidade

de A ou ¬A serem válidas na interpretação.

De�nição 4.4.1. Uma interpretação de Herbrand para L é um subconjunto I qualquer

de BL.

Observação 4.4.2. Diferente da interpretação pragmática de Herbrand apresentada no

capítulo anterior, não exigimos a propriedade: para cada A ∈ B+L , ou A ∈ I ou ¬A ∈ I,

pois é possível que nem A e nem ¬A estejam na base de Herbrand.

A ideia de uma interpretação de Herbrand I é que ela gera de fato uma es-

trutura pragmática B baseada na pré-interpretação de Herbrand para L, da maneira

seguinte: para cada símbolo de predicado n-ário p,

- pB+ = {(t1, . . . , tn) ∈ UnL : p(t1, . . . , tn) ∈ I e ¬p(t1, . . . , tn) 6∈ I};

- pB− = {(t1, . . . , tn) ∈ UnL : p(t1, . . . , tn) 6∈ I e ¬p(t1, . . . , tn) ∈ I};

- pBB = {(t1, . . . , tn) ∈ UnL : p(t1, . . . , tn) ∈ I e ¬p(t1, . . . , tn) ∈ I}.

- pBN = {(t1, . . . , tn) ∈ UnL : p(t1, . . . , tn) 6∈ I e ¬p(t1, . . . , tn) 6∈ I}.

Quanto a prova da insatisfatibilidade de um conjunto de cláusulas, é su�ciente

considerar apenas interpretações de Herbrand, como podemos ver no que se segue.

Proposição 4.4.3. Seja S um conjunto de cláusulas e suponha que S tem modelo. Então

S tem um modelo de Herbrand.

Page 133: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

133

Demonstração. Seja B uma interpretação pragmática. De�nimos uma interpretação de

Herbrand I da seguinte maneira:

I = {L ∈ BL : B |= L}

Disto temos diretamente que se B é um modelo de S, então a estrutura pragmática BI

gerada por I também é modelo de S.

Proposição 4.4.4. Seja S um conjunto de cláusulas. Então S é insatisfatível sse não

possui modelos de Herbrand.

Demonstração. De acordo com a proposição anterior, se S é satisfatível então tem modelo

de Herbrand.

Agora, baseado no capítulo anterior, adaptaremos noções e resultados clássicos

para caraterizar o conjunto de literais básicos que são consequência lógica de um programa

lógico em QBD∼. Esse conjunto de literais será chamado, assim como na literatura da

programação lógica clássica, de mínimo modelo de Herbrand do programa dado. Nova-

mente usaremos a técnica de interpretar os literais da forma ¬p(t1, . . . , tn) como se fossem

novas fórmulas atômicas de um programa lógico clássico, podendo assim caracterizar o

mínimo modelo de Herbrand a partir dos resultados da programação lógica clássica. A

caracterização, no caso de QBD∼, será dada de forma direta, assim como na clássica.

Lembramos, agora, a de�nição de modelo de Herbrand.

De�nição 4.4.5. Dado um programa P , um subconjunto I de BP é dito uma interpre-

tação de Herbrand. Se I contém todos os literais básicos que são consequência lógica do

programa P em QBD∼, I é dito um modelo de Herbrand.

De�nição 4.4.6. Dado um programa P , o Mínimo Modelo de P é o conjunto MP =

{L ∈ BP : P |=QBD∼ L}.

O próximo objetivo é caracterizar o mínimo modelo de Herbrand de um pro-

grama lógico de QBD∼ em termos do ponto �xo de um operador de consequência. Di-

ferente da lógica QMPT0, na qual precisávamos de várias aplicações do operador de

consequência para cada uma das extensões de um programa P , para a lógica QBD∼,

utilizamos o operador de consequência de maneira usual (igual que para a lógica clássica

de primeira ordem), obtendo o mínimo modelo de Herbrand.

Assim como anteriormente, estabeleceremos alguns resultados técnicos auxi-

liares sobre a lógica clássica CL de primeira ordem e a sua relação com QBD∼. Para

Page 134: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

134

diferenciar os sistemas de resolução, denotaremos por ResQBD∼ e ResCL os operadores de

resolução clausal de primeira ordem em QBD∼ e em CL, respectivamente.

Lema 4.4.7. Seja S∪{K} um conjunto de cláusulas de QBD∼. Para cada ¬p(t1, . . . , tn) ∈

S ∪ {K}, seja p′(t1, . . . , tn) uma fórmula atômica nova.3 Seja S ′ ∪ {K ′} o conjunto de

cláusulas obtido pela substituição de ¬p(t1, . . . , tn) por p′(t1, . . . , tn) da seguinte forma:

¬p(t1, . . . , tn) é substituído por p′(t1, . . . , tn) e

∼¬p(t1, . . . , tn) é substituído por ∼p′(t1, . . . , tn).

Então K ∈ ResQBD∼(S) sse K ′ ∈ ResCL(S ′).4

Demonstração. Imediata a partir da construção de S ′∪{L′} e da de�nição dos operadores

ResQBD∼ e ResCL.

Finalmente, adaptaremos o Teorema 1.4.7 da programação lógica clássica para

esta teoria. A formulação é bem mais simples que no caso 3-valorado. Porém, primeiro

necessitamos estabelecer um lema adicional:

Lema 4.4.8. Seja P um programa de�nido em QBD∼, e seja P ′ o programa de�nido

em CL obtido pela transformação (·)′ indicada no Lema 4.4.7. Então, para todo literal

positivo básico L, L ∈ TP↑ω see L′ ∈ TP ′↑ω.

Demonstração. Imediata a partir das de�nições.

Teorema 4.4.9 (Caracterização de ponto �xo do Mínimo Modelo de Herbrand em

QBD∼).

Seja P um programa de�nido em QBD∼, e L um literal positivo básico. Então,

P |=QBD∼ L see L ∈ TP↑ω.

Demonstração. [⇒] Seja L um literal positivo básico, e suponha que P |=QBD∼ L. Então

L ∈ ResQBD∼(P), pelo Teorema 4.3.4, e, pelo Lema 4.4.7, L′ ∈ ResCL(P ′). Pela correção

da resolução clausal em CL, P ′ |=CL L′. Pela caracterização do Modelo Mínimo de Her-

brand de programas lógicos em CL (Teorema 1.4.7) inferimos que L′ ∈ TP ′↑ω. Portanto,

pelo Lema 4.4.8, L ∈ TP↑ω.3A rigor, estamos considerando um predicado novo, p′, para dar conta de todas as fórmulas da forma

¬p(t1, . . . , tn).4Assim como para QMPT0, esta sentença faz sentido, pois todas as negações paraconsistentes foram

eliminadas em S′ ∪ {K ′}, restando apenas conectivos que QBD∼ compartilha com CL.

Page 135: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

135

[⇐] Suponhamos agora que L ∈ TP↑ω. Pelo Lema 4.4.8, L′ ∈ TP ′↑ω. Pela ca-

racterização do modelo mínimo de Herbrand de programas lógicos em CL (Teorema 1.4.7,

temos que P ′ |=CL L′, e pela completude de ResCL, pelo Lema 4.4.7 e pela correção de

ResQBD∼ , temos P |=QBD∼ L.

Isto conclui a demonstração.

Exemplo 4.4.10. Seja P o programa lógico abaixo apresentado no Exemplo 3.5.16. A

seguir encontraremos o conjunto dos literais básicos que são consequência dele, usando

a caracterização dada pelo teorema anterior. Novamente, para simpli�car a exposição,

vamos supor que o programa é proposicional e �nito.

P =

A←− H

C ←− ¬H

D ←− C

A←− D,¬G

A←− G,¬E

¬E ←−

Observe que diferentemente do que acontece no capítulo anterior, o único li-

teral básico que é dedutível do programa (por já ser um fato) é {¬E}. Como não existe

a obrigação da validade do princípio do terceiro excluído, nenhum outro literal pode ser

deduzido em QBD∼:

TP↑0 = ∅

TP↑1 = {¬E}

TP↑ω = {¬E}.

Analisando este exemplo em suas três possíveis abordagens (clássica, paracon-

sistente 3-valorada e paranormal 4-valorada) chega-se a algumas considerações:

- Se existe a necessidade da negação explícita no corpo de programas, a abordagem

clássica é insu�ciente para se derivar as consequências pretendidas;

- A validade da lei do terceiro excluído na abordagem 3-valorada de QMPT0 pode

ocasionar uma maior quantidade de consequências lógicas;

Page 136: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

136

- A falta de validade da lei do terceiro excluído na abordagem 4-valorada de QBD∼

permite o tratamento de programas lógicos com similaridade ao caso clássico, con-

siderando a transformação apresentada no Lema 4.4.7.

Deste modo, a necessidade ou não da explicitação da negação no corpo de cláu-

sulas de programas lógicos e a similaridade com o tratamento clássico é fator determinante

na escolha da abordagem a ser considerada.

O sistema de programação lógica baseado emQBD∼ introduzido neste capítulo

funciona satisfatoriamente do ponto de vista teórico. A despeito da falta de validade em

QBD∼ do princípio do terceiro excluído não tivemos de lidar com os mesmos aspectos

técnicos do capítulo anterior. Assim, claramente vemos que a aplicação de programação

lógica para QBD∼ é muito mais direta do que a aplicação para QMPT0.

Do mesmo modo que �zemos para QMPT0, adaptamos da mesma maneira a

resolução-SLI para QBD∼, com a facilidade de que não teremos programas estendidos,

então a resolução funcionará como se fosse para lógica clássica de primeira ordem, sem

fatos disjuntivos, isto é, a resolução SLD pode ser adaptada à lógica QBD∼. Deste modo,

temos também um Teorema de Herbrand, Correção e Completude.

No próximo Capítulo daremos as considerações �nais da Tese, com algumas

propostas de futuros trabalhos.

Page 137: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

137

Considerações Finais

Nesta Tese apresentamos as de�nições e teoremas básicos tanto da Progra-

mação Lógica Clássica quanto da Programação Lógica Disjuntiva Clássica. Após isto

introduzimos um sistema paraconsistente 3-valorado correto e completo e construímos

uma programação lógica paraconsistente para QMPT0, focando em seu cálculo de re-

solução e na de�nição de um operador de consequência adequado a nossos propósitos,

mostrando que é possível o tratamento da programação lógica paraconsistente de forma

rigorosa e bem-fundada, com resultados que validem os programas feitos com QMPT0

como lógica subjacente. Por �m, apresentamos uma programação lógica paraconsistente

e paracompleta 4-valorada, que estende a lógica QMPT0, porém possui resultados mais

diretos por não ter a obrigatoriedade de satisfazer o princípio do terceiro excluído.

A literatura atual sobre programação lógica paraconsistente está focada na

abordagem não-monotônica (ver, por exemplo, [Rei78]). Neste trabalho, porém, apre-

sentamos dois sistemas lógicos paraconsistentes monotônicos e introduzimos um estudo

sobre como uma programação lógica paraconsistente pode ser feita sem que apenas se

assuma a validade de teoremas da programação lógica clássica diretamente, pois, como

pode ser visto no Capítulo 3, adaptações são necessárias para que se alcancem um cálculo

de resolução e um operador de consequência para QMPT0.

Os resultados apresentados no Capítulo 3 mostram que o princípio do terceiro

excluído para a negação paraconsistente ¬, válido em QMPT0, traz a necessidade de

considerar cláusulas adicionais �ocultas� da forma A∨¬A←, para garantir a completude

do método. Para lidar com tais cláusulas, introduzimos o conceito de suporte de um

conjunto de cláusulas.

Dado que estas cláusulas �ocultas� nada mais são do que disjunções, o leitor

poderia se perguntar se não seria possível abordar a questão de de�nir programação lógica

baseada em QMPT0 utilizando o arcabouço teórico e conceitual da programação lógica

disjuntiva, apresentada no Capítulo 2. Assim, dado um programa lógico de QMPT0,

poderíamos representá-lo na Programação Lógica Disjuntiva clássica a partir de uma tra-

Page 138: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

138

dução apropriada, onde literais da forma ¬p(t1, . . . , tn) são codi�cados como p′(t1, . . . , tn),

com p′ um novo símbolo de predicado naturalmente associado a p, da maneira que foi feito

no Lema 3.5.10 do Capítulo 3. Após esta tradução, o suporte de um programa poderia ser

naturalmente acrescentado ao programa resultante pelo acréscimo de cláusulas disjuntivas

da forma p(t1, . . . , tn) ∨ p′(t1, . . . , tn)← e o programa disjuntivo resultante corresponde-

ria ao programa original, desta vez analisado dentro do ambiente da Programação Lógica

Disjuntiva clássica.

É claro que esta abordagem alternativa à nossa, originada pela redução do

nosso problema a um caso particular de um formalismo mais geral (a Programação Lógica

Disjuntiva), é perfeitamente possível do ponto de vista teórico. Porém, como argumenta-

remos a seguir, esta redução é problemática e complexa do ponto de vista computacional.

Por outro lado, dado que as únicas disjunções que estamos interessados são as instâncias

do princípio do terceiro excluído paraconsistente, resulta claro que o desenvolvimento de

um método direto e especí�co para QMPT0, como o que foi proposto no Capítulo 3,

resulta muito mais vantajoso.

De fato, �zemos uma análise de exemplos especí�cos, utilizando primeiro o

método direto apresentado no Capítulo 3, e aplicando depois o método disjuntivo, através

da forma canônica (ver De�nição 2.1.6) do operador de consequência. Pudemos constatar

que, em alguns programas curtos (levando em conta a linguagem diferente, mas com

o mesmo método) o método disjuntivo é efetivo, porém a complexidade em programas

maiores deixa muito a desejar comparado com o método apresentado nesta Tese. Além

desta maior complexidade, o método disjuntivo, sendo naturalmente mais geral, deriva

muitas disjunções nas quais não estaríamos, em princípio, interessados (lembrando que o

sistema de programação lógico proposto para QMPT0 é de tipo �clássico�, não disjuntivo),

em vez de derivar apenas os átomos básicos que realmente nos interessam. Na análise de

alguns exemplos concretos comprovamos que, em alguns casos, o operador de consequência

de Minker/Rajasekar TPL↑ω, em poucos passos, deriva as mesmas consequências lógicas

que o proposto por nós para QMPT0. Porém, para outros programas um pouco mais

intrincados, o cálculo do operador disjuntivo resulta ser muitíssimo mais complexo do

que o operador TP↑ω apresentado no capítulo anterior. Com efeito, enquanto o operador

proposto no Capítulo 3 contém apenas literais básicos, o operador disjuntivo TPL↑n, paran natural, pode conter disjunções de literais, di�cultando enormemente a operação.

Abaixo, daremos dois exemplos, mostrando que para um programa o TPL↑né conveniente, pouco complexo e deriva o que queremos, porém, para outro programa, a

complexidade (omitindo as cláusulas iguais resultantes) é grande e, mesmo que o programa

Page 139: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

139

seja continuado, não derivará apenas os átomos básicos que queremos.

Exemplo 4.4.11. Seja P o programa lógico abaixo:

P =

A←− C

C ←− ¬A

Primeiro, fazendo pelo método apresentado no capítulo anterior, considerando

A ∨ ¬A← no programa, temos:

TP0↑0 = ∅

TP0↑1 = {A} = TP0↑ω.

TP1↑0 = ∅

TP1↑1 = {¬A}

TP1↑2 = TP1({¬A}) = {¬A,C}

TP1↑3 = TP1({¬A,C}) = {¬A,C,A} = TP1↑ω.

Finalmente,⋂TPγ↑ω = {A} = MP .

Enquanto isso, se utilizarmos, com as devidas adequações, o TPL , teremos:

TPL↑0 = ∅

TPL↑1 = {A ∨ ¬A}

TPL↑2 = {A ∨ ¬A,C ∨ A}

TPL↑3 = {A ∨ ¬A,C ∨ A,A ∨ A} = {A ∨ ¬A,C ∨ A,A} = TPL↑ω.

E, can(TPL↑ω) = {A}. Como podemos ver, para esse programa pequeno, esse TPL é curto

e simples.

Exemplo 4.4.12. Agora, dado o programa do Exemplo 3.5.16, repetido abaixo, temos:

P =

A←− H

C ←− ¬H

D ←− C

A←− D,¬G

A←− G,¬E

¬E ←−

Page 140: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

140

Novamente, adequando para a linguagem de QMPT0, com as devidas cláusulas

H ∨ ¬H ← e G ∨ ¬G ← acrescentadas ao programa, teremos (ocultando as cláusulas

iguais):

TPL↑0 = ∅

TPL↑1 = {¬E,H ∨ ¬H,G ∨ ¬G}

TPL↑2 = {¬E,H ∨ ¬H,G ∨ ¬G,A ∨H,C ∨H,A ∨ ¬G}

TPL↑3 = {¬E,H ∨ ¬H,G ∨ ¬G,A ∨H,C ∨H,A ∨ ¬G,A ∨ C,D ∨H,A ∨ C ∨ ¬H,A ∨

¬H,A∨D∨¬H,A∨C ∨H,A∨D∨H,A∨C ∨¬G,A∨¬G,A∨D∨¬G,A∨D∨G,A∨

H ∨¬H,D∨H ∨¬H,C ∨H,D∨H,A∨¬G∨H,D∨¬G∨H,D∨G∨H,A∨C ∨G,A∨

¬G ∨ ¬H,C ∨H ∨G,D ∨ ¬G ∨H}

Sem continuar com os detalhes do cálculo, como teremos que no �nal computar

o conjunto can(TPL↑ω), e dado que nem C nem H são consequências lógicas do programa,

a disjunção C ∨H estará em can(TPL↑ω), pois ela é, de fato, uma consequência lógica do

programa dado. Mas, como argumentamos acima, essa cláusula �ca fora das respostas

do programa nas quais poderíamos estar originalmente interessados. Isto é, o operador

can(TPL↑ω) não agirá de acordo com o esperado, assumindo que queremos trabalhar com

programação clássica não disjuntiva baseada na lógica QMPT0.

Apesar do método utilizado na programação lógica disjuntiva não atender as

nossas expectativas, utilizamos a resolução-SLI, uma resolução-SLD ampliada, para ob-

termos o Teorema de Herbrand para QMPT0.

É importante observar que a resolução-SLI pôde ser utilizada tanto para o

sistema 3-valorado apresentado no Capítulo 3 quanto para o sistema 4-valorado apresen-

tado no Capítulo 4. No caso 3-valorado, a possibilidade de cláusulas de programa com

disjunções em suas cabeças na resolução-SLI é importante pois permite que existam fatos

disjuntivos da forma H ∨ ¬H ← na extensão de um programa qualquer, enquanto para

o caso 4-valorado, que não necessita dessas extensões, podemos utilizar da resolução-SLI

do mesmo modo que um programa lógico clássico utilizaria, sem nos preocuparmos com

nenhum tipo de disjunção.

Como sugestão de trabalhos futuros, em continuidade aos estudos aqui desen-

volvidos, propõe-se:

- Tentar de�nir uma versão simpli�cada de SLI para lidar exclusivamente com

disjunções da forma A∨¬A, que são as únicas consideradas na programação lógica baseada

Page 141: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

141

em QMPT0.

- Tentar re�nar a de�nição de suporte para a resolução em QMPT0.

- O estudo descritivo das técnicas da chamada Programação de Conjunto de

Resposta (ASP, da expressão em inglês Answer Set Programming), analisando as possibi-

lidades de se adaptar estas técnicas nos sistemas originais propostos. Até a presente data,

a maioria dos sistemas para o qual esta técnica foi desenvolvida são não-monotônicos.

- Um estudo sobre o desenvolvimento de programação lógica para outras LFIs,

estendendo as cláusulas possivelmente com o acréscimo dos operadores de consistência e

inconsistência (que omitimos propositalmente das lógicas aqui consideradas) em fórmulas

atômicas.

Page 142: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

142

Page 143: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

143

Referências

[AN84] A. Almukdad e D. Nelson. Constructible falsity and inexact predicates. Jour-

nal of Symbolic Logic, 49(1):231�233, 1984.

[Bel77a] N. D. Belnap. How a computer should think. Em G. Ryle (ed.), Contemporary

Aspects of Philosophy. Oriel Press. 1977.

[Bel77b] N. D. Belnap. A useful four-valued logic. Em Modern uses of multiple-valued

logic, pp. 5�37. Springer, 1977.

[CC16] W. A. Carnielli e M. E. Coniglio. Paraconsistent Logic: Consistency, Contra-

diction and Negation, vol. 40 of Logic, Epistemology, and the Unity of Science.

Springer, 2016.

[CCM07] W. A. Carnielli, M. E. Coniglio, e J. Marcos. Logics of formal inconsistency.

Em D. Gabbay e F. Guenthner, editors, Handbook of Philosophical Logic,

vol. 14, pp. 1�93. Springer, 2nd edition, 2007.

[CCPR48] W. A. Carnielli, M. E. Coniglio, R. Podiacki, e T. Rodrigues. On the way

to a wider model theory: Completeness theorems for �rst-order logics of for-

mal inconsistency. The Review of Symbolic Logic, 7(3):548�578, 2014. DOI:

10.1017/S1755020314000148.

[CF12] M. E. Coniglio e M. Figallo. Hilbert-style presentations of two logics associated

to tetravalent modal algebras. Studia Logica, pp. 1�15, 2012.

[Chu36] A. Church. An unsolvable problem of elementary number theory. American

journal of mathematics, 58(2):345�363, 1936.

[CK90] C. C. Chang e H. J. Keisler. Model theory, vol. 73. Elsevier, 1990.

[CL73] C. L. Chang e R. C. T. Lee. Symbolic logic and mechanical theorem proving.

Academic press, New York, 1973.

Page 144: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

144

[Cla78] K. L. Clark. Negation as failure. Em Logic and data bases, pp. 293�322.

Springer, 1978.

[CM02] W. A. Carnielli e J. Marcos. A taxonomy of C-systems. Em W. A. Carni-

elli, M. E. Coniglio e I. M. L. D' Ottaviano, editors, Paraconsistency: The

Logical Way to the Inconsistent. Proceedings of the 2nd World Congress on

Paraconsistency (WCP 2000), vol. 228 of Lecture Notes in Pure and Applied

Mathematics, pp. 1�94, New York, 2002. Marcel Dekker.

[CMdA00] W. A. Carnielli, J. Marcos e S. de Amo. Formal inconsistency and evolutionary

databases. Logic and logical philosophy, 8:115�152, 2000.

[Con] M. E. Coniglio. On 3-valued and 4-valued �rst-order logics for information

systems. A aparecer.

[CR96] A. Colmerauer e P. Roussel. The birth of prolog. Em History of programming

languages�II, pp. 331�367. ACM, 1996.

[CS14] M. E. Coniglio e L. H. C. Silvestrini. An alternative approach for quasi-truth.

Logic Journal of the IGPL, 22(2):387�410, 2014.

[dC93] N. C. A. da Costa. Sistemas formais inconsistentes. Tese de Livre Docên-

cia, Universidade Federal do Paraná, Curitiba, Brasil, 1963. Republicada pela

Editora UFPR, Curitiba, Brasil, 1993.

[DdC70] I. M. L. D'Ottaviano e N. C. A. da Costa. Sur un problème de Ja±kowski

(em Francês). Comptes Rendus de l'Académie des Sciences de Paris (A-B),

270:1349�1353, 1970.

[DO15] M. De e H. Omori. Classical negation and expansions of Belnap�Dunn logic.

Studia Logica, 103(4):825�851, 2015.

[DP98] C. V. Damásio e L. M. Pereira. A survey of paraconsistent semantics for

logic programs. Em Reasoning with Actual and Potential Contradictions, pp.

241�320. Springer, 1998.

[EG93] T. Eiter e G. Gottlob. Complexity results for disjunctive logic programming

and application to nonmonotonic logics. Em ILPS, pp. 266�278. Citeseer,

1993.

Page 145: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

145

[EK76] M. H. Van Emden e R. A. Kowalski. The semantics of predicate logic as a

programming language. Journal of the ACM (JACM), 23(4):733�742, 1976.

[FM91] J. A. Fernández e J. Minker. Bottom-up evaluation of hierarchical disjunctive

deductive databases. Em ICLP, pp. 660�675, 1991.

[FM95] J. A. Fernández e J. Minker. Bottom-up computation of perfect models for

disjunctive theories. The Journal of logic programming, 25(1):33�51, 1995.

[GMN78] H. Gallaire, J. Minker e J. M. Nicolas. An overview and introduction to logic

and data bases. Em Logic and Data Bases, pp. 3�30. Springer, 1978.

[HA28] D. Hilbert e W. Ackermann. Grundzüge der theoretischen logik, vol. xxvii

of Die Grundlehren der Mathematischen Wissenschaften. Verlag von Julius

Springer, 1928.

[Hei77] J. Van Heijenoort. From Frege to Gödel: a source book in mathematical logic,

1879-1931, vol. 9. Harvard University Press, 1977.

[Her79] J. Herbrand. Investigations in proof theory. From Frege to Gödel: A source

book in mathematical logic, 1931:525�581, 1879.

[Her30] J. Herbrand. Recherches sur la Théorie de la Démonstration. Tese de Douto-

rado, Université de Paris, 1930.

[Ian06] F. Calimeri G. Ianni. Template programs for disjunctive logic programming:

An operational semantics. AI Commun., 19(3):193�206, 2006.

[Ja±48] S. Ja±kowski. Rachunek zda« dla systemów dedukcyjnych sprzecznych. 1948.

[Jec13] T. Jech. Set theory. Springer Science & Business Media, 2013.

[Kow74] R. Kowalski. Predicate logic as programming language. Em IFIP congress,

vol. 74, pp. 569�544. Edinburgh University. United Kingdom, 1974.

[Le92] T. Van Le. Techniques of Prolog programming: with implementation of logical

negation and quanti�ed goals. John Wiley & Sons, Inc., 1992.

[Llo87] J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, 2nd edition,

1987.

[LMR92] J. Lobo, J. Minker e A. Rajasekar. Foundations of disjunctive logic program-

ming. MIT press, 1992.

Page 146: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

146

[Min82] J. Minker. On inde�nite databases and the closed world assumption. Em 6th

Conference on Automated Deduction, pp. 292�308. Springer, 1982.

[Min89] J. Minker. Toward a foundation of disjunctive logic programming. Em North

American Conference (E. Lusk and R. Overbeek, eds.) MIT Press, pp. 1215�

1235, 1989.

[MM76] A. Martelli e U. Montanari. Uni�cation in linear time and space: A structu-

red presentation. Em Istituto di Elaborazione della Informazione, Consiglio

Nazionale delle Ricerche, 1976.

[MR90] J. Minker e A. Rajasekar. A �xpoint semantics for disjunctive logic programs.

The Journal of Logic Programming, 9(1):45�74, Elsevier. 1990.

[MS02] J. Minker e D. Seipel. Disjunctive logic programming: A survey and assess-

ment, vol. 2407 of lncs and lnai, 2002.

[MSV08] J. Maªuszy«ski, A. Szaªas e A. Vitória. Paraconsistent Logic Programs with

Four-Valued Rough Sets, pp. 41�51. Springer Berlin Heidelberg, Berlin, Hei-

delberg, 2008.

[Nel00] D. Nelson. Negation and separation of concepts in constructive systems. Cons-

tructivity in mathematics, pp. 208�225, Studies in Logic and the Foundations

of Mathematics. 2000.

[NG78] J. M. Nicolas e H. Gallaire. Data base: Theory vs. interpretation. Em Logic

and data bases, pp. 33�54. Springer, 1978.

[Pod08] R. Podiacki. Lógicas da inconsistência formal quanti�cadas. Dissertação de

Mestrado, IFCH - Universidade Estadual de Campinas, Brasil, 2008.

[PRN88] G. Priest, R. Routley e J. Norman. Paraconsistent logics. Philosophia Verlag,

1988.

[PW76] M. S. Paterson e M. N. Wegman. Linear uni�cation. Em Proceedings of the

eighth annual ACM symposium on Theory of computing, pp. 181�186. ACM,

1976.

[RB80] N. Rescher e R. Brandom. The logic of inconsistency, Oxford: Blackwell. 1980.

[Rei78] R. Reiter. On closed world data bases. Springer, 1978.

Page 147: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

147

[Rob65] J. A. Robinson. A machine-oriented logic based on the resolution principle.

Journal of the ACM (JACM), 12(1):23�41, 1965.

[Rod10] T. G. Rodrigues. Sobre os fundamentos da programação lógica paraconsis-

tente. Dissertação de Mestrado, IFCH - Universidade Estadual de Campinas,

Brasil, 2010.

[Sch86] P. H. Schmitt. Computational aspects of three-valued logic. Em 8th Interna-

tional Conference on Automated Deduction, pp. 190�198. Springer, 1986.

[Sil11] L. H. C. Silvestrini. Uma Nova Abordagem para a Noção de Quase-Verdade.

Tese de Doutorado, IFCH - Universidade Estadual de Campinas, Brasil, 2011.

[Sko28] T. Skolem. Über die mathematische logik. Norsk matematisk tidsskrift, 10:125�

142, 1928. Traduzido como "On Mathematical Logic"em [Hei77].

[SMR97] D. Seipel, J. Minker e C. Ruiz. Model generation and state generation for

disjunctive logic programs. The Journal of Logic Programming, 32(1):49�69,

1997.

[Soa96] R. I. Soare. Computability and recursion. Bulletin of Symbolic Logic,

2(03):284�321, 1996.

[Tar99] A. Tarski. The semantic conception of truth and the foundations of semantics.

Philosophy and Phenomenological Research, 4, 1999.

[Tur37] A. M. Turing. On computable numbers, with an application to the entschei-

dungsproblem. Proceedings of the London mathematical society, 2(1):230�265,

1937.

[VSM08] A. Vitória, A. Szaªas e J. Maªuszy«ski. Four-Valued Extension of Rough Sets,

pp. 106�114. Springer Berlin Heidelberg, Berlin, Heidelberg, 2008.

[Wan01] K. Wang. A comparative study of well-founded semantics for disjunctive logic

programs. Em Logic Programming and Nonmotonic Reasoning, pp. 133�146.

Springer, 2001.

Page 148: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

148

Page 149: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

149

Índice

Res(S), 94

S+, 96

Subst(S), 94

Átomo, 32

básico, 37

selecionado, 41

Ín�mo, 30

Assinatura de primeira-ordem, 76

Atribuição de variável, 35

Base de Herbrand, 37

disjuntiva, 45

Cabeça de cláusula, 33

Cláusula, 33

de Horn, 34

de programa

de�nida, 33

de programa lógico

disjuntivo, 44

inde�nido, 44

negativa, 33

positiva, 33

satisfatível, 71

vazia, 34

Composição, 26

Condição

de admissibilidade, 55

de minimalidade, 55

Conjunto

desacordo, 27

Dirigido, 30

input, 53

maximal não-trivial, 81

sucesso, 42

Consequência Lógica, 37

Consulta de�nida, 34

Contexto, 76

para um termo, 77

Corpo de cláusula, 33

Correção e Completude

de LBD∼, 115

de LPT0, 70

De�nição de p, 34

Derivação

-SLD, 41

-SLI, 58

Linear, 51

tranfac, 56

Derivado, 41

Equivalência

em MPT0, 72

Escopo, 32

Estado

de Herbrand, 46

expandido, 46

Estrutura

de primeira-ordem, 76

estendida, 76

parcial, 85

associada a uma interpretação para

QBD∼, 122

associada a uma interpretação para

QMPT0, 88

pragmática, 85

induzida, 92

Page 150: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

150

Expansão, 46

Expressão, 26

simples, 26

Expressões Variantes, 27

Fórmula

fechada, 32

Fórmulas Variantes, 75

Fato, 33

disjuntivo, 44

Fatoração, 51

Fecho

existencial, 32

universal, 32

Forma Canônica, 45

Forma Normal

conjuntiva, 75

disjuntiva, 74

Função

Contínua, 30

monotônica, 30

INF(X), 30

Instância, 26

básica, 26

Interpretação, 35

canônica

para QMPT0, 83

de Herbrand, 38

de termos, 36

parcial

de Herbrand, 101

pragmática

de Herbrand, 99

Lema da Substituição para QMPT0, 79

Ligação, 25

Limitante

inferior, 29

superior, 29

linguagem diagrama, 76

Literal

complementar, 34

negativo, 32

positivo, 32

mbC, 66

Minimamente insatisfatível, 60

Modelo, 37

-estado, 46

de Herbrand, 38

mínimo, 39

minimal, 39

mínimo

parcial, 101

Ocorrência

ligada, 32

livre, 32

Operador de Consequência, 39

disjuntivo, 48

Ordem Parcial, 29

Padronização, 42

Passo de Resolução

básico, 34

geral, 35

Ponto Fixo, 30

mínimo, 30

Máximo, 30

Pré-interpretação, 35

de Herbrand, 37

Programa

de�nido, 34

Page 151: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

151

estendido, 101

lógico, 44

disjuntivo, 44

lógico de�nido, 34

Reduto de uma estrutura de primeira-ordem,

84

Refutação-SLI, 59

Regra de Hiperresolução, 48

Relação, 29

Renomeamento de variáveis, 27

Resolução

-SLD, 41

-SLI, 42

Resolução Ancestral, 51

Resolvente, 41

básica, 34

Resposta, 40

computada, 60

correta, 40

Reticulado Completo, 30

Subcláusula, 33

Subconsulta, 34

Substituição, 25

básica, 25

de variáveis puras, 26

identidade, 26

múltipla, 76

SUP(X), 30

Suporte, 95

básico, 96

Supremo, 30

T-ancestralidade, 56

T-cláusula, 52

t-derivada, 58

topo, 53

T-fatoração, 56

T-modelo, 61

de Herbrand, 61

T-truncação, 57

Teorema de Lindenbaum-�os, 81

Teoria, 81

Henkin, 82

Termo

básico, 37

Uni�cador, 27

mais geral, 27

Universo de Herbrand, 37

Valoração

estendida, 79

para BD∼, 114

para QBD∼, 118

para LPT0, 69

para QMPT0, 77

Page 152: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

152

Page 153: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

153

Apêndice A - Demonstração dos

Resultados Principais do Capítulo 1

Proposição 1.2.11 Seja T: L→L uma função monotônica e L um reticulado completo.

Então T tem um mínimo ponto �xo, MIP(T), e um máximo ponto �xo, MAP(T). Mais

ainda, MIP(T) = INF{x : T (x) = x} = INF{x : T (x) ≤ x} e MAP(T) = SUP{x : T (x) =

x} = SUP{x : x ≤ T (x)}.

Demonstração. Seja G = {x : T (x) ≤ x} e g = INF(G). Mostraremos que g ∈ G. Temos

que g ≤ x, para todo x ∈ G, então, pela monotonicidade de T, temos T(g) ≤ T(x) para

todo x ∈ G. Assim, T(g) ≤ g, pela de�nição de INF. Portanto, g ∈ G.

Para mostrar que g é um ponto �xo de T, basta mostrar que g ≤ T(g). Agora, temos

que T(g) ≤ g implica T(T(g)) ≤ T(g), o que implica que T(g) ∈ G. Portanto g ≤ T(g).

Logo, como T(g) ≤ g e g ≤ T(g), T(g) = g, então g é um ponto �xo de T.

Seja g' = {x : T (x) = x}. Desde que g é um ponto �xo, temos g' ≤ g. Por outro lado,

{x : T (x) = x} ⊆ {x : T (x) ≤ x} e então g ≤ g'. Portanto, g = g', o que completa a

demonstração para INF(T). A demonstração para SUP(T) é análoga.

Proposição 1.2.15 Seja L um reticulado completo e T: L→L contínua. Então MIP(T)

= T↑ω.

Demonstração. Pela Proposição 1.2.14, é su�ciente mostrar que T↑ω é um ponto �xo.

Note que {T↑n : n ∈ ω} é dirigido, pois T é monotônica. Então T(T↑ω) = T(Max{T↑n :

n ∈ ω}) = Max{T(T↑n): n ∈ ω} = T↑ω, usando a continuidade de T.

Proposição 1.3.26 Seja S um conjunto de fórmulas fechadas e uma fórmula fechada F

de uma linguagem de primeira ordem L. Então F é uma consequência lógica de S se, se

somente se, S ∪ {∼ F} é insatisfatível.

Page 154: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

154

Demonstração. (⇒) Suponha que F é uma consequência lógica de S. Seja I uma inter-

pretação de L e suponha que I é um modelo para S. Então I também é um modelo para

F . Deste modo, I não é modelo para S ∪ {∼ F}, assim, S ∪ {∼ F} é insatisfatível.

(⇐) Suponha que S ∪ {∼ F} é insatisfatível. Seja I uma interpretação de L que é um

modelo para S. Como S ∪ {∼ F} é insatisfatível, I não pode ser modelo de ∼F , logo, I

é modelo para F . Assim, todo modelo de S é um modelo de F , o que faz com que F seja

consequência lógica de S.

Proposição 1.3.32 Seja S um conjunto de cláusulas e suponha que S tem um modelo.

Então S tem um modelo de Herbrand.

Demonstração. Seja I uma interpretação que é modelo de S. De�nimos uma interpretação

de Herbrand I' como segue:

I' = {L ∈ BL : I |= L}

Utilizando que I é um modelo de S, segue que I' também é um modelo de S

Proposição 1.4.1 Seja P um programa lógico de�nido e {Mi}i∈I um conjunto não vazio

de modelos de Herbrand para P . Então ∩i∈IMi é um modelo de Herbrand para P .

Demonstração. Temos que ∩i∈IMi é uma interpretação de Herbrand para P . Suponha

que essa intersecção não seja um modelo para P ; logo, para alguma cláusula de P existe

algum 1 ≤ i ≤ n tal que Mi não é modelo de P , o que é um absurdo, pois todo Mi é um

modelo de P . Portanto, ∩i∈IMi é um modelo de P .

Teorema 1.4.2 Seja P um programa de�nido. Então,

MP = {A ∈ BP : A é consequência lógica de P}

Demonstração. Temos que:

A é consequência lógica de P

sse P∪{∼A} é insatisfatível, por 1.3.26.

sse P∪{∼A} não tem modelo de Herbrand, por 1.3.34.

sse ∼A é falso com relação a todos modelos de Herbrand de P .

Page 155: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

155

sse A é verdadeiro com relação a todos modelos de Herbrand de P .

sse A ∈ MP .

Proposição 1.4.5 Seja P um programa de�nido, então a função TP é contínua.

Demonstração. Seja Y um subconjunto dirigido de 2BP . Temos que {A1, . . . , An} ⊆

SUP (Y ) sse {A1, . . . , An} ⊆ I, para algum I ∈ Y . Temos de provar que TP(SUP (Y ))

= SUP (TP(Y )), para cada subconjunto dirigido Y .

Temos o seguinte:

A ∈ TP(SUP (Y ))

sse A ← A1, . . . , An é uma instância básica de uma cláusula em P e {A1, . . . , An} ⊆

SUP (Y )

sse A ← A1, . . . , An é uma instância de um termo básico de uma cláusula em P e

{A1, . . . , An} ⊆ I, para algum I ∈ Y

sse A ∈ TP(I), para algum I ∈ Y

sse A ∈ SUP (TP(Y ))

Portanto, TP é contínua.

Proposição 1.4.6

Seja P um programa de�nido e I uma interpretação de Herbrand de P . EntãoI é um modelo para P se, e somente se TP(I) ⊆ I.

Demonstração. I é um modelo para P se, e somente se, para cada instância do termo

básico A ← A1, . . . , An de cada cláusula em P temos {A1, . . . , An} ⊆ I implica A ∈ I

se, e somente se, TP(I) ⊆ I.

Teorema 1.4.7 (Caracterização do ponto �xo do Mínimo Modelo de Herbrand) Seja Pum programa de�nido. Então MP = MIP (TP) = TP↑ω

Demonstração.

MP = MIN(I: I é um modelo de Herbrand para P)

= MIN(I: TP(I) ⊆ I), pela proposição 1.4.6

= MIP(TP), pela proposição 1.2.11

= TP↑ω, pela proposição 1.2.15 e 1.4.5

Page 156: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

156

Teorema 1.4.11 Seja P um programa de�nido e G uma consulta de�nida ←A1, . . . , Ak.

Suponha que θ é uma resposta para P ∪ {G} tal que (A1∧, . . . ,∧Ak)θ) é básico. Entãoos seguintes são equivalentes:

(a) θ é correto.

(b) (A1∧, . . . ,∧Ak)θ) é verdadeiro com relação a todos modelos de Herbrand de P .

(c) (A1∧, . . . ,∧Ak)θ) é verdadeiro com relação ao Mínimo modelo de Herbrand de P .

Demonstração. Obviamente, é su�ciente mostrar que (c) implica (a). Agora

(A1∧, . . . ,∧Ak)θ) é verdadeiro com relação ao Mínimo modelo de Herbrand de P .

implica (A1∧, . . . ,∧Ak)θ) é verdadeiro com relação a todos modelos de Herbrand de P .

implica ∼(A1∧, . . . ,∧Ak)θ) é falso com relação a todos modelos de Herbrand de P .

implica P ∪ {∼(A1∧, . . . ,∧Ak)θ)} não tem modelo de Herbrand

implica P ∪ {∼(A1∧, . . . ,∧Ak)θ)} não tem modelos, pela Proposição 1.3.34.

Page 157: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

157

Apêndice B - Demonstração dos

Resultados Principais do Capítulo 2

Teorema 2.1.13 Seja PL um programa lógico disjuntivo. Uma cláusula básica positiva

A é consequência lógica de PL se, e somente se, A é verdadeira em todo modelo minimal

de Herbrand de PL.

Demonstração. Temos que:

A é consequência lógica de PLsse PL∪{∼A} é insatisfatível, por adaptação de 1.3.26.

sse PL∪{∼A} não tem modelo de Herbrand, por adaptação de 1.3.34.

sse ∼A é falso com relação a todos modelos de Herbrand de PL.

sse A é verdadeiro com relação a todos modelos minimais de Herbrand de PL.

Teorema 2.1.14(Propriedade da intersecção de Modelos-estados) Seja PL um programa

lógico disjuntivo e {MSi}i∈N um conjunto não vazio de modelos-estados de PL. Então

∩i∈NMSi é um modelo-estado de PL.

Demonstração. Seja A uma cláusula básica positiva tal que PL |= A e seja M um modelo

de um modelo-estado MS de PL. Então, M |= A. Daqui, temos que A ∈ MS ou uma

cláusula submissa a A pertence a MS. Mas, como MS é um estado expandido, isso

implica que A ∈M .

Se ∩MSi, i ≥ 1 são modelos estados de PL, isso implica que ∩MSi não é vazio e contém

pelo menos todas as consequências básicas positivas de PL. Assim, todo modelo minimal

de ∩MSi é um modelo de PL.

Agora, seja M um modelo minimal de PL. Logo, M é um modelo das cláusulas em MSi

Page 158: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

158

que são consequências lógicas de PL. Então, M não é um subconjunto de um modelo

minimal de ∩MSi somente se existe uma cláusula básica A em ∩MSi tal que M 6|= A e

existe uma cláusula submissa a A nas consequências de PL. Se A pertence a ∩MSi, então

A pertence a ∩MSi, i ≥ 1. Daqui, M não é um subconjunto de um modelo minimal

de MSj, para algum j ≥ 1. Portanto, MSj não é um modelo-estado, o que é uma

contradição.

Teorema 2.1.15 Seja PL um programa lógico disjuntivo, então:

MSPL = {A ∈ DHBPL : A é consequência lógica de PL}

Demonstração. Temos que:

A é consequência lógica de PLsse PL∪{∼A} é insatisfatível, por adaptação de 1.3.26.

sse PL∪{∼A} não tem modelo de Herbrand, por adaptação de 1.3.34.

sse ∼A é falso com relação a todos modelos de Herbrand de PL.

sse A é verdadeiro com relação a todos modelos de Herbrand de PL.

sse A é verdadeiro com relação a todos modelos de Herbrand de todos modelos-estados

de PL (Pela primeira parte da de�nição 2.1.12)

sse MS |= A para todo modelo-estado MS de PL.

sse A ∈ MS para todo modelo-estado MS de PL (pois todo modelo-estado é um estado

expandido)

sse A ∈MSPL .

Teorema 2.3.5(Correção da resolução-SLI) Seja S um conjunto input de t-cláusulas. Se

C é derivável de S por uma derivação-SLI então para todo t-modelo M , se M |= S então

M |= C.

Demonstração. A demonstração é feita por indução no número de passos de derivação.

Seja C0, C1, . . . , Cn = C a sequência de t-cláusulas gerada por uma derivação-SLI de S

com cláusula-topo C0. Seja M um t-modelo de S.

Caso Base: C0 = C. Assim, C está em S, então M |= C.

Hipótese de Indução: Assuma que o teorema vale para C derivada em n− 1 passos.

Page 159: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

159

Passo de indução: C é derivado em n-passos. Precisamos provar que M |= Cn. Conside-

ramos os quatro casos possíveis de derivação: t-truncação, t-ancestralidade, t-fatoração e

t-derivação.

Caso 1: Cn é obtido de Cn−1 por t-truncação. Seja Cn−1 = (α (L*) β). Por hipótese de

indução, temos:

M |= Cn−1

=⇒ Existe um literal não marcado K em Cn−1 tal que para todo l ∈ δK , M |= l eM |= K

=⇒ Existe um literal não marcado K em (α β) tal que para todo l ∈ δK ,M |= l eM |= K

=⇒ M |= (α β)

=⇒ M |= Cn.

Caso 2: Cn é obtida de Cn−1 por t-ancestralidade usando a mgu θ.

Seja Cn−1 a t-cláusula (α1 (L* α2 ∼L′ α3) α4) onde Lθ = L′θ. Lembramos que ou

M 6|= ∼L′θ ou para todo l ∈ δ∼L′ , M 6|= lθ. (Caso contrário, se M |= ∼L′θ e para todo

l ∈ δ∼L′ , M |= lθ temos Lθ ∈ δ∼L′)

=⇒ M |= Lθ

=⇒ M |= Lθ e M |= ∼Lθ, já que Lθ = L′θ e M 6|= ∼L′θ

=⇒ M não é um modelo, uma contradição.

Assim,

=⇒ M |= Cn−1θ

=⇒ Existe um literal não marcado K 6= ∼L′θ em Cn−1θ tal que para todo l ∈ δK , M |= l

e M |= K

=⇒ K é um literal não marcado em Cn tal que para todo l ∈ δK , M |= l e M |= K

=⇒ M |= Cn

Caso 3: Cn é obtida de Cn−1 por t-fatoração usando a mgu θ. Seja Cn−1 a t-cláusula

(α1 L1 α2 L2 α3) na qual,

L1 = L2θ,

L1 ∈ γL2 ,

δL1 ⊆ δL2 ,

Por hipótese de indução temos que existe um literal não marcado K ∈ Cn−1 tal que para

Page 160: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

160

todo l ∈ δK , M |= l e M |= K. Disto, temos dois casos:

Caso 3.1: K 6= L2

M |= Cn−1

=⇒ M |= Cn−1θ

=⇒ Kθ ∈ Cn−1θ é um literal não marcado tal que para todo l ∈ δK ,M |= l andM |= Kθ

=⇒ Kθ ∈ Cn é um literal não marcado tal que para todo l ∈ δK , M |= l and M |= Kθ

=⇒ M |= Cn.

Caso 3.2: K = L2. Logo, M |= L2 e para todo l ∈ δL2 , M |= l

M |= L2

=⇒ M |= L2θ

=⇒ M |= L1(= L2θ) e para todo l ∈ δL2 , M |= l

=⇒ para todo l ∈ δL2 , M |= lθ

=⇒ para todo l ∈ δL1(⊆ δL2), M |= lθ

Assim, M |= L1 e para todo l ∈ δL1 , M |= lθ

=⇒ M |= ((α1 L1 α2 α3)θ)

=⇒ M |= Cn.

Caso 4: Cn é obtida de Cn−1 e Bj por t-derivação usando a mgu θ. Seja Cn−1 = (α1 L α2)

e Bj = (α3 ∼L′ α4) na qual Lθ = L′θ

M |= Bj (pois M |= S)

=⇒ M |= Bjθ

=⇒ existe um literal não marcado K1 ∈ Bjθ tal que para todo l ∈ δK1 , M |= lθ e

M |= K1θ. (Note que δK1 = ∅)

Por hipótese de indução M |= Cn−1

=⇒ M |= Cn−1θ

=⇒ existe um literal não marcado K2 ∈ Cn−1θ tal que pra todo lθ ∈ δK2 , M |= lθ e

M |= K2.

Isso nos leva novamente a dois casos:

Page 161: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

161

Caso 4.1: K2 6= Lθ. M |= Cn−1θ,

=⇒ K2 ∈ Cn−1θ é um literal não marcado tal que para todo lθ ∈ δK2 , M |= lθ eM |= K2

=⇒ K2 ∈ (α1 (L* α3 α4) α2)θ é um literal não marcado tal que para todo l ∈ δK2 ,

M |= lθ e M |= K2

=⇒ M |= Cn = ((α1 (L* α3 α4) α2)θ).

Caso 4.2: K2 = Lθ. M |= Lθ(= K2),

=⇒ M 6|= ∼Lθ, pois M é um t-modelo

=⇒ M 6|= ∼L′θ, pois Lθ = L′

=⇒ K1 6|= ∼L′θ.

Como K1 ∈ Cn, temos que δK1 (K1 de Cn) = δK2 ∪ {Lθ}. Para todo lθ ∈ δK2 , M |= lθ

e M |= L implica que para K1 ∈ Cn, temos para todo lθ ∈ δK1 , M |= lθ.

Assim, M |= K1θ (pois M |= Bj ∈ S) e para todo l ∈ δK1 , M |= lθ

=⇒ M |= Cn.

Assim, ∀i, M |= Ci e temos a correção da resolução-SLI com respeito aos t-modelos

semânticos.

Teorema 2.3.6(Correção forte da resolução-SLI) Seja PL um programa lógico disjuntivo

e seja G a consulta = ← A. Seja C = (ε* ∼A) a t-cláusula representando G e seja S o

conjunto input de t-cláusulas obtido de PL. Então toda resposta computada SLI com C

como cláusula-topo e S∪{C} como conjunto input é uma resposta correta para PL∪{G}.

Demonstração. Seja uma refutação-SLI com cláusula-topo C tal que C é utilizada n vezes

com a correspondente renomeamento de variáveis σ1, . . . , σn. Sejam θ1, . . . , θn as substi-

tuições computadas para as variáveis em C durante a refutação-SLI. Então a resposta

computada SLI é dada como:

{θ1 · σ1, . . . , θn · σn}

Considere a cláusula C ′ = Aθ1 · σ1 ∨ . . . ∨ Aθn · σn. Agora C ′ é derivável por SLI de

S uma vez que existe uma refutação-SLI para S ∪ (ε* ∼A) com cláusula-topo (ε* ∼A).

Desde que C ′ é derivável por SLI de S temos que todo modelo M de S é um modelo de

Page 162: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

162

C ′ (pelo Teorema 2.3.5). Assim, C ′ é uma consequência lógica de S e {θ1 ·σ1, . . . , θn ·σn}

é uma resposta correta.

Lema 2.3.7 Seja S um conjunto minimamente insatisfatível de input de t-cláusulas bá-

sicas, e seja C uma t-cláusula em S. Então existe uma refutação-SLI de S com cláusula

topo C.

Demonstração. A demonstração é feita por indução no número de elementos emAtoms(S),

o conjunto de átomos básicos em S.

Caso Base: Seja L o único elemento em Atoms(S). Como S é minimamente insatis-

fatível, existem t-cláusulas (ε* L) e (ε* ∼L). A t-derivação utilizando essas cláusulas

gera a cláusula vazia �. Como S − {C} é satisfatível, C deve ser ou (ε* L) ou (ε* ∼L).

Assim, o lema vale para o caso base.

Hipótese de indução: O lema vale para Atoms(S) com i elementos, onde 1 ≤ i ≤ n.

Caso 1: Assuma que C é uma t-cláusula fato em S (ε* L). Seja S ′ o conjunto ob-

tido de S pela substituição de todas t-cláusulas da forma (ε* α ∼L β) por (ε* α β) e pela

exclusão da t-cláusula C. S ′ é insatisfatível. Mostramos que ela é também minimamente

insatisfatível. Suponha que exista uma t-cláusula D′ em S ′ obtida de uma t-cláusula

D em S (D′ pode ser igual a D) tal que S ′ − {D′} é insatisfatível. Então S ′ − {D′}

é insatisfatível independente do valor de verdade atribuído a L. Assim, S − {D,C} é

também insatisfatível, contradizendo que S é minimamente insatisfatível. S ′ deve conter

uma t-cláusula C ′ = (ε* α′ β′) obtida de uma t-cláusula C ′′ em S que contém ∼L. Caso

contrário S − {C} é insatisfatível, contradizendo a minimalidade. Agora, S ′ é minima-

mente insatisfatível e Atoms(S) possui n elementos. Por hipótese de indução, existe uma

refutação-SLI de S ′ com cláusula-topo C ′. Seja a refutação:

D′ = (ε* α′ β′), (ε* α′1 β′1), . . . , (ε* α′m−1 β

′m−1),�.

Assuma que a refutação foi obtida utilizando as t-cláusulas (ε* α0 β0), . . . , (ε* αm−1 βm−1)

de S ′. Agora C ′ pode ser obtida de C e C ′′ utilizando a t-derivação. Adicionando o literal

Page 163: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

163

∼L aos lugares apropriados nas cláusulas em S ′ (exceto para C ′) podemos construir a

seguinte refutação-SLI:

D′ = (ε* L)(ε* α′1 L* β′1), (ε* α′1 L* β

′1) . . . , (ε* α′m−1 L* β

′m−1),�.

usando t-cláusulas (ε* α0 ∼L β0), . . . , (ε* αm−1 ∼L βm−1) de S. O literal sublinhado ∼L

pode ou não estar na t-cláusula em S correspondente a t-cláusula em S ′. Ele é introduzido

nas cláusulas somente se foi previamente deletado enquanto se formava o conjunto S ′. Em

D, sempre que uma t-cláusula foi obtida por uma t-derivação de (ε* αi ∼L βi) em S, uma

t-cláusula correspondente (ε* αi βi) é utilizada em D′, o literal ∼L introduzido em D é

ancestralmente resolvido com o literal marcado, L*, durante uma derivação-tranfac.

Assim, temos uma refutação-SLI de S com t-cláusula topo C.

Caso 2: Assuma que C não é uma t-cláusula fato. Seja C = (ε* α L β) e seja

C ′ = (ε* α β).

Seja S obtido de S por

(i) exclusão das t-cláusulas contendo ∼L e

(ii) exclusão de L das t-cláusulas remanescentes.

S ′ é insatisfatível. Mostraremos que também é minimamente insatisfatível. Isto é, mostra-

remos que S ′−{C ′} é satisfatível. Seja I uma interpretação que satisfaz S−{C}. Tal que

I existe desde que S é minimamente insatisfatível e, assim, S −{C} é satisfatível. Como

S é insatisfatível, C deve ser falsa em I. Portanto, L é falsa em I. Consequentemente,

S ′ − {C ′} é verdadeira em I. Assim, S ′ − {C ′} é satisfatível. Agora, S ′ é minimamente

insatisfatível e Atoms(S) tem n elementos ou menos. Por hipótese de indução, existe uma

refutação-SLI de S ′ com t-cláusula topo C ′. Seja D′ esta refutação. Agora podemos cons-

truir uma derivação-SLID1 a partir deD′. Adicionando o literal L em lugares apropriados

às cláusulas em S ′, das quais foi deletado, obtemos uma derivação-SLI D1 da t-cláusula

(ε* L) de S e t-cláusula topo C. Todo literal não marcado L em uma t-cláusula derivada

em D1 é fatorado com L que é introduzido durante o primeiro passo de t-derivação uti-

lizando C. Agora, (S − {C}) ∪ {(ε* L)} é insatisfatível e S − {C} é satisfatível. Como

demonstrado no primeiro caso, existe uma refutação-SLI D2 de (S−{C})∪{(ε* L)} com

t-cláusula topo (ε* L). Construindo uma derivação com D1 seguida por D2 obtemos uma

refutação de S com t-cláusula topo C.

Page 164: Programação Lógica Paraconsistente em Lógicas Três eQuatro ... · não-clássicas, e estando claras as limitações da lógica clássica de primeira ordem, surgiu a necessidade

164

Teorema 2.3.10(Teorema da Completude para t-cláusulas) Seja PL um programa lógico

disjuntivo (e S o correspondente conjunto de t-cláusulas), e seja C =← A uma consulta

(Com a correspondente t-cláusula C = (ε* ∼A)). Se S ∪ {C} é insatisfatível, então

existe uma refutação-SLI de S com t-cláusula topo C. Além disso, se {θ1, . . . , θn} é uma

resposta correta para PL ∪ {G}, então existe uma resposta computada SLI {σ, . . . , σk}de uma refutação-SLI de S com cláusula topo C tal que para todo i, i = 1, . . . , k, temos

Cθi = Cσi · γi para alguma substituição γi.

Demonstração. Pelo Teorema de Herbrand, existe um conjunto minimamente insatisfatí-

vel S ′ de instâncias básicas de cláusulas em S. S ′ contém instâncias básicas C ′1, . . . , C′n

de C. Pelo lema 2.3.7 temos que existe uma refutação-SLI de S ′ com t-cláusula topo C ′1.

Então, pelo 2.3.9, obtemos uma refutação-SLI de S com t-cláusula topo C.

Para demonstrar a segunda parte, considere que o conjunto de substituições

básicas σ, . . . , σn tal que ∀i, i = 1, . . . , n, C ′i = Cσi . Agora temos que Aσ1 ∨ . . . ∨Aσn é

uma consequência lógica de S, uma vez que S ′ ∪ {C ′1, . . . , C ′n} é minimamente insatisfatí-

vel. Assim, {σ, . . . , σn} é uma resposta correta para PL ∪ {G}.

Novamente, temos uma refutação-SLI de S ′ ∪ {C ′1, . . . , C ′n}. Por repetidas

aplicações do lema 2.3.9 temos uma refutação-SLI de S ∪{C} onde C é utilizado n vezes

(com renomeamento de variáveis γ1, . . . , γn) tal que para cada uso de Cγiσ′i = C ′i, σ′i é

a substituição utilizada no processo de levantamento e i = 1 . . . , n. Assim, a resposta

computada SLI para a refutação de S ∪ {C} é dada por {γ1 · σ′1, . . . , γn · σ′n}.

Agora, como para cada i, i = 1 . . . , n, C ′i = Cσi = Cγiσ′i , temos que toda

resposta correta para PL∪{G} é computada utilizando uma refutação-SLI com t-cláusula

topo C (= G) e S (= PL).