Você está na página 1de 62

Lógica para Programação

LEIC-Alameda
2023
Lógica Proposicional

Sistema dedutivo (S1:A2-3)

(estes slides são fortemente baseados nos


slides gentilmente cedidos pelas Professoras
Inês Lynce e Luísa Coheur

Qualquer gralha é da minha


responsabilidade)
Programa

• Conceitos Básicos (Livro: 1.1)


• Lógica Proposicional– sistema dedutivo (2.1, 2.2.1, 2.2.2 e 2.2.4)
• Lógica Proposicional (ou Cálculo de Predicados) – resolução (3.1)
• Lógica de Primeira Ordem – sistema dedutivo (4.1, 4.2)
• Lógica de Primeira Ordem – resolução (5.1 e 5.2)
• Programação em Lógica (6)
• Prolog (7 + Apêndice A: manual de sobrevivência em Prolog)
• Lógica Proposicional (ou de Predicados) – sistema semântico
(2.3, 2.4, 3.2)
Linguagem da lógica proposicional

Símbolos da linguagem:

1. Símbolos de pontuação: ( )
2. Símbolos lógicos: ¬ , ∧ , ∨ , →
• o símbolo ¬ corresponde à operação de negação,
• o símbolo ∧ corresponde à operação de conjunção
• o símbolo ∨ corresponde à operação de disjunção,
• o símbolo → corresponde à operação de implicação.

Símbolos de predicado: letras maiúsculas (P, Q, R, . . . ) que


representam proposições
Frases da linguagem (fbfs)

Letras gregas minúsculas (α, β, γ, . . . ) representam fbfs (formulas bem


formadas)

-- Os símbolos de predicado são fbfs.

-- Se α é uma fbf então (¬ α) é uma fbf.

-- Se α e β são fbfs então (α ∧ β) (α ∨ β) (α → β) são fbfs.

Nada mais é uma fbf.


Nota que fbf não quer dizer “forever best friends”, mas
sim “fórmulas bem formadas”….
Frases da linguagem (fbfs)

Letras gregas minúsculas (α, β, γ, . . . ) representam fbfs.

Os símbolos de predicado são fbfs.

Se α é uma fbf então (¬ α) é uma fbf.


Se α e β são fbfs então (α ∧ β) (α ∨ β) (α → β) são fbfs.

---- Nada mais é uma fbf.

Sempre que possível os parêntesis redundantes são omitidos:

¬ tem prioridade sobre ∧ e ∨,


∧ e ∨ têm prioridade sobre →
∧ , ∨ são operações associativas à esquerda
→ é associativa à direita
Exemplos

i) P
ii) P ∧ Q
iii) ¬ P
iV) ¬ P ∨ ¬ R
v) (P ∧ Q) ∨ (R → (P → Q))
Exemplo

(P ∧ Q) ∨(R →(P →Q))

pode ser simplificado para:


P ∧Q ∨(R →P →Q).

Associativas à esquerda Associativas à direita


Tabelas de verdade para ¬, ∧, ∨, →

α ¬α
V F
F V

α β α ∧β α β α ∨β α β α →β
V V V V V V V V V
V F F V F V V F F
F V F F V V F V V
F F F F F F F F V
Mas isto serve para
quê?????
Sistema dedutivo….

O sistema dedutivo especifica regras de inferência que


permitem inferir novas fbfs a partir de fbfs já
existentes.

Como?????
Sistema dedutivo:
dedução natural

Num sistemas de dedução natural existem


tipicamente duas regras de inferência por cada
símbolo lógico
(¬, ∧, ∨, →):

• Regras de introdução: introdução do símbolo lógico numa nova


fbf.

• Regras de eliminação: eliminação de um símbolo lógico de uma


fbf já existente.
Vamos aprender a provar argumentos = (∆, α),
em que:

• ∆ é um conjunto de premissas;
• α é a conclusão.
“Prova” de um argumento

Dado um argumento (∆, α), uma prova de α a partir de ∆ é:

• uma sequência finita de linhas numeradas,


• em que cada uma contém uma premissa ou uma fbf que
resulta da aplicação de uma regra de inferência que utiliza
fbfs anteriores.

• a última linha contém a fbf α.

Se existir uma prova de α a partir de ∆ dizemos que α é


derivável a partir de ∆ e escrevemos:
∆⊢α
Mas afinal, o que é que vamos fazer????
Primeiro… regras….
R1. Regra da premissa

n α Prem

Em que:
n: nu
úmero da linha da prova,
α: fbf introduzida pela regra,
Prem: utilização da regra da premissa.

Racional
Se α é uma premissa no meu argumento, eu posso usá-la na
prova
R2. Regra da repetição

n α
: :
: :
m α Rep, n

Em que:
n,m: números da linha da prova,
α: fbf introduzida pela regra,
Rep: utilização da regra da repetição.

Racional
Se α é uma fbf que já existe na prova, então eu posso repetir
α na prova
R3. Regra da introdução da conjunção

n α
: :
: :
m β
: :
: : Em que:
k α∧β I∧, (n, m)
n,m,k: números da linha da prova,
α ∧ β: fbf introduzida pela regra,
I∧: utilização da regra da introdução da
conjunção.
Racional
Se α e β são fbf que existem ambas na prova, então eu posso
introduzir a fbf que é a conjunção de ambas
Exemplo: provar que {P, Q} ⊢ P ∧ Q

(1) Uma prova do argumento (∆, α) é uma sequência finita de linhas


numeradas, em que cada uma contém uma premissa ou uma fbf que
resulta da aplicação de uma regra de inferência que utiliza fbfs anteriores.

1 P Prem
2 Q Prem
3 P ∧ Q I∧, (1, 2)

NOTA: Se existir uma prova de α a partir de ∆ dizemos que α é derivável


a partir de ∆ e escrevemos:
∆⊢α

LOGO: {P, Q} ⊢ P ∧ Q Provámos!!!


R1. Regra da premissa
R2. Regra da repetição
R3. Regra da introdução da conjunção

E não há mais regras ?????


R4. Regra da eliminação da conjunção

n α∧β
: :
: : Em que:
m α E∧, n
n,m: números da linha da prova,
OU α ou β :são fbfs podem ser introduzidas
:n α∧β pela regra
:
: : E∧: utilizaçao da regra da eliminação da
m β E∧, n conjunção.

Racional
Se α ∧ β é uma fbf que existe na prova, então eu posso
introduzir α , β ou ambas como fbfs
Exemplo: provar que {P ∧ Q, R} ⊢ P ∧ R

1 P ∧ Q Prem
2 R Prem
3 P E∧, 1
4 R Rep, 2
5 P ∧ R I∧, (3, 4)

{P ∧ Q, R} ⊢ P ∧ R
Mas como é que eu provo coisas
com base em hipóteses????
Ideia: Provas hipotéticas

Uma prova hipotética é uma prova iniciada com a


introdução de uma hipótese.

Em linguagem corrente, significa “vamos supor que”.

Uma prova hipotética cria um ambiente onde se


assume que a hipótese é verdadeira.
Prova hipotética

n α Hip
n+1 ...

R5. Regra da reiteração


Racional
Regra que nos permite repetir, dentro de uma prova hipotética,
qualquer fbf que exista na prova que contém a prova hipotética.

n α
: :
: :
:
:
m α Rei, n
Mas para que servem provas
hipotéticas????
R6. Regra da introdução da implicação

n α Hip
: :
: :

m β

m+1 α → β I → , (n, m)

Vai-nos permitir fazer


provas sem premissas

Def: Teorema
Uma fbf que é obtida numa prova que não contém premissas é chamada
um teorema.
Quando {} ⊢ α , ou seja quando é um teorema, é usual escrever-se ⊢ α
Exemplo

Provar que {P} ⊢ Q → (P ∧ Q)

1 P Prem
2 Q Hip
3 P Rei, 1
4 Q Rep, 2
5 P ∧ Q I∧, (3, 4)
6 Q → (P ∧ Q) I→, (2,5)
Provar que P → (Q → P) é um teorema

1 P Hip
2 Q Hip
3 P Rei, 1
4 Q→P I →, (2,3)
5 P → (Q → P) I→, (1,4)
R7.Eliminação da implicação (modus ponens)

n α
: :
: :
m α→β
: :
: : Em que:
k β E →, (n, m)
n,m,k: números da linha da prova,
β: fbf introduzida pela regra,
E → : utilização da regra da eliminação da
implicação
Racional
Numa prova que contém as fbfs α e α → β podemos derivar a fbf β
R7.Eliminação da implicação (modus ponens)

n α
.. ..
m α →β
.. ..
k β E→, (n, m)
Mais um exemplo…

Provar que {P → (Q → R)} ⊢ (P → Q) → (P → R)

1 P → (Q → R) Prem
2 P → Q Hip
3 P Hip
4 P → Q Rei, 2
5 Q E →, (3, 4)
6 P → (Q → R) Rei,1
7 Q →R E→, (3, 6)
8 R E→, (5, 7)
9 P → R I→, (3, 8)
10 (P → Q) → (P → R) I→, (2,9)
Voltando à linguagem (fbfs)

Letras gregas minúculas (α, β, γ, . . . ) representam fbfs (formulas bem


formadas)

1. Os símbolos de predicado são fbfs.


2. Se α é uma fbf então (¬ α) é uma fbf.
3. Se α e β sãofbfs então (α ∧β) (α ∨ β) (α → β) são fbfs.
4. Nada mais é uma fbf.

Eu nego!
R8: Introdução da negação

Ideia: provar por absurdo! Ou seja, se a partir de huma hipótese


podemos derivar uma contradição (uma ocorrência de uma fbf e da
sua negação), então rejeitamos a hipótese, ou seja, aceitamos a sua
negação!!!!

n α Hip
: :
m β
: :
k ¬β

l ¬α I ¬, (n, (m,k))
Exemplo

Provar que {P → Q, ¬Q} ⊢ ¬P

1 P →Q Prem
2 ¬ Q Prem
3 P Hip
4 P → Q Rei, 1
5 Q E →, (3, 4)
6 ¬ Q Rei, 2
7 ¬ P I ¬ , (3, (5,6))

Cool!
R9: Eliminação da negação

n ¬¬α
: :
m α E ¬, n
Exemplo
Provar que {¬P} ⊢ P → Q
1 ¬ P Prem
2 P Hip
3 ¬ Q Hip
4 P Rei, 2
5 ¬ P Rei,1
6 ¬ ¬ Q I ¬ (3, (4,5))
7 Q E ¬, 6
8 P → Q I→, (2, 7)
Exemplo

Provar o teorema (paradoxo da implicação) (P ∧¬P) → Q

1 P ∧ ¬P Hip
2 ¬ Q Hip
3 P ∧ ¬P Rei, 1
4 P E ∧, 3
5 ¬ P E ∧, 3
6 ¬ ¬ Q I ¬, (2,(4,5))
7 Q E ¬, 6
8 (P ∧ ¬P ) → Q I→, (2, 7)

Ou seja, se eu disser: o céu é azul e o


céu não é azul implica que a terra é
quadrada, está correto???
Voltando à linguagem (fbfs)

Letras gregas minúculas (α, β, γ, . . . ) representam fbfs (formulas bem


formadas)

1. Os símbolos de predicado são fbfs.


2. Se α é uma fbf então (¬)é uma fbf.
3. Se α e β sãofbfs então (α ∧β) (α ∨ β) (α → β) são fbfs.
4. Nada mais é uma fbf.

Falta a disjunção!
R10: Introdução da disjunção

n α
.. ..
m. α ∨ β I∨, n Racional
Numa prova que contém a fbf α podemos
ou derivar tanto α ∨ β como β ∨α

n. α
.. ..
m β ∨α I∨, n
R11. Eliminação da disjunção

n α∨β

o α Hip
.. .. Racional
p γ Corresponde a um raciocínio por casos. Se a
partir da fbf α∨ β formos capazes de derivar
uma terceira fbf γ, independentemente,
r β Hip
partindo de cada uma das fbf α e β, então
.. .. podemos inferir γ.
s γ

m γ E∨, (n, (o, p), (r , s))


Exemplo

Provar que {P ∨ Q} ⊢ Q ∨ P

1 P ∨ Q Prem
2 P Hip
3 Q ∨ P I∨, 2
4 Q Hip
5 Q ∨ P I∨, 4
6 Q ∨ P E∨, (1, (2, 3), (4, 5))
Como construir provas?
Sugestões...

• Para provar uma fbf da forma α → β :


• usar uma prova hipotética introduzindo α como Dicas?
hipótese e tentando derivar β.

• Para provar uma fbf da forma α ∧ β :


• tentar provar separadamente α e β.

• Para provar uma fbf da forma α ∨ β:


• tentar provar uma das fbfs (α ou β).
Como construir provas?
Sugestões...
• Para provar uma fbf da forma ¬α:
• Utilizar as fbfs existentes e derivar directamente ¬α.
• Utilizar uma prova hipotética com a hipótese α para tentar
chegar a uma contradição.
• Para provar uma fbf que corresponde a um símbolo de predicado:
• Tentar aplicações de regras que introduzem esse predicado.
• Tentar prova por absurdo:
• usando uma prova hipotética iniciada com a negação
do predicado e tentar derivar uma contradição
dentro dessa prova hipotética.
• Usar raciocínio por casos a partir de disjunções.
Como diminuir o número de linhas das
provas?

• Utilizando teoremas! n α Teo


• Sendo um teorema uma fbf que pode ser inferida sem o uso de
premissas.
• Exemplos:
• (P → P)
• (Q → R) → ((¬Q → ¬P) → (P → R))
Como diminuir o número de linhas das
provas? (cont.)
Utilizando regras de inferência derivadas!

Uma regra de inferência derivada é um padrão de raciocínio


correspondente `a aplicação de várias regras de inferência (já vamos
estudar uma muito importante).

Exemplos de regras de inferência derivadas:

• introdução da dupla negação ({P} ⊢ ¬¬P),


• modus tollens (exemplo para I¬: {P → Q, ¬Q} ⊢ ¬P),
• introdução da disjunção negada ({¬P, ¬Q} ⊢ ¬(P ∨ Q)).
Regras de inferência derivadas:
RD1. I¬¬ provando {P } ⊢ ¬¬P

Provar que {P } ⊢ ¬¬P

1 P Prem
2 ¬P Hip
3 P Rei, 1
4 ¬P Rep, 2
5 ¬ ¬ P I ¬ (2, (3, 4))

I¬¬ dado que {P } ⊢ ¬¬P


Regras de inferência derivadas

Provar que I¬: {P → Q, ¬Q} ⊢ ¬P),

1 P → Q Prem
2 ¬Q Prem
3 P Hip
4 P → Q Rei, 1
5 Q E → (3,4)
6 ¬Q Rei,2
7 ¬P I¬, (3, (5, 6))

Modus Tollens I¬: {P → Q, ¬Q} ⊢ ¬P),


Regras de inferência derivadas: I ¬∨ por exo
{¬P, ¬Q} ⊢ ¬(P ∨ Q)
1 ¬P
Prem
2 ¬Q Prem
3 P∨ Q Hip
4 P Hip

5 P Rep, 4
6 Q Hip
7 ¬P Hip
8 Q Rei, 6

9 ¬Q Rei, 2
10 ¬¬P I¬, (7, (8, 9))
11 P E¬, 10
12 P E∨, (3, (4, 5), (6, 11))

13 ¬P Rei, 1
14 ¬(P ∨ Q) I¬, (3, (12, 13))
Sumário...
• As fbfs numa prova são:
• ou premissas,
• ou teoremas,
• ou correspondem `a aplicação de regras de
inferência.

• As regras de inferência são:


• ou regras definidas associadas aos símbolos
lógicos,
• ou regras de inferência derivadas.
Novos Símbolos Lógicos

• Símbolos lógicos tradicionais: ¬, ∨, ∧, →

• Mas são suficientes os símbolos ¬ e →!


(Exercício: definir ∨ e ∧ usando ¬ e →)

E não pode haver mais?


Outro símbolo lógico relevante: equivalência (↔)

• Se α e β são fbfs então α ↔ β é fbf.

• α ↔ β def (α → β) ∧ (β → α)
R: Regra da introdução da equivalência

n α→β
: :
: :
m β→α
: :
: : Em que:
k α ↔β I ↔, (n, m)
n,m,k: números da linha da prova,
α ↔ β: fbf introduzida pela regra,
I ↔ : utilização da regra da introdução da
equivalência.
Racional
Se α → β e β → α são fbf que existem ambas na prova, então
eu posso introduzir a fbf que é a equivalência de ambas
R: Regra da eliminação da equivalência

n α ↔β
: :
: :
m α→β E↔, (n, m)
Em que:
Ou n,m: números da linha da prova,
n α ↔β α → β e β → α : fbfs introduzidas pela
: :
: : regra,
m β→α E↔, (n, m) E ↔ : utilização da regra da introdução da
equivalência.

Racional
Se α ↔ β e uma fbf que existe na prova, então eu posso
introduzir as fbfs α → β ou β → α que correspondem a
implicação.
Exercícios

• ⊢ P ∨ ¬P

Este teorema também é chamada a lei do terceiro excluído!

Bom..
Como é que eu
Não temos forma de provar cada um dos
elementos da disjunção separadamente! faço este????
Relembrando as dicas
Sugestões...
• Para provar uma fbf da forma ¬α:
• Utilizar as fbfs existentes e derivar directamente ¬α.
• Utilizar uma prova hipotética com a hipótese α para tentar
chegar a uma contradição.
• Para provar uma fbf que corresponde a um símbolo de predicado:
• Tentar aplicações de regras que introduzem esse predicado.
• Tentar prova por absurdo:
• usando uma prova hipotética iniciada com a negação
do predicado e tentar derivar uma contradição
dentro dessa prova hipotética.
• Usar raciocínio por casos a partir de disjunções.
Exercícios

• ⊢ P ∨ ¬P

1 ¬ (P ∨ ¬P) Hip
2
Tenho que chegar a uma contradição…

… e que tal tentar chegar a P ∨ ¬P????


Exercícios

• ⊢ P ∨ ¬P

1 ¬ (P ∨ ¬P) Hip
2 P Hip
3 P ∨ ¬P I∨, 2
4 ¬ (P ∨ ¬P) Rei,1
5 ¬ P I ¬, (2,(3,4))
6 P ∨ ¬P I ∨, 5
7 ¬ (P ∨ ¬P) Rep, 1
8 ¬ ¬ (P ∨ ¬P) I ¬, (1,(6,7))
9 (P ∨ ¬P) E¬,8

Logo ⊢ P ∨ ¬P
Exercícios

• {P ∧ Q → R} ⊢ P → (Q → R)

1 (P ∧ Q) → R Perm
2 P Hip
3 Q Hip
4 P Rei,2
5 Q Rep,3
6 P∧Q I ∧, (4,5)
7 (P ∧ Q) → R Rei, 1
8 R E →, (6,7)
9 Q→R I →, (3,8)
10 P → (Q → R)
Mais Exercícios

• {P → Q} ⊢ P ∧ R → Q ∧ R

• {(P ∨ Q) ∨ R} ⊢ P ∨ (Q ∨ R)
Programa

• Conceitos Básicos (Livro: 1.1)


• Lógica Proposicional– sistema dedutivo (2.1, 2.2.1, 2.2.2 e 2.2.4)
• Lógica Proposicional (ou Cálculo de Predicados) –resolução(3.1)
• Lógica de Primeira Ordem – sistema dedutivo (4.1, 4.2)
• Lógica de Primeira Ordem – resolução (5.1 e 5.2)
• Programação em Lógica (6)
• Prolog (7 + Apêndice A: manual de sobrevivência em Prolog)
• Lógica Proposicional (ou de Predicados) – sistema semântico (2.3, 2.4,
3.2)

Você também pode gostar