aula 05 - Ciência da Computação FACAPE

Propaganda
Lógica de 1ª Ordem
:: Semântica: Motivação
Ciência da Computação
A fórmula que segue, é verdadeira ou falsa?
∀x(L(x) → P(x)) P = ser bom programador
L = ser aluno de lógica
É necessário saber:
Programação em Lógica
Lógica de Primeira Ordem
Parte II
•
•
Prof. Sergio Ribeiro
quais são os elementos desse universo.
quais as atribuições de valor verdade para cada
símbolo predicativo, considerando cada elemento
do universo.
Material adaptado de Lógica Matemática da Profª Joseluce Farias – DSC/UFCG
Programação em Lógica
2
Lógica de 1ª Ordem
Semântica
:: Semântica: Motivação
:: Interpretação de Fórmulas
Def. 13 ⇒ Uma interpretação I para uma
fórmula α consiste de um domínio nãovazio D e de uma atribuição de valores, v ,
para cada símbolo de constante, de funções
e de predicados que ocorrem em α.
Uma interpretação de uma fórmula de 1ª
Ordem consiste em:
Identificar domínio
Atribuir valores a cada símbolo da fórmula
Formalmente, uma interpretação é
definida como segue:
Programação em Lógica
v é definida da seguinte forma:
3
Programação em Lógica
4
Semântica
Interpretação de Fórmulas
:: Interpretação de Fórmulas
:: Exemplo
Seja α = ∃x(~P(x))
v: C∑ → D, isto é, para cada constante a é
atribuído um elemento aI ∈ D.
I = <D, v >, onde:
v: F∑ → [Dn → D], isto é, para cada símbolo
(D é o domínio ou universo)
funcional n-ário f é atribuído uma função f I de
Dn em D.
D = {1, 2}
v: P∑ → [Dn → {V, F}], isto é, para cada símbolo
v(P) = PI definida como: PI(1) = V e
PI(2) = F
(v são as atribuições)
predicativo n-ário P é atribuído uma função PI de
Dn em {V, F}.
Programação em Lógica
5
Programação em Lógica
6
1
Avaliação de uma Fórmula
em uma Interpretação
Interpretação de Fórmulas
:: Exemplo
Def. 14 ⇒ A avaliação v´ (induzida por v) de uma
fórmula α em uma interpretação I é definida:
Seja α = ∀x(P(f(x)) → Q(a))
I = <D, v >, onde:
v´(α) = v (α), se α é uma fórmula atômica.
D = {João, José},
v(a) = aI = João
v(f) = fI : fI(João) = José
v(P) = PI : PI(João) = F
v(Q) = QI : QI(João) = F
se v´(α) e v´(β) são conhecidos,
v´(α ∧ β), v´(α ∨ β), v´(α → β), v´(α ↔ β) e v´(~α)
são definidas como na Lógica Proposicional.
fI(José) = João
PI(José) = V
QI(José) = V
v´(∀x(α)) = V se v´(α) = V para todo x ∈ D.
Caso contrario, v´(∀x(α)) = F.
v´(∃x(α)) = V se v´ (α) = V para algum x ∈ D.
Caso contrário v´(∃x(α)) = F.
Programação em Lógica
7
Avaliação de uma Fórmula
em uma Interpretação
se x = 1
v´(P(f(x)) → Q(a)) = v´(P(f(1))) → v´(Q(a))
= v´(P(f(1))) → v´(Q(a))
I = <D, v >, onde
Qual a avaliação de α para I ?
v(a) = aI = 2
v(f) = fI : fI(1) = 2
v(P) = PI : PI(1) = V
v(Q) = QI : QI(1) = V
= PI(fI(1)) → QI(a)
= PI(2) → QI(2)
=V→V
=V
fI(2) = 1
PI(2) = V
QI(2) = V
Programação em Lógica
9
Avaliação de ∀x(P(f(x)) → Q(a)))
para I dada
se x = 2
Programação em Lógica
10
Exercícios
Para a interpretação que segue, qual o valor lógico de α ?
α = ∀x∃y(~P(x,e) → P(e,y))
v´(P(f(x)) → Q(a)) = v´(P(f(2))) → v´(Q(a))
= v´(P(f(2))) → v´(Q(a))
= PI(fI(2)) → QI(aI)
= PI(1) → QI(2)
=V→V
=V
Avaliação:
v´(∀x(P(f(x)) → Q(a))) = V na interpretação I
Programação em Lógica
8
Avaliação de ∀x(P(f(x)) → Q(a)))
para I dada
Exemplo: Seja α = ∀x(P(f(x)) → Q(a)) e I a
interpretação definida abaixo:
D = {1, 2} e
Programação em Lógica
D = {carlos, josé, maria}
Atribuições:
PI(carlos,carlos) = PI(josé,josé) = PI(maria,maria) = F
PI(carlos,josé) = PI(josé,carlos) = V
PI(carlos,maria) = PI(maria,carlos) = F
PI(josé,maria) = PI(maria,josé) = V
eI = carlos
11
Programação em Lógica
12
2
Semântica
Semântica
Sumário de classificação das fórmulas.
Todos os conceitos tais como validade,
satisfatibilidade e consequência lógica
definidos para a Lógica Proposicional
podem ser definidos da mesma forma
para a Lógica de 1ª Ordem.
a) VÁLIDA (TAUTOLOGIAS
(╞ α ))
b1) SATISFATÍVEL (CONSISTENTE)
FÓRMULA
b) INVÁLIDA
b2) INSATISFATÍVEL (
|≠ G )
(INCONSISTENTE, CONTADIÇÃO)
Programação em Lógica
13
Semântica
14
Semântica
Def. 15 ⇒ Uma fórmula α é dita ser
satisfatível se e somente se existe ao
menos uma interpretação I na qual v´(α) =
V. É dito então que I satisfaz α ou que I é
um modelo para α.
Def. 16 ⇒ Uma fórmula α é dita ser válida
( ╞ α ) se e somente se v´(α) = V para
toda interpretação I de α.
Programação em Lógica
15
Semântica
Def. 17 ⇒ Uma fórmula α é dita ser
consequência lógica de um conjunto Γ de
fórmulas ( Γ ╞ α ) se e somente se toda
interpretação I que satisfaz Γ também satisfaz α.
Teorema 1:
Γ ╞ α sse Γ → α
é uma tautologia
Teorema 2:
Γ ╞ α sse Γ ∧ ~α
é insatisfatível
Programação em Lógica
16
Semântica
DECISÃO SOBRE A VALIDADE DE UMA FÓRMULA
1a
Para fórmulas da Lógica de
Ordem, existe infinitos domínios e
uma infinidade de interpretações possíveis. Por isso, não é
possível verificar a validade ou a inconsistência de uma fórmula.
Logo, não existe um algoritmo que verifique todas as possíveis
interpretações.
Para a Lógica Proposicional, as interpretações são finitas (2n, onde
n = símbolos proposicionais) existe um algoritmo: Tabela Verdade
Problema de Decisão:
Lógica Proposicional : Solúvel (decidível)
Lógica de 1a Ordem : Insolúvel (indecidível)
Programação em Lógica
Programação em Lógica
COMO DECIDIR SOBRE A VALIDADE DE UMA
FÓRMULA DE 1a ORDEM ?
Precisamos raciocinar para determinar se uma fórmula
é verdadeira em todas as interpretações
Como não é possível verificar todas as interpretações,
se pudermos encontrar pelo menos uma interpretação
na qual a fórmula seja falsa (um contra-exemplo), fica
provado que ela não é válida.
Exercícios:
...........
17
Programação em Lógica
18
3
Exercícios
Enunciados Categóricos
Determine, para cada uma das fórmulas que
segue, se a fórmula é ou não é válida.
Todo S é P
Qualquer que seja x, se x é S, então x é P.
a) ∀xP(x) → ∃xP(x)
∀x(S(x) → P(x))
b) ∀xP(x) → P(a)
c) ∀x(P(x) ∧ Q(x)) ↔ (∀xP(x) ∧ ∀xQ(x))
Nenhum S é P
Qualquer que seja x, se x é S, então x não é P.
d) ∀x(P(x) ∨ Q(x)) ↔ (∀xP(x) ∨ ∀xQ(x))
e) ∃xP(x) → ∀xP(x)
Programação em Lógica
∀x(S(x) → ~P(x))
19
Enunciados Categóricos
Exemplo Formalizar:
Todo homem é mortal.
Sócrates é um homem.
Logo, Sócrates é mortal.
∃x(S(x) ^ P(x))
Algum S não é P
Para pelo menos um x, x é S e x não é P.
∀x (H(x) → M(x))
H(sócrates)
M(sócrates)
Considerando
Predicados
M(x): x é mortal
H(x): x é um homem
Um individuo: Sócrates
∃x(S(x) ^ ~P(x))
21
Exercício:
Programação em Lógica
22
Exercício:
Para formalizar os argumentos que
seguem, Interprete as letras C, R, V
e S como:
b) Nenhuma rã é verde.
∀x(R(x) → ~V(x))
c) Algumas rãs são verdes.
∃x(R(x) ^ V(x))
d) Toda coisa é uma rã.
∀x(R(x))
e) Nada é uma rã.
∀x(~R(x)) ou ~∃x(R(x))
C ≡ está chovendo;
R ≡ é uma rã;
V ≡ é verde;
S ≡ é saltitante;
a) Todas as rãs são verdes.
∀x(R(x) → V(x))
Programação em Lógica
20
Enunciados Categóricos
Algum S é P
Para pelo menos um x, x é S e x é P.
Programação em Lógica
Programação em Lógica
23
Programação em Lógica
24
4
Exercício:
Exercício:
f) Qualquer coisa é uma rã verde.
∀x(R(x) ^ V(x))
i) Algumas rãs verdes não estão saltitando.
∃x((R(x) ^ V(x)) ^ ~S(x))
g) Está chovendo e algumas rãs estão saltitando.
C ^ ∃x(R(x) ^ S(x))
j) Rãs verdes saltitam se, e somente se , está
chovendo.
∀x((R(x) ^ V(x)) → (S(x) ↔ C))
h) Somente rãs são verdes.
∀x(V(x) → R(x))
Programação em Lógica
25
Exercício 2:
1) Carlos é mecânico.
Mecânico(Carlos)
Indivíduos:
Carlos, João e Maria
2) Carlos e João são mecânicos.
Mecânico(Carlos) ^ Mecânico(João)
Predicados:
Mecânico(x) ≡ x é mecânico
Enfermeiro(x) ≡ x é enfermeiro
Ama(x, y) ≡ x ama y
3) Carlos é mecânico ou enfermeiro.
Mecânico(Carlos) ∨ Enfermeiro(Carlos)
27
Exercício 2:
Programação em Lógica
28
Exercício 2:
4) Se Carlos é mecânico então Carlos não é
enfermeiro.
Mecânico(Carlos) → ~Enfermeiro(Carlos)
7) Todo mundo ama João.
∀x(Ama(x, João))
5) João ama Maria.
Ama(João, Maria)
8) Existe alguém que Maria não ama.
∃x(~Ama(Maria, x))
6) João ama a si próprio.
Ama(João, João)
9) Todo mundo é amado por alguém.
∀x∃y(Ama(y, x))
Programação em Lógica
26
Exercício 2:
Para formalizar os argumentos que seguem
considere a interpretação:
Programação em Lógica
Programação em Lógica
29
Programação em Lógica
30
5
Exercício 2:
10) Alguém é amado por todos.
∃x∀y(Ama(y,x))
11) Existe alguém que ama todo mundo.
∃x∀y(Ama(x,y))
12) Alguém ama alguém.
∃x∃y(Ama(x,y))
Programação em Lógica
31
6
Download