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

Propaganda
Lógica de 1ª Ordem
:: Introdução
Ciência da Computação
Na Lógica Proposicional (LP) um átomo
(P, Q, R,...) representa uma sentença
declarativa que pode ser V ou F, mas
não ambos.
Um átomo é tratado como uma entidade
única. Seus atributos e componentes são
desprezados.
Muitas idéias não podem ser tratadas de
maneira tão simples.
Programação em Lógica
Lógica de Primeira Ordem
Parte I
Prof. Sergio Ribeiro
Material adaptado de Lógica Matemática da Profª Joseluce Farias – DSC/UFCG
Programação em Lógica
Lógica de 1ª Ordem
Lógica de 1ª Ordem
:: Introdução
:: Introdução
Exemplo: Representar na Lógica Proposicional
Para provar que esse argumento é válido, é necessário
identificar indivíduos tais como Sócrates, e seus
predicados.
Todo homem é mortal.
Sócrates é um homem.
Logo, Sócrates é mortal.
Predicados descrevem características ou relacionamentos
entre indivíduos (objetos).
Se representarmos por:
P: Todo homem é mortal.
Q: Sócrates é um homem.
R: Sócrates é mortal.
A Lógica dos Predicados apresenta mais três conceitos
lógicos:
termos,
predicados e
quantificadores.
{P, Q} |≠ R
Isso acontece porque os atributos (predicados ou
características) de P, Q e R não são considerados.
Programação em Lógica
3
Programação em Lógica
Lógica de 1ª Ordem
Lógica de 1ª Ordem
:: Sintaxe
:: Sintaxe
Def. 1 ⇒ Um alfabeto de 1ª ordem, ∑, é a união
dos conjuntos:
4
Def. 2 ⇒ Termos são expressões (palavras,
cadeias) sobre ∑ que representam
elementos do domínio (universo):
∑ = P∑
símbolos predicativos
F∑
símbolos funcionais
C∑
símbolos de constantes
V∑
variáveis
{~, ∧, ∨, →, ↔} operadores lógicos
{∀, ∃}
quantificadores
{(,)}
pontuação
Programação em Lógica
2
se a ∈ C∑ então a é um termo.
se x ∈ V∑ então x é um termo.
se f ∈ F∑ e tem aridade n, e t1, ..., tn são
termos, então f(t1, ... ,tn) também é um termo.
5
Programação em Lógica
6
1
Lógica de 1ª Ordem
Lógica de 1ª Ordem
:: Sintaxe
:: Sintaxe
Def. 3 ⇒ Fórmulas de 1ª ordem são expressões sobre ∑
para se estabelecer propriedades ou relacionamentos
entre elementos do domínio.
Def. 4 ⇒ Uma linguagem de 1ª ordem
sobre um alfabeto ∑, L(∑), é o conjunto
das fórmulas de 1ª ordem sobre ∑.
se t1,..., tn são termos sobre ∑ e P é um símbolo
predicativo n-ário de ∑, então P(t1,..., tn) é uma fórmula
sobre ∑ (chamada fórmula atômica).
se α e β são fórmulas sobre ∑, então (∼α), (α ∧ β),
(α ∨ β), (α → β) e (α ↔ β) também são fórmulas sobre ∑.
se α é uma fórmula sobre ∑ e x ∈ V∑, então ∀x(α) e
∃x(α) também são fórmulas sobre ∑.
Programação em Lógica
7
Programação em Lógica
8
Lógica de 1ª Ordem
Sintaxe: Exemplo 1
:: Sintaxe: Exemplo 1
“Para todo x, − 1 ≤ sen(x) ≤ 1”
2. introdução do quantificador
∀x(−1≤ sen(x) ≤ 1)
3. desmembramento da expressão −1 ≤ sen(x) ≤ 1
∀x(−1≤ sen(x) & sen(x) ≤ 1)
Expressar em uma linguagem de 1ª ordem
a sentença:
“Para todo x, − 1 ≤ sen(x) ≤ 1”
1. Definição de ∑ :
P∑ = { ≤ },
C∑ = { 1 },
4. substituição das expressões por termos na
forma infixada
∀x(≤(−1, sen(x)) & ≤ (sen(x), 1))
F∑ = { − , sen},
V∑ = { x }
5. substituição da expressão −1 pelo termo −(1)
∀x(≤(−(1), sen(x)) & ≤ (sen(x), 1))
Programação em Lógica
9
Programação em Lógica
10
Sintaxe
Sintaxe
:: Exemplo 2
:: convenções adotadas
“Todos os homens são mortais e Sócrates é
um homem. Portanto, Sócrates é Mortal”.
Definição de ∑:
P∑ = {Homem, Mortal}, F∑ = ∅,
V∑ = {x}
C∑ = {sócrates}
• ∀x(Homem(x) → Mortal(x))
• Homem(Sócrates)
Mortal(Sócrates)
Programação em Lógica
11
Objeto sintático
Convenção notacional
variáveis
letras do fim do alfabeto ... x, y, z
constantes
letras do início do alfabeto a, b, c, ...
ou palavras
símbolos funcionais
..., f, g, h, ... ou palavras
símbolos predicativos
..., P, Q, R, ... ou palavras
termos
..., t, u, v, ...
fórmulas
α, β, χ, ...
conjunto de fórmulas
Γ, Κ, ∆, ...
Programação em Lógica
12
2
Sintaxe
Sintaxe
:: variáveis livres ou ligadas
:: variáveis livres ou ligadas
Def. 5 ⇒ Em uma fórmula do tipo ∀x(α)
(ou da forma ∃x(α) ), α é o escopo do
quantificador.
Def. 7 ⇒ Uma variável x é dita ser livre em
uma fórmula α se pelo menos uma das
ocorrências de x é livre em α.
Def. 6 ⇒ Uma ocorrência de uma variável x
em uma fórmula α é ligada em α, se x está
no escopo de algum quantificador de α.
Caso contrário, a ocorrência é livre em α.
Def. 8 ⇒ Uma fórmula α é uma sentença
se e somente se nenhuma variável ocorre
livre em α.
Programação em Lógica
13
Programação em Lógica
14
Sintaxe
Sintaxe
:: variáveis livres ou ligadas
:: variáveis livres ou ligadas
Exemplos de ocorrências livres e ligadas.
Fórmula α.
∀x ∃y( ∀z(P(x,y,w,z)) → ∀w(Q(z,w,x,r)) )
Exemplos de ocorrências livres e ligadas.
Fórmula α.
P(y) ∨ ∀x(P(x))
y é livre e x é ligada.
P(x) ∨ ∀x(P(x))
1a x é livre, 2a é ligada.
∀x(P(x) ∨ Q(x))
é uma sentença.
Programação em Lógica
x, y, w e z: ligadas em α
w, z e r: livres em α
w e z: ligadas e livres em α
15
Programação em Lógica
16
Sintaxe
Sintaxe
:: substituições
:: substituições
Def. 9 ⇒ Se u é um termo, u[x/t] denotará
o termo obtido substituindo-se as
ocorrências de x em u pelo termo t.
Def. 10 ⇒ Se α é uma fórmula, α[x/t]
denotará a fórmula obtida substituindo-se
cada ocorrência de x em α pelo termo t.
Exemplo: α=∀x(P(x) ∨ Q(x)) e t=joão
Exemplo:
u= f(x) e t=5
u[x/t] denota u= f(5)
α[x/t] denota:
α = (P(joão) ∨ Q(joão))
Programação em Lógica
17
Programação em Lógica
18
3
Sintaxe
Sintaxe
:: substituições
:: substituições
Def. 11 ⇒ Se x1, ..., xn são variáveis distintas e t1, ..., tn
são termos, a expressão u[x1/t1, ..., xn/tn] denotará a
substituição simultânea de xi por ti, i = 1, ..., n, no termo
u.
Exemplo:
α = ∀x∀y(P(x) ∨ Q(y)) e
t1 = joão; t2 = ana
Def. 12 ⇒ Uma variável x é substituível por
t em uma fórmula α se, para cada variável
y ocorrendo em t, nenhuma sub-fórmula de
α do tipo ∀y(β) ou do tipo ∃y(β) contém
uma ocorrência livre de x.
α[x/t1, y/t2] denota:
α’ = (P(joão) ∨ Q(ana))
Programação em Lógica
19
Programação em Lógica
Sintaxe
Sintaxe
:: substituições
:: substituições
Exemplos:
Exemplos:
se t = f(x), então, t[x/a] = f(a).
se α = P(x) ∧ Q(x, f(y)), então,
α[x/a, y/b] = P(a) ∧ Q(a, f(b)).
se t = g(f(y), y), então, t[y/z] = g(f(z), z).
se α = ∀yP(x, y) e t = f(y), então
α[x/t] não é permitido, pois
∀yP(f(y), y) seria uma sentença.
se t = g(x, y), então, t[x/f(a), y/b] =
g(f(a), b).
Programação em Lógica
21
Programação em Lógica
Sintaxe
Sintaxe
:: substituições
:: substituições
Exemplo:
α = ∀y(Ama(x,y))
22
Exemplo:
α = ∀y(P(y,w)) ∧ Q(x)
e os termos: t1 = pai(z) e t2 = pai(y)
e o termo: t = f(y)
x é substituível por t1 e
x é substituível por t e
x não é substituível por t2
(a variável do termo aparece quantificada e
x ocorre livre no escopo do quantificador)
Programação em Lógica
20
23
w não é substituível por t
(a variável do termo aparece quantificada e
w ocorre livre no escopo do quantificador)
Programação em Lógica
24
4
Download