Você está na página 1de 25

INF1009.

3WC: Lógica para computação


Aula 2: A sintaxe da lógica proposicional

Cecília Englander Jefferson Santos Edward Hermann

Lab. TecMF, Dep. Informática, PUC-Rio

2020.1

1/22
INF1009.3WC: Lógica para computação, 2020.1

• Jefferson Santos (jsantos@inf.puc-rio.br)


• Prof.: https://jeffsantos.github.io/aula-pucrio-inf1009/
• Disc.: http://www.tecmf.inf.puc-rio.br/LGRAD
Programa
P1: Lógica proposicional
• Formalização
⇒ Sintaxe
• Semântica (tabela-verdade)
• Tableaux

P2: Lógica de primeira ordem (i)


• Formalização
• Sintaxe
• Tableaux

P3: Lógica de primeira ordem (ii)


• Teoria dos conjuntos (básico)
• Semântica (estruturas)
1. Modelos matemáticos

2. A sintaxe da lógica proposicional

3. Formalização de argumentos
3/22
Modelos matemáticos

Problema
1. Maria tem duas vezes mais maçãs do que João
2. Maria jogou fora metade de suas maçãs, pois elas estragaram
3. João comeu uma de suas maçãs
4. Maria ainda tem duas vezes mais maçãs do que João
5. Quantas maçãs Maria e João tinham inicialmente?

Modelo
m
m=2·j e = 2 · (j − 1)
2
Quaisquer valores de m e j que satisfaçam a equação acima são os possíveis
números iniciais de maçãs de Maria e João

3/22
Manipulando símbolos, temos que. . .

Se
m
m=2·j e = 2 · (j − 1)
2
então
m
= 2 · (j − 1)
2
m = 4 · (j − 1)
2 · j = 4 · (j − 1)
j=2·j−2

Logo, j = 2 e m = 4

4/22
Três virtudes dos modelos matemáticos

1. São mais compreensíveis, concisos, precisos e rigorosos que descrições


informais escritas em linguagem natural
2. Permitem que as respostas dos problemas sejam computadas diretamente a
partir de modelos dos problemas
3. Oferecem métodos de raciocínio formais que podem ser aplicados
independentemente do significado dos símbolos manipulados

5/22
Lógica simbólica
Modelo matemático para raciocínio dedutivo
Problema
• Se tudo é determinado, então as pessoas não são livres (premissa)
• As pessoas são livres (premissa)
• Logo, nem tudo é determinado (conclusão)

Pergunta. Esse argumento é valido? Por quê?

Modelo
Existe derivação!
• D : “tudo é determinado” D → ¬L [D]
• L : “as pessoas são livres” ¬L L

• {D → ¬L, L} ` ¬D ¬D

No modelo, a pergunta “O argumento é valido?” corresponde a “Existe uma


derivação (prova) de ¬D a partir de {D → ¬L, L}?”
6/22
A linguagem da lógica proposicional (LP)

• Vamos construir uma linguagem artificial para a qual proposições escritas


em linguagem natural (como as da aula passada) podem ser traduzidas
• Diferente das linguagens naturais, essa linguagem será uma linguagem
formal com regra de formação estrita

7/22
Alfabeto
O alfabeto da linguagem da lógica proposicional consiste de
• símbolos proposicionais: p1 , p2 , p3 , . . .
• símbolos lógicos: ¬, ∧, ∨, →, ↔
• símbolos de pontuação: (, )
Em que
• p1 , p2 , p3 , . . . denotam proposições arbitrárias
• ¬ denota a negação (“não é o caso que”)
• ∧ denota a conjunção (“e”)
• ∨ denota a disjunção (“ou”)
• → denota o condicional (“se . . . então”)
• ↔ denota o bicondicional (“se, e somente se”)
• (, ) denotam agrupamentos

8/22
Expressão

Uma expressão é qualquer sequência finita de símbolos do alfabeto


Exemplos
• p1
• (p1 ∧ p2 )
• → p1 ∨ p2
• ¬(↔ (→
• ((p1 ∧ p2 ) → (¬p3 ))
• →→→→→→→→
• ∧∨∧∨∧∨∧∨∧∨∧

9/22
Fórmula (bem formada)
Uma fórmula (bem formada) é qualquer expressão que atenda a seguinte
regra de formação
R1 Todo símbolo de proposição p1 , p2 , p3 , . . . é fórmula
R2 Se ϕ e ψ são fórmulas, então (¬ϕ), (ϕ ∧ ψ), (ϕ ∨ ψ), (ϕ → ψ)
e (ϕ ↔ ψ) são fórmulas
R3 Nenhuma expressão é uma fórmula a não ser que o fato de ser uma
fórmula decorra de (R1) e (R2)

Exemplos
• p1
• (¬p1 )
• ((¬p1 ) ∧ p1 )
• ((p1 ∧ (¬p1 )) → (¬(p1 ∧ (p2 ∨ p3 ))))
• ((p9554 ↔ p13 ) → (¬p121 ))

10/22
Análise sintática: Composição e decomposição
Como determinar se uma expressão é uma fórmula?
• Composição: Deve ser possível construí-la a partir dos símbolos
proposicionais usando (R1) e (R2)
• Decomposição: Deve ser possível decompô-la usando (R1) e (R2) até
atingir símbolos proposicionais

Exemplo
(p1 ∧ (p2 ∨ p3 ))
1. p1 , p2 e p3 são fórmulas (R1)
2. Logo, (p2 ∨ p3 ) é uma fórmula (R2,∨)
3. Logo, (p1 ∧ (p2 ∨ p3 )) é uma fórmula (R2,∧)

Composição (1,2,3) / Decomposição (3,2,1)

11/22
Árvore de sintaxe
Representação gráfica da composição/decomposição de uma fórmula
Exemplo
((p1 ∧ p10 ) ↔ ((¬p3 ) ∨ (p8 → p3 )))

(p1 ∧ p10 ) ((¬p3 ) ∨ (p8 → p3 ))

p1 p10 (¬p3 ) (p8 → p3 )

p3 p8 p3

Composição ↑ / Decomposição ↓
(Conectivo principal de cada componente em vermelho)

12/22
Exercício
Quais das seguintes expressões são fórmulas?
1. ¬¬¬p3
2. ¬p6
3. (¬p999999 )
4. p1 p2
5. ¬(p5 ↔ p5 )
6. ((¬(¬p3 )) ∧ (¬p8 ))
7. p2
8. p2 ∨ p1 → p9
9. p1 p5 ∧ ¬p3
10. p1 ¬
11. p1 → p2 → p3 → p4
12. ((p3 ∧ p2 ) → (p1 ∨ (p1 ∧ p4 )))

13/22
Subfórmula
Uma fórmula ψ é subfórmula de ϕ se ψ aparece na árvore de sintaxe de ϕ
• Por definição, ϕ é subfórmula de si mesmo
Exemplo
ϕ = ((p1 ∧ (¬p2 )) ↔ (¬p2 ))

(p1 ∧ (¬p2 )) (¬p2 )

p1 (¬p2 ) p2

p2

Sub ϕ = {((p1 ∧ (¬p2)) ↔ (¬p2 )), (p1 ∧ (¬p2 )), (¬p2 ), p1 , p2 }


| {z } | {z } | {z } |{z} |{z}
1 2 3 4 5

14/22
Mais precisamente. . .
Definição
O conjunto das subfórmulas de ϕ é o conjunto Sub ϕ tal que1

Sub pi = {pi }
Sub(¬ϕ1 ) = {(¬ϕ1 )} ∪ Sub ϕ1
Sub(ϕ1 ϕ2 ) = {(ϕ1 ϕ2 )} ∪ Sub ϕ1 ∪ Sub ϕ2

Uma fórmula ψ é subfórmula de ϕ sse ψ ∈ Sub ϕ


Exemplo

Sub(p1 → (¬p1 )) = {(p1 → (¬p1 )} ∪ Sub p1 ∪ Sub(¬p1 )


= {(p1 → (¬p1 )} ∪ {p1 } ∪ {(¬p1 )} ∪ Sub p1
= {(p1 → (¬p1 )} ∪ {p1 } ∪ {(¬p1 )} ∪ {p1 }
= {(p1 → (¬p1 ), (¬p1 ), p1 }

1
Para igual a ∧, ∨, →, ou ↔. 15/22
Exercício

Para cada fórmula ϕ abaixo, determine Sub ϕ


1. (p1 ∨ p2 )
2. ((p1 ∨ p2 ) ∨ (p3 ∨ p41 ))
3. (p875 → (p5 ∨ (p2 ∧ p1 )))
4. (¬(p3 ∨ (p12 ∧ p2 )))
5. (¬(p3 ∧ (p12 ∨ p2 )))
6. ((p7 ∧ (p7 → p4 )) → p4 )

16/22
Metavariáveis, abreviações, omissão de parênteses

De agora em diante
• a, b, c, . . . , A, B, C, . . . denotam símbolos proposicionais arbitrários
• ϕ e ψ denotam fórmulas arbitrárias

Sempre que possível, vamos omitir parênteses assumindo que


• ¬ tem precedência sobre ∧ e ∨
• ∧ e ∨ tem precedência sobre → e ↔

Exemplos
• p ∧ q → s abrevia ((p ∧ q) → r)
• p ∧ ¬p → ¬(p ∧ (q ∨ r)) abrevia ((p ∧ (¬p)) → (¬(p ∧ (q ∨ r))))

17/22
Exercício

Abrevie as seguintes fórmulas


1. (¬p759 )
2. ((¬((¬p759 ) ↔ (¬p759 ))) ∨ p1 )
3. ((p1 ∧ p10 ) → ((¬p3 ) ∨ (p8 → p3 )))

Apresente uma instância (na linguagem objeto) de fórmulas nos seguintes


formatos
1. ¬¬a
2. ¬P ↔ (Q ∧ P) ∨ R
3. r ∧ (s → t) → (t → (s → r))

18/22
Exercício

Formalize as seguintes proposições em LP


1. Se Edgar apresentar uma queixa, então Fulton investigará e Greville será
desqualificado
2. Se Edgar não apresentar uma queixa, então nem Fulton investigará, nem
Greville será desqualificado
3. Ou Edgar apresenta uma queixa ou, se Fulton investigar, então Greville não
será desqualificado

19/22
Formalização de argumentos

Informalmente
Um argumento é um conjunto de proposições em que uma delas é a
conclusão e as demais são premissas (que justificam a conclusão)

Formalmente
Vamos escrever
{ϕ1 , ϕ2 , . . . , ϕn } ` ψ
para indicar que é possível deduzir (provar) a conclusão ψ a partir do
conjunto de premissas {ϕ1 , . . . , ϕn }

Exemplo

{p ∨ q, ¬q} ` p

20/22
Exercício: Formalização de argumentos
1. Se Deus existe, então a vida tem significado. Deus existe. Portanto, a vida
tem significado. {p → q, p} ` q

2. Como hoje não é quinta-feira, deve ser sexta-feira. Hoje é quinta-feira ou


sexta-feira.
3. Hoje é um fim de semana se e somente se hoje é sábado ou domingo.
Portanto, hoje é um fim de semana, já que hoje é sábado.
4. Hoje é quarta-feira ou sexta-feira. Mas não pode ser quarta-feira, pois o
consultório do médico estava aberto esta manhã, e aquele consultório está
sempre fechado às quartas. Portanto, hoje deve ser sexta-feira.
5. Se Allen se retirar do concurso, então ou Brown será nomeado ou Clark
ficará desapontado. Brown não será nomeado. Portanto, se Allen se retirar
do concurso, então Clark ficará desapontado.
6. Se Jones descobre a conspiração, e se der valor à sua vida, então deixará o
país. Ele dá valor à sua vida. Portanto, se Jones descobre a conspiração,
então abandonará o país.
21/22
Exercício (Próxima aula)

Considere o seguinte trecho de código:

if (i != 0) /* A */
j = 0;
i = i + j; /* B */
j = i - j;
/* C */

Formalize o seguinte argumento:


• Se i 6= 0 em A, então j = 0 em B. Além disso, i = 0 em B se e somente
se i = 0 em A.
• Se i = 0 em B, então j = 0 em C. Se j = 0 em B, então j = i em C.
• Portanto, em C, ou j = 0 ou j = i.

22/22
Fim

Você também pode gostar