Você está na página 1de 62

Notas de aulas da disciplina de Lógica, primeira

parte
Steffen Lewitzka

16 de março de 2024

Este script está em fase de elaboração.

— Copyright: Steffen Lewitzka —

Literatura secundária:
F. Soares Corrêa Silva, A. C. Vieira de Melo, M. Finger: Lógica para Computação.
Thomson Pioneira
U. Schöning: Logic for Computer Scientists. Springer
W. Rautenberg: A Concise Introduction to Mathematical Logic. Springer
D. van Dalen: Logic and Structure. Springer
M. Ben-Ari: Mathematical Logic for Computer Science. Springer
H. D. Ebbinghaus, J. Flum, W. Tomas: Mathematical Logic. Springer

1 Técnicas (ou métodos) de demonstração


Uma proposição é um enunciado, uma asserção que possui um valor-verdade:
ou verdadeiro ou falso. Nas considerações informais a seguir, usaremos letras
A, B, C, ... para proposições.
Demonstração direta: A ⇒ B. Esta implicação se prova mostrando que a
verdade de A implica a verdade de B.
Demonstração por contraposição. Para demonstrar A ⇒ B basta mostrar a
implicação ¬B ⇒ ¬A. A segunda implicação é dita a contrapositiva da primeira.
Demonstração por contradição (reductio ad absurdum, prova indireta). Que-
remos demonstrar uma proposição A a partir de certas premissas. Para isto, supo-
mos que ¬A é verdadeiro e mostramos que essa suposição resulta numa contradição.
Exemplo: Existe uma quantidade infinita de números primos (Teorema de Eu-
clides). Povaremos essa proposição por contradição supondo que o número de

1
números primos é finito. Sejam p1 , ..., pk todos os números primos. Consideramos
p := p1 p2 ...pk + 1. Fato (óbvio): O menor divisor ̸= 1 de um número n > 1 é um
número primo. Observamos que nenhum pi divide p, pois sempre dá resto 1. O
menor divisor de p (diferente de 1) é primo, mas não está entre os pi . Contradição!
Q.E.D. (quod erat demonstrandum)
Transitividade da implicação. Se as implicações A1 ⇒ A2 , A2 ⇒ A3 ,...,An−1 ⇒
An são verdadeiras, então podemos concluir A1 ⇒ An .
Equivalência entre n ≥ 2 proposições. Para provar que as n proposições A1 , ...An
são equivalentes, isto é Ai ⇔ Aj para quaisquer i, j ∈ {1, ..., n}, basta provar um
ciclo de apenas n implicações A1 ⇒ A2 ⇒ ... ⇒ An ⇒ A1 .
Exercı́cio: Quantas implicações entre proposições diferentes destes n proposições
existem?
Demonstração por casos. Para provar (A1 ∨ ... ∨ An ) ⇒ A bastar provar as n
implicações A1 ⇒ A,...,An ⇒ A. Isto é, fazemos uma distinção de n casos: con-
sideramos cada caso i separadamente mostrando que toda Ai implica A.
Demonstração de uma disjunção. Uma possibilidade de demonstrar que uma
disjunção A ∨ B é verdadeira consiste em supor que a A é falso, e mostrar que
então B tem que ser verdadeiro: a negação de A implica B.

Um princı́pio fundamental dos números naturais é o Axioma da Indução. Fre-


quentemente, este princı́pio é expresso por enunciados equivalentes conforme o
resultado seguinte:

Teorema 1.1 Os princı́pios seguintes são equivalentes:

(i) Se M é um conjunto de números naturais tal que 0 ∈ M , e n ∈ M implica


n + 1 ∈ M , então segue que M = N. (Axioma da Indução)

(ii) Seja A uma propriedade de números naturais. Se A(0) é verdadeiro, e para


qualquer n ∈ N tem-se que A(n) implica A(n + 1), então todos os números
naturais têm a propriedade A, ou seja, A(n) para todo n ∈ N. (Princı́pio
da Indução nos números naturais)

(iii) Todo conjunto não-vazio de números naturais possui um menor elemento.


(Princı́pio do menor elemento).

Demonstração. Mostraremos as equivalência através do ciclo de implicações


(i) ⇒ (ii) ⇒ (iii) ⇒ (i).
(i) ⇒ (ii). Supomos que o Axioma da Indução seja válido. Seja A uma proprie-
dade de números naturais tal que A(0) é verdadeiro, e para qualquer n ∈ N tem-se
que A(n) implica A(n + 1). Consideramos o conjunto M = {n ∈ N | A(n)}.

2
Então 0 ∈ M (já que A(0)), e n ∈ M implica n + 1 ∈ M (já que A(n) implica
A(n + 1)). Pelo Axioma da Indução segue que M = N, e portanto A(n) para todo
n ∈ N.
(ii) ⇒ (iii). Seja M um conjunto não-vazio de números naturais. Considera-
mos a asserção A(n): “Se M contém um elemento ≤ n, então M tem um menor
elemento.” Obviamente, A(0) é verdadeiro. De fato, se 0 ∈ M , então 0 é o me-
nor elemento de M . Vamos mostrar: Se A(n), então A(n + 1). Seja então A(n)
verdadeiro. Para mostrar que isso implica A(n + 1), supomos que M contenha
um elemento ≤ n + 1. Então n + 1 é o menor elemento de M ou M contém um
elemento m ainda menor: m ≤ n. Neste último caso, a suposta verdade de A(n)
implica que M tem um menor elemento. Logo, a asserção A(n + 1) é verdadeira.
Por (ii) (Princı́pio da Indução), A(n) vale para qualquer n ∈ N. Como M é não-
vazio, existe um n ∈ N tal que n ∈ M . Mas então A(n) implica que M tem um
menor elemento.
(iii) ⇒ (i). Seja M um conjunto de números naturais tal que 0 ∈ M , e com cada
n ∈ M tem-se n + 1 ∈ M . Aplicamos demonstração por contradição: supomos
que M não é o conjunto de todos os naturais, isto é, X = N ∖ M ̸= ∅. Então
este conjunto X possui um menor elemento m ∈ X, conforme o Princı́pio do me-
nor elemento (iii). m > 0 já que 0 ∈ M . Logo, o antecessor n = m − 1 não
pertence a X já que m é o menor elemento de X. Logo, n ∈ M . Por hipótese,
n + 1 = m ∈ M . Esta é uma contradição, pois m ∈ X e portanto não pode ser ele-
mento de M . Logo, a suposição M ⊊ N é falsa. Concluimos que M = N. Q.E.D.1

Se aceitamos a validade dos enunciados do Teorema 1.1, então podemos apli-


car o seguinte método de demonstração.

Princı́pio da demonstração por indução nos números naturais. Para de-


monstrar que uma asserção A(n) (que envolve um número natural n) é verdadeira
para todos os n ≥ n0 , não é necessário provar A(n0 ), A(n0 + 1), A(n0 + 2), ...
separadamente (seria um número infinito de asserções). Basta provar apenas os
dois itens seguintes:

(i) A(n0 ) é verdadeiro. (Base da indução)

(ii) Se n ≥ n0 e A(n) é verdadeiro (hipótese da indução), então segue que


A(n + 1) é verdadeiro. (Passo da indução)

Exemplo 1.2 Seja A(n) a asserção seguinte: Se M1 , ..., Mn são n ≥ 2 conjuntos


tais que para quaisquer i, i ∈ {1, ..., .n}, Mi ⊆ Mj ou Mj ⊆ Mi , então um desses
1
“Quod erat demonstrandum”

3
n conjuntos é subconjunto de todos.
Vamos provar por indução que A(n) é verdadeiro para todos os n ≥ 2:
Base da indução. n = 2. Pela hipótese da asserção, M1 ⊆ M2 ou M2 ⊆ M1 . No
primeiro caso, M1 é subconjunto dos dois. No segundo caso, M2 é subconjunto de
todos.
Passo da indução. Seja A(n) verdadeiro para um n ≥ 0 (hipótese da indução).
Supomos que temos n + 1 conjuntos M1 , ..., Mn , Mn+1 tais que Mi ⊆ Mj ou
Mj ⊆ Mi , para quaisquer i, i ∈ {1, ..., n + 1}. Então trivialmente, Mi ⊆ Mj
ou Mj ⊆ Mi para quaisquer i, i ∈ {1, ..., n}. Pela hipótese da indução (isto
é, A(n)), existe um Mi , i ∈ {1, ..., n}, tal que Mi e subconjunto de todos os
M1 , ..., Mn . Então existem dois casos: Mi ⊆ Mn+1 ou Mn+1 ⊆ Mi . No primeiro
caso, segue que Mi é subconjunto de todos os M1 , ..., Mn , Mn+1 . No segundo
caso, segue que Mn+1 é subconjunto de todos os M1 , ..., Mn , Mn+1 . Acabamos
de provar que A(n) implica A(n + 1). Então pelo Princı́pio da Indução, A(n) é
verdadeiro para todos os n ≥ 2. Q.E.D.

Na prática, se aplica frequentemente uma versão modificada do princı́pio da


prova por indução. Esta versão é chamada de indução forte: Para provar A(n) para
todos os naturais n ≥ n0 basta mostrar o seguinte. (i) A(n0 ) é verdadeiro. (ii)
para qualquer n ≥ n0 , a verdade das asserções A(m), para m ∈ {n0 , ..., n − 1, n},
implica a verdade de A(n + 1).
É fácil verificar que a versão forte implica a versão comum da prova por indução.
Na verdade, é possı́vel provar que as duas versões são equivalentes: uma implica a
outra.

2 Introdução
O que é Lógica? “Lógica é a ciência do raciocı́nio correto”. Um dos objetivos
principais da Lógica moderna é formalizar aspectos (clássicos ou não-clássicos)
do raciocı́nio lógico informal. Existem lógicas (sistemas lógicos) diferentes que
formalizam aspectos diferentes do raciocı́nio lógico e podem se distinguir nas suas
capacidades de expressividade. Uma lógica sempre compreende dois lados: a parte
sintática dada por uma linguagem formal e suas fórmulas, eventualmente junto
com um sistema dedutivo (um cálculo para fazer deduções sintáticas), e a parte
semântica que interpreta a linguagem formal num domı́nio semântico (por ex., um
conjunto de valores-verdade, uma estrutura algébrica, etc.) e define o significado
das fórmulas. A semântica também permite definir um conceito de consequência
lógica que formaliza nossa noção intuitiva do raciocı́nio lógico. A noção da con-
sequência lógica é um dos conceitos fundamentais e centrais de uma lógica. Para as

4
lógicas clássicas (e várias outras lógicas) é possı́vel definir cálculos que represen-
tam ou simulam a noção semântica da consequência lógica por meios puramente
sintáticos.

Nesta disciplina vamos estudar as duas lógicas clássicas principais: A Lógica


Proposicional e a Lógica de Predicados (também chamada de Lógica da Primeira
Ordem). Princı́pios importantes da Lógica Clássica são:

(i) A semântica (a denotação) de uma fórmula (de uma proposição) é um valor-


verdade.

(ii) Toda fórmula (proposição) é verdadeira ou falsa. Isto é, existem apenas
esses dois valores-verdade. (Princı́pio do Terceiro Excluı́do ou Tertium non
Datur.)

(iii) Toda fórmula (proposição) possui apenas um valor-verdade, isto é, uma
fórmula ou proposição não pode ser verdadeira e falsa simultaneamente.

(iv) A semântica (valor-verdade) de uma fórmula (proposição) complexa é deter-


minada univocamente pela semântica das suas fórmulas (proposições) cons-
tituintes (‘truth functionality’ ou verofuncionalidade da semântica).

Existem lógicas (não-clássicas) que abandonam um ou vários desses princı́pios.


Considere a proposição seguinte: “Esta proposição é falsa”. É possı́vel atribuir um
valor-verdade a essa proposição respeitando os princı́pios da lógica clássica?

Oberservação: Neste contexto informal usamos ‘fórmulas’ e ‘proposições’


quase como sinónimos. Na seção seguinte, vamos introduzir fórmulas como ob-
jetos sintáticos de uma linguagem formal. Fórmulas representam ou denotam
proposições. Proposições são enunciados, asserções, sentenças de uma linguagem
informal ou elementos de algum domı́nio semântico. Sendo assim, consideramos
fórmulas como objetos sintáticos e proposições como objetos semânticos. Porém,
muitos autores não fazem essa distinção e usam o termo ‘proposições’ para falar
das fórmulas da linguagem formal da lógica.

3 A Lógica Proposicional
Na nossa linguagem formal da lógica usaremos letras minúsculas como p, q, r ou
x, y, z para representar proposições. Essas letras são vistas como variáveis de
proposições. Exemplos:

5
p: “Roma é a capital da Itália.”
q: “7 é um número primo.”

Obviamente, as duas proposições representadas pelas variáveis p e q são verda-


deiras. Na linguagem natural, além do valor-verdade, essas proposições possuem
mais conteúdo semântico, isto é, a semântica (o significado) vai além de um valor-
verdade. De fato, p e q representam proposições que possuem significados com-
pletamente diferentes. Na Lógica Proposicional, reduzimos a semântica de uma
proposição ao seu valor-verdade: verdadeiro ou falso. Neste contexto simplificado
e reduzido, as duas variáveis (fórmulas) p e q possuem a mesma semântica: o valor
‘verdadeiro’. Analogamente, variáveis que representam proposiões falsas como
‘3+2=4’ ou ‘A lua é maior do que a terra’ possuem a mesma semântica: o valor
‘falso’. Devido a essa redução da semântica a valores-verdade, podemos dizer que
a Lógica Proposicional conhece apenas duas proposições: o verdadeiro e o falso.
De fato, todo o raciocı́nio lógico na Lógica Proposicional envolve apenas esses dois
valores ou conteúdos semânticos. Para formalizar e estudar a combinação lógica
de proposições, temos um conjunto infinito de variáveis e sı́mbolos para conec-
tivos lógicos como negação, disjunção, conjunção, implicação, ... . Desta forma,
podemos construir fórmulas compostas que representam proposições mais comple-
xas. Também queremos formalizar nossa noção intuitiva da consequência lógica
que é uma relação entre premissas e conclusões. Por exemplo, se p representa a
proposição “Hoje vai chover” e q representa a proposição “Hoje não vamos para
a praia”, então podemos combinar p e q para a implicação p → q que representa
a proposição “Se hoje vai chover, então hoje não vamos para a praia”. Na nossa
formalização da semântica e definição da consequência lógica vamos ver que q é
uma conclusão do conjunto das premissas {p, p → q}. Isto é, a proposição “Hoje
não vamos para a praia” é conclusão (consequência lógica) das duas premissas
“Hoje vai chover” e “Se hoje não vai chover, então hoje não vamos para a praia”.
Também vamos conhecer sistemas dedutivos que simulam esse tipo de raciocı́nio
semântico em forma de cálculos baseados em manipulação sintática da linguagem
de objeto.

3.1 Sintaxe da Lógica Proposicional


Nossa meta-linguagem é o português. Usaremos a meta-linguagem para falar so-
bre nossa linguagem de objeto: a linguagem formal da Lógica Proposicional. O
alfabeto da linguagem de objeto contém os seguintes sı́mbolos:
(i) Um conjunto infinitamente contável V = {x0 , x1 , x2 ...} de variáveis de
proposições. Usamos letras minúsculas x, y, z ou p, q, r, s, t, u para nos re-
ferir a essas variáveis.

6
(ii) Conectivos de aridade zero: ⊤, ⊥, de aridade um: ¬, e de aridade dois: ∨,
∧, →.
(iii) Parênteses: ) e (.

Definição 3.1 O conjunto F m das fórmulas é o menor conjunto que satisfaz as


condições seguintes:
(i) V ∪ {⊤, ⊥} ⊆ F m, isto é, todas as variáveis e os conectivos ⊤, ⊥ são
fórmulas. Estas fórmulas são chamadas fórmulas atômicas.
(ii) Se φ, ψ ∈ F m, então ¬φ, (φ ∨ ψ), (φ ∧ ψ), (φ → ψ) ∈ F m.

Trata-se de uma definição indutiva. O primeiro item corresponde à base da


indução, o segundo item representa o passo da indução onde “Se φ, ψ ∈ F m”
é a hipótese da indução. Existem outras maneiras (equivalentes) de apresentar a
definição de fórmulas. A definição alternativa seguinte usa a notação de Backus-
Naur (BNF), onde x representa qualquer variável, as letras gregas denotam fórmulas
quaisquer, e os traços sinalizam alternativas. A definição expressa que qualquer
fórmula φ é dada por uma das alternativas apresentadas.

φ ::= ⊥ | ⊤ | x | ¬ψ | (ψ ∨ χ) | (ψ ∧ χ) | (ψ → χ).

A leitura ou interpretação informal dos conectivos é como segue:

¬φ ...“não φ”, negação de φ


(φ ∨ ψ) ...“φ ou ψ”, disjunção de φ e ψ
(φ ∧ ψ) ...“φ e ψ”, conjunção de φ e ψ
(φ → ψ) ...“φ implica ψ”ou “se φ, então ψ”, implicação
⊤ ...“o verum”
⊥ ...“o falsum”

Às vezes usamos o conectivo do bicondicional ↔ que definimos como segue:


(φ ↔ ψ) := ((φ → ψ) ∧ (ψ → φ)). Note que este conectivo não pertence à
linguagem mas é introduzido através de outros conectivos da linguagem, a dizer:
implicação e conjunção. Observe que os sı́mbolos ⊥ e ⊤ são conectivos e fórmulas
(atômicas) ao mesmo tempo.

Usamos letras minúsculas φ, ψ, χ, α, β, δ, ϑ, ... para nos referir a fórmulas, e


letras maiúsculas Φ, Ψ, Γ, ∆, Σ, ... para nos referir a conjuntos de fórmulas. Exem-
plos:

7
φ, Φ ... fi ou phi
ψ, Ψ ... psi
χ, X ... chi ou qui
δ, ∆ ... delta
ϑ, Θ ... teta
γ, Γ ... gama

Os parênteses garantem a legibilidade correta das fórmulas. Por exemplo, não


fica claro como ler φ∨ψ → χ. Porém, em muitos casos podemos omitir parênteses
conforme as regras seguintes:

• Parênteses mais externos podem ser omitidos. Ex.: φ ∨ ψ representa a


fórmula (φ ∨ ψ).
• No uso repetido da conjunção ou da disjunção, os parênteses aninham-se à
esquerda. Ex.: φ1 ∨φ2 ∨φ3 ∨φ4 representa a fórmula (((φ1 ∨φ2 )∨φ3 )∨φ4 ).
• No uso repetido da implicação os parênteses aninham-se à direita. Ex. x →
y → z representa a fórmula (x → (y → z)).
• Consideramos a seguinte ordem de prioridade ou precedência nos conectivos
(ordem decrescente): ¬, ∧, ∨, →. Ex: x ∨ y ∧ z representa (x ∨ (y ∧ z)),
x ∨ ¬y → z representa ((x ∨ ¬y) → z), x ∨ ¬y → z e x ∨ ¬(y → z) e
x ∨ (¬y → z) representam três fórmulas diferentes.

A noção de subfórmula de uma fórmula dada é definida recursivamente através


do conjunto de todas as subfórmulas. Note que toda fórmula é subfórmula de si
mesma.

Definição 3.2 Seja φ ∈ F m. O conjunto sub(φ) das subfórmulas de φ é definido


recursivamente como segue:
• sub(φ) = {φ}, se φ é atômica.
• sub(φ) = sub(ψ) ∪ {φ}, se φ = ¬ψ.
• sub(φ) = sub(ψ) ∪ sub(χ) ∪ {φ}, se φ = (ψ□χ), □ ∈ {∨, ∧, →}.

Fórmulas podem ser representadas por sua árvore sintática. Essa é uma árvore
onde a raı́z é a própria fórmula, e os filhos de cada nó (vértice) são as subfórmulas
imediatas. As folhas (nós sem filhos) então são as subfórmulas atômicas.

Exercı́cio 3.3 Ache o conjunto de todas as subfórmulas de φ = (p → q → r) ∧


(s ∨ s → r) usando a Definição 3.2. Apresente também uma árvore sintática.

8
Seja A(φ) uma asserção que involve a fórmula φ. Frequentemente estamos
na situação de ter que provar A(φ) para toda φ ∈ F m. Como o conjunto F m é
infinito, não podemos provar A(φ) para cada fórmula φ separadamente. O seguinte
método de prova por indução nas fórmulas resolve este problema.

Teorema 3.4 (Princı́pio da prova por indução nas fórmulas) Seja A uma asserção
sobre fórmulas. Para provar A(φ) para todas as fórmulas φ ∈ F m é suficiente
provar os itens (a) e (b):
(a) A(φ) para toda fórmula atômica φ.
(b) Se A(ψ) e A(χ) para fórmulas ψ, χ ∈ F m, então A(¬ψ) e A(ψ□χ), onde
□ ∈ {∨, ∧, →}.2

Demonstração. Seja X = {φ ∈ F m | A(φ)}. Basta mostrar que X = F m.


Obviamente, X ⊆ F m. Supomos que (a) e (b) sejam provados. Então X satisfaz
as condições (i) e (ii) da Definição 3.1 (claro, com F m substituido por X). Isto
é, toda fórmula atômica pertence a X, e se φ e ψ pertencem a X, então também
(φ□ψ) ∈ X. Conforme a Definição 3.1, F m é o menor conjunto com essas duas
propriedades. Logo, F m ⊆ X e finalmente X = F m. Q.E.D

O item (a) no Teorema 3.4 representa a base da indução, o item (b) é o passo
da indução onde a parte “Se A(ψ) e A(χ) ... ” é a hipótese da indução.

Vamos apresentar uma prova alternativa do Teorema 3.4. Para este fim introdu-
zimos a função compl : F m → N que atribui a cada fórmula φ um número natural
conforme sua “complexidade”.

compl(⊥) = compl(⊤) = compl(x) = 0, para x ∈ V


compl(¬ψ) = compl(ψ) + 1
compl(ψ□χ) = max(compl(ψ), compl(χ)) + 1

onde □ ∈ {∨, ∧, →}. A função max(n, m) retorna o maior dos números n e


m. A seguir usaremos o “Axioma da Indução” na forma do enunciado equivalente
que diz que todo conjunto não vazio de números naturais tem um menor elemento.
Seja A alguma afirmação sobre fórmulas e os itens (a) e (b) do Teorema sejam
provados. Veremos que a suposição que exista alguma fórmula ψ tal que A(ψ) é
falso nos leva a uma contradição. Essa suposição implica que o conjunto M = {ψ |
A(ψ) é falso} é não-vazio. Pelo Axioma da Indução existe um elemento ψ ∈ M tal
que compl(ψ) = n é minimal: o menor elemento de {compl(ψ) | ψ ∈ M }. Isto
2
Frequentemente colocamos apenas A(φ) para expressar “A(φ) é verdadeiro”.

9
é, para toda fórmula φ com compl(φ) < n temos que A(φ). Por (a), ψ não pode
ser uma fórmula atômica. Então ψ tem a forma ¬χ ou (χ1 □χ2 ), □ ∈ {∨, ∧, →}.
Seja ψ = (χ1 ∨ χ2 ). Isto implica que compl(χ1 ), compl(χ2 ) < n. Portanto,
A(χ1 ) e A(χ1 ). Por (b), A(ψ), ou seja, ψ ∈/ M . Uma contradição! Analogamente
obtemos contradições supondo que ψ tem a forma ¬χ ou (χ1 □χ2 ), □ ∈ {∧, →}.
Logo, a suposição de que exista alguma fórmula ψ tal que “não A(ψ)”é falsa. Isto
é, M = ∅ e A(φ) para todas as φ ∈ F m. Q.E.D.

Exemplo 3.5 Vamos provar por indução: ‘Toda fórmula tem um número par de
parênteses.’ (Isto é, se A(φ) é a asserção ‘φ possui um número par de parênteses’,
então provaremos A(φ) para toda φ ∈ F m.)
Base da indução. φ seja uma fórmula atômica. Então φ ∈ V ∪ {⊥, ⊤}. Obvia-
mente, em todos estes casos, φ não tem parênteses, ou seja, o número de parênteses
é 0, um número par. Logo, a Base da Indução é provada.
Passo indutivo. Primeiro, seja φ = ¬ψ e supomos (hipótese da indução) que a
afirmação seja verdeira para ψ, iso é, ψ tem um número par de parênteses. Obvia-
mente, φ tem o mesmo número de parênteses que ψ, este número é par por hipótese
da indução.
Agora, seja φ = (ψ ∨ χ). Pela hipótese da indução, ψ tem um número par de
parênteses, digamos 2n, e χ tem um número par de parênteses, digamos 2m. Logo,
φ tem 2 + 2n + 2m = 2(1 + n + m) parênteses. Este número é par.
Os casos restantes φ = (ψ ∧ χ) e φ = (ψ → χ) são tratados analogamente
(exercı́cio!). Q.E.D.

Finalmente, apresentaremos outra noção sintática que será útil na próxima


seção.

Definição 3.6 Seja φ ∈ F m. O conjunto var(φ) das variáveis que ocorrem em φ


é definido como segue:

• var(φ) = {x}, se φ = x ∈ V

• var(φ) = ∅, se φ ∈ {⊤, ⊥}

• var(φ) = var(ψ), se φ = ¬ψ

• var(φ) = var(ψ) ∪ var(χ), se φ = (ψ□χ) onde □ ∈ {∨, ∧, →}.

3.2 Semântica da Lógica Proposicional


Uma proposição é uma asserção (ou uma afirmação) que possui um valor-verdade.
Ela não depende da linguagem em que é expressa. Por exemplo, as sentenças

10
“Roma é a capital da Itália”e “Rome is the capital of Italy”denotam a mesma
proposição. As proposições expressas por “Picasso foi um dos artistas mais im-
portantes”e “Picasso foi um dos artistas mais influentes”são muito parecidas porém
não completamente idênticas. Embora sejam verdadeiras, elas representam conteúdos
semânticos levemente diferentes. Na Lógica Proposicional não é possı́vel expressar
tais sutilezas semânticas da linguagem natural. De fato, na Lógica Proposicional
reduzimos o conteúdo semântico de uma proposição ao valor verdade da mesma.
Isto é, uma proposição pode será identificada com seu valor verdade: todas as
proposições verdadeiras são identificadas com o verdadeiro, e todas as proposições
falsas são identificadas com o falso. Isto é, existem apenas duas proposições: a
proposição verdadeira (o verdadeiro, representado por 1) e a proposição falsa (o
falso, representado por 0). Supondo essa simplificação, as sentenças “Roma é a
capital da Itália”e “Brası́lia é a capital do Brasil”denotam à mesma proposição: a
proposiçãp verdadeira, ou seja, o valor 1.

A denotação (a semântica, o significado) de uma fórmula é uma proposição,


ou seja (neste caso da Lógica Proposicional), um valor-verdade: ‘verdadeiro’ ou
‘falso’. Esta atribuição de valores-verdade a fórmulas é formalizada pela noção da
valoração:
Definição 3.7 Uma valoração é uma função v : V → {0, 1}. Os valores 0, 1 são
vistos como valores verdade, onde 1 corresponde ao ‘verdadeiro’ e 0 ao ‘falso’.
Dada uma valoração v, definimos sua extensão v ∗ : F m → {0, 1} recursivamente
de forma seguinte:
v ∗ (x) = v(x), para x ∈ V
v ∗ (⊤) = 1
v ∗ (⊥) = 0
(
1, se v ∗ (φ) = 0
v ∗ (¬φ) =
0, caso contrário
(
1, se v ∗ (φ) = 1 ou v ∗ (ψ) = 1
v ∗ (φ ∨ ψ) =
0, c.c.
(
1, se v ∗ (φ) = v ∗ (ψ) = 1
v ∗ (φ ∧ ψ) =
0, c.c.
(
0, se v ∗ (φ) = 1 e v ∗ (ψ) = 0
v ∗ (φ → ψ) =
1, c.c.

11
Da definição da semântica da implicação segue:

v ∗ (φ → ψ) = 1 ⇔ v ∗ (φ) = 0 ou v ∗ (ψ) = 1
⇔ v ∗ (φ) = 1 implica v ∗ (ψ) = 1.

Isto é, uma implicação φ → ψ é verdadeira sse3 a verdade de φ implica a


verdade de ψ. Isto está de acordo com a semântica intuitiva da implicação na
meta-linguagem. Note também que uma implicação φ → ψ é verdadeira se a pre-
missa φ é falsa, independentemente do valor-verdade de ψ; e a implicação também
é verdadeira se a conclusão ψ é verdadeira, independentemente do valor-verdade
da premissa φ.

Por indução nas fórmulas se mostra facilmente que existe exatamente uma ex-
tensão de v com estas propriedades. Para simplificar a notação, designamos esta
única extensão v ∗ de v também por v. Pela unicidade de v ∗ , isto não criará con-
fusões.

Relembre que para conjuntos A e B, B A denota o conjunto {f | f : A → B}


de todas as funções de A para B. Se identificamos 2 com o conjunto {0, 1} (o que
de fato se faz na Teoria dos Conjuntos), então 2V = {v | v : V → {0, 1}} é o
conjunto de todas as valorações.

Exercı́cio 3.8 (a) Na literatura, o conjunto das partes P ow(M ) (power set) de
um conjunto M é frequentemente identificado com 2M = {f | f : M → {0, 1}},
ous seja, com o conjunto das funções de M para {0, 1}. Isto é justificado pelo fato
que existe uma bijeção de P ow(M ) para 2M (e, consequentemente, também de
2M para P ow(M )). Estabeleça uma destas bijeções!
(b) Seja A um conjunto. O que é A∅ ? Por que uma função f do tipo f : A∅ → B
pode ser interpretada como uma constante f ∈ B ?
(c) Use a diagonalização de Cantor para provar que o conjunto 2V de todas as
valorações é incontável.

Exemplo 3.9 A valoração v seja dada por x 7→ 0, y 7→ 1, z 7→ 1, u 7→ 0, e s 7→ 0


para s ∈
/ {x, y, z, u}. Então, v(¬x) = 1, v(x∨¬x) = 1, v((x → (y → z))∧u) =
0.

Uma função booleana (de aridade n) é uma função f : {0, 1}n → {0, 1}. Pode-
mos atribuir a cada conectivo c de aridade n uma função booleana fc : {0, 1}n →
3
Usamos a abreviação “sse”para “se e somente se”.

12
{0, 1} de acordo com a Definição 3.7:
f⊥ : {0, 1}0 → {0, 1}, isto é f⊥ ∈ {0, 1}. Definimos: f⊥ = 0
f⊤ : {0, 1}0 → {0, 1}, isto é f⊤ ∈ {0, 1}. Definimos: f⊤ = 1
f¬ : {0, 1} → {0, 1}, f¬ (0) = 1, f¬ (1) = 0
f□ : {0, 1} × {0, 1} → {0, 1}
□ ∈ {∨, ∧, →}, f∨ (0, 0) = 0, f∨ (0, 1) = f∨ (1, 0) = f∨ (1, 1) = 1

Exercı́cio 3.10 Defina as funções restantes f∧ e f→ .

As funções booleanas fc representam a semântica dos conectivos c. Alternati-


vamente à Definição 3.7, podemos usar essas funções booleanas para determinar a
semântica das fórmulas conforme o Lema seguinte.

Lema 3.11 Seja v ∈ 2V uma valoração. Então os valores-verdade das fórmulas,


relativamente à valoração v, são recursivamente dados de forma seguinte (onde
φ, ψ são quaisquer fórmulas):

v ∗ (x) = v(x), para x ∈ V


v ∗ (⊥) = f⊥ = 0
v ∗ (⊤) = f⊤ = 1
v ∗ (¬φ) = f¬ (v ∗ (φ))
v ∗ (φ ∨ ψ) = f∨ (v ∗ (φ), v ∗ (ψ))
v ∗ (φ ∧ ψ) = f∧ (v ∗ (φ), v ∗ (ψ))
v ∗ (φ → ψ) = f→ (v ∗ (φ), v ∗ (ψ))

De fato, o Lemma 3.11 pode servir como definição alternativa à Definição 3.7.
A demonstração do Lema deixamos como exercı́cio.

Definição 3.12 A relação da satisfatibilidade ⊨ ⊆ 2V × F m entre valorações e


fórmulas é definida como segue:

v ⊨ φ :⇔ v(φ) = 1.

Se v ⊨ φ, então dizemos que v satisfaz φ ou que v é um modelo de φ ou que a


fórmula φ é verdadeira referente à valoração v. Se v(φ) = 0, então escrevemos
v ⊭ φ. A noção da satisfatibilidade pode ser generalizada para conjuntos de
fórmulas Φ ⊆ F m. Definimos v ⊨ Φ :⇔ v ⊨ φ para toda fórmula φ ∈ Φ.
M od(Φ) := {v ∈ 2V | v ⊨ Φ} é o conjunto de todos os modelos do conjunto
Φ ⊆ F m.

13
Exemplo 3.13 Seja v(x) = 0 = v(y), v(z) = 1, e seja φ := x → y, ψ := z → y.
Então, v ⊨ φ e v ⊭ ψ.
A fórmula φ := x ∨ ¬x é satisfeita por todas as valorações. Ou seja, toda
valoração é modelo de φ: M od({φ}) = 2V .
O conjunto Φ := {p, ¬p} não possui nenhum modelo: M od(Φ) = ∅.

Lema 3.14 (Lema da Coincidência) Seja φ ∈ F m. Se v1 e v2 são duas valorações


tais que v1 (x) = v2 (x) para todo x ∈ var(φ), então v1 (φ) = v2 (φ).

Demonstração. Provaremos o Lema por indução na fórmula φ.


Base da indução: Seja φ uma fórmula atômica, isto é, φ ∈ V ∪ {⊥, ⊤}. Se
φ = x ∈ V , então a afirmação é trivial pela hipótese do Lema. Agora supomos
φ = ⊥. Então v(φ) = 0, para qualquer valoração v. Analogamente para o caso
φ = ⊤. Logo, a afirmação é verdadeira para todas as fórmulas atômicas.
Passo da indução: Seja φ uma fórmula complexa. Consideramos o caso φ = ¬ψ.
Conforme hipótese do Lema, supomos v1 (x) = v2 (x) para toda x ∈ var(φ).
Como var(φ) = var(ψ), temos que v1 (x) = v2 (x) para toda x ∈ var(ψ). A
hipótese da indução diz que a afirmação do Lema é provada para a fórmula ψ.
Aplicando essa hipótese da indução obtemos v1 (ψ) = v2 (ψ). Logo, v1 (¬ψ) =
f¬ (v1 (ψ)) = f¬ (v2 (ψ)) = v2 (¬ψ). Isto é, v1 (φ) = v2 (φ).
Os casos φ = (ψ□χ), onde □ ∈ {∨, ∧, →}, seguem analogamente. Exercı́cio!
Q.E.D.

O Lema da Coincidência expressa o fato trivial que o valor verdade de uma


fórmula φ depende apenas dos valores verdade das variáveis x ∈ var(φ).

Com base na noção da satisfatibilidade podemos classificar as fórmulas de


acordo com as noções seguintes.

Definição 3.15 Seja φ ∈ F m.

(i) φ é dita válida (ou uma tautologia), se toda valoração é modelo de φ, isto
é, M od({φ}) = 2V .

(ii) φ é dita contraditória (ou insatisfatı́vel, ou uma contradição), se nenhuma


valoração é modelo de φ, isto é, M od({φ}) = ∅.

(iii) φ é dita satisfatı́vel, se φ possui um modelo, isto é, M od({φ}) ̸= ∅.

Um conjunto Φ ⊆ F m é dito contraditório (ou insatisfatı́vel), se M od(Φ) = ∅. Φ


é dito satisfatı́vel, se M od(Φ) ̸= ∅.

14
Exercı́cio 3.16 Prove: Uma fórmula φ é válida se e somente se ¬φ é contra-
ditória.

Exemplo 3.17 ((x → y) ∧ x) → y é tautologia.


((x → y) ∧ y) → x nem é tautologia nem contradição.
Se φ é contradição ou ψ tautologia, então φ → ψ é válida.
O seguinte é falso. Se φ é contradição e φ → ψ é tautologia, então ψ é tautologia.
Prove estas afirmações (sem o uso de tabela verdade)! Relembre: A falsidade de
uma afirmação se prova dando um contra-exemplo.

Os conceitos “contraditório”, “satisfatı́vel”e “válido”são decidı́veis (computáveis


ou recursivos). Isto é, existem algoritmos (procedimentos efetivos que podem ser
implementados como programas em computadores) que decidem para qualquer
fórmula dada se ela é ou não é contraditória, satisfatı́vel ou válida. Um algoritmo
bem conhecido é o método da tabela verdade. Seja φ ∈ F m e n o número de
variáveis que ocorrem em φ. Existe um número infinito de valorações e todas elas
podem ser consideradas para calcular os respectivos valores verdade da fórmula φ.
Porém, pelo Lema 3.14, basta considerar apenas as valorações que atribuem valores
diferentes às variáveis que ocorrem em var(φ). Estas são 2n valorações diferentes
e elas podem ser listadas numa tabela com 2n linhas (uma para cada valoração).
Nas colunas da tabela calcula-se os respectivos valores verdade das subfórmulas
de φ começando com as subfórmulas mais simples, as fórmulas atômicas, e prose-
guindo com as fórmulas mais complexas. A última coluna contém os 2n possı́veis
valores verdade da própria fórmula φ, a subfórmula mais complexa de φ. Se todos
estes valores são 1, então φ é válida. Se todos os valores são 0, então φ é insa-
tisfatı́vel. Finalmente, se existem valorações que satisfazem φ e outras que não a
satisfazem, então ela é satisfatı́vel e não válida.

Exercı́cio 3.18 Apresente a tabela verdade para x → (y ∨ z) → (y ∧ z) e identi-


fique as diferentes valorações envolvidas.

3.2.1 Consequência Lógica


Intuitivamente, uma proposição B é consequência lógica de um conjunto X de
proposições se em cada “circunstância”, “situação”ou em cada “mundo possı́vel”onde
X é verdadeiro a proposiçõa B também é verdadeira. Na Lógica Proposicional, os
conceitos abstratos de “circunstância”, “mundo possı́vel”etc. são modelados pela
noção de valoração.
Exemplo:
“Ou chove ou o céu está azul. Se chove, então não faz sol. Logo, se faz sol,
então o céu está azul.”

15
Vamos formalizar este argumento na Lógica Proposicional. Seja x a variável
que representa a proposição “Chove.”(mais preciso, x é a variável de proposição
que contém o valor verdade da proposição “Chove.”), y a variável que repre-
senta “O céu está azul.”, e z a variável que contém o valor da proposição “Faz
sol.”. Então, das premissas (x ∨ y) ∧ ¬(x ∧ y) e x → ¬z podemos tirar a
conclusão z → y. A corretude deste raciocı́nio (desta consequência lógica) é
justificada pelo fato que cada valoração que é modelo de (x ∨ y) ∧ ¬(x ∧ y)
e x → ¬z também é modelo de z → y. Expressamos este fato pela notação:
{(x ∨ y) ∧ ¬(x ∧ y), x → ¬z} ⊩ z → y. ⊩ é um sı́mbolo da nossa metalinguagem
e representa a relação da consequência lógica.

A noção intuitiva da consequência lógica (argumento lógico) é formalizada


pela definição seguinte.

Definição 3.19 Uma fórmula ψ é consequência lógica de um conjunto Φ de fórmulas,


notação: Φ ⊩ ψ, se M od(Φ) ⊆ M od({ψ}).4 Se Φ ⊩ ψ, então Φ é dito conjunto
de premissas e ψ é dita conlusão. Se o conjunto de premissas é vazio, então es-
crevemos ⊩ ψ em lugar de ∅ ⊩ ψ. Se o conjunto de premissas Φ é finito e
não-vazio, digamos Φ = {φ1 , ..., φn }, então simplificamos notação escrevendo
φ1 , ..., φn ⊩ ψ. Φ, φ ⊩ ψ usamos como abreviação para Φ ∪ {φ} ⊩ ψ. Se ψ não
é consequência lógica de Φ, então escrevemos Φ ⊮ ψ.

Note que Φ ⊮ φ é, pela definição, a negação lógica da condição Φ ⊩ φ. Isto


é, Φ ⊮ φ significa M od(Φ) ⊈ M od({φ}), isto é, existe uma valoração v ∈ 2V tal
que v ⊨ Φ e v ⊭ φ.

Quais são os modelos do conjunto vazio? Em outras palavras, o que é M od(∅)?


Pela Definição 3.12, uma valoração v satisfaz o conjunto vazio ∅ sse5 v ⊨ φ para
toda φ ∈ ∅. A segunda condição é equivalente à seguinte implicação (*): Se
φ ∈ ∅, então v ⊨ φ. Isto é, v ⊨ ∅ sse a implicação (*) é verdadeira. Obviamente,
a premisa φ ∈ ∅ da implicação (*) é falsa. Portanto, toda a implicação (*) é ver-
dadeira. Isto vale para qualquer valoração v. Logo, v ⊨ ∅ para qualquer v ∈ 2V ,
isto é, M od(∅) = 2V . Este fato ajudará na prova do exemplo (i) a seguir.

Exemplo 3.20 (i) ⊩ φ sse φ é válida.

(ii) {φ} ⊩ φ ∨ ψ
4
Observe que a relação da consequência lógica é uma relação ⊩⊆ P ow(F m) × F m.
5
Relembre que usamos “sse”como abreviação de “se e somente se”; alternativamente usamos
também o sı́mbolo ⇔ para expressar equivalência (bicondicional) na nossa metalinguagem.

16
(iii) {φ, φ → ψ} ⊩ ψ

(iv) {φ → ψ} ⊩ (χ ∨ φ) → (χ ∨ ψ)

(v) {(φ ∧ ψ) → χ, ϑ → ψ} ⊩ (φ ∧ ϑ) → χ

(vi) v ⊨ φ1 ∧ ... ∧ φn ⇔ v ⊨ {φ1 , ..., φn }

Vamos demonstrar, de forma exemplar, a validade dos itens (i), (iv) e (v) acima.
(i): Temos que mostrar uma ida “⇒”e uma volta “⇐”.
“⇒”: Seja ⊩ φ verdadeiro. Isto é, se uma valoração v satisfaz o conjunto vazio,
então v satisfaz φ. Mas vimos na discussão acima que M od(∅) = 2V , ou seja,
toda valoração satisfaz o conjunto vazio. Logo, toda valoração satisfaz φ, e por-
tanto φ é uma tautologia.
“⇐”: Agora supomos que φ seja uma tautologia. Isto é, M od(φ) = 2V . Mas
então M od(∅) = 2V ⊆ M od(φ), isto é, ⊩ φ.
(iv): Queremos mostrar o seguinte: para qualquer v ∈ 2V , se v ⊨ {φ → ψ}, então
v ⊨ (χ ∨ φ) → (χ ∨ ψ). Seja então v ∈ 2V uma valoração tal que v ⊨ {φ → ψ}.
Isto é, v ⊨ φ → ψ. Para mostrar que isso implica v ⊨ (χ ∨ φ) → (χ ∨ ψ), supo-
mos v ⊨ χ ∨ φ. Como estamos diante de uma disjunção, temos que considerar dois
casos. Primeiro caso: v ⊨ χ. Então segue imediatamante v ⊨ χ ∨ ψ, para qualquer
fórmula ψ. Segundo caso: v ⊨ φ. Agora recorremos à hipótese v ⊨ φ → ψ que
nos dá v ⊨ ψ, já que v ⊨ φ. Logo, v ⊨ χ ∨ ψ. Então, concluı́mos que v ⊨ χ ∨ φ
implica v ⊨ χ ∨ ψ. Isto é equivalente a v ⊨ (χ ∨ φ) → (χ ∨ ψ).
(v) Seja v ∈ 2V tal que v ⊨ {(φ ∧ ψ) → χ, ϑ → ψ}. Temos que mostrar que isto
implica v ⊨ (φ ∧ ϑ) → χ. Para isto, supomos v ⊨ (φ ∧ ϑ). Então v ⊨ φ e v ⊨ ϑ.
Pela hipótese v ⊨ ϑ → ψ obtemos v ⊨ ψ. Logo, v ⊨ φ ∧ ψ. Então pela hipótese
v ⊨ (φ ∧ ψ) → χ obtemos v ⊨ χ. Logo, v ⊨ (φ ∧ ϑ) → χ. Q.E.D.

Temos agora três sı́mbolos de implicação: →, ⊩ e ⇒. O primeiro é um sı́mbolo


da linguagem de objeto, os dois restantes são sı́mbolos da nossa metalinguagem.
O seguinte teorema mostra que existe uma ı́ntima ligação entre ⊩ e →.

Teorema 3.21 (Teorema da Dedução) Sejam ψ, φi ∈ F m, 1 ≤ i ≤ n, e Φ ⊆


F m. Então

Φ ∪ {φ1 , ..., φn } ⊩ ψ ⇐⇒ Φ ⊩ φ1 ∧ ... ∧ φn → ψ.

Demonstração. Para provar o Teorema, temos que mostrar uma ‘ida’ e uma
‘volta’.
“⇒”: Supomos que consequência lógica da parte esquerda se dá. Seja v ∈ 2V tal

17
que v ⊨ Φ. Queremos mostrar que isto implica v ⊨ φ1 ∧ ... ∧ φn → ψ. Para isto,
supomos v ⊨ φ1 ∧ ... ∧ φn que é equivalente a v ⊨ {φ1 , ..., φn }. Então temos que
v ⊨ Φ ∪ {φ1 , ..., φn }. A hipótese nos dá v ⊨ ψ. Logo, v ⊨ φ1 ∧ ... ∧ φn → ψ e a
consequência lógica do lado direito é satisfeita.
“⇐”: Agora supomos que o lado direito seja verdadeiro. Seja v ∈ 2V tal que
v ⊨ Φ ∪ {φ1 , ..., φn }. Queremos mostrar que isto implica v ⊨ ψ. Temos em parti-
cular: v ⊨ Φ. Pela hipótese, isto implica v ⊨ φ1 ∧ ... ∧ φn → ψ. Como também
temos que v ⊨ φ1 ∧ ... ∧ φn , segue que v ⊨ ψ. Logo, Φ ∪ {φ1 , ..., φn } ⊩ ψ. Q.E.D.

Um importante caso especial do teorema se dá quando Φ = ∅. Neste caso, o


teorema diz que φ1 , ..., φn ⊩ ψ sse a fórmula φ1 ∧ ... ∧ φn → ψ é válida. Como a
validez de uma fórmula é decidı́vel, segue que a relação de conseqüência lógica é
decidı́vel para conjuntos finı́tos de premissas. Isto é, existe um algoritmo que para
quaisquer fórmulas φ1 , ..., φn , ψ computa a resposta à pergunta: φ1 , ..., φn ⊩ ψ?

Teorema 3.22 (Propriedades da relação da consequência lógica) Para todos os


Φ, Φ′ ⊆ F m e φ, ψ ∈ F m, o seguinte é verdadeiro.

• Φ ⊩ ψ, para todo ψ ∈ Φ. (Extensividade ou Reflexividade)

• Se Φ ⊆ Φ′ e Φ ⊩ ψ, então Φ′ ⊩ ψ. (Monotonicidade)

• Se Φ′ ⊩ ψ, e Φ ⊩ φ para todo φ ∈ Φ′ , então Φ ⊩ ψ. (Idempotência)

A demonstração é um exercı́cio. Prove também que a monotonicidade já segue


da idempotência e da reflexividade.
Existe uma ligação entre as noções da satisfatibilidade e da consequência lógica.
Uma pode ser caracaterizada pela outra:

Lema 3.23 • Para qualquer conjunto de fórmulas Φ, os enunciados seguintes


são equivalentes:

(i) Φ é satisfatı́vel.
(ii) Para qualquer fórmula contraditória φ, Φ ⊮ φ.
(iii) Existe uma fórmula ψ tal que Φ ⊮ ψ

• Para qualquer conjunto de fórmulas Φ e qualquer fórmula φ, os enunciados


seguintes são equivalentes:

(i) Φ ⊩ φ
(ii) O conjunto Φ ∪ {¬φ} é insatisfatı́vel.

18
Demonstração. (i) implica (ii): Seja v uma valoração que satisfaz Φ. Temos que
v ⊭ φ para qualquer fórmula contraditória φ. Logo, Φ ⊮ φ para qualquer fórmula
contraditória φ.
(ii) implica (iii): Note que (ii) é particularmente verdadeiro no caso que não exis-
tir nenhuma fórmula contraditória. Mas sabemos que existe uma fórmula contra-
ditória: por exemplo ⊥ ou x ∧ ¬x. Então podemos escolher para ψ uma fórmula
contraditória especı́fica. Logo, (iii) segue de (ii).
(iii) implica (i): Se existe uma fórmula ψ tal que Φ ⊮ ψ, então existe uma valoração
que satisfaz Φ e não satisfaz ψ. Em particular, Φ é satisfatı́vel.
Segundo item:
(i) ⇒ (ii): Prova por contraposição. Se Φ ∪ {¬φ} é satisfatı́vel, então existe uma
valoração que satisfaz Φ e ¬φ. Logo, Φ ⊮ φ.
(ii) ⇒ (i): Seja Φ ∪ {¬φ} insatisfatı́vel. Se v é uma valoração que satisfaz Φ,
então v não pode satisfazer também ¬φ. Logo, tal v satisfaz φ. Concluı́mos: Toda
valoração que satisfaz Φ, satisfaz φ. Isto é, Φ ⊩ φ. Q.E.D.

Note que negando enunciados que são equivalentes dois-a-dois resulta nova-
mente em enunciados equivalentes dois-a-dois. Negando os enunciados (i), (ii) e
(iii) do primeiro item do Lema 3.23 resulta na equivalência das asserções seguin-
tes (e numa caracterização da noção de ‘contraditório’ em termos de consequência
lógica):

(i) Φ é contraditório.

(ii) Existe uma fórmula contraditória φ tal que Φ ⊩ φ.

(iii) Para toda fórmula ψ, Φ ⊩ ψ.

3.2.2 Equivalência lógica


Definição 3.24 Dizemos que duas fórmulas φ, ψ são logicamente equivalentes,
notação: φ ≡ ψ, se para qualquer valoração v ∈ 2V : v ⊨ φ ⇔ v ⊨ ψ.

Exemplo 3.25 Sejam φ, ψ, χ quaisquer fórmulas. Então

• φ ∨ ¬φ ≡ ⊤ e φ ∧ ¬φ ≡ ⊥. Em geral, todas as fórmulas válidas são


logicamente equivalentes entre sı́, e analogamente todas as fórmulas insa-
tisfatı́veis.

• φ ∨ φ ≡ φ, φ ∧ φ ≡ φ (Idempotência)

• φ ∧ ψ ≡ ψ ∧ φ, φ ∨ ψ ≡ ψ ∨ φ (Comutatividade)

19
• φ ∧ (ψ ∧ χ) ≡ (φ ∧ ψ) ∧ χ, φ ∨ (ψ ∨ χ) ≡ (φ ∨ ψ) ∨ χ, (Associatividade)

• ¬(φ ∧ ψ) ≡ ¬φ ∨ ¬ψ, ¬(φ ∨ ψ) ≡ ¬φ ∧ ¬ψ (Regras de De-Morgan)

• (φ ∧ ψ) ∨ ψ ≡ ψ, (φ ∨ ψ) ∧ ψ ≡ ψ (Absorção)

• φ ∧ (ψ ∨ χ) ≡ (φ ∧ ψ) ∨ (φ ∧ χ), φ ∨ (ψ ∧ χ) ≡ (φ ∨ ψ) ∧ (φ ∨ χ)
(Distributividade)

• φ ≡ ¬¬φ (Dupla negação)

• φ ∨ ψ ≡ φ e φ ∧ ψ ≡ ψ, se φ é tautologia (Regras de tautologia)

• φ ∨ ψ ≡ ψ e φ ∧ ψ ≡ φ, se φ é contradição (Regras de contradição)

• φ → ψ ≡ ¬ψ → ¬φ (Contraposição)

• ¬φ ≡ φ → ⊥ (Eliminação de ¬)

• φ → ψ ≡ ¬φ ∨ ψ (Eliminação de →)

• φ→ψ →χ≡φ∧ψ →χ

Exemplo 3.26 (a) Mostramos: ¬(φ ∧ ψ) ≡ ¬φ ∨ ¬ψ.

Seja v ∈ 2V . Temos que

v ⊨ ¬(φ ∧ ψ) ⇔ v ⊭ φ ∧ ψ
⇔ v ⊭ φ ou v ⊭ ψ
⇔ v ⊨ ¬φ ou v ⊨ ¬ψ
⇔ v ⊨ ¬φ ∨ ¬ψ

(b) Mostramos: ¬φ ≡ φ → ⊥. Seja v ∈ 2V tal que v ⊨ ¬φ. Então v ⊭ φ.


Logo, v ⊨ φ → ψ para qualquer fórmula ψ, em particular para ψ = ⊥. Agora
supomos que v ∈ 2V tal que v ⊨ φ → ⊥. Como ⊥ é insatisfatı́vel, segue que
v ⊭ φ. Logo, v ⊨ ¬φ.

É fácil mostrar que a relação de consequência lógica é uma relação de equi-


valência.

Exercı́cio 3.27 Revise as noções de relação de equivalência e classes de equi-


valência. Prove o seguinte: Qualquer relação de equivalência R num dado con-
junto A induz uma partição PR em A; e por outro lado, qualquer partição P de A

20
define uma relação de equivalência RP em A cujas classes são exatamente os con-
juntos da partição. Estas transições são inversas uma a outra, isto é, RPR = R
e PRP = P . Portanto, relações de equivalência e partições são apenas “duas
faces da mesma medalha”. Se A é um conjunto e R ⊆ A × A uma relação de
equivalência, então A/R denota o conjunto quociente (a partição formada pelas
classes de equivalência).

Seja A = (A, f1 , ..., fk ) uma álgebra, ou seja, A é um universo de elemen-


tos e f1 , ..., fk são funções fi : Ani → A de aridade ni , i = 1, ..., k. Então
uma relação R ⊆ A × A é dita uma relação de congruência em A se R é uma
relação de equivalência que é compatı́vel com as funções f1 , ..., fk . Esta compa-
tibilidade significa o seguinte: Para qualquer função fi e para quaisquer ni -uplas
(a1 , ..., ani ) e (b1 , ..., bni ) ∈ Ani , se (a1 , b1 ), (a2 , b2 ), ...,(ani , bni ) ∈ R, então
(fi (a1 , ..., ani ), fi (b1 , ..., bni )) ∈ R.

Definição 3.28 Seja A = (A, f1 , ..., fk ) uma álgebra e seja R uma relação de
congruência em A. Então podemos considerar a álgebra quociente de A modulo
R, A/R = (A/R, f1 , ..., fk ) onde as funções fi são definidas da forma seguinte:

fi ([a1 ], ..., [ani ]) := [fi (a1 , ..., ani )].

Aqui denota [b] := {a ∈ A | (a, b) ∈ R} a classe de equivalência de b modulo


R. Note que as funções fi têm a mesma aridade que as funções fi , e elas são bem-
definidas, quer dizer, sua definição é independente dos representantes das classes
de equivalência. De fato, isto é exatamente o que expressa a compatibilidade de R
com as funções fi .

Agora consideramos o conjunto F m como uma álgebra de fórmulas com os co-


nectivos como operações ou funções: Fm = (F m, ¬, ∨, ∧, →, ⊥, ⊤). Exercı́cio:
Prove que a relação ≡ da equivalência lógica é uma relação de congruência em Fm
e que a resultante álgebra quociente Fm/≡ = (F m/≡ , ¬, ∨, ∧, →, ⊥, ⊤) é uma
álgebra Booleana (relembre os axiomas que determinam uma álgebra Booleana)!

Para a prova que ≡ é uma relação de congruência em F m, isto é, que ≡ é


uma relação de equivalência em F m compatı́vel com os conectivos da linguagem,
precisamos o seguinte

Lema 3.29 Se δ1 ≡ θ1 e δ2 ≡ θ2 , então ¬δ1 ≡ ¬θ1 e δ1 □δ2 ≡ θ1 □θ2 , onde


□ ∈ {∨, ∧, →}. Isto é, a relação ≡ é compatı́vel com as operações ¬, ∨, ∧, →.

21
Demonstração. Sejam δ1 ≡ θ1 e δ2 ≡ θ2 . Então para qualquer v ∈ 2V temos
que v(¬δ1 ) = f¬ (v(δ1 )) = f¬ (v(θ1 )) = v(¬θ1 ). Logo, ¬δ1 ≡ ¬θ1 . Também
temos para qualquer v ∈ 2V , v(δ1 ∨ δ2 ) = f∨ (v(δ1 ), v(δ2 )) = f∨ (v(θ1 ), v(θ2 )) =
v(θ1 ∨ θ2 ), logo δ1 ∨ δ2 ≡ θ1 ∨ θ2 , e analogamente para os casos restantes. Q.E.D.

O fato seguinte está ligado às considerações anteriores. Escrevemos ψ[x := φ]


para o resultado da substituição de todas as ocorrências da variável x em ψ pela
fórmula φ. Isto é, a fórmula ψ[x := φ] resulta de ψ substituindo cada x ∈ var(ψ)
por φ. Formalmente, esta noção é definida como segue:

Definição 3.30 Definimos ψ[x := φ] indutivamente na construção de ψ:


(
y, se y ∈ V ∖ {x}
y[x := φ] =
ψ, se y = x
⊥[x := φ] = ⊥
⊤[x := φ] = ⊤
¬χ[x := φ] = ¬(χ[x := φ])
(ψ1 □ψ2 )[x := φ] = (ψ1 [x := φ]□ψ2 [x := φ]), onde □ ∈ {∨, ∧, →}.

Se x ∈ var(ψ), então φ é uma subfórmula de ψ[x := φ] (prova por indução


em ψ). De fato, φ está em cada lugar onde antes estava a variável x ∈ var(ψ).
Então fica intuitivamente claro que a fórmula ψ[x := φ′ ] resulta de ψ[x := φ]
substituindo toda ocorrência da subfórmula φ ∈ sub(ψ[x := φ]) por φ′ . O se-
guinte resultado diz que a substituição de subfórmulas por fórmulas logicamente
equivalentes preserva a equivalência lógica. Isto é, se φ ≡ φ′ e φ ∈ sub(χ), então
substituindo φ por φ′ em χ resultará numa fórmula χ′ tal que χ′ ≡ χ:

Teorema 3.31 Sejam ψ, φ, φ′ ∈ F m. Se φ ≡ φ′ , então ψ[x := φ] ≡ ψ[x := φ′ ].6

Demonstração. Prova por indução em ψ.


Base: Seja ψ atômica, isto é, ψ ∈ V ∪ {⊥, ⊤}. Consideramos o caso ψ = y ∈ V .
Se y = x, então ψ[x := φ] = φ e ψ[x := φ′ ] = φ′ , e o Teorema afirma sua própria
premissa: φ ≡ φ′ . Se y ̸= x, então ψ[x := φ] = ψ ≡ ψ = ψ[x := φ′ ], ou seja, a
afirmação do Teorema novamente é trivial. Esta última equação também vale nos
casos ψ = ⊥ e ψ = ⊤.
Passo indutivo: Seja ψ = ¬χ. Então:
(∗)
¬χ[x := φ] = ¬(χ[x := φ]) ≡ ¬(χ[x := φ′ ]) = ¬χ[x := φ′ ]), onde (*) segue de
6
Aqui χ = ψ[x := φ] e χ′ = ψ[x := φ′ ] no comentário anterior.

22
forma seguinte: pela hı́potese da indução, o Teorema é verdadeiro para fórmulas
menos complexas de ¬χ, em particular temos que: χ[x := φ] ≡ χ[x := φ′ ]);
agora a primeira parte do Lema 3.29 dá ¬(χ[x := φ]) ≡ ¬(χ[x := φ′ ]), ou seja
(*).
Seja ψ = (ψ1 ∨ ψ2 ). Então ψ[x := φ] = (ψ1 ∨ ψ2 )[x := φ] =
(∗)
ψ1 [x := φ] ∨ ψ2 [x := φ] ≡ ψ1 [x := φ′ ] ∨ ψ2 [x := φ′ ] = (ψ1 ∨ ψ2 )[x :=
φ′ ] = ψ[x := φ′ ], onde (*) segue como no caso anterior da hipótese da indução
ψ1 [x := φ] ≡ ψ1 [x := φ′ ] e ψ2 [x := φ] ≡ ψ2 [x := φ′ ] junto ao Lema 3.29.
Os casos restantes são tratados analogamente. Q.E.D.

Exemplo 3.32 Consideramos ψ = u∧(x∨¬z), φ = (y → ¬z) e φ′ = (¬y ∨¬z).


Então φ ≡ φ′ e portanto ψ[u := φ] ≡ ψ[u := φ′ ].

Lema 3.33 Os enunciados seguintes são equivalentes para todas as fórmulas φ, ψ.


(i) φ ≡ ψ
(ii) A fórmula φ ↔ ψ é válida.
(iii) ⊩ φ ↔ ψ
(iv) φ ⊩ ψ e ψ ⊩ φ

Demonstração. Exercı́cio.

Sabemos que a validez de uma fórmula é decidı́vel. Pelo teorema anterior, a


equivalência lógica entre duas fórmulas é decidı́vel.

3.2.3 Formas normais


Consideramos a conjunção φ = φ1 ∧ φ2 ∧ ... ∧ φn e a disjunção ψ = ψ1 ∨ ψ2 ∨
... ∨ ψm . Se n = m = 1, então φ, ψ é dita uma conjunção, disjunção trivial, res-
pectivamente. Também é possı́vel considerar os casos n = m = 0. Nestes casos
falamos da conjunção (da disjunção) vazia, respectivamente. A disjunção vazia é
equivalente a ⊥. Isto pode ser justificado de forma seguinte: uma valoração v satis-
faz uma disjunção sse v satisfaz pelo menos um fórmula constituinte da disjunção.
Como no caso da disjunção vazia não existe nenhuma fórmula constituinte, v não
satisfaz a disjunção. A disjunção vazia não possui nenhum modelo. De forma
análoga, se justifica que a conjunção vazia é equivalente à fórmula ⊤. Qualquer
valoração é modelo da conjunção vazia.
Na Definição seguinte consideramos também disjunções e conjunções triviais,
mas sempre não-vazias.

23
Definição 3.34 • Uma fórmula ψ ∈ F m é dita literal, se ψ = x ou ψ = ¬x,
para algum x ∈ V . No primeiro caso, ψ é literal positivo, no segundo caso
é literal negativo.

• Para um literal ψ,
(
¬ψ, se ψ ∈ V
ψ :=
x, se ψ = ¬x

é o literal inverso.

• Uma fórmula φ está em forma normal disjuntiva (FND), se φ = φ1 ∨...∨φn


e φi = ψi,1 ∧ ... ∧ ψi,mi com literais ψi,j , 1 ≤ i ≤ n, 1 ≤ j ≤ mi , onde
n ≥ 1 e mi ≥ 1.

• Uma fórmula φ está em forma normal conjuntiva (FNC), se φ = φ1 ∧...∧φn


e φi = ψi,1 ∨ ... ∨ ψi,mi com literais ψi,j , 1 ≤ i ≤ n, 1 ≤ j ≤ mi , onde
n ≥ 1 e mi ≥ 1.

Exemplo 3.35 As fórmulas x, x1 ∧ ... ∧ xn e x1 ∨ ... ∨ xn estão em FND e FNC.


As fórmulas (x ∧ y ∧ z) ∨ (x ∧ y ∧ ¬z) ∨ (¬x ∧ y ∧ z) ∨ (¬x ∧ ¬y ∧ z), (¬x ∧ z) ∨ x
estão em FND.
As fórmulas ¬(x ∧ z) ∨ (x ∧ y), (x ∧ (y ∨ z)) ∨ (¬x ∧ y) não estão em FND (nem
em FNC).

Encontre outras fórmulas que estão em FNC e fórmulas que não estão em FNC!

Teorema 3.36 Para toda fórmula φ existem fórmulas δ e δ ′ tais que δ ≡ φ ≡ δ ′ , e


δ está em FNC e δ ′ está em FND.

O Teorema pode ser provada, por exemplo, por indução em φ (veja abaixo).
Aqui esboçamos um “algoritmo”que produz uma FNC (uma FND) para uma dada
fórmula φ. A corretude do “algoritmo”é garantida pelo Teorema 3.31 que diz que
podemos substituir qualquer subfórmula de φ por outra logicamente equivalente –
o resultado φ′ será logicamente equivalente a φ.

Input: fórmula φ.
Substituir toda subfórmula ⊥ por x0 ∧ ¬x0 .
Substituir toda subfórmula ⊤ por x0 ∨ ¬x0 .7
7
Outra possibilidade de lidar com os conectivos ⊥ e ⊤ seria admitir estes na Definição 3.34 das
formas normais FNC e FND (como disjunção, conjunção vazia, respectivamente) e não considerar
as suas substituições neste algoritmo.

24
Substituir todas as subfórmulas ψ → χ por ¬ψ ∨ χ.
Substituir todas as subfórmulas ¬¬ψ por ψ.
Substituir todas as subfórmulas ¬(ψ ∧ χ) por (¬ψ ∨ ¬χ).
Substituir todas as subfórmulas ¬(ψ ∨ χ) por (¬ψ ∧ ¬χ).
Substituir todas as subfórmulas ψ ∨ (χ ∧ ξ) por (ψ ∨ χ) ∧ (ψ ∨ ξ).
Substituir todas as subfórmulas (ψ ∧ χ) ∨ ξ por (ψ ∨ ξ) ∧ (χ ∨ ξ).

A ordem das substituições neste “algoritmo”não é relevante. O algoritmo ter-


mina quando não existem mais subfórmulas que possam ser substituidas. Note que
por associatividade dos conectivos ∨ e ∧ também podemos escrever ψ ∨ χ ∨ ξ em
lugar de ψ ∨ (χ ∨ ξ), e analogamente para a conjunção.
Output: A fórmula resultante δ. Ela está em FNC, e, pelo Teorema 3.31, δ ≡ φ.

Exercı́cio 3.37 Modifique o algoritmo de tal forma que a fórmula resultante δ ′ é


uma FND de φ.

Exemplo 3.38 (a)

x → ¬(y ∨ ¬z) ≡ x → (¬y ∧ ¬¬z)


≡ ¬x ∨ (¬y ∧ z), FND
≡ (¬x ∨ ¬y) ∧ (¬x ∨ z). FNC

(b)

x → ¬(y ∧ ¬z) ≡ x → (¬y ∨ ¬¬z)


≡ ¬x ∨ (¬y ∨ z)
≡ ¬x ∨ ¬y ∨ z. FND e FNC

(c)

p ∨ (q → ¬(p ∨ r)) ≡ p ∨ (¬q ∨ ¬(p ∨ r))


≡ p ∨ ¬q ∨ ¬(p ∨ r)
≡ p ∨ ¬q ∨ (¬p ∧ ¬r), FND
= ψ ∨ (¬p ∧ ¬r), onde ψ = (p ∨ ¬q)
≡ (ψ ∨ ¬p) ∧ (ψ ∨ ¬r)
= (p ∨ ¬q ∨ ¬p) ∧ (p ∨ ¬q ∨ ¬r). FNC

Embora não seja necessário, a última forma normal pode ser simplificada para
(p ∨ ¬q ∨ ¬r) que está em FNC e em FND. De fato, p ∨ ¬p ≡ ⊤, ⊤ ∨ ¬q ≡ ⊤ e
⊤ ∧ (p ∨ ¬q ∨ ¬r) ≡ (p ∨ ¬q ∨ ¬r).

25
Exercı́cio 3.39 Apresente mais exemplos de transformações de fórmulas em FNC
e FND.

Definição 3.40 Se diz que uma fórmula está em forma normal (FN) se ela não
contém conectivos além de ¬, ∨, ∧, e subfórmulas negadas ocorrem somente na
forma ¬x, onde x ∈ V .

Obviamente, toda fórmula em FNC ou em FND está também em FN.

Lema 3.41 Se φ está em FN, então ¬φ é logicamente equivalente a uma fórmula


em FN.

Demonstração. Indução em φ.
Base. Se φ = x ∈ V , então ¬x está em FN. Esse é o unico caso a considerar.
Passo indutivo. Se φ = ¬ψ, então necessariamente ψ = x ∈ V . Temos que
¬φ = ¬¬x ≡ x e x está em FN.
Se φ = ψ ∨ χ, então ¬φ ≡ ¬ψ ∧ ¬χ. Como φ está em FN, ψ e χ também
estão. Pela hipótese da indução, o Lema vale para ψ e χ, logo ¬ψ e ¬χ são
logicamente equivalentes a fórmulas δ1 e δ2 que estão em FN, respectivamente.
Então ¬φ ≡ δ1 ∧ δ2 e essa última fórmula também está em FN. O caso φ = ψ ∧ χ
segue analogamente. Não há mais casos a considerar. Q.E.D.

Lema 3.42 Toda fórmula é logicamente equivalente a uma fórmula que está em
FN.

Demonstração. Seja φ ∈ F m. Mostramos a afirmação por indução em φ.


Base. φ ∈ V ∪ {⊥, ⊤}. Se φ = x ∈ V , então não precisamos mostrar mais nada.
Se φ = ⊥, então φ ≡ x0 ∧ ¬x0 ; e se φ = ⊤, então φ ≡ x0 ∨ ¬x0 . Essas fórmulas
estão em FN, respectivamente.
Passo indutivo. Seja φ = ¬ψ. Pela hipótese da indução, ψ é logicamente equiva-
lente a uma fórmula χ que está em FN. Pelo Lema 3.41, ¬χ ≡ δ para uma δ que
está em FN. Mas então φ = ¬ψ ≡ ¬χ ≡ δ.
Seja φ = φ1 ∨ φ2 . Pela hipótese da indução, tanto φ1 como φ2 são logicamente
equivalentes a fórmulas ψ1 , ψ2 em FN, respectivamente. Mas então segue que
φ ≡ ψ1 ∨ ψ2 e essa última fórmula está em FN. O caso φ = φ1 ∧ φ2 segue analo-
gamente.
Seja φ = φ1 → φ2 . Então φ ≡ ¬φ1 ∨ φ2 . Pela hipótese da indução, φ1 , φ2 são
logicamente equivalentes a fórmulas ψ1 , ψ2 em FN, respectivamente. Pelo Lema
3.41 segue que ¬ψ1 ∨ ψ2 é logicamente equivalente a uma fórmula ¬ψ1′ ∨ ψ que

26
está em FN, e essa última é logicamente equivalente a φ. Q.E.D.

O “algoritmo”acima fornece apenas uma justificativa informal que toda fórmula


possui fórmulas equivalentes que estão em FNC e FND, respectivamente. A seguir
vamos provar esse resultado formalmente.

Demonstração formal do Teorema 3.36. Seja φ ∈ F m. Pelo Lema 3.42, φ é


logicamente equivalente a uma fórmula que está FN. Então podemos supor que a
própria φ está em FN. A seguir provaremos simultaneamente a existência de uma
FND e de uma FNC logicamente equivalentes a φ por indução na construção de φ.
Base: Seja φ uma fórmula atômica. Como ⊥, ⊤ ∈ / sub(φ), podemos supor que
φ = x ∈ V . Qualquer variável já está trivialmente em FNC e em FND.
Passo da indução: Seja φ = ¬ψ. Como φ está em FN, segue que ψ = x ∈ V .
Essa fórmula está em FNC e em FND.
Seja φ = ψ ∨ χ. Por hipótese da indução existem fórmulas ψ1 ≡ ψ ≡ ψ2 e
χ1 ≡ χ ≡ χ2 taisWque ψ1 e χ1 estão W em FND, e ψ2 e χ2 estão em FNC. Logo
φ ≡ ψ1 ∨ χ1 = ( ni=1 ψ1,i ) ∨ ( m j=1 χ1,j ), onde as ψ1,i e χ1,j são conjunções
de literais. Então essa última fórmula já está em FND (note que por associativi-
dade podemos colocar Vn os parênteses
Vmem lugares diferentes). Também temos que
φ ≡ ψ2 ∨ χ2 = ( i=1 ψ2,i ) ∨ ( j=1 χ2,j ), onde as ψ2,i e χ2,j são disjunções
Vnliterais.
de Vm Por distributividade, essa última fórmula é logicamente equivalente a
i=1 j=1 (ψ2,i ∨ χ2,j ). Essa última está em FNC.
Finalmente, o caso φ = ψ ∧ χ segue de forma dual ao caso anterior. Note que
o caso da implicação não precisamos considerar já que o conectivo → não ocorre
em φ que está em FN. Q.E.D.

3.2.4 Implementação em Haskell


A linguagem de programação Haskell segue o paradigma da programação funcio-
nal. Isto significa basicamente que funções não podem apenas ser definidas e apli-
cadas (vistas como programas) mas que funções também são tratadas como dados,
parâmetros e resultados de programas (funções). Uma das grandes vantagens é que
estados internos de processos computacionais e suas transformações (efeitos cola-
terais) são irrelevantes, e descições matemáticas de problemas geralmente podem
ser traduzidas com bastante facilidade para o código da linguagem. Essas propri-
edades aumentam a segurança e corretude dos programas e facilitam a geração de
código genérico. As linguagens funcionais baseiam-se no cálculo lambda (desen-
volvido por Alonzo Church) que tem como filosofia que todos os objetos existentes
são funções.

27
Nosso objetivo aqui é implementar umas funções sintáticas simples sobre fórmulas
da lógica proposicional. Para isso precisamos uma estrutura de dados apropri-
ada que representa fórmulas. Haskell providencia a opção de gerar estruturas
algébricos de dados. A estrutura algébrica (tipo algébrico de dado) de uma fórmula
da lógica proposicional pode ser definida como segue:

data Formula = V Char | Bot | Top | Neg (Formula) | Impl (Formula) (Formula)
| Con (Formula) (Formula) | Dis (Formula) (Formula)

Essa declaração que usa a palavra chave ’data’ define um novo tipo de dados
chamado de Formula. Formula assume aqui o papel de um construtor de tipo. V,
Bot, Top, Neg (Formula a), etc. são construtores de valores. Para esses construtores
podemos escolher qualquer nome que começa com letra maiúscula. O construtor
V Char indica que as variáveis possuem o tipo Char, ou seja, são letras (charac-
ters) anotadas da forma ’x’, ’y’, ’u’, ’a’, etc. Os traços — representam alternativas.
Então, uma fórmula pode ser uma variável do tipo Char ou Bot ou Top ou uma
negação de uma fórmula (Neg (Formula a)), etc. Note que essa declaração do tipo
Formula segue diretamente nossa definição indutiva (recursiva) de fórmulas. Para
que possamos visualizar instâncias do tipo de dados Formula e fazer comparações
entre essas instâncias, colocamos ainda o seguinte: deriving (Show, Eq). Isto ga-
rante que o tipo Formula faz parte das classes de tipos Show e Eq.
Não podemos dar aqui uma introdução à linguagem Haskell nem à programação
funcional. O aluno interessado deve procurar material apropriado na internet como
por ex. o livro: Learn You a Haskell for Great Good! de Miran Lipovaca.

O Glasgow Haskell Compiler pode ser baixado a partir do site


https://www.haskell.org/
Código fonte em Haskell pode ser digitado no editor wordpad, os arquivos
devem ser gravados no formato nome.hs Então eles podem ser carregados direta-
mente pelo compilador GHCi, Prelude. Esse possui também um modo interativo
que permite digitar e experimentar instruções, verificar o tipo de funções (usando
o comando :t seguido pela função em questão), etc.
No anexo a este scipt apresentamos algumas funções em Haskell que permitem
calcular funções definidas na disciplina como o conjunto de todas as subfórmulas
de uma dada fórmula, a FNC e a FND de uma dada fórmula. Notem que o código
Haskell segue exatamente as definições formais dessas noções apresentadas no
script. Essa é uma das grandes vantagens de Haskell (e da programação funci-
onal em geral): funções/definições matemáticas geralmente podem ser passadas
imediatamente para o código da linguagem.

28
Exercı́cio: Teste e experimente as funções Haskell dadas no anexo e verifique
a corretude dos resultados (conjunto de subfórmulas, formas normais, FNC, FND).

3.2.5 Bases de conectivos


Vimos que a semântica de um conectivo c com aridade n é uma função booleana
fc : {0, 1}n → {0, 1}. A cardinalidade de {0, 1}n , ou seja, o número de n-uplas
com elementos 0, 1 é 2n . Uma função booleana de aridade n atribui a cada ele-
n
mento de {0, 1}n (a cada n-upla) o valor 0 ou 1. Há 22 possibilidades de fazer
n
isso. Logo, existem 22 funções booleanas de aridade n.8 No entanto, nem toda
função booleana corresponde a um dos nossos conectivos. Por exemplo, existem
22 = 4 funções booleanas de aridade 1, mas nossa linguagem contém apenas um
2
conectivo de aridade 1, a dizer, a negação ¬. Existem 22 = 16 funções booleanas
de aridade 2, mas temos apenas 3 conectivos de aridade 2. Isto significa que po-
demos definir novos conectivos que correspondem às funções booleanas restantes.
Por exemplo, sejam ↑ e ↓ os conectivos de aridade 2 dados pelas funções booleanas
f∗ : {0, 1} × {0, 1} → {0, 1}, onde ∗ ∈ {↑, ↓}, que são definidas como segue:
(
0, se x = y = 1
f↑ (x, y) =
1, caso contrário

(
1, se x = y = 0
f↓ (x, y) =
0, caso contrário

Estes conectivos são conhecidos como NAND (“not and”) e NOR (“not or”),
respectivamente (note que as funções f↑ , f↓ negam os respectivos resultados da
conjunção, da disjunção). De forma semelhante podemos definir conectivos de
qualquer aridade que correspondem a respectivas funções booleanas. Por exemplo,
a função fc : {0, 1}3 → {0, 1} definida por

(
0, se x = y = z = 0
fc (x, y, z) =
1, caso contrário

descreve o comportamento de um conectivo c de aridade 3. Poderı́amos intro-


duzir novas fórmulas do tipo c(φ, ψ, χ) na nossa linguagem de objeto que repre-
sentam a aplicação do conectivo c a fórmulas dadas φ, ψ e χ.
8
Isto pode ser verificado de forma mais geral. Se A e B são conjuntos finitos, então |AB | =
|B|
|A| , onde AB é o conjunto de todas as funções de B para A. Exercı́cio: Prove isso por indução
na cardinalidade de B !

29
Exercı́cio 3.43 Defina os restantes 3 conectivos (fora de ¬) que correspondem às
funções booleanas de aridade 1.

Problema: A introdução de novos conectivos aumenta o poder expressivo


da nossa linguagem de objeto? Ou seja, introduzindo novos conectivos obtemos
fórmulas que não são logicamente equivalentes a fórmulas que contêm somente
os conectivos originais ⊥, ⊤, ¬, ∨, ∧, → ? A resposta é “não”, como mostraremos
abaixo. Surprendentemente, toda fórmula que é construida mediante conectivos
quaisquer (e de qualquer aridade) é logicamente equivalente a uma fórmula que
contém apenas os conectivos originais. Na verdade, é possı́vel provar um resultado
ainda mais forte como veremos mais em diante.

Definição 3.44 Um conjunto C = {c1 , ..., cn } de conectivos é dito base de conec-


tivos, se toda fórmula de F m é logicamente equivalente a uma fórmula que contém
apenas conectivos de C.

Exemplo 3.45 {¬, ∨, ∧} é uma base de conectivos. Isto segue imediatamente do


Teorema 3.36: Toda φ ∈ F m é logicamente equivalente a uma fórmula que está
em FNC (em FND). Obviamente, todos os conectivos de uma forma normal são do
conjunto {¬, ∨, ∧}.
Disso segue que {¬, ∨}, {¬, ∧}, {¬, →} e {⊥, →} são bases de conectivos. De
fato, supondo que {¬, ∨, ∧} é base, podemos eliminar a conjunção considerando
a equivalência φ ∧ ψ ≡ ¬(¬φ ∨ ¬ψ). Isto é, dada uma fórmula na base {¬, ∨, ∧},
podemos substituir todas as subfórmulas do tipo φ ∧ ψ por ¬(¬φ ∨ ¬ψ). O re-
sultado será uma fórmula equivalente que contém apenas conectivos do conjunto
{¬, ∨}. Logo, este conjunto também é base.

Exercı́cio 3.46 Prove que

• {¬, ∧} é base de conectivos supondo que {¬, ∨, ∧} é base

• {¬, →} é base supondo que {¬, ∧} é base (ou supondo que {¬, ∨} é base)

• {⊥, →} é base supondo que {¬, →} é base.

Surpreendentemente, o conjunto {↑} é base de conectivos. Isto é, qualquer


φ ∈ F m da nossa lógica original é logicamente equivalente a uma fórmula cons-
truı́da apenas com o conectivo ↑. Prova: Sabemos que {¬, ∨, ∧} é base. Seja φ
uma fórmula nesta base de conectivos. Então substituimos todas as subfórmulas
de φ por fórmulas equivalentes conforme as equivalências seguintes cuja validade
se verifica facilmente: ¬χ ≡ (χ ↑ χ), (χ ∧ ψ) ≡ ((χ ↑ ψ) ↑ (χ ↑ ψ)) e

30
(χ ∨ ψ) ≡ ((χ ↑ χ) ↑ (ψ ↑ ψ)).

Vamos mostrar que {→} não é base de conectivos. Para ver isso, é sufici-
ente provar que qualquer fórmula φ construı́da apenas com o conectivo → é satis-
fatı́vel. Então tal φ não pode ser logicamente equivalente a uma fórmula contra-
ditória como ⊥ ou x ∧ ¬x.
Seja F m→ ⊆ F m o menor conjunto que contém V e é fechado sob a condição
seguinte: se φ, ψ ∈ F m→ , então (φ → ψ) ∈ F m→ . Provamos por indução nas
fórmulas de F m→ que todas elas são satisfatı́veis.
Base da indução. Seja φ ∈ V . Então a afirmação é trivial: uma variável sempre é
satisfatı́vel. Note que este é o único caso a considerar na base já que ⊥, ⊤ ∈
/ F m→ .
Passo da indução. Seja φ = (ψ → χ). Temos que achar um modelo para φ. Se-
gundo a hipótese da indução, ψ e χ são satisfatı́veis. Em particular, existe v ∈ 2V
tal que v ⊨ χ. Pela semântica do conectivo →, obtemos v ⊨ ψ → χ. Q.E.D.

Ainda estamos devendo a prova de que conectivos novos não aumentam o po-
der expressivo da linguagem original. Vamos demonstrar que uma fórmula con-
tendo conectivos quaisquer (inclusive conectivos novos e de qualquer aridade) é
logicamente equivalente a uma FND (ou a uma FNC). Isto é, apresentaremos uma
prova mais formal para a Proposição 3.36.

Definição 3.47 Seja φ ∈ F m e var(φ) ⊆ {x1 , ..., xn }. Dizemos que φ representa


a função booleana f (de aridade n), se v(φ) = f (v(x1 ), ..., v(xn )) para qualquer
valoração v ∈ 2V .

Note que φ representa exatamente uma função (por que?). Exemplo: x1 ∧ x2


representa a função f∧ , ¬x1 ∨ x2 e ¬(x1 ∧ ¬x2 ) representam a função f→ , (x1 →
x2 ) → x2 representa f∨ , etc.

Para x ∈ V definimos x1 := x e x0 := ¬x. Por indução em n ≥ 1 se mostra


facilmente que para todos os u1 , ..., un ∈ {0, 1} temos que

(1) v(xu1 1 ∧ ... ∧ xunn ) = 1 ⇔ v(x1 ) = u1 , ..., v(xn ) = un .

Teorema 3.48 Toda função booleana f : {0,W1}n → {0, 1} (n ≥ 0) pode ser re-
presentada por uma FND, a dizer, por φ := f (u1 ,...,un )=1 xu1 1 ∧ ... ∧ xunn .9 Dual-
9
Se n = 0, então f = 0 or f = 1. No primeiro caso, φ é a disjunção vazia ⊥ que podemos
entender como uma FND (de fato, é equivalente à FND x0 ∧ ¬x0 ). No segundo caso, φ é uma
disjunção trivial da conjunção vazia ⊤ que também podemos entender como uma FND (é equivalente
à FND x0 ∨ ¬x0 ). Se n > 0 e f nunca assume o valor 1, então φ é a disjunção vazia ⊥, equivalente
a uma FND. Dualmente, consideramos esses casos para ψ.

31
V f¬ (u1 )
mente, f pode ser representada por uma FNC ψ := f (u1 ,...,un )=0 x1 ∨ ... ∨
f (u )
xn¬ n .

Demonstração. Para dada função f seja φ como na afirmação do Teorema, e


seja v ∈ 2V . Então: v(φ) = 1 sse [existem u1 , ..., un t.q. v(xu1 1 ∧ ... ∧ xunn ) = 1
e f (u1 , ..., un ) = 1] sse [existem u1 , ..., un t.q. v(x1 ) = u1 , ..., v(xn ) = un e
f (u1 , ..., un ) = 1] (conforme a equivalência (1) acima) sse f (v(x1 ), ..., v(xn )) =
1. Dessa equivalência segue que v(φ) = f (v(x1 ), ..., v(xn )), ou seja, φ representa
f . Analogamente para a representação de f por ψ. Q.E.D.

O Teorema implica que para qualquer fórmula com conectivos quaisquer (in-
clusive conectivos novos de qualquer aridade) existe uma FND (FNC) logicamente
equivalente. Em particular, segue a Proposição 3.36.

3.3 Sistemas Dedutivos


3.3.1 Axiomatização — um cálculo no estilo de Hilbert
Trabalhamos com a base de conectivos {¬, →}. F m denota agora o conjunto
de fórmulas na base {¬, →}. Tendo em vista as equivalências lógicas correspon-
dentes, os conectivos restantes podem ser recuperados pelas definições seguintes:
⊤ := (x0 → x0 ), ⊥ := ¬⊤, φ ∨ ψ := ¬φ → ψ, φ ∧ ψ := ¬(φ → ¬ψ).

Uma fórmula é um axioma sse ela tem a forma de um dos esquemas (A1) –
(A4) a seguir:

(A1) (φ → ψ → χ) → (φ → ψ) → (φ → χ)
(A2) φ → ψ → φ
(A3) ¬φ → φ → ψ
(A4) (φ → ψ) → (¬φ → ψ) → ψ

Note que (A1)–(A4) são esquemas de axiomas, isto é, representam formas ge-
rais de fórmulas que consideramos axiomas. Por exemplo, x1 → (x4 → x1 ) é um
axioma do esquema (A2), e ¬(x2 → ¬x1 ) → (x2 → ¬x1 ) → x5 é um axioma do
esquema (A3). Dizemos que estes axiomas são instâncias de (A2), (A3), respecti-
vamente.

A regra de inferência é o Modus Ponens (MP): “Se temos φ e φ → ψ, então


inferimos ψ.” A fórmula ψ é a conclusão ou o resultado do Modus Ponens aplicado
às premissas φ e φ → ψ.

32
Definição 3.49 Uma derivação (ou prova, dedução) de uma fórmula φ (conclusão)
a partir de um conjunto Φ de fórmulas (premissas) é uma sequência finita de
fórmulas φ1 , ..., φn = φ tal que para cada i = 1, 2, ..., n, a fórmula φi é obtida
através de uma das alternativas seguintes:

• φi é um axioma ou

• φi ∈ Φ (isto é, φi é uma premissa) ou

• φi é resultado de uma aplicação do Modus Ponens a fórmulas φk e φj =


φk → φi que ocorrem em posições anteriores na sequência: 1 ≤ j, k < i.

Se existe uma prova de φ a partir de Φ, então escrevemos Φ ⊢H φ e dizemos que φ


é derivável a partir de Φ (no cálculo de Hilbert). Se não existe tal derivação, então
anotamos Φ ⊬H φ. Se φ é derivável a partir do conjunto vazio, então escrevemos
⊢H φ e chamamos φ de teorema.

Em situações quando está claro que estamos trabalhando com o cálculo de Hil-
bert (existem outros cálulos) podemos escrever também Φ ⊢ φ em lugar de Φ ⊢H φ
simplificando notação.

O objetivo é provar o seguinte:

(2) Φ ⊢H φ ⇔ Φ ⊩ φ,

para qualquer Φ ∪ {φ} ⊆ F m. Isto é, queremos mostrar que a noção sintática da
derivação ⊢H representa ou simula exatamente a noção semântica da consequência
lógica ⊩. Se a ida de (2) se verifica, ou seja, se qualquer derivação corresponde a
uma consequência lógica, então o cálculo é dito correto. O cálculo é dito completo
se toda consequência lógica pode ser representada por uma derivação, isto é, se a
volta da equivalência (2) se verifica. Note que (2) implica particularmente que os
teoremas são precisamente as tautologias (considere o caso Φ = ∅).

Teorema 3.50 (Corretude do cálculo) O cálculo é correto, isto é, Φ ⊢H φ im-


plica em Φ ⊩ φ.

Demonstração. Sabemos que todos os axiomas são tautologias (exercı́cio!). Além


disso, a regra do Modus Ponens é correto no sentido seguinte: Para qualquer
valoração v, se v ⊨ φ e v ⊨ φ → ψ, então v ⊨ ψ.
Supomos que Φ ⊢H φ. Isto é, existe uma derivação φ1 , ..., φn = φ de φ a partir
de Φ. Provaremos a afirmação por indução no comprimento n da derivação.
Base. n = 1. Então, por definição, φ ∈ Φ ou φ é um axioma. Nos dois casos segue

33
que Φ ⊩ φ (relembre que todos os axiomas são tautologias).
Passo da indução. Pela hipótese da indução, a afirmação do Teorema é verdadeira
para todas as derivações de comprimento ≤ n. Seja φ1 , ..., φn , φn+1 = φ uma
derivação de comprimento n + 1. Se φ é um axioma ou φ ∈ Φ, então podemos
argumentar exatamente como na base da indução concluindo Φ ⊩ φ. Vamos supor
então que φ é o resultado da aplicação do Modus Ponens a fórmulas φj = φk → φ
e φk , com j, k ≤ n. Como as respectivas derivações têm comprimento ≤ n, pode-
mos aplicar a hipótese da indução (duas vezes). Isto resulta em Φ ⊩ φj e Φ ⊩ φk .
Da definição da relação de consequência segue Φ ⊩ φ. Q.E.D.

Observação 3.51 Se Φ ⊢H φ e Φ ⊢H φ → ψ, então obtemos Φ ⊢H ψ. Justifi-


cativa: Pela hipótese temos derivações de φ e de φ → ψ a partir de Φ, respec-
tivamente. Concatenando essas duas sequências (derivações) resulta e uma nova
derivação com o mesmo conjunto de premissas Φ. Como nesta nova derivação
ocorrem as fórmulas φ e φ → ψ, podemos aplicar o Modus Ponens inferindo ψ.
Isto é, Φ ⊢H ψ. Usaremos este argumento com frequência.

Teorema 3.52 (Finitude do cálculo) Se Φ ⊢H φ, então existe um subconjunto


finito ∆ ⊆ Φ tal que ∆ ⊢H φ.

Demonstração. Indução no comprimento n da derivação.


Base. n = 1. Então, φ ∈ Φ ou φ é um axioma. No primeiro caso, {φ} ⊆ Φ e, por
definição, {φ} ⊢H φ. Logo, podemos supor ∆ = {φ}. No segundo caso, ∅ ⊆ Φ
e, por definição (φ é um axioma), ⊢H φ. Logo, ∆ = ∅.
Passo da indução. Seja φ1 , ..., φn , φn+1 uma derivação de comprimento n + 1 da
fórmula φ = φn+1 a partir de Φ. Podemos supor que φ foi derivada pelo MP
aplicado a duas fórmulas φk e φj = φk → φ, com j, k ≤ n (nas outras duas
alternativas podemos argumentar como no caso da base da indução). Como φj , φk
foram obtidas por derivações de comprimento ≤ n, podemos aplicar a hipótese da
indução duas vezes. Isto é, existem conjuntos finitos ∆1 ⊆ Φ e ∆2 ⊆ Φ tais que
∆1 ⊢ φj e ∆2 ⊢ φk . Então também ∆1 ∪∆2 ⊢ φj e ∆1 ∪∆2 ⊢ φk . Concatenando
as respectivas derivações e aplicando o MP resulta numa derivação de φ a partir de
∆1 ∪ ∆2 (veja Observação 3.51). Isto é, ∆1 ∪ ∆2 ⊢ φ. Note que ∆1 ∪ ∆2 é finito
e ∆1 ∪ ∆2 ⊆ Φ. Q.E.D.

Por definição, uma prova formal no cálculo de Hilbert é uma sequência finita
de fórmulas φ1 , φ2 , ..., φn que satisfazem as condições especificadas na Definição
3. Tal sequência pode ser anotada em n linhas onde cada linha contém a fórmula φi
derivada no i-ésimo passo da derivação junto com a justificativa correspondente.
A demonstração do seguinte Lemma é um exemplo desta prática.

34
Lema 3.53 ⊢ φ → φ, para qualquer fórmula φ. Isto é, φ → φ é um teorema,
para qualquer fórmula φ.

Demonstração. Os seguintes passos constituem uma prova de φ → φ a partir do


conjunto vazio.
1. (φ → (φ → φ) → φ) → (φ → φ → φ) → (φ → φ), é instância de
(A1) (φ → ψ → χ) → (φ → ψ) → (φ → χ) e portanto um axioma (onde φ
corresponde a φ, ψ corresponde a φ → φ, e χ corresponde também a φ)
2. φ → (φ → φ) → φ, axioma conforme (A2)
3. (φ → φ → φ) → (φ → φ), resultado do MP aplicado a 1. e 2.
4. φ → φ → φ, axioma conforme (A2)
5. φ → φ, MP aplicado a 3. e 4.
Q.E.D.

Definição 3.54 Um conjunto Φ de fórmulas é dito consistente se existe uma fórmula


φ tal que Φ ⊬H φ. Φ é dito inconsistente se não é consistente. Φ é dito maximal-
mente consistente (ou maximal consistente), se Φ é consistente e para qualquer
φ ∈ F m ∖ Φ, Φ ∪ {φ} é inconsistente.

Note que Φ é inconsistente sse Φ ⊢H φ para toda fórmula φ. Φ é maximalmente


consistente sse Φ é consistente e toda extensão própria Φ′ ⊋ Φ é inconsistente. As
caracterizações seguintes dos conceitos “consistente”e “inconsistente”serão útieis.

Lema 3.55 Φ é consistente sse Φ ⊬H ⊥. Φ é inconsistente sse Φ ⊢H ⊥.

Demonstração. A volta da primeira asserção segue imediatamente da definição.


Para mostrar a ida por contraposição supomos Φ ⊢ ⊥. Isto é, Φ ⊢ ¬(x0 → x0 ). Por
Lemma 3.53, Φ ⊢ x0 → x0 . Por (A3), Φ ⊢ ¬(x0 → x0 ) → (x0 → x0 ) → ψ, para
qualquer fórmula ψ. Aplicando duas vezes MP resulta em Φ ⊢ ψ. Isto é, qualquer
fórmula é derivável a partir de Φ e Φ é inconsistente. A segunda afirmação segue
da primeira. Q.E.D.

Lema 3.56 (Teorema da Dedução) Se Φ ∪ {φ} ⊢ ψ, então Φ ⊢ φ → ψ.

Demonstração. Indução no comprimento n da derivação de ψ a partir de Φ∪{φ}.


Base: n = 1. Então ψ ∈ Φ ∪ {φ} ou ψ é um axioma. Se ψ = φ, então Φ ⊢ φ → ψ,
segundo Lemma 3.53. Se ψ ∈ Φ ou ψ é um axioma, então Φ ⊢ ψ. Por (A2),
Φ ⊢ ψ → φ → ψ. MP resulta em Φ ⊢ φ → ψ.
Passo indutivo: A prova de ψ a partir de Φ ∪ {φ} tenha comprimento n + 1. Pode-
mos supor que no último passo da prova obtemos ψ por uma aplicação do Modus

35
Ponens (caso contrário, podemos argumentar como na base). Isto é, existe χ tal
que χ e χ → ψ ocorrem em posições anteriores na prova. Logo, as derivações
dessas fórmulas têm comprimento ≤ n e podemos aplicar a hipótese da indução a
Φ∪{φ} ⊢ χ e a Φ∪{φ} ⊢ χ → ψ. Isto resulta em Φ ⊢ φ → χ e Φ ⊢ φ → χ → ψ.
Tendo em vista (A1), (φ → χ → ψ) → (φ → χ) → (φ → ψ), duas aplicações do
Modus Ponens resulta em Φ ⊢ φ → ψ. Q.E.D.

A volta do Teorema da Dedução também é verdadeira:

Lema 3.57 Se Φ ⊢ φ → ψ, então Φ ∪ {φ} ⊢ ψ.

Demonstração. Seja Φ ⊢ φ → ψ verdadeiro. Qualquer derivação que testemu-


nha aquele fato, também testemunha Φ∪{φ} ⊢ φ → ψ. Obviamente, Φ∪{φ} ⊢ φ.
Concatenando as duas derivações que testemunham as duas últimas relações, res-
pectivamente, e aplicando Modus Ponens, resulta numa derivação que justifica
Φ ∪ {φ} ⊢ ψ. Q.E.D.

Estratégia para provar a completude do cálculo, Φ ⊩ φ ⇒ Φ ⊢H φ.


Prova por contraposição: Φ ⊬H φ ⇒ Φ ∪ {¬φ} é consistente ⇒ Φ ∪ {¬φ} possui
um modelo v ⇒ existe v ∈ 2V tal que v ⊨ Φ e v ⊭ φ ⇒ Φ ⊮ φ.
As primeiras duas implicações vamos demonstrar usando os resultados a seguir.
As últimas duas implicações seguem imediatamente das respectivas definições
(relação da satisfatibilidade, relação da consequência lógica). Notem que na se-
gunda implicação estabelecemos uma conexão entre o nosso cálculo, ou seja, um
sistema sintático, e a semântica da Lógica Proposicional: “consistência implica
satisfatibilidade”.

Lema 3.58 (Teorema de Lindenbaum) Qualquer conjunto consistente tem uma


extensão maximal consistente.

Demonstração. Seja Φ um conjunto consistente. Construimos uma S cadeia de


conjuntos consistentes Φ = Φ0 ⊆ Φ1 ⊆ Φ2 ⊆ ... tal que a união Φω := i∈ω Φi é
maximal consistente. Então obviamente Φ ⊆ Φω . Isto é, Φω é a desejada extensão
de Φ. Para efetuar esta construção fixamos uma enumeração {φ0 , φ1 , ...} de F m.
Definimos Φ0 := Φ. Se Φi para um i ∈ N já é construido, então definimos
(
Φi ∪ {φi }, se Φi ∪ {φi } é consistente
Φi+1 :=
Φi , caso contrário
Isto define indutivamente a cadeia desejada de conjuntos consistentes. Resta mos-
trar que a união Φω é maximal consistente.

36
(a) Φω é consistente: Supomos o contrário. Isto é, Φω ⊢ ⊥. Por Teorema 3.52,
um subconjunto finito ∆ ⊆ Φω tal que ∆ ⊢ ⊥. Seja ∆ = {ψ1 , ψ2 , ..., ψn }.
existe S
∆ ⊆ i∈N Φi implica em ψk ∈ Φik , para k = 1, ..., n e indices i1 , ..., in ∈ N.
Se ij é o maior destes indices, então Φij é o maior destes n conjuntos e portanto
∆ ⊆ Φij . Logo, Φij ⊢ ⊥. Isto contradiz a consistência de Φij . Logo, Φω ⊬ ⊥ e
Φω é consistente.
(b) Φω é maximal consisistente. Já sabemos que Φω é consistente. Seja φ ∈
F m ∖ Φω . Basta mostrar que Φω ∪ {φ} é inconsistente. Evidentemente, φ
ocorre na enumeração fixada, isto é, φ = φi para um i ∈ N. Pela construção,
Φi ∪ {φi } é inconsistente (caso contrário, Φi ∪ {φi } = Φi+1 ⊆ Φω e portanto
φi = φ ∈ Φω — uma contradição, já que φ ∈ / Φω ). Como Φi ∪ {φi } ⊆ Φω ∪ {φi },
Φω ∪ {φi } = Φω ∪ {φ} também é inconsistente. Logo, Φω é maximal consistente.
Q.E.D.

A prova do Teorema de Lindenbaum é “construtiva”, isto é, a existência do ob-


jeto em questão (a extensão maximalmente consistente) é provada atravês de uma
“construção”do mesmo. (Na verdade, não se trata de uma construção no sentido de
um algoritmo já que essa “construção”usa métodos transfinitos.) Na matemática,
se aplica frequentemente argumentos não-construtivos. Isto é, a existência de um
objeto é provado sem dizer como obter tal objeto, sem apresentar uma construção
do mesmo. A seguinte prova alternativa do Teorema de Lindenbaum faz uso do
Axioma da Escolha, um princı́pio não-construtivo. Antes de apresentar essa prova,
relembramos alguns conceitos básicos.

Seja (A, ≤) uma ordem parcial (isto é, o conjunto A é parcialmente ordenado
pela relação ≤ (relembre os axiomas de uma ordem parcial e de uma ordem total!).
Uma cadeia em (A, ≤) é um subconjunto de A que é totalmente ordenado por ≤.
Para a, b ∈ A escrevemos a < b, se a ≤ b e a ̸= b. Seja B ⊆ A. Um elemento
a ∈ A é uma cota superior (upper bound) de B, se b ≤ a para todos os b ∈ B.
Uma cota superior a de B é dita supremum de B, se a ≤ a′ para todas as cotas su-
periores a′ de B. Um elemento maximal de B é um elemento b ∈ B tal que b < a
implica em a ∈ / B. O maior elemento de B é um elemento b ∈ B tal que b′ ≤ b
para todos os b′ ∈ B. Analogamente se define cota inferior, infimum, elemento
minimal, menor elemento de B.

O Axioma da Escolha diz o seguinte.

Seja (Ai )i∈I uma famı́lia não-vazia de conjuntos não-vazios.S Então existe
uma função de escolha para (Ai )i∈I , isto é, uma função f : I → i∈I Ai tal que
f (i) ∈ Ai para todos os i ∈ I.

37
À primeira vista, a existência de tal função parece ser trivial. O axioma diz
que dado uma coleção de conjuntos Ai , i ∈ I, sempre podemos escolher de cada
conjunto Ai exatamente um elemento conforme uma função de escolha. Porém,
o enunciado não diz nada a respeito de uma possı́vel definição ou construção
dessa função. A existência de tal função parece menos evidente se levamos em
consideração que tanto os conjuntos Ai como o conjunto de indices I podem ser
infinitos. Como fazer então a escolha dos elementos? A pesar dessas objeções
teóricas, o Axioma da Escolha é geralmente aceito e amplamente utilizado na
prática matemática. Um enunciado equivalente ao Axioma da Escolha é o Lema
de Zorn:

Lema 3.59 (Lema de Zorn) Seja (A, ≤) uma ordem parcial tal que qualquer ca-
deia em A tem uma cota superior (em A). Então (A, ≤) tem um elemento maximal.

Lembre que uma cadeia numa dada ordem parcial é um subconjunto totalmente
(linearmente) ordenado. Se A é um conjunto parcialmente ordenado, então uma
cota superior de um subconjunto Y ⊆ A é um elemento s ∈ A tal que y ≤ s para
todos os y ∈ Y (note que não necessáriamente s ∈ Y ).
A seguir apresentaremos uma prova alternativa do Teorema de Lindenbaum
usando o Axioma da Escolha na forma do Lema de Zorn. A ‘construção’ na prova
do Teorema de Lindenbaum baseia-se no fato que o conjunto F m é contável. O
Lema de Zorn não tem essa restrição, pois é aplicável também em situações que
envolvem conjuntos incontáveis.

Demonstração do Teorem de Lindenbaum usando o Axioma da Escolha. Seja


Φ um conjunto consistente. Consideramos X = {Ψ ⊆ F m | Ψ é consistente e
Φ ⊆ Ψ }. Este conjunto é não-vazio (Φ ∈ X) e parcialmente ordenado pela relação
⊆. Se conseguimos mostrar que qualquer cadeia em X tem uma cota superior em
X, então podemos aplicar o Lema de Zorn para concluir que X tem elementos
maximais. É claro que um elemento maximal de X é uma extensão maximalmente
consistente de Φ (Exercı́cio!). Vamos supor então que Y = (Ψi )i∈I seja uma cadeia
em X. Isto é, os Ψi pertencem a X e I é um (possivelmente infinito) conjunto de
ı́ndicesSque são totalmente ordenados tal que i < j implica em Ψi ⊆ Ψj . Então seja
Γ := {Ψi | i ∈ I} a união da cadeia. Mostraremos que Γ é uma cota superior de
Y ⊆ X. Para isto temos que mostrar que Γ ∈ X e que todos os elementos da ca-
deia Y são menores (no sentido de ⊆) que Γ . Esta última propriedade é evidente.
Falta mostrar que Γ ∈ X. Obviamente, Φ ⊆ Γ . Se Γ for inconsistente, então
pelo Teorema da Finitude existiria um ∆ ⊆ Γ tal que ∆ ⊢ ⊥ e ∆ é finito. Mas
(pelo mesmo argumento aplicado na prova original do Teorema de Lindenbaum)

38
a finitude de ∆ implica que ∆ ⊆ Ψ , para um Ψ ∈ Γ . Logo, Ψ ⊢ ⊥. Isto é uma
contradição à consistência de Ψ . Logo, Γ é consistente. Pela definição de X segue
que Γ ∈ X. Γ é cota superior de Y . Pelo Lema de Zorn, X tem elementos maxi-
mais. Q.E.D.

Relembre que um conjunto Φ é consistente sse Φ ⊬ ⊥. O resultado seguinte


será útil.

Lema 3.60 Para quaisquer Φ ⊆ F m, φ ∈ F m:


(a) Φ ⊢ φ ⇔ Φ ∪ {¬φ} ⊢ ⊥
(b) Φ ⊢ ¬φ ⇔ Φ ∪ {φ} ⊢ ⊥

Demonstração. (a). Ida: Φ ⊢ φ ⇒ Φ ∪ {¬φ} ⊢ φ. Também temos que


Φ ∪ {¬φ} ⊢ ¬φ. Por (A3), Φ ∪ {¬φ} ⊢ ¬φ → φ → ⊥. Aplicando duas ve-
zes MP resulta em Φ ∪ {¬φ} ⊢ ⊥. Volta: Supomos Φ ∪ {¬φ} ⊢ ⊥. Então o
conjunto de premissas é inconistente e portanto prova qualquer forma. Em parti-
cular, Φ ∪ {¬φ} ⊢ φ. Logo, Φ ⊢ ¬φ → φ, por Lema 3.56. Também temos que
Φ ⊢ φ → φ, por Lema 3.53. Esquema (A4) nos garante que Φ ⊢ (φ → φ) →
(¬φ → φ) → φ. Aplicando duas vezes MP, isso dá Φ ⊢ φ.
De forma semelhante se prova item (b). Exercı́cio! Q.E.D.

As propriedades seguintes de um conjunto maximalmente consistente são im-


portantes para a prova do Teorema da Completude.

Lema 3.61 (Propriedades de conjuntos maximal consistentes) Seja Φ um con-


junto maximal consistente e sejam φ, ψ quaisquer fórmulas. Então

(i) φ ∈ Φ ⇔ Φ ⊢ φ

(ii) Φ ⊢ ¬φ ⇔ Φ ⊬ φ

(iii) Φ ⊢ φ → ψ ⇔ Φ ⊬ φ ou Φ ⊢ ψ

Demonstração. (i): A ida é trivial. Seja Φ ⊢ φ. Se φ ∈


/ Φ, então Φ ∪ {φ} ⊢ ⊥,
já que Φ é maximal consistente. Pelo Teorema da Dedução, Φ ⊢ φ → ⊥. Modus
Ponens resulta em Φ ⊢ ⊥, uma contradição. Logo, φ ∈ Φ.
(ii): Ida: Φ ⊢ ¬φ ⇒ Φ ∪ {φ} ⊢ ⊥, por Lema 3.60(b). Então Φ ⊢ φ → ⊥,
por Lemma 3.56. Disso segue Φ ⊬ φ (caso contrário, Φ ⊢ ⊥, por MP). Volta:
Φ ⊬ φ implica que Φ ∪ {¬φ} é consistente, por Lema 3.60(a). Como Φ é maximal
consistente, ¬φ ∈ Φ. Por (i), Φ ⊢ ¬φ.
(iii): Ida: Seja Φ ⊢ φ → ψ. Para mostrar a disjunção desejada, aplicamos o

39
método de demonstração por casos: supomos que Φ ⊬ φ seja falso, isto é, Φ ⊢ φ.
Então aplicando a regra de MP resulta em Φ ⊢ ψ. Volta: Aqui partimos de uma
disjunção e portanto temos que considerar dois casos. Primeiro caso: Φ ⊬ φ. Por
(ii), Φ ⊢ ¬φ. Por (A3), Φ ⊢ ¬φ → φ → ψ. MP resulta em Φ ⊢ φ → ψ. Segundo
caso: Φ ⊢ ψ. Por (A2), Φ ⊢ ψ → φ → ψ. Aplicando MP resulta em Φ ⊢ φ → ψ.
Q.E.D.

Lema 3.62 Todo conjunto consistente é satisfatı́vel.

Demonstração. Seja Ψ uma conjunto consistente. Então existe uma extensão


Φ ⊇ Ψ tal que Φ é maximal consistente, pelo Teorema de Lindenbaum. No que
segue vamos definir uma valoração v que é modelo de Φ. Evidentemente, este
modelo v também será um modelo de Ψ ⊆ Φ. A definição de v é dada por

v(x) = 1 :⇔ Φ ⊢ x,

para qualquer x ∈ V . Agora provamos por indução nas fórmulas a seguinte


afirmação:

(3) v ⊨ φ ⇔ Φ ⊢ φ, para qualquer fórmula φ.

Relembre que trabalhamos na base de conectivos {¬, →}. Portanto, na base e no


passo indutivo consideraremos apenas os casos relacionados a estes conectivos.
Base. φ = x ∈ V : Este caso está coberto pela definição de v.
Paso da indução. Seja φ = ¬ψ. Então

v ⊨ ¬ψ ⇔ v ⊭ ψ, por definição da semântica


⇔ Φ ⊬ ψ, por hipótese da indução
⇔ Φ ⊢ ¬ψ, por Lema 3.61(ii)

Agora seja φ = (ψ1 → ψ2 ). Então

v ⊨ ψ1 → ψ2 ⇔ v ⊭ ψ1 ou v ⊨ ψ2 , por definição da semântica


⇔ Φ ⊬ ψ1 ou Φ ⊢ ψ2 , por hipótese da indução
⇔ Φ ⊢ ψ1 → ψ2 , por Lema 3.61(iii)

(3)
Logo, para toda fórmula φ temos que φ ∈ Φ ⇔ Φ ⊢ φ ⇔ v ⊨ φ. Isto é,
v satisfaz exatamente aquelas fórmulas que pertencem a Φ. Logo, v ⊨ Φ. Como
Ψ ⊆ Φ segue v ⊨ Ψ , e Ψ é satisfatı́vel. Q.E.D.

Teorema 3.63 (Teorema da Completude) Φ ⊩ φ ⇒ Φ ⊢ φ.

40
Demonstração. Supomos Φ ⊬ φ. Então, por Lema 3.60, Φ∪{¬φ} é consistente.
Lema 3.62 garante a existência de um modelo v de Φ ∪ {¬φ}. A existência de tal
modelo é equivalente a Φ ⊮ φ. Q.E.D.

Concluı́mos que a noção semântica da satisfatibilidade é equivalente à noção


sintática da consistência:

Corolário 3.64 Os seguintes dois enunciados são verdadeiros e equivalentes:

(i) Para qualquer Φ ∪ {φ} ⊆ F m: Φ ⊩ φ ⇔ Φ ⊢ φ.

(ii) Um conjunto Ψ é satisfatı́vel sse Ψ é consistente.

Demonstração. (i): Os Teoremas da Corretude e da Completude já foram prova-


dos.
(i) implica (ii): Seja Ψ satisfatı́vel. Se Ψ ⊢ ⊥, então Ψ ⊩ ⊥, por (i). Logo, Ψ
não pode ser satisfatı́vel, uma contradição. Agora supomos que Ψ é um conjunto
consistente. Se Ψ for insatisfatı́vel, então Ψ ⊩ ⊥. De novo, (i) resulta numa
contradição.
(ii) implica (i): Se Φ ⊬ φ, então Φ ∪ {¬φ} é consistente, por Lema 3.60. (ii)
garante um modelo para Φ ∪ {¬φ}. Logo, Φ ⊮ φ. Isso mostra a ida de (i) por
contra-posição. Para provar a volta supomos Φ ⊮ φ. Então Φ ∪ {¬φ} tem um
modelo. Por (ii), este conjunto é consistente. Por Lema 3.60(a), Φ ⊬ φ. Q.E.D.

Uma consequência é o seguinte

Corolário 3.65 (Teorema da Compacidade) Os seguintes dois enunciados são


verdadeiros e equivalentes.

(i) Se Φ ⊩ φ, então existe um subconjunto finito ∆ ⊆ Φ tal que ∆ ⊩ φ.


(Finitude da relação da consequência lógica)

(ii) Um conjunto Ψ é satisfatı́vel sse todo subconjunto finito de Ψ é satisfatı́vel.


(Compacidade da Lógica Proposicional)

Demonstração. O primeiro item segue imediatamente do Teorema da Finitude


(Teorema 3.52) junto com os Teoremas da Completude e Corretude do cálculo.
Vamos mostrar a equivalência entre (i) e (ii).
(i) implica (ii): Se Ψ é satisfatı́vel, então um modelo de Ψ também satisfaz todos os
subconjuntos de Ψ (ou seja, a ida de (ii) é trivial). Supomos que todo subconjunto
finito de Ψ é satisfatı́vel. Note que subconjuntos diferentes de Ψ podem possuir

41
modelos diferentes (ou seja, a volta de (ii) está longe de ser trivial). Se Ψ for
insatisfatı́vel, então Ψ ⊩ ⊥. Por (i), existe ∆ ⊆ Ψ , ∆ finito e ∆ ⊩ ⊥. Isto
contradiz a satisfatibilidade de ∆. Logo, Ψ tem um modelo.
(ii) implica (i): Seja Φ ⊩ φ. Supomos que para qualquer subconjunto finito ∆ ⊆ Φ
temos que ∆ ⊮ φ. Então para todos estes subconjuntos finitos ∆, ∆ ∪ {¬φ} é
satisfatı́vel. Por (ii), Φ ∪ {¬φ} é satisfatı́vel. Isto contradiz Φ ⊩ φ. Logo, Φ
contém um ∆ finito tal que ∆ ⊩ φ. Q.E.D.

3.3.2 Um cálculo de sequentes


Um cálculo de sequentes é um tipo de cálculo que foi desenvolvido por Gerhard
Gentzen em 1934. Uma sequente é um objeto da forma ∆ ⊢ ψ que expessa in-
tuitivamente que existe uma prova da fórmula ψ a partir do conjunto finito ∆
de fórmulas. A idéia é, como em outros cálculos, formalizar aspectos do con-
ceito da demonstração matemática. Uma demonstração matemática produz uma
proposição verdadeira (conclusão) a partir de proposições verdadeiras (premissas).
Durante a demonstração provamos uma série de proposições intermediárias até
finalmente chegarmos á proposição que desejamos demonstrar. Por exemplo, se
temos demonstrações de proposições intermediárias φ e φ → ψ, então podemos
estabelecer uma demonstração da proposição ψ. Este argumento é formalizado
pela regra (R5) abaixo (e representa a regra de inferência Modus Ponens). As se-
quentes em cima da linha são as premissas, e a sequente embaixo da linha é a
conclusão do argumento.

Definição 3.66 (i) Uma sequente é uma expressão da forma ∆ ⊢ φ, onde ∆ ⊆


F m é finito e φ ∈ F m. A sequente ∆ ⊢ φ é correta se ela corresponde a
uma consequência lógica, isto é, se ∆ ⊩ φ.

(ii) Uma regra de sequentes é uma expressão da forma

∆1 ⊢ φ1 , ..., ∆n ⊢ φn
∆⊢φ

onde n ≥ 0 e ∆ ⊢ φ1 , ..., ∆n ⊢ φn denotam sequentes, chamadas de pre-


missas, e ∆ ⊢ φ denota uma sequente, chamada de conclusão da regra. No
caso n = 0, o conjunto de premissas é, por definição, vazio. Neste caso, a
regra tem a forma

∆⊢φ

42
(iii) Uma regra de sequentes é correta, se a corretude das suas premissas implica
a corretude da conclusão.
∆⊢φ
Exemplo 3.67 Consideremos a regra
∆⊢φ∨ψ
Vamos mostrar a corretude dessa regra. Para isto, supomos que a sequente
∆ ⊢ φ (a única premissa) seja correta, isto é, ∆ ⊩ φ. Então todo modelo de ∆ é
modelo de φ: M od(∆) ⊆ M od({φ}). Obviamente, M od({φ}) ⊆ M od({φ∨ψ}).
Logo, M od(∆) ⊆ M od({φ ∨ ψ}). Isto é, ∆ ⊩ φ ∨ ψ e a sequente ∆ ⊢ φ ∨ ψ é
correta.

Definição 3.68 Um cálculo de sequentes S é um conjunto finito de regras de se-


quentes. Uma derivação (ou prova, dedução) em S é uma sequência finita de
sequentes (∆1 ⊢ φ1 , ..., ∆n ⊢ φn ) tal que cada sequente é a conclusão de uma
regra cujas premissas estão entres as sequentes anteriores na sequência. A se-
quente ∆ ⊢ φ é derivável no cálculos de sequentes S se existe uma derivação
(∆1 ⊢ φ1 , ..., ∆n ⊢ φn ) tal que ∆n = ∆ e φn = φ. Para um conjunto (possivel-
mente infinito) de fórmulas Φ ∪ {φ} escrevemos Φ ⊢S φ, se existe um subconjunto
finito ∆ ⊆ Φ e uma derivação da sequente ∆ ⊢ φ em S. Em lugar de ∅ ⊢S φ
escrevemos também ⊢S φ; neste caso, dizemos que φ é um teorema.

Observação 3.69 Da definição segue que a primeira sequente ∆1 ⊢ φ1 de uma


derivação (∆1 ⊢ φ1 , ..., ∆n ⊢ φn ) é sempre a conclusão de uma regra sem pre-
missas (veja a regra (R1) abaixo). Também segue imediatamente da definição que
um cálculo de sequentes é finitário: Se Φ ⊢S φ, então existe um subconjunto finito
∆ ⊆ Φ tal que ∆ ⊢S φ.

Definição 3.70 Seja S uma cálculo de sequentes.

(i) S é correto se para todo conjunto Φ ⊆ F m e toda fórmula φ ∈ F m, Φ ⊢S φ


implica Φ ⊩ φ.

(ii) S é completo se para todo conjunto Φ ⊆ F m e toda fórmula φ ∈ F m,


Φ ⊩ φ implica Φ ⊢S φ.

Teorema 3.71 Um cálculo de sequentes é correto se todas as regras são corretas.

Demonstração. Por indução no comprimento n das derivações. Supomos que


todas as regras sejam corretas. Seja Φ ⊢S φ justificado pela derivação (∆1 ⊢
φ1 , ..., ∆n ⊢ φn ), com ∆ ⊆ Φ e φn = φ. Base: n = 1. Então a sequente ∆1 ⊢ φ1
foi derivada por uma regra sem premissas. Como esta regra é correta (por hipótese),

43
sua sequente conclusão ∆1 ⊢ φ1 é correta, isto é, ∆1 ⊩ φ1 , φ1 = φ, ∆1 ⊆ Φ.
Logo, Φ ⊩ φ. Passo indutivo: Agora supomos que Φ ⊢S φ seja justificado por
uma derivação de comprimento n + 1, (∆1 ⊢ φ1 , ..., ∆n ⊢ φn , ∆n+1 ⊢ φn+1 ). A
última sequente é conclusão de uma regra cujas premissas estão entre as sequen-
tes anteriores. Como essas sequentes anteriores foram derivadas em ≤ n passos,
podemos aplicar a hipótese da indução que diz que essas sequentes correspon-
dem a consequências lógicas, ou seja, são corretas. Como a regra é correta, segue
∆n+1 ⊩ φn+1 . Q.E.D.

Depois dessas considerações gerais, apresentamos a seguir um cálculo de se-


quentes especı́fico e mostraremos sua corretude e completude. Para minimizar o
número de regras do cálculo, escolhemos uma base reduzida de conectivos, a decir:
{¬, →}. Outros conectivos podem ser definidos através de ¬ e →.

Definição 3.72 S é o clálculo de sequentes dado pelas regras seguintes:

(R1) , se φ ∈ ∆
∆⊢φ

∆⊢φ
(R2) , se ∆ ⊆ ∆′
∆′ ⊢ φ

∆ ⊢ φ, ∆ ⊢ ¬φ
(R3)
∆⊢ψ

∆ ∪ {φ} ⊢ ψ, ∆ ∪ {¬φ} ⊢ ψ
(R4)
∆⊢ψ

∆ ⊢ φ, ∆ ⊢ φ → ψ
(R5)
∆⊢ψ

∆ ∪ {φ} ⊢ ψ
(R6)
∆⊢φ→ψ
Note que a regra (R1) não possui premissas, portanto ela é também chamada
de regra inicial, e uma sequente ∆ ⊢ φ com φ ∈ ∆ é chamada de sequente inicial.

Teorema 3.73 O cálculo S é correto.

44
Demonstração. Conforme Teorema 3.71, é suficiente mostrar que todas as regras
de S são corretas. Deixamos essa prova como exercı́cio. Q.E.D.

Exemplo 3.74 (a) Apresentamos uma derivação no cálculo de sequentes mos-


trando {φ → ψ, ψ → χ} ⊢S φ → χ. Isto é, a transitividade da implicação é
derivável.
1. {φ → ψ, ψ → χ} ⊢ φ → ψ, por (R1)
2. {φ, φ → ψ, ψ → χ} ⊢ φ → ψ, (R2) aplicado a 1.
3. {φ, φ → ψ, ψ → χ} ⊢ φ, por (R1)
4. {φ, φ → ψ, ψ → χ} ⊢ ψ, (R5) aplicado a 2. e 3.
5. {φ, φ → ψ, ψ → χ} ⊢ ψ → χ, (R1)
6. {φ, φ → ψ, ψ → χ} ⊢ χ, (R5) aplicado a 4. e 5.
7. {φ → ψ, ψ → χ} ⊢ φ → χ, (R6) aplicado a 6.

(b) Pela derivação seguinte, temos que {φ → ψ} ⊢S ¬ψ → ¬φ.


1. {φ → ψ, φ} ⊢ φ, (R1)
2. {φ → ψ, φ} ⊢ φ → ψ, (R1)
3. {φ → ψ, φ} ⊢ ψ, (R5) aplicado a 1. e 2.
4. {φ → ψ, φ, ¬ψ} ⊢ ψ, (R2) aplicado a 3.
5. {φ → ψ, φ, ¬ψ} ⊢ ¬ψ, (R1)
6. {φ → ψ, φ, ¬ψ} ⊢ ¬φ, (R3) aplicado a 4. e 5.
7. {φ → ψ, ¬φ, ¬ψ} ⊢ ¬φ, (R1)
8. {φ → ψ, ¬ψ} ⊢ ¬φ, (R4) aplicado a 6. e 7.
9. {φ → ψ} ⊢ ¬ψ → ¬φ, (R6) aplicado a 8.

(c) Relembre que estamos trabalhando na base de conectivos {¬, →} e podemos


definir a disjunção como segue: φ ∨ ψ := ¬φ → ψ. Então a derivação seguinte
mostra que podemos afirmar {φ} ⊢S φ ∨ ψ.
1. {φ, ¬φ} ⊢ φ, (R1)
2. {φ, ¬φ} ⊢ ¬φ, (R1)
3. {φ, ¬φ} ⊢ ψ, (R3) aplicado a 1. e 2.
4. {φ} ⊢ ¬φ → ψ, (R6) aplicado a 3.

(d) Mostramos que {¬¬φ} ⊢S φ


1. {φ, ¬¬φ} ⊢ φ, (R1)
2. {¬φ, ¬¬φ} ⊢ ¬φ, (R1)
3. {¬φ, ¬¬φ} ⊢ ¬¬φ, (R1)
4. {¬φ, ¬¬φ} ⊢ φ, (R3) aplicado a 2. e 3.
5. {¬¬φ} ⊢ φ, (R4) aplicado a 4. e 1.

45
(e) Analogamente a (d), segue que {φ} ⊢S ¬¬φ. Exercı́cio: Apresente uma
derivação que prova essa afirmação!

(d) Finalmente, provamos que ⊢S φ → ψ → φ ∧ ψ, isto é, φ → ψ → φ ∧ ψ é um


teorema. Para isto, lembramos que φ ∧ ψ := ¬(φ → ¬ψ).
1. {φ, φ → ¬ψ} ⊢ φ, (R1)
2. {φ, φ → ¬ψ} ⊢ φ → ¬ψ, (R1)
3. {φ, φ → ¬ψ} ⊢ ¬ψ, (R5) aplicado a 1. e 2.
4. {φ} ⊢ (φ → ¬ψ) → ¬ψ, (R6) aplicado a 3.
5. {φ} ⊢ ((φ → ¬ψ) → ¬ψ) → (¬¬ψ → ¬(φ → ¬ψ)), por (b) e (R6), essa
última fórmula é um teorema e portanto derivável de qualquer conjunto
6. {φ} ⊢ ¬¬ψ → ¬(φ → ¬ψ), (R5) aplicado a 4. e 5.
7. {φ} ⊢ ψ → ¬¬ψ, por (e) e (R6), a fórmula ψ → ¬¬ψ é um teorema
8. {φ} ⊢ ψ → ¬(φ → ¬ψ), por (a) e (R6), transitividade da implicação é um
teorema; agora considere 6. e 7. e (R5)
9. ∅ ⊢ φ → ψ → ¬(φ → ¬ψ), (R6) aplicado a 8.
Além dessas derivações normais, é também possı́vel derivar novas regras. Es-
sas regras novas podem ajudar em derivações futuras. Para derivar uma regra nova
partimos de certas sequentes considerando elas como premissas ou suposições e,
fazendo derivações no cálculo, chegamos finalmente a uma sequente considerada
como conclusão. Um exemplo é dado pela derivação seguinte:
Exemplo 3.75 1. ∆ ⊢ φ → ψ, suposição
2. ∆ ∪ {φ} ⊢ φ → ψ, por (R2)
3. ∆ ∪ {φ} ⊢ φ, por (R1)
4. ∆ ∪ {φ} ⊢ ψ, por (R5)
Considerando na derivação do Exemplo 3.75 a sequente 1. como premissa e a
sequente 4. como conclusão, obtemos a nova regra (R7):

∆⊢φ→ψ
(R7)
∆ ∪ {φ} ⊢ ψ
A completude de S pode ser provada de forma semelhante como no caso do
cálculo de Hilbert: novamente, o resultado essencial é que todo conjunto consis-
tente (onde consistência é definida agora referente ao cálculo C) é satisfatı́vel, ou
seja, possui um modelo. Alternativamente, podemos provar a completude de S
aproveitando da completude do cálculo de Hilbert. Isto é, provamos o seguinte:
Φ ⊢H φ implica Φ ⊢S φ. A completude então segue por contraposição usando a
completude do cálculo de Hilbert.
Teorema 3.76 Para todo conjunto de fórmulas Φ ∪ {φ}, Φ ⊢H φ implica Φ ⊢S φ.

46
Demonstração. Indução no comprimento n das derivações no cálculo de Hilbert.
Base: n = 1. Então φ ∈ Φ ou φ é um axioma. No primeiro caso, Φ ⊢S φ segue da
regra (R1). Para o segundo caso, mostramos que todos os axiomas do cálculo de
Hilbert são deriváveis em S, isto é, ⊢S φ para qualquer axioma φ.
Os passos seguintes constituem uma derivação em S:
1. {φ → (ψ → χ), φ → ψ} ⊢ φ → (ψ → χ), por (R1)
2. {φ → (ψ → χ), φ → ψ} ⊢ φ → ψ, por (R1)
3. {φ → (ψ → χ), φ → ψ, φ} ⊢ ψ → χ, (R7) aplicado a 1.
4. {φ → (ψ → χ), φ → ψ, φ} ⊢ ψ, (R7) aplicado a 2.
5. {φ → (ψ → χ), φ → ψ, φ} ⊢ χ, (R5) aplicado a 3. e 4.
6. ...
7. ...
8. ∅ ⊢ (φ → (ψ → χ)) → ((φ → ψ) → (φ → χ)), aplicando sucessivamente
(R6)
Logo, ⊢S (φ → (ψ → χ)) → ((φ → ψ) → (φ → χ)). Isto é, (A1) é derivável
em S.

Consideramos a derivação seguinte:


1. {φ, ¬φ} ⊢ φ, (R1)
2. {φ, ¬φ} ⊢ ¬φ, (R1)
3. {φ, ¬φ} ⊢ ψ, (R3) aplicado a 1., 2.
4. {¬φ} ⊢ φ → ψ, (R6) aplicado a 3.
5. ∅ ⊢ ¬φ → φ → ψ, (R6) aplicado a 4.
Logo, ⊢S ¬φ → φ → ψ, isto é, (A3) é derivável no nosso cálculo de sequentes.

Finalmente, consideramos a derivação a seguir:


1. {¬φ → ψ, φ → ψ} ⊢ ¬φ → ψ, (R1)
2. {¬φ → ψ, φ → ψ} ⊢ φ → ψ, (R1)
3. {¬φ → ψ, φ → ψ, ¬φ} ⊢ ψ, (R7) aplicado a 1.
4. {¬φ → ψ, φ → ψ, φ} ⊢ ψ, (R7) aplicado a 2.
5. {¬φ → ψ, φ → ψ, } ⊢ ψ, (R4) aplicado a 3. e 4.
6. ...
7. ...
8. ∅ ⊢ (φ → ψ) → (¬φ → ψ) → ψ, aplicando sucessivamente (R6)
Logo, ⊢S (φ → ψ) → (¬φ → ψ) → ψ, isto é, (A4) é derivável em S.

Exercı́cio: Apresente uma derivação do esquema de axiomas (A2) no cálculo


de sequentes. Com este exercı́cio, a base da indução é provada.
Passo indutivo: A afirmação seja verdadeira para todas as derivações de compri-
mento n no cálculo de Hilbert (hipótese da indução). Seja φ1 , ..., φn , φn+1 = φ

47
uma derivação de φ a partir de Φ. Podemos supor que φn+1 = φ é obtido por Mo-
dus Ponens (caso contrário, podemos argumentar como na base da indução). Então
existem fórmulas derivadas φi e φj = φi → φ com 1 ≤ i, j ≤ n. Pela hipótese
da indução, Φ ⊢S φi e Φ ⊢S φi → φ. Por definição, existem subconjuntos finitos
∆1 ⊆ Φ e ∆2 ⊆ Φ tais que ∆1 ⊢S φi e ∆2 ⊢S φi → φ. Logo ∆1 ∪ ∆2 ⊢S φi e
∆1 ∪ ∆2 ⊢S φi → φ, por (R2). Usando (R5) derivamos a sequente ∆1 ∪ ∆2 ⊢ φ.
Como ∆1 ∪ ∆2 ⊆ Φ, obtemos Φ ⊢S φ. Q.E.D.

Corolário 3.77 O cálculo de sequentes S é completo: Φ ⊩ φ implica Φ ⊢S φ,


para qualquer conjunto de fórmulas Φ ∪ {φ}.

Demonstração. Prova por contraposição usando o Teorema 3.76 e o Teorema da


Completude do cálculo de Hilbert: Φ ⊬S φ implica Φ ⊬H φ implica Φ ⊮ φ. Note
que a primeira implicação é o Teorema anterior e a segunda implicação é o Teo-
rema da Completude do cálculo de Hilbert. Q.E.D.

Resumindo, obtemos a equivalência dos cálculos de Hilbert e de sequentes no


sentido que Φ ⊢H φ ⇔ Φ ⊩ φ ⇔ Φ ⊢S φ, para qualquer conjunto Φ ∪ {φ} de
fórmulas.

3.3.3 O Cálculo de Resolução


Grande parte do material apresentado nesta seção baseia-se no livro de U. Schöning.

Diferentemente dos cálculos de Hilbert e de sequentes, o cálculo de resolução


tem como objetivo mostrar (por meios sintáticos) que uma dada fórmula insatis-
fatı́vel é instatisfatı́vel. Esse método é importante em aplicações, como p. ex. na
Programação em Lógica (linguagens de programação como PROLOG e outras) no
nı́vel da Lógica de Predicados. Aqui estudamos os princı́pios básicos da Resolução
na Lógica Proposicional.
Observamos que vários problemas podem ser reduzidos à questão da insatisfati-
bilidade de uma fórmula. Exemplos são a validade de uma fórmula e a questão
da consequência lógica a partir de um conjunto finito de premissas: relembre que
uma fórmula φ é válida sse ¬φ é insatisfatı́vel (então, para mostrar a validade de
φ basta mostrar a insatisfatibilidade de ¬φ; e a relação {φ1 , ..., φn } ⊩ φ se dá sse
⊩ (φ1 ∧ ... ∧ φn ) → φ (Teorema da Dedução) sse (φ1 ∧ ... ∧ φn ) → φ é uma
tautologia sse ¬φ1 ∨ ... ∨ ¬φn ∨ φ é uma tautologia sse φ1 ∧ ... ∧ φn ∧ ¬φ é uma
contradição (ou seja, insatisfatı́vel). Sabemos que essas questões podem ser deci-
didas por meios semânticos (p. ex., tabela-verdade). Porém, em certas aplicações
e implementações de algoritmos, meios sintáticos, como o método da Resolução,

48
são imprescindı́veis.

Para poder aplicar o método da Resolução, a fórmula em questão tem que es-
tar em FNC. Relembre que φ está em FNC se φ é uma conjunção de disjunções
de literais: φ = (ψ1,1 ∨ ... ∨ ψ1,n1 ) ∧ ... ∧ (ψk,1 ∨ ... ∨ ψk,nk ), onde as ψi,j são
literais, k, nk ≥ 1. Para tecnicamente lidar melhor com este tipo de fórmulas,
as escrevemos como conjuntos de conjuntos. Essa representação fica clara se ob-
servamos um exemplo: no caso da fórmula φ acima, o conjunto de conjuntos que
representa φ é {{ψ1,1 , ..., ψ1,n1 }, ..., {ψk,1 , ..., ψk,nk }}. Os conjuntos internos cha-
mamos de cláusulas. Isto é, uma FNC é representada por um conjunto de cláusulas:
cada cláusula é dada por literais que representam as disjunções da FNC, e entre as
cláusulas imaginamos as conjunções da FNC. Obviamente, o mesmo conjunto de
cláusulas pode representar várias FNC’s diferentes (e logicamente equivalentes en-
tre sı́). Por exemplo, as fórmulas

(x1 ∨ x2 ) ∧ (¬x3 ∨ ¬x3 )


¬x3 ∧ (x2 ∨ x1 )
¬x3 ∧ (x2 ∨ x1 ∨ x1 )

são todas representadas pelo mesmo conjunto de cláusulas {{x1 , x2 }, {¬x3 }}.

Para simplificar as coisas, vamos denotar o conjunto de cláusulas que repre-


senta uma fórmula φ também por φ. Também aplicaremos as noções de (in-) satis-
fatibilidade e validade a conjuntos de cláusulas: note que um conjunto de cláusulas
é satisfeito por uma valoração v ∈ 2V sse v satisfaz todas as cláusulas sse v satisfaz
de cada cláusula ao menos um literal.

O cálculo de Resolução é dado por apenas uma regra: a regra de Resolução


formulada na definição seguinte (relembre que para um dado literal ψ, escrevemos
ψ para designar o literal inverso).

Definição 3.78 Sejam C1 , C2 e R cláusulas. Então R é dito resolvente de C1 e C2


se existe um literal ψ tal que ψ ∈ C1 e ψ ∈ C2 , e R tem a forma

R = (C1 ∖ {ψ}) ∪ (C2 ∖ {ψ}).

Essa definição representa a regra do cálculo de Resolução. A regra é aplicável


se existem duas cláusulas C1 e C2 como na Definição 3.78, então a regra produz a
cláusula (o resolvente) R como resultado.

49
Exemplo 3.79 R = {p, ¬q} é resolvente das cláusulas C1 = {p, ¬q, r} e C2 =
{¬q, ¬r}. As cláusulas {p, q, ¬r, ¬s} e {¬p, q, ¬r, s} possuem dois resolventes,
isto é, a regra de Resolução é aplicável duas vezes as estas duas cláusulas; os
respectivos resolventes são {q, ¬r, ¬s, s} e {p, q, ¬r, ¬p}.

É importante levar em consideração que a regra de Resolução pode ser aplicada


apenas uma vez em cada passo. Também é possı́vel gerar o resolvente vazio R =
∅ que denotamos por □. Por exemplo, aplicando a regra de Resolução às duas
cláusulas {y} e {¬y} dá o resolvente vazio □.

Exercı́cio 3.80 Ache uma FNC de φ = x → (y∨¬z) e apresente o correspondente


conjunto de cláusulas. Gere todos os resolventes que podem ser obtidos a partir
dele.

Definição 3.81 Uma derivação (prova, dedução) de uma cláusula C a partir de


um conjunto φ de cláusulas (chamadas de premissas) é uma sequência finita de
cláusulas C1 , ..., Cn = C tal que para cada Ci foi obtida através de uma das duas
alternativas seguintes:

• Ci é elemento de φ (isto é, Ci é uma premissa) ou

• Ci é resolvente de duas cláusulas Cj e Ck , onde 1 ≤ j, k < i (isto é, Ci é


resultado de uma aplicação da regra de Resolução a cláusulas anteriores na
sequência).

Dizemos que a cláusula C é derivável a partir do conjunto de cláusulas φ se existe


uma derivação de C a partir de φ.

Com a última definição temos uma noção de derivabilidade (ou derivação) ana-
logamente às respectivas noções no cálculo de Hilbert e no cálculo de sequentes.
Porém, o objetivo da noção atual é diferente: Em vez de simular sintaticamente
a relação da consequência lógica, queremos agora mostrar que uma dada fórmula
insatisfatı́vel é insatisfatı́vel. O resultado principal do cálculo de Resolução diz que
uma fórmula φ, dada em FNC, é insatisfatı́vel sse a cláusula vazia □ é derivável
a partir do conjunto de cláusulas φ. A demonstração deste Teorema é bastante
técnica e não vamos apresentar aqui (veja, p. ex., o livro de U. Schöning para
maiores detalhes).

Exemplo 3.82 Seja φ = (x∨y∨¬z)∧¬x∧(x∨y∨z)∧(x∨¬y). φ é representada


pelo conjunto de cláusulas φ = {{x, y, ¬z}, {¬x}, {x, y, z}, {x, ¬y}}. Os passos
a seguir constituem uma derivação da cláusula vazia a partir de φ:

50
1. C1 = {x, y, ¬z}, cláusula de φ
2. C2 = {x, y, z}, cláusula de φ
3. C3 = {x, y}, resolvente de C1 e C2
4. C4 = {x, ¬y}, cláusula de φ
5. C5 = {x}, resolvente de C3 e C4
6. C6 = {¬x}, cláusula de φ
7. C7 = □, resolvente de C5 e C6 .

A derivação de uma cláusula C a partir de um conjunto de cláusulas φ pode


ser descrita por um processo de geração de cláusulas: (i) gere todos os resolventes
de cláusulas de φ, gere todos os resolventes de cláusulas de φ e das cláusulas gera-
das em (i), (ii) gere todos os resolventes de cláusulas de φ e de cláusulas achadas
em (i) e (ii), .... . Este processo, a priori infinito, gera passo a passo um conjunto
crescente de cláusulas. Depois de um número finito de passos, o processo está sa-
turado e não cresce mais. Isto acontece quando não é mais possı́vel achar novos
resolvente. Então, uma cláusula C é derivável de φ sse C ocorre naquele conjunto
gerado e saturado de cláusulas. Estas observações informais podem ser demonstra-
das formalmente. A seguir, vamos definir este processo de geração de resolventes
recursivamente.

Definição 3.83 Seja φ um conjunto de cláusulas. Definimos

Res(φ) := φ ∪ {R | R é resolvente de duas cláusulas de φ}.

Então, para n ∈ N, os conjuntos Resn (φ) são definidos recursivamente como


segue:

Res0 (φ) := φ
Resn+1 (φ) := Res(Resn (φ)).

Finalmente, colocamos
Res∗ (φ) := n∈N Resn (φ) = Res0 (φ) ∪ Res1 (φ) ∪ Res2 (φ) ∪ ....
S

Exemplo 3.84 Seja φ = {{¬x, y, z}, {x, y}, {¬u, ¬z}}. Calculamos sucessiva-
mente os conjuntos Resn (φ) para n = 0, 1, 2, ....
Res0 (φ) = φ
Res1 (φ) = Res(φ) = φ ∪ {{y, z}, {¬x, y, ¬u}}
Res2 (φ) = Res(Res(φ)) = Res(φ) ∪ {{y, ¬u}}
Res3 (φ) = Res(Res2 (φ)) = Res2 (φ) ∪ ∅ = Res2 (φ)
Logo, Res0 (φ) ⊊ Res(φ) ⊊ Res2 (φ) = Res3 (φ) = ... = Resn (φ) = Resn+1 (φ)
para qualquer n ≥ 2. Neste caso, Res∗ (φ) = Res2 (φ).

51
Observação 3.85 (i) Se Resn (φ) = Resn+1 (φ), então dizemos que o conjunto
Resn (φ) é saturado. Isto significa que não é mais possı́vel gerar novos resolventes
a partir das cláusulas dadas. De fato, é possı́vel mostrar que os conjuntos Res∗ (φ)
são sempre finitos, isto é, sempre existe um n ∈ N tal que Resn (φ) é saturado. No
exemplo anterior, os conjuntos Resn (φ) para n ≥ 2 são saturados.
(ii) Uma cláusula pode conter tanto um literal ψ como também seu literal inverso
ψ. Exemplos são os dois possı́veis resolventes {x, ¬z, z, u} e {x, y, ¬y, u} das
duas cláusulas {x, y, ¬z} e {¬y, z, u}. Note que tais resolventes são logicamente
equivalentes ao verum ⊤, ou seja, a qualquer cláusula da forma {x, ¬x}. Se φ
é um conjunto de cláusulas e C ∈ φ é uma cláusula que contém um literal e seu
inverso, então φ ≡ φ ∖ {C}. (Por que?)

Teorema 3.86 Sejam φ um conjunto de cláusulas e C uma cláusula. Então C é


derivável de φ se e somente se C ∈ Res∗ (φ). Isto é, Res∗ (φ) é precisamente o
conjunto de todas as cláusulas que são deriváveis de φ.

Demonstração. A prova é um exercı́cio. Dica: Na ida, aplique indução no com-


primento das derivações. Para a volta, note que C ∈ Res∗ (φ) sse existe um n ∈ N
tal que C ∈ Resn (φ), agora faça indução em n. Q.E.D.

O último resultado expressa o fato que Res∗ (φ) é o conjunto de todas as


cláusulas deriváveis a partir de φ. Para o resultado seguinte, relembramos que uma
valoração v satisfaz um conjunto de cláusulas φ sse v satisfaz todas as cláusulas de
φ sse v satisfaz de cada cláusula φ um literal.

Lema 3.87 (Lema da Resolução) Seja φ um conjunto de cláusulas e R um resol-


vente de duas cláusulas de φ. Então φ ≡ φ ∪ {R}, isto é, para qualquer valoração
v: v satisfaz todas as cláusulas de φ sse v satisfaz todas as cláusulas de φ mais a
cláusula R.

Demonstração. Temos que provar um bicondicional. A volta do mesmo (se


v ⊨ φ ∪ {R} então v ⊨ φ) é trivialmente verdadeira. Mostramos a ida. Supo-
mos v ⊨ φ, isto é, v satisfaz todas as cláusulas de φ. R tem, por definição, a forma
R = (C1 ∖ {ψ}) ∪ (C2 ∖ {ψ}), onde C1 , C2 são cláusulas de φ. Obviamente, tem
os dois possı́veis casos v ⊨ ψ e v ⊭ ψ.
Primeiro caso: v ⊨ ψ. Então v ⊭ ψ. Mas, por hipótese, v ⊨ C2 (v satisfaz todas
as cláusulas de φ). Lembre que satisfazer uma cláusula signfica satisfazer pelo
menos um literar da cláusula. Logo, tem que existir um literal em C2 ∖ {ψ} que é
satisfeito por v. Então v satisfaz também a cláusula R.

52
Segundo caso: v ⊭ ψ. Por hipótese, v satisfaz todas as cláusulas de φ, em par-
ticular C1 . Como v não satisfaz o literal ψ, tem que existir um outro literal em
C1 ∖ {ψ} que é satisfeito por v. Este literal também pertence à cláusula R. Logo,
v satisfaz R. Então, em todos os casos possı́veis, v satisfaz R. Logo, v ⊨ φ ∪ {R},
e os dois conjuntos de cláusulas φ e φ ∪ {R} são logicamente equivalentes. Q.E.D.

O seguinte Teorema da Resolução expressa a corretude e a completude do


cálculo de Resolução, ou seja, expressa o fato que este cálculo realemte faz o espe-
rado: se para uma dada fórmula a cláusula vazia é derivável, então a fórmula é in-
satisfatı́vel (corretude); a cláusula vazia é derivável a partir de qualquer fórmula in-
satisfatı́vel (completude). Lembre que sempre supomos que a fórmula em questão
esteja em FNC.

Teorema 3.88 (Teorema da Resolução: Corretude e Completude da Resolução)


Um conjunto de cláusulas φ é insatisfatı́vel sse □ ∈ Res∗ (φ).

Demonstração. Corretude: Seja □ ∈ Res∗ (φ). A cláusula vazia □ somente


pode ser resolvente de duas cláusulas da forma {ψ} e {ψ}, para um literal ψ.
Segue do Lema da Resolução (Lema 3.87) que as seguintes equivalências valem:

φ ≡ Res(φ) ≡ Res2 (φ) ≡ Res3 (φ) ≡ ... ≡ Resn (φ) ≡ ...

Como □ ∈ Res∗ (φ), existe n ∈ N tal que □ ∈ Resn (φ). Então também as duas
cláusulas {ψ} e {ψ} pertencem a Resn (φ). Mas não existe nenhuma valoração
que satisfaz {ψ} e {ψ} juntos. Logo, o conjunto de cláusulas Resn (φ) é insatis-
fatı́vel. Pela equivalência lógica acima estabelecida, também φ é insatisfatı́vel.
A prova da Completude (ou seja, da ida do Teorema) é tecnicamente complexa e
pode ser consultada na literatura (por exemplo, no livro de U. Schöning). Q.E.D.

Com base no Teorema da Resolução podemos construir o seguinte algoritmo


que determina se uma fórmula dada em FNC é ou não é satisfatı́vel.

INPUT fórmula φ dada como conjunto de cláusulas


REPEAT ψ := φ; φ := Res(φ)
UNTIL (□ ∈ φ) OU (φ = ψ)
IF □ ∈ φ THEN PRINT “φ é insatisfatı́vel”
ELSE PRINT “φ é satisfatı́vel”

53
4 Semântica algébrica
Veremos nesta seção que a lógica proposicional clássica está intimamente ligada a
uma certa classe de álgebras, a dizer, as álgebras Booleanas. De fato, a lógica pode
ser interpretada semanticamente em álgebras Booleanas (quaisquer) e ela é correta
e completa referente à classe de todas as álgebras Booleanas. Surpreendentemente,
basta considerar apenas uma álgebra Booleana, a dizer, aquela de dois elementos
{0, 1}. Esta álgebra corresponde à nossa semântica original de valores verdade
{0, 1}.

Definição 4.1 Uma estrutura B = (B, ∨B , ∧B , ¬B , 0B , 1B ) é uma álgebra Boole-


ana10 se B é um conjunto não-vazio chamado de universo ou domı́nio, e ∨B : B ×
B → B, ∧B : B × B → B são funções binárias, ¬B : B → B é uma função
unária e 0B , 1B ∈ B são constantes (isto é, funções de aridade zero, elemen-
tos do universo) tal que quaisquer elementos a, b, c ∈ B satisfazem as equações
seguintes:

(i) a ∨B b = b ∨B a, a ∧B b = b ∧B a (comutatividade)

(ii) a∨B (b∨B c) = (a∨B b)∨B c, a∧B (b∧B c) = (a∧B b)∧B c (associatividade)

(iii) a ∨B (a ∧B b) = a, a ∧B (a ∨B b) = a (absorção)

(iv) a ∧B (b ∨B c) = (a ∧B b) ∨B (a ∧B c), a ∨B (b ∧B c) = (a ∨B b) ∧B (a ∨B c)
(distributividade)

(v) a ∧B ¬B a = 0B , a ∨B ¬B a = 1B (complementos)

(vi) a ∧B 0B = 0B , a ∨B 0B = a (menor elemento)

(vii) a ∧B 1B = a, a ∨B 1B = 1B (maior elemento)

As operações ∨B e ∧B B chamamos também de join e meet, respectivamente.


¬B : B → B é a operação de complemento. Quando está claro que estamos no
contexto de uma dada álgebra B, então escrevemos também ∨, ∧, ¬, 0, 1 em
lugar de ∨B , ∧B , ¬B , 0B e 1B , respectivamente, para simplificar notação. Dada
uma álgebra Booleana, usaremos as seguintes abreviações: a → b := ¬a ∨ b e
a ↔ b := (a → b) ∧ (b → a).
Relembre que as condições (i)–(iii) expressam que B é um reticulado. Então,
uma álgebra Booleana é um reticulado distributivo com uma operação de comple-
mento e menor e maior elemento conforme (v)–(vii). Dizendo que 0B e 1B são o
10
Os elementos 0B , 1B podem ser denotados também por ⊥B e ⊤B , respectivamente.

54
menor e o maior elemento, respectivamente, implica a existência de uma ordem
subyacente. De fato, definindo a ≤ b :⇔ a ∧B b = a, obtemos uma ordem par-
cial ≤ em B com a propriedade que quaisquer dois elementos a, b ∈ B possuem
ı́nfimo e supremo que são dados por inf {a, b} := a ∧B b e sup{a, b} := a ∨B b,
respectivamente. Reticulados podem ser definidos precisamente através dessa pro-
priedade: são ordens parciais tais que quaisquer dois elementos têm um ı́nfimo
e um supremo. Por outro lado, se um reticulado R é dado por essa definição,
então podemos definir operações a ∧R b := inf {a, b} e a ∨R b := sup{a, b} que
satisfazem as condições (i)–(iii) (com R em lugar de B). Essas transformações
são inversas uma a outra. Portanto, um reticulado pode ser entendido tanto com
uma ordem parcial tal que quaisquer dois elementos possuem ı́nfimo e supremo
como alternativamente também como uma estrutura algébrica com duas operações
binárias que satisfazem (i)–(iii) acima.
Os fatos seguintes apresentamos sem prova.

Lema 4.2 Toda álgebra Booleana satisfaz as equações seguintes:

• a ∧ b = 0 e a ∨ b = 1 implica a = ¬b (unicidade do complemento)

• ¬(a ∨ b) = ¬a ∧ ¬b, ¬(a ∧ b) = ¬a ∨ ¬b (leis de De Morgan)

• ¬¬a = a

• ¬0 = 1, ¬1 = 0

Lema 4.3 Em qualquer álgebra Booleana vale: a ≤ b ⇔ a → b = 1.

Demonstração. Temos que a ≤ b ⇔ a = a ∧ b. Logo, a ≤ b ⇔ a → b =


¬a ∨ b = ¬(a ∧ b) ∨ b = ¬a ∨ ¬b ∨ b = ¬a ∨ 1 = 1. Q.E.D.

Exemplo 4.4 (a) Para todo conjunto M , M = (P ow(M ), ∪, ∩, c, ∅, M ) é uma


álgebra Booleana, a álgebra dos subconjuntos de M . Aqui é c a operação de com-
plemento: c(A) := M ∖ A, para A ⊆ M .
(b) 2 = ({0, 1}, f∨ , f∧ , f¬ , f⊥ , f⊤ ) é uma álgebra Booleana de dois elementos
com as funções booleanas definidas como acima (veja semântica da lógica propo-
sicional clássical). Na verdade, todas as álgebras Booleanas de exatamente dois
elementos são isomorfas a essa álgebra (ou seja, têm a mesma estrutura, diferem
apenas nos nomes dos elementos).
(c) O conjunto de todos os subconjuntos finitos ou cofinitos de N forma uma
álgebra Booleana com as operações de união, interseção e complemento em N.11
11
Um subconjunto A de um conjunto M é dito cofinito se M ∖ A é finito.

55
Exercı́cio 4.5 Prove as asserções de Exemplo 4.4.
Definição 4.6 Seja B uma álgebra Booleana. Um subconjunto não-vazio F ⊆ B é
um filtro de B se para quaisquer elementos a, b ∈ B vale o seguinte (como sempre,
≤ denota a ordem parcial do reticulado subyacente):
(i) Se a, b ∈ F , então a ∧ b ∈ F (“Se dois elementos a, b pertencem ao filtro, o
‘núcleo comum’ a ∧ b também pertence ao filtro”)
(ii) Se a ∈ F e a ≤ b, então b ∈ F (“Se um dado elemento não passa o filtro,
então elementos maiores também não passam”)
Um filtro F é dito próprio se F ̸= B, isto é, se 0B ∈
/ F.
Exercı́cio 4.7 Dada uma álgebra Booleana, prove o seguinte:
T
• Se F é um conjunto de filtros, então F é um filtro (isto é, ‘filtros são
fechados sob interseção’).12
S
• Se F é uma cadeia não-vazia de filtros, então F é um filtro (isto é, ‘filtros
são fechados sob união de cadeias’)
Relembre que uma relação de congruência R numa dada álgebra A é uma
relação de equivalência que é compatı́vel com as operações da álgebra, isto é, as
classes de equivalência são independentes dos seus representantes: se f A é qual-
quer operação de A de aridade n > 0, e a1 Rb1 , ..., an Rbn (ou seja, [a1 ]R =
[b1 ]R , ..., [an ]R = [bn ]R ), então f A (a1 , ..., an )Rf A (b1 , ..., bn ) (isto é, [f A (a1 , ..., an )]R =
[f A (b1 , ..., bn )]R . No caso particular de álgebras de Boole temos o seguinte resul-
tado.
Observação 4.8 Em qualquer álgebra Booleana temos que a ↔ b = (¬a ∨ b) ∧
(¬b ∨ a) = (a ∧ b) ∨ (¬a ∧ ¬b). Em particular,
• (a ↔ a) = (a ∨ ¬a) = 1
• (a ↔ 1) = a
• (a ↔ 0) = ¬a
Seja F é um filtro. Então (a ∈ F e a → b ∈ F ) implica b ∈ F .
Exercı́cio 4.9 Prove as afirmações da Observação 4.8.
Teorema 4.10 Seja B uma álgebra Booleana. Para qualquer filtro F , a relação
RF ⊆ B × B definida por aRb :⇔ a ↔ b ∈ F é uma congruência de B. Por
outro lado, para qualquer relação de congruência R de B, a classe de equivalência
FR := {a ∈ B | aR1B } = [1B ]R é um filtro.
12 T
Para o conjunto vazio de filtros definimos ∅ := B.

56
Demonstração. Seja F uma filtro de B e seja RF definida como no Lema. Então
RF é reflexiva já que aRa sse a ↔ a = 1B ∈ F (note que qualquer filtro contém
o maior elemento do reticulado). Obviamente, R também é simétrica. Agora su-
pomos a ↔ b ∈ F e b ↔ c ∈ F . Em particular, a → b ∈ F e b → c ∈ F . Isto é,
¬a ∨ b ∈ F e ¬b ∨ c ∈ F . Como F é um filtro, segue (¬a ∨ b) ∧ (¬b ∨ c) ∈ F .
Aplicando distributividade, obtemos d := (¬a ∧ ¬b) ∨ (¬a ∧ c) ∨ (b ∧ c) ∈ F .
Como d ≤ ¬a∨c e F é um filtro, concluı́mos ¬a∨c = a → c ∈ F . Analogamente
segue que c → a ∈ F . Logo, a ↔ c ∈ F e R é transitiva.
R é compatı́vel com as operações da álgebra Booleana e portanto é uma relação
de congruência: Supomos aRa′ e bRb′ . Queremos mostrar que isso resulta em
(a ∧ a′ )R(b ∧ b′ ). A hipótese implica particularmente ¬a ∨ a′ ∈ F e ¬b ∨ b′ ∈ F .
Então, obviamente, ¬a ∨ a′ ≤ (¬a ∨ ¬b ∨ a′ ) ∈ F e ¬b ∨ b′ ≤ (¬a ∨ ¬b ∨ b′ ) ∈ F .
Aplicando as leis de distributividade e De Morgan obtemos ¬(a ∧ b) ∨ (a′ ∧ b′ ) =
(¬a ∨ ¬b ∨ a′ ) ∧ (¬a ∨ ¬b ∨ b′ ) ∈ F . Logo, (a ∧ b) → (a′ ∧ b′ ) ∈ F . Analogamente
mostramos (a′ ∧b′ ) → (a∧b) ∈ F . Logo, (a∧b) ↔ (a′ ∧b′ ) ∈ F e R é compatı́vel
com a operação ∧. A compatibilidade com as operações restantes deixamos como
exercı́cio.
Agora supomos que nos é dado uma relação de congruência R. Mostraremos que
FR = {a ∈ B | aR1B } é um filtro. Obviamente, 1B ∈ FR ̸= ∅. Supomos
a, b ∈ FR . Então aR1B e bR1B . Segue que (a ∧ b)R(1B ∧ 1B ), isto é, (a ∧ b)R1B .
Logo, a ∧ b ∈ FR . Agora seja a ∈ FR e a ≤ b para um b ∈ B. Então aR1B e trivi-
almente também bRb. Como R é congruência, obtemos ¬aR¬1B , isto é, ¬aR0B ,
e finalmente (¬a ∨ b)Rb, isto é, (a → b)Rb. Pelo Lema 4.2, 1B Rb, logo b ∈ FR .
Q.E.D.

Definição 4.11 Seja A um subconjunto não-vazio de uma álgebra Booleana dada.


O menor filtro que contém A é dito o filtro gerado por A e é denotado por [A).

A existência de [A) é garantida pelo fato que a interseção de um conjunto de


filtros
T é um filtro. Obviamente, em qualquer álgebra Booleans temos que [A) =
{F | A ⊆ F e F é filtro}.

Teorema 4.12 Seja A ⊆ B um subconjunto não-vazio de uma álgebra Booleana


dada B com universo B. Então [A) = {a ∈ B | a1 ∧ ... ∧ an ≤ a, a1 , ..., an ∈ A}.

Demonstração. Mostramos que F := {a ∈ B | a1 ∧ ... ∧ an ≤ a, a1 , ..., an ∈


A} é um filtro. Obviamente, A ⊆ F ̸= ∅. Sejam b, c ∈ F . Então existem
b1 , ..., bn ∈ A e c1 , ..., cm ∈ A tais que b1 ∧ ... ∧ bn ≤ b e c1 ∧ ... ∧ cm ≤ c. Logo,
b1 ∧ ... ∧ bn ∧ c1 ∧ ... ∧ cm ≤ b ∧ c e portanto b ∧ c ∈ F . Finalmente, se a ∈ F e
a ≤ b para um b ∈ B, então segue b ∈ F pela transitividade de ≤ e a definição de

57
F . Seja G qualquer filtro que contém A. Então a ∈ F implica a1 ∧ ... ∧ an ≤ a
para alguns a1 , .., an ∈ A ⊆ G implica a1 ∧ ... ∧ an ∈ G implica a ∈ G já que
G é um filtro. Logo, F ⊆ G. Segue que F é o menor filtro que contém A, isto é,
F = [A). Q.E.D.

Lema 4.13 Seja F um filtro próprio numa álgebra Booleana B e seja a ∈ B.


Então ao menos um dos filtros [F ∪ {a}) ou [F ∪ {¬a}) é próprio.

Demonstração. Se [F ∪{a}) não é prórpio, então 0 ∈ [F ∪{a}). Logo, c∧a ≤ 0


para um c ∈ F . Então (c ∧ a) ∨ ¬a ≤ ¬a. Isto implica c ∨ ¬a ≤ ¬a implica
c ≤ ¬a. Logo, ¬a ∈ F e [F ∪ {¬a}) = F , e este é um filtro próprio por hipótese.
Q.E.D.

Definição 4.14 Seja F um filtro próprio numa álgebra Booleana B.

• F é dito primo se para quaisquer elementos a, b ∈ B, a ∨ b ∈ F implica


a ∈ F ou b ∈ F .

• F é dito maximal se F não está contido em nenhum próprio filtro diferente


de F , ou seja, F é um filtro maximal no conjunto de todos os filtros próprios.

• F é dito ultrafiltro se para qualquer elemento a ∈ B, ou a ∈ F ou ¬a ∈ F .

Exercı́cio 4.15 Use o Lema de Zorn para provar que todo filtro próprio de uma
dada álgebra Booleana está contido num ultrafiltro.

Lema 4.16 Seja F um filtro próprio de uma dada álgebra Booleana B. Os enun-
ciados seguintes são equivalentes:

(i) F é um filtro maximal.

(ii) F é um ultrafiltro.

(iii) F é um filtro primo.

Demonstração. (iii) implica (ii): Considere a ∨ ¬a = 1 ∈ F .


(ii) implica (i): Supomos que (ii) seja verdadeiro e F não seja ultrafiltro. Então
existe uma filtro próprio F ′ tal que F ⊊ F ′ . Seja a ∈ F ′ ∖ F . Por (ii), ¬a ∈ F .
Logo, ¬a ∈ F ′ e a ∈ F ′ o que implica a ∧ ¬a = 0 ∈ F . Uma contradição. Logo,
F é ultrafiltro.
(i) implica (ii): Seja F um filtro maximal e seja a ∈ B qualquer elemento. Se
a∈ / F , então F ∪ {a} não pode ser contido em nenhum filtro próprio já que F é

58
maximal. Por Lema 4.13, então [F ∪{¬a}) é um filtro próprio contendo F ∪{¬a}.
Como F é maximal, esse filtro é igual a F , isto é, ¬a ∈ F .
(i) implica (iii): Seja F um filtro maximal. Se F não é primo, então existem ele-
mentos a, b tais que a ∨ b ∈ F e a ∈ / F eb∈ / F . Como já sabemos que todo filtro
maximal é um ultrafiltro, segue ¬a ∈ F e ¬b ∈ F . Como (¬x ∧ ¬y) → ¬(x ∨ y)
é uma tautologia proposicional e portanto interpretado pelo elemento 1 da álgebra
Booleana, segue que ¬(a ∨ b) ∈ F . Mas isso é impossı́vel já que a ∨ b ∈ F e F é
um filtro próprio. Logo, F tem que ser primo. Q.E.D.

Todo filtro é ‘gerado’ por um conjunto de ultrafiltros no sentido do seguinte


resultado.
Teorema 4.17 Seja F um filtro numa dada álgebra Booleana B. Então F é a
interseção do conjunto de todos os ultrafiltros que estendem F .

Demonstração. Se F é o filtro não-próprio,


T isto é 0 ∈ F = B, então F não está
contido em nenhum ultrafiltro e F = ∅ = B. Seja F um filtro próprio e seja
a ∈ B ∖ F . Mostramos que então [F ∪ {¬a}) também é um filtro próprio. Se
não é próprio, então existe b ∈ F tal que b ∧ ¬a ≤ 0. Logo, (b ∧ ¬a) ∨ a ≤ a e
portanto b ∨ a ≤ a e b ≤ a. Então obtemos a contradição a ∈ F . Logo, [F ∪ {¬a})
tem que ser próprio. Então pelo Lema de Zorn, para qualquer T a ∈ B ∖ F existe
um ultrafiltro Ua tal que a ∈ / Ua e F ⊆ Ua . Então F = {Ua | a ∈ / F } o que
mostra que F é a interseção de uma coleção não-vazia de ultrafiltros que estendem
F . Mas então F também é a interseção de todos os ultrafiltros que estendem F .
Q.E.D.
Teorema 4.18 Sejam B = (B, ∨B , ∧B , ¬B , 0B , 1B ) uma álgebra Booleana e F
um filtro próprio de B. Então o conjunto B/F := {[a] | a ∈ B} das classes de
congruência [a] := {b ∈ B | RF (a, b)} dos elementos a ∈ B módulo a relação
RF (onde RF é dada como no Teorema 4.10) forma uma álgebra Booleana
B/F = (B/F, ∨B/F , ∧B/F , ¬B/F , 0B/F , 1B/F )
com as operações definidas como segue (note que usamos as operações da álgebra
original B para definir as operações da álgebra B/F ):
[a] ∨B/F [b] := [a ∨B b]
[a] ∧B/F [b] := [a ∧B b]
¬B/F [a] := [¬B a]
0B/F := [0B ]
1B/F := [1B ].

59
Demonstração. Vimos no Teorema 4.10 que a relação RF é uma relação de con-
gruência de B. Então as classes de equivalência [a] são independentes dos seus re-
presentantes. Isto é, se [a] = [a′ ] e [b] = [b′ ] então segue que ¬B/F [a] = ¬B/F [a′ ],
[a] ∨B/F [b] = [a′ ] ∨B/F [b′ ] e [a] ∧B/F [b] = [a′ ] ∧B/F [b′ ]. De fato, isto se-
gue precisamente da propriedade de RF ser compatı́vel com as operações de B.
Logo, as definições das operações de B/F fazem sentido, se diz que elas são ‘bem-
definidas’. Deixamos como exercı́cios que de fato as equações da Definição 4.1 são
válidas em B/F . Q.E.D.

Definição 4.19 Sejam B, F e B/F dadas como no Teorema 4.18. Então B/F é
dita a álgebra (Booleana) quociente de B módulo of filtro F (ou módulo a con-
gruência RF ).

Lema 4.20 Seja B uma álgebra Booleana com um filtro próprio F e seja B/F
a álgebra quociente de B módulo F . Então 1B/F = F = [1B ], isto é, F é o
maior elmento na álgebra quociente. Em particular, se F é um ultrafiltro, então a
álgebra quociente é a álgebra Booleana de exatamente dois elementos 1B/F = F
e 0B/F = (B ∖ F ) = {a ∈ B | ¬B a ∈ F }.

Demonstração. Os elementos [a] da álgebra quociente são precisamente as clas-


ses de congruência da relação RF = {(a, b) | a ↔ b ∈ F }. Em particular,
1B/F = [1B ] = {a ∈ B | a ↔ 1B ∈ F } = {a ∈ B | a ∈ F } = F , já que
equação a ↔ 1 = a vale em qualquer álgebra Booleana. Agora supomos que F
seja um ultrafiltro. A álgebra quociente B/F possui ao menos os dois elementos
0B/F e 1B/F . Como F ̸= B, esses dois elementos (classes de equivalência) não
podem ser iguais. Para ver que não existem outros elementos basta mostrar que
para qualquer elemento [a], [a] ̸= 1B/F implica [a] = 0B/F . [a] ̸= 1B/F signi-
fica a ↔ 1B = a ∈ / F . Pelo Lemma 4.16, isto implica ¬a ∈ F . A equação
¬a = a ↔ 0 vale em qualquer álgebra Booleana. Logo, ¬a = a ↔ 0B ∈ F , isto
é, RF (a, 0B ) e portanto [a] = [0B ] = 0B/F . Q.E.D.

Lembramos que V denota o conjunto das variáveis da lógica proposicional, e


F m é o conjunto de todas as fórmulas.

Definição 4.21 Seja B uma álgebra Booleana. Uma valoração (ou atribuição) em
B é uma função v : V → B. Qualquer valoração v ∈ B V estende canonicamente

60
para uma função v ∗ : F m → B como segue:13

v ∗ (x) = v(x), para x ∈ V


v ∗ (⊥) = 0B
v ∗ (⊤) = 1B
v ∗ (¬φ) = ¬B v ∗ (φ)
v ∗ (φ□ψ) = v ∗ (φ)□B v ∗ (ψ), onde □ ∈ {∨, ∧, →}

Para simplificar notação, escrevemos novamente v em lugar da (única) extensão


v ∗ de v.

Definição 4.22 Sejam B uma álgebra Booleana, TRUE ⊆ B um ultrafiltro de


B e v uma valoração em B. A dupla M = (B, TRUE ) chamamos de modelo,
e a dupla I = (M, v) chamamos de interpretação. Definimos uma relação de
satisfatibilidade entre interpretações e fórmulas como segue:

((B, TRUE ), v) ⊨b φ :⇔ v(φ) ∈ TRUE

Isto é, uma fórmula é verdadeira se ela é interpretada por um elemento do ul-
trafiltro TRUE da interpretação dada ((B, TRUE ), v). Se B é a álgebra Booleana
de dois elementos 0, 1 (valores verdade) com as funções Booleanas f⊥ = 0, f⊤ =
1, f¬ , f∨ , f∧ , f→ como operações, então a Definição 3.7 (semântica da Lógica Pro-
posicional) representa um caso especial da Definição 4.22. Isto é, nossa semântica
padrão de dois valores verdade 0 e 1 da Lógica Proposicional é dada pela álgebra
Booleana

B = ({0, 1}, f∨ , f∧ , f¬ , 0, 1) com o único ultrafiltro TRUE = {1}

junto com as valorações v : V → {0, 1}.

Lema 4.23 Sejam B uma álgebra Booleana, U um ultrafiltro e v ∈ B V uma


valoração em B. Na álgebra quociente B/U consideramos a valoração v : V →
B/U definida por v(x) := [v(x)]. Então, para qualquer φ ∈ F m, v(φ) = [v(φ)]
e
(M, v) ⊨b φ ⇔ (M/U, v) ⊨b φ,
onde M = (B, U ) e M/U = (B/U, {1B/U }). Isto é, a fórmula φ é verdadeira no
modelo M sob a valoração v sse φ é verdadeira no modelo quociente M/U sob
a valoração v.
13
Relembre que definimos a →B b := ¬B a ∨B b.

61
Demonstração. A equação v(φ) = [v(φ)] segue por indução na construção de
φ. Se φ é uma variável, então a afirmação é a definição de v. Se φ = ⊥, então
v(φ) = v(⊥) = 0B/U = [0B ] = [v(⊥)]. Analogamente para φ = ⊤. Agora seja
φ = ψ ∨ χ. Então v(φ) = v(χ ∨ ψ) = v(ψ) ∨B/U v(χ), já que v é uma valoração.
Pela hipótese da indução, isso é igual a [v(ψ)] ∨B/U [v(χ)] = [v(ψ) ∨B v(χ)] =
[v(φ)]. Analogamente para os casos restantes.
Considerando as definições e os resultados do Lemma 4.24 obtemos as equivalências
seguintes:
(M, v) ⊨b φ ⇔ v(φ) ∈ U = 1B/U ⇔ [v(φ)] = 1B/U ⇔ v(φ) = 1B/U ⇔
(M/U, v) ⊨b φ. Q.E.D.
Definição 4.24 Para nossa semântica algébrica definimos uma relação de con-
sequência lógica ⊩b ⊆ P ow(F m) × F m como segue:
Φ ⊩b φ :⇔ I ⊨b Φ implica I ⊨b φ, para qualquer interpretação I
De novo, observamos que a Definição 3.19 da relação de consequência lógica
padrão da Lógica Proposicional é um caso particular da Definição 4.24 onde uma
interpretação I é dada pela álgebra Booleana de dois elementos {0, 1}, o único
ultrafiltro TRUE = {1} e qualquer valoração v : V → {0, 1}. Como essa álgebra
Booleana e o ultrafiltro nunca mudam, basta considerar apenas as valorações como
interpretações. Surge a questão se a definição mais geral 4.24 traz algo novo. Isto
não é o caso, como vamos mostrar a seguir. Isto é, para o caso da Lógica Pro-
posicional, a semântica álgebrica baseada em todas as álgebras Booleanas pode
ser reduzida à semântica de dois valores verdade, ou seja, a semântica dada pela
álgebra Booleana de dois elementos.
Teorema 4.25 Para qualquer conjunto Φ ∪ {φ} ⊆ F m,
Φ ⊩b φ ⇔ Φ ⊩ φ.

Demonstração. “⇒”: Supomos Φ ⊩b φ. Seja v ∈ 2V tal que v ⊨ Φ. Então


I ⊨b Φ onde a interpretação I (conforme Definição 4.22) consiste na álgebra Boo-
leana de dois elementos 0 e 1, ultrafiltro {1} e valoração v. Pela hipótese, I ⊨b φ.
Isto é, v(φ) = 1 e portanto v ⊨ φ.
“⇐”: Supomos Φ ⊩ φ. Seja I = (M, v) qualquer interpretação conforme
Definição 4.22 tal que I ⊨b Φ. Pelo Lemma 4.23, para toda ψ ∈ Φ, v(ψ) = 1
na álgebra quociente que é a álgebra Booleana de dois elementos 0, 1. Podemos
entender v : V → {0, 1} como uma valoração da nossa semântica original de va-
lores verdades. Isto é, v ⊨ Φ. Pela hipótese, isto implica v ⊨ φ, ou seja, v(φ) = 1
na álgebra quociente. Aplicando novamente Lema 4.23, obtemos I ⊨b φ. Como I
foi arbitrário, segue Φ ⊩b φ. Q.E.D.

62

Você também pode gostar