programação lógica paraconsistente em lógicas três equatro ... · não-clássicas, e estando...
TRANSCRIPT
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
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
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)
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.
Aos meus pais,
À minha avó
E à Viviane.
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
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.
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.
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.
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
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
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
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.
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]
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.
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].
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].
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
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.
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
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
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
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
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.
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
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 é ≤ ω.
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:
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
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
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
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.
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
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.
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.
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)←
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.
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
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
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.
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)}
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).
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.
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
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),
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:
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.
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.
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
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.
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)).
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;
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)
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.
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.
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
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.
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].
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.
64
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
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) (α→ γ)→ ((β → γ)→ ((α ∨ β)→ γ))
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
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:
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
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 α.
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.
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:
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.
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.
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
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
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
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 ϕ,
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
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.
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
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
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.
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]).
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:
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 ].
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
⟩;
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
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.
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
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
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}.
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.
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.
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.
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.
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.
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.
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.
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
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
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.
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
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.
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}
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}
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)}) =
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:
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 ′ ←−
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
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.
112
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:
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
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∼:
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
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
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,
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∼ α ⇐⇒
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
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:
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 ].
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]};
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
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.
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.
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
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}
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.
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.
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).
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.
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
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.
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;
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.
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-
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
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 ←−
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
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.
142
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.
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.
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.
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.
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.
148
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
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
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
152
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.
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 .
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
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.
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
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.
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
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:
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
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
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.
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).