Escolar Documentos
Profissional Documentos
Cultura Documentos
parte
Steffen Lewitzka
16 de março de 2024
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
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.
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
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.
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.
(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.
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.”
6
(ii) Conectivos de aridade zero: ⊤, ⊥, de aridade um: ¬, e de aridade dois: ∨,
∧, →.
(iii) Parênteses: ) e (.
φ ::= ⊥ | ⊤ | x | ¬ψ | (ψ ∨ χ) | (ψ ∧ χ) | (ψ → χ).
7
φ, Φ ... fi ou phi
ψ, Ψ ... psi
χ, X ... chi ou qui
δ, ∆ ... delta
ϑ, Θ ... teta
γ, Γ ... gama
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.
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
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”.
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.
• var(φ) = {x}, se φ = x ∈ V
• var(φ) = ∅, se φ ∈ {⊤, ⊥}
• var(φ) = var(ψ), se φ = ¬ψ
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.
11
Da definição da semântica da implicação segue:
v ∗ (φ → ψ) = 1 ⇔ v ∗ (φ) = 0 ou v ∗ (ψ) = 1
⇔ v ∗ (φ) = 1 implica v ∗ (ψ) = 1.
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.
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.
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
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.
v ⊨ φ :⇔ v(φ) = 1.
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(Φ) = ∅.
(i) φ é dita válida (ou uma tautologia), se toda valoração é modelo de φ, isto
é, M od({φ}) = 2V .
14
Exercı́cio 3.16 Prove: Uma fórmula φ é válida se e somente se ¬φ é contra-
ditória.
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.
(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) {(φ ∧ ψ) → χ, ϑ → ψ} ⊩ (φ ∧ ϑ) → χ
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.
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.
• Se Φ ⊆ Φ′ e Φ ⊩ ψ, então Φ′ ⊩ ψ. (Monotonicidade)
(i) Φ é satisfatı́vel.
(ii) Para qualquer fórmula contraditória φ, Φ ⊮ φ.
(iii) Existe uma fórmula ψ tal que Φ ⊮ ψ
(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.
• φ ∨ φ ≡ φ, φ ∧ φ ≡ φ (Idempotência)
• φ ∧ ψ ≡ ψ ∧ φ, φ ∨ ψ ≡ ψ ∨ φ (Comutatividade)
19
• φ ∧ (ψ ∧ χ) ≡ (φ ∧ ψ) ∧ χ, φ ∨ (ψ ∨ χ) ≡ (φ ∨ ψ) ∨ χ, (Associatividade)
• (φ ∧ ψ) ∨ ψ ≡ ψ, (φ ∨ ψ) ∧ ψ ≡ ψ (Absorção)
• φ ∧ (ψ ∨ χ) ≡ (φ ∧ ψ) ∨ (φ ∧ χ), φ ∨ (ψ ∧ χ) ≡ (φ ∨ ψ) ∧ (φ ∨ χ)
(Distributividade)
• φ → ψ ≡ ¬ψ → ¬φ (Contraposição)
• ¬φ ≡ φ → ⊥ (Eliminação de ¬)
• φ → ψ ≡ ¬φ ∨ ψ (Eliminação de →)
• φ→ψ →χ≡φ∧ψ →χ
v ⊨ ¬(φ ∧ ψ) ⇔ v ⊭ φ ∧ ψ
⇔ v ⊭ φ ou v ⊭ ψ
⇔ v ⊨ ¬φ ou v ⊨ ¬ψ
⇔ v ⊨ ¬φ ∨ ¬ψ
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).
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:
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.
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.
Demonstração. Exercı́cio.
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.
Encontre outras fórmulas que estão em FNC e fórmulas que não estão em FNC!
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 (ψ ∨ ξ) ∧ (χ ∨ ξ).
(b)
(c)
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 .
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.
26
está em FN, e essa última é logicamente equivalente a φ. Q.E.D.
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.
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).
(
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
29
Exercı́cio 3.43 Defina os restantes 3 conectivos (fora de ¬) que correspondem às
funções booleanas de aridade 1.
• {¬, →} é base supondo que {¬, ∧} é base (ou supondo que {¬, ∨} é base)
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.
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 .
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.
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.
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
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.
(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 Φ = ∅).
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.
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 φ.
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.
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.
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.
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.
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.
(i) φ ∈ Φ ⇔ Φ ⊢ φ
(ii) Φ ⊢ ¬φ ⇔ Φ ⊬ φ
(iii) Φ ⊢ φ → ψ ⇔ Φ ⊬ φ ou Φ ⊢ ψ
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.
v(x) = 1 :⇔ Φ ⊢ x,
(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.
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.
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.
∆1 ⊢ φ1 , ..., ∆n ⊢ φn
∆⊢φ
∆⊢φ
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.
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.
(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.
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.
45
(e) Analogamente a (d), segue que {φ} ⊢S ¬¬φ. Exercı́cio: Apresente uma
derivação que prova essa afirmação!
∆⊢φ→ψ
(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.
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.
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
são todas representadas pelo mesmo conjunto de cláusulas {{x1 , x2 }, {¬x3 }}.
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}.
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).
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 .
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?)
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.
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.
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}.
(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)
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.
• ¬¬a = a
• ¬0 = 1, ¬1 = 0
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.
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.
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:
(ii) F é um ultrafiltro.
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.
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 }.
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
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
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 φ ⇔ Φ ⊩ φ.
62