Logica
Logica
Logica
1. Fundamentos
“(...) all rational inquiry depends on logic, on the ability of people to reason
correctly most of the time.”
“(...) there is an overwhelming intuition that the laws of logic are somehow more
irrefutable than the laws of the land, or even the laws of physics.”
Porque deve um estudante de Informática estudar lógica? Porque precisa de dominar ferra-
mentas lógicas que lhe permitam argumentar se um problema pode ou não ser resolvido num
computador, traduzir proposições lógicas da linguagem comum em diversas linguagens computa-
cionais, argumentar se um programa está correcto e se é eficiente. Os computadores baseiam-se
em mecanismos lógicos e são programados de modo lógico. Os informáticos devem ser capazes
de compreender e aplicar novas ideias e técnicas de programação, muitas das quais requerem
conhecimento dos aspectos formais da lógica.
Todos nós raciocinamos enunciando factos e tirando conclusões baseadas nesses factos. O
inı́cio de uma conclusão é habitualmente indicada por uma palavra como
Para chegarmos a uma conclusão aplicamos uma regra de inferência (ou regra de dedução).
A mais comum é a chamada regra modus ponens (modo que afirma): sendo A e B afirmações,
se A e “se A então B” são ambas verdadeiras, então podemos concluir que B é verdadeira.
[Como aprendeu a regra modus ponens em criança ?]
Outra regra muito comum é a modus tollens (modo que nega): sendo A e B afirmações, se
“se A então B” é verdadeira e B é falsa, então podemos concluir que A é falsa.
Por exemplo:
Quando tiramos uma conclusão que não decorre dos factos estabelecidos previamente, o
raciocı́nio diz-se non sequitur (que não segue).
[Pense num exemplo de non sequitur que já tenha observado.]
11
Estruturas Discretas 1.1. Lógica elementar
Neste primeiro capı́tulo começaremos por estudar um pouco de lógica. Algumas definições
de lógica que podemos encontrar nos dicionários:
• Sistema de raciocı́nio.
• Raciocı́nio válido.
Um cálculo é uma linguagem de expressões, onde cada expressão tem um valor lógico e há
regras para transformar uma expressão noutra com o mesmo valor. Aqui estudaremos um pouco
do cálculo proposicional. O cálculo proposicional é a linguagem das proposições. Uma proposição
é uma expressão da qual faz sentido dizer que é verdadeira ou que é falsa. Cada proposição tem
um e um só valor lógico, entre dois possı́veis: V (verdadeiro) ou F (falso).
Exemplo. “Coimbra é uma cidade portuguesa” é uma proposição com valor lógico verdadeiro.
Mas atribuir um valor lógico à afirmação “Hoje está um belo dia!” já não faz sentido, pois trata-
-se duma expressão subjectiva que exprime um sentimento de alguém, não de uma afirmação
objectiva.
O cálculo proposicional (tal como outros tipos de lógica) que vamos estudar pressupõe os
seguintes princı́pios:
Princı́pio da não contradição: Uma proposição não pode ser verdadeira e falsa ao mesmo tempo.
12
Estruturas Discretas 1.1. Lógica elementar
negação ¬p (não p)
conjunção p ∧ q (p e q)
disjunção p ∨ q (p ou q)
implicação p→q (se p então q; p só se q; p é condição suficiente para
que q; q é condição necessária para que p)
equivalência (formal) p ↔ q (p é equivalente a q)
·
disjunção exclusiva p ∨ q (ou p ou q)
As proposições são representadas por fórmulas chamadas fórmulas bem formadas que são
construı́das a partir de um alfabeto constituı́do por:
• Sı́mbolos de verdade: V e F.
• Conectivos (operadores):
¬ (“não”, negação)
∧ (“e”, conjunção)
∨ (“ou”, disjunção)
→ (“implica”, implicação).
• Sı́mbolos de parênteses: (, ).
Exemplo. A expressão p¬q não é uma fbf. Mas cada uma das seguintes expressões é uma fbf:
p ∧ q→r, (p ∧ q)→r, p ∧ (q→r).
Os parênteses funcionam como sı́mbolos auxiliares que indicam como é formada a fbf. Para
evitar um uso excessivo de parênteses e simplificar a escrita das expressões lógicas convenciona-
1 Em lógica é habitual designar estes conectivos por conectivos booleanos, em homenagem ao lógico britânico
George Boole (1815-1864), que estudou as leis do pensamento usando métodos matemáticos em [An investigation
into the Laws of Thought, 1854].
13
Estruturas Discretas 1.1. Lógica elementar
-se que as operações lógicas são consideradas pela seguinte ordem de prioridade: ¬, ∧, ∨, →.
Convenciona-se ainda que na presença de uma só das três últimas operações, na ausência de
parênteses as operações são realizadas da esquerda para a direita.
Exemplos.
¬p ∧ q significa (¬p) ∧ q
p∨q∧r significa p ∨ (q ∧ r)
p ∧ q→r significa (p ∧ q)→r
p→q→r significa (p→q)→r.
Relativamente a uma dada linguagem lógica podemos sempre estudar dois aspectos: a sintaxe
e a semântica. A sintaxe diz respeito às regras de formação das expressões lógicas a utilizar,
ou seja, as fórmulas bem formadas. Em cima, acabámos de descrever a sintaxe do cálculo
proposicional.
A semântica estuda o significado das expressões.
sintaxe (fórmulas bem formadas)
Linguagem (conjunto de sı́mbolos)
semântica (significado).
Quanto à semântica, dada uma fbf, interpretando cada uma das suas variáveis proposicionais
com os valores lógicos V ou F, é possı́vel dar um significado à fórmula através da interpretação dos
conectivos lógicos dada pelas respectivas tabelas de verdade. Cada conectivo tem uma tabela
de verdade (que vai ao encontro da forma corrente do significado das operações “não”, “e”,
“ou”, etc.). A tabela de verdade faz corresponder aos possı́veis valores lógicos das variáveis o
correspondente valor lógico da operação2 :
Em conclusão:
14
Estruturas Discretas 1.1. Lógica elementar
p q ¬p (¬p) ∧ q
V V F F
V F F F
F V V V
F F V F
É claro que a cada fbf corresponde uma e uma só tabela de verdade.
Uma fbf diz-se uma tautologia se for verdadeira para todos os possı́veis valores lógicos das
suas variáveis proposicionais. Uma fbf diz-se uma contradição se for falsa para todos os possı́veis
valores lógicos das suas variáveis proposicionais. Uma fbf diz-se uma contingência se não for
uma tautologia nem uma contradição.
Exemplos. Suponhamos que queremos averiguar se p→p ∨ q é ou não uma tautologia. Para
isso basta construir a respectiva tabela de verdade:
p q p∨q p→p ∨ q
V V V V
V F V V
F V V V
F F F V
Como para quaisquer valores de p e q toma sempre o valor de verdade, concluı́mos que é uma
tautologia.
Mais exemplos: p∨¬p é uma tautologia, p∧¬p é uma contradição e p→q é uma contingência.
Duas fbf’s dizem-se (logicamente) equivalentes se tiverem o mesmo significado, isto é, a mesma
tabela de verdade. Para indicar que duas fbf’s A e B são equivalentes, escrevemos A ≡ B. Em
vez do sı́mbolo ≡ também se costuma usar ⇔. Note que dizer que A e B são logicamente
equivalentes é o mesmo que dizer que as fórmulas (A→B) e (B→A) são tautologias (Prova:
A ≡ B sse A e B têm os mesmos valores de verdade sse (A→B) e (B→A) são tautologias).
15
Estruturas Discretas 1.1. Lógica elementar
p ∨ (p ∧ q) ≡ p Leis da absorção
p ∧ (p ∨ q) ≡ p
(p ∨ q) ∨ r ≡ p ∨ (q ∨ r) Leis da associatividade
(p ∧ q) ∧ r ≡ p ∧ (q ∧ r)
p ∨ (q ∧ r) ≡ (p ∨ q) ∧ (p ∨ r) Leis da distributividade
p ∧ (q ∨ r) ≡ (p ∧ q) ∨ (p ∧ r)
¬(p ∧ q) ≡ ¬p ∨ ¬q Leis de De Morgan
¬(p ∨ q) ≡ ¬p ∧ ¬q
p→q ≡ ¬p ∨ q
p q p∧q ¬(p ∧ q) ¬p ¬q ¬p ∨ ¬q
V V V F F F F
V F F V F V V
F V F V V F V
F F F V V V V
concluı́mos que ambas as fbf’s têm o mesmo valor lógico para os mesmos valores das variáveis
proposicionais, pelo que são logicamente equivalentes.
É possı́vel provar uma equivalência sem construir as tabelas de verdade por causa dos
seguintes factos:
1. Se A ≡ B e B ≡ C, então A ≡ C.
Exemplo. Use as equivalências básicas na tabela anterior para provar que p ∨ q→p ≡ q→p.
16
Estruturas Discretas 1.1. Lógica elementar
3. p→q ≡ (p ∧ ¬q)→F.
1. (p ∧ q ∧ r) ∨ (p ∧ r) ∨ r.
2. (s→t) ∧ (u ∨ t ∨ ¬s).
Se p é uma variável proposicional numa fbf A, denotemos por A(p/V) a fbf que se obtém de
A substituindo todas as ocorrências de p por V . De modo análogo podemos também definir a
fórmula A(p/F). As seguintes propriedades verificam-se:
e
B(q/F) = (F→r) ∧ F→r ≡ F→r ≡ V,
o que mostra que B é uma tautologia. Portanto, A é uma tautologia.
No nosso dia a dia raciocinamos e tiramos conclusões usando determinadas regras. A lógica
ajuda a compreender essas regras permitindo distinguir entre argumentos correctos e argumen-
tos não correctos. Seguem-se alguns argumentos lógicos, cada um deles com um exemplo e a
respectiva formalização.
17
Estruturas Discretas 1.1. Lógica elementar
(1)
1. Se o gato vê o peixe, então o gato apanha o peixe.
2. Se o gato apanha o peixe, então o gato come o peixe.
3. Se o gato vê o peixe, então o gato come o peixe.
1. p→q
2. q→r
3. p→r
(2)
1. Se o João tem mais de 16 anos, então vai ao cinema.
2. O João tem mais de 16 anos.
3. O João vai ao cinema.
1. p→q
2. p
3. q
(3)
1. A Maria vai aos testes ou faz o exame.
2. A Maria não faz o exame.
3. A Maria vai aos testes.
1. p ∨ q
2. ¬q
3. p
A1
A2
..
.
An
B
A1 , A2 , . . . , An |= B.
Para indicar que A |= B também se usa A ⇒ B, nomenclatura que faz parte do dia a dia da
escrita matemática.
Um literal é uma variável proposicional ou a sua negação; por exemplo, p e ¬p são literais
(ditos literais complementares).
Uma fbf diz-se uma forma normal disjuntiva (FND) se for da forma C1 ∨ C2 ∨ · · · ∨ Cn , onde
cada Ci é uma conjunção de literais (chamada conjunção fundamental).
18
Estruturas Discretas 1.1. Lógica elementar
Analogamente, uma fbf diz-se uma forma normal conjuntiva (FNC) se for da forma D1 ∧
D2 ∧ · · · ∧ Dn , onde cada Di é uma disjunção de literais (chamada disjunção fundamental).
Exemplos de formas normais disjuntivas:
¬p
p ∨ ¬q
p ∧ ¬q
(p ∧ q) ∨ (p ∧ ¬q)
p ∨ (p ∧ r)
¬p
p ∧ ¬q
¬p ∨ q
p ∧ (q ∨ r)
1. “Removem-se” todas as →.
p ∨ (q ∧ r) ≡ (p ∨ q) ∧ (p ∨ r)
(p ∧ q) ∨ r ≡ (p ∨ r) ∧ (q ∨ r)
Para obter uma forma normal disjuntiva procede-se de forma análoga, usando agora em 3 as
propriedades
p ∧ (q ∨ r) ≡ (p ∧ q) ∨ (p ∧ r)
(p ∨ q) ∧ r ≡ (p ∧ r) ∨ (q ∧ r).
19
Estruturas Discretas 1.1. Lógica elementar
Uma função de verdade (ou função lógica) é uma função que só pode tomar os valores lógicos
V ou F e cujos argumentos também só podem tomar esses valores. Por exemplo,
V se p é V
f (p, q) = V se p e q são ambas F
F se p é F e q é V
p q f (p, q)
V V V
V F V
F V F
F F V
A metodologia a seguir será encontrar uma fbf com a mesma tabela de verdade (podemos
construir quer uma FND quer uma FNC).
Técnica. Para construir uma FND, tendo em conta que a disjunção de um número finito de
fbf’s é V se e só se uma delas o for, basta tomar cada linha da tabela que tenha valor V e construir
uma conjunção fundamental que só seja verdadeira nessa linha. De modo análogo, para construir
uma FNC, basta considerar cada linha que tenha valor F e construir uma disjunção fundamental
que só seja falsa nessa linha.
20
Estruturas Discretas 1.1. Lógica elementar
f (p, q) ≡ p ∨ ¬q (FNC).
Uma FND para uma fbf A é uma FND plena (forma normal disjuntiva plena) se cada
conjunção fundamental contém o mesmo número de literais, um por cada variável proposicional
de A. Uma FNC para uma fbf A é uma FNC plena (forma normal conjuntiva plena) se cada
disjunção fundamental contém o mesmo número de literais, um por cada variável proposicional
de A.
Exemplo. No exemplo anterior obtivemos uma FND plena e uma FNC plena.
Podemos usar a técnica das funções de verdade para determinar uma FND plena ou uma
FNC plena de qualquer fbf com a excepção das tautologias (não têm uma FNC plena) e das
contradições (não têm uma FND). Por exemplo:
V ≡ p ∨ ¬p, que é uma FND plena e uma FNC, mas não é uma FNC plena,
F ≡ p ∧ ¬p, que é uma FNC plena e uma FND, mas não é uma FND plena.
Os conectivos lógicos que usámos para definir as fbf’s do cálculo proposicional são ¬, ∧, ∨
e →. É evidente que o sı́mbolo → não é absolutamente necessário (pela última lei da tabela
das equivalências básicas): qualquer fbf pode ser substituı́da por outra logicamente equivalente
e onde não figura o sı́mbolo →.
Um conjunto de conectivos lógicos diz-se completo se toda a fbf do cálculo proposicional é
equivalente a uma fbf onde figuram apenas conectivos desse conjunto. É claro que
{¬, ∧, ∨, →}
{¬, ∧, ∨}, {¬, ∧}, {¬, ∨}, {¬, →}, {F, →}.
——————— JI ———————
21
Estruturas Discretas 1.1. Lógica elementar
Observação final. Como vimos, as tabelas de verdade são suficientes para determinar quando
uma fbf é uma tautologia. Contudo, quando uma proposição tem mais do que duas variáveis e
contém vários conectivos, a tabela de verdade pode começar a ficar muito complicada. Nesses
casos, o método alternativo que vimos de encontrar uma prova de equivalência usando as leis de
equivalência básicas ou ainda uma combinação dos dois (por exemplo, o método de Quine) pode
ser mais prático. Quando usamos uma prova de equivalência, em vez de uma tabela de verdade,
para verificar se duas fbf’s são equivalentes, isso parece de certo modo mais parecido com o
modo como comunicamos habitualmente. Embora não seja necessário raciocinar formalmente
desse modo no cálculo proposicional, há outros tipos de sistemas lógicos onde isso já é necessário
para averiguar da validade das fbf’s pois aı́ as tabelas de verdade não funcionam. Para esses
casos existe uma ferramenta: os sistemas de raciocı́nio formal. Quais são as ideais básicas destes
sistemas?
Um sistema formal consiste em três partes:
(2) Um conjunto de sequências finitas destes sı́mbolos que constituem as chamadas fórmulas
bem formadas.
(3) Um determinado conjunto de fbf’s, chamadas axiomas, que se assumem ser verdadeiras.
(4) Um conjunto finito de “regras de dedução” chamadas regras de inferência que permitem
deduzir uma fbf como consequência directa de um conjunto finito de fbf’s.
Um sistema formal precisa de algumas regras para ajudarem a obter novas fórmulas, as
chamadas regras de inferência. Uma regra de inferência aplica uma ou mais fbf’s, chamadas
premissas, hipóteses ou antecedentes, numa só fórmula, chamada conclusão ou consequente.
Algumas regras de inferência úteis:
Aqui o conceito crucial é o de dedução. Uma dedução de uma certa conclusão — digamos S
— a partir de premissas P1 , P2 , . . . , Pn é feita passo a passo. Numa dedução, estabelecem-se con-
clusões intermédias, cada uma delas conclusão imediata das premissas e conclusões intermédias
anteriores. Podemos dizer que uma dedução consiste numa sucessão de afirmações, que são pre-
missas ou conclusões intermédias, e que termina, ao fim de um número finito de passos, quando
se obtém a conclusão S.
22
Estruturas Discretas 1.1. Lógica elementar
Cada passo de dedução é correcto, i.e., não oferece dúvidas quanto à validade de cada con-
clusão intermédia, em consequência da validade das premissas e das conclusões intermédias
anteriores.
Uma dedução de uma afirmação S a partir de premissas P1 , P2 , . . . , Pn é uma demonstração
passo a passo que permite verificar que S tem que ser verdadeira em todas as circunstâncias em
que as premissas sejam verdadeiras. Uma dedução formal assenta num conjunto fixo de regras
de dedução e tem uma apresentação rı́gida — um pouco à semelhança dos programas escritos
numa dada linguagem de programação.
Seja C um conjunto de fbf’s e seja P uma fbf em S. Diz-se que P é dedutı́vel a partir de C
em S, e escreve-se C `S P (ou apenas C ` P se não houver dúvidas sobre o sistema S a que
nos referimos) se existir uma sequência finita de fbf’s, P1 , P2 , . . . , Pn tais que:
• Pn = P .
• Para cada i ∈ {1, . . . , n}, Pi é um axioma de S ou uma fbf em C ou uma consequência dos
Pi ’s anteriores através de aplicação das regras de inferência.
Leituras suplementares:
23
Estruturas Discretas 1.1. Lógica elementar
O cálculo proposicional providencia ferramentas adequadas para raciocinarmos sobre fbf’s que
são combinações de proposições. Mas uma proposição é uma sentença tomada como um todo o
que faz com que o cálculo proposicional não sirva para todo o tipo de raciocı́nio que precisamos
de fazer no dia a dia. Por exemplo, no argumento seguinte é impossı́vel encontrar no cálculo
proposicional um método formal para testar a correcção da dedução sem uma análise mais
profunda de cada sentença:
∃S(∀x(S(x)→N(x)) ∧ ¬S(4)).
Costuma-se classificar o cálculo proposicional como uma lógica de ordem zero. Porquê?
Porque não permite que os conjuntos sejam quantificados e que sejam elementos de outros
conjuntos. O cálculo de predicados já é uma lógica de ordem superior: permite que os conjuntos
sejam quantificados e que sejam elementos de outros conjuntos. De que ordem?
Diz-se que um predicado tem ordem 1 se todos os seus argumentos são termos (isto é, cons-
tantes, variáveis individuais ou valores de funções). Caso contrário, diz-se que tem ordem n + 1,
onde n é a maior ordem entre os seus argumentos que não são termos. Por exemplo, em
24
Estruturas Discretas 1.1. Lógica elementar
S(x) ∧ T (S), o predicado S tem ordem 1 e o predicado T tem ordem 2. Em p(f (x)) ∧ q(f ), p
tem ordem 1, f tem ordem 1 e q tem ordem 2.
Uma lógica de ordem n é uma lógica cujas fbf’s têm ordem ≤ n.
Após termos estudado um pouco de cálculo proposicional, o passo seguinte, que não efectua-
remos, seria estudar uma lógica de primeira ordem, nomeadamente o chamado cálculo de pre-
dicados de primeira ordem. Em vez disso aprenderemos, praticando, uma linguagem simbólica
simples de primeira ordem, trabalhando com o Tarski World 3 .
Uma linguagem de primeira ordem serve para descrever mundos da seguinte maneira:
• Um objecto pode ter vários nomes, mas também pode não ter nome.
Os sı́mbolos de predicado ou relacionais são sı́mbolos que designam propriedades dos objectos
ou relações entre objectos.
Por exemplo, podemos usar o sı́mbolo EEI, um sı́mbolo de predicado unário (ou seja, de
aridade um), para designar, no universo dos alunos deste curso, ser Estudante de Engenharia
Informática. Outro exemplo: o sı́mbolo <, um sı́mbolo de predicado binário (ou seja, de aridade
dois), representa, no universo dos números reais, ser menor do que.
Portanto, numa linguagem de primeira ordem, a cada sı́mbolo de predicado está associado
exactamente um número natural — o número de argumentos que ocorre no predicado, que se
designa por aridade. Além disso, cada sı́mbolo de predicado ou relacional é interpretado por
uma propriedade bem determinada ou uma relação com a mesma aridade que o sı́mbolo.
Uma sentença atómica é uma sequência finita de sı́mbolos, escolhidos entre as constantes, os
sı́mbolos de predicados, os parênteses “(” e “)” e a vı́rgula, da forma
25
Estruturas Discretas 1.1. Lógica elementar
Exemplos.
Quando se traduz uma frase em Lı́ngua Portuguesa para uma sentença numa linguagem de
primeira ordem, tem-se em geral uma linguagem previamente definida, em que se conhecem
à partida as constantes, os sı́mbolos relacionais e (caso existam) os sı́mbolos funcionais. No
entanto, há situações em que há que decidir quais as constantes, os sı́mbolos relacionais e (caso
existam) os sı́mbolos funcionais adequados para expressar o que se pretende.
(1) Tomando o sı́mbolo de predicado binário ExplicouT arskiW orld podemos escrever
O poder expressivo da linguagem (2) é maior do que o da linguagem (1). De facto, con-
siderando a frase A Rita explicou o Boole ao Miguel, esta pode ser traduzida usando o sı́mbolo
de predicado ternário Explicou — terı́amos Explicou(Rita, Boole, M iguel) — mas não pode
ser traduzida usando o sı́mbolo de predicado ExplicouT arskiW orld. O sı́mbolo de predi-
cado Explicou é mais versátil do que os sı́mbolos de predicado ExplicouT arskiW orld ou
ExplicouBoole.
26
Estruturas Discretas 1.1. Lógica elementar
Para considerar as frases A Rita explicou o Boole ao Miguel no sábado e No domingo, o Miguel
explicou o Boole ao João podemos considerar um predicado quaternário Explicou(x, y, z, w) —
que se lê “x explicou y a z no w” — e traduzir as duas frases consideradas para LPO:
Os sı́mbolos funcionais são sı́mbolos que permitem obter outras designações para objectos.
Exemplos. (1) Jorge é pai do Nuno. Supondo que a afirmação é verdadeira, Jorge e pai(N uno)
são duas designações diferentes para o mesmo indivı́duo; pai é um sı́mbolo funcional unário.
(2) As expressões 3 e ((1 + 1) + 1) são duas designações diferentes do mesmo número natural; +
é um sı́mbolo funcional binário.
27
Estruturas Discretas 1.1. Lógica elementar
• São termos apenas as expressões que possam ser obtidas por aplicação sucessiva dos passos
anteriores um número finito de vezes.
Com o Tarski World trabalharemos com linguagens de primeira ordem simples. Aı́ podemos
construir mundos tridimensionais habitados por blocos geométricos de diversos tipos e tamanhos,
e usar uma linguagem de primeira ordem para descrever esses mundos e testar o valor lógico
(verdadeiro ou falso) de sentenças de primeira ordem elaboradas sobre esses mundos.
28