Lógica Computacional

Documentos relacionados
Lógica Computacional

Lógica Computacional

Lógica Computacional

Lógica Computacional

Lógica Computacional

Lógica Computacional

Lógica Computacional

Lógica Computacional

Lógica Computacional

Lógica. Fernando Fontes. Universidade do Minho. Fernando Fontes (Universidade do Minho) Lógica 1 / 65

Lógica para computação - Linguagem da Lógica de Predicados

1 Lógica de primeira ordem

Lógica Computacional

Fundamentos de Lógica Matemática

Lógica Matemática - Quantificadores

Lógica Computacional DCC/FCUP 2017/18

Lógica Computacional (CC2003)

Programação em Lógica. UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010

Capítulo 3 Lógica de Primeira Ordem

Os Fundamentos: Lógica de Predicados

Lógica Computacional

JOÃO NUNES de SOUZA. LÓGICA para CIÊNCIA da COMPUTAÇÃO. Uma introdução concisa

. Um termo ou designação é uma expressão que nomeia ou designa um ente.. Uma proposição é toda a expressão p susceptível de ser verdadeira ou falsa.

SCC Capítulo 2 Lógica de Predicados

MÓDULO II - PARTE II LÓGICA DOS PREDICADOS

Lógica Computacional

DIM Resolução e método tableaux DIM / 37

Lógica Computacional Aulas 8 e 9

Lógica Computacional

Fundamentos 1. Lógica de Predicados

Fórmulas Bem Formadas (wff) Prioridade dos Conectivos. Prioridade dos Conectivos. Semântica do CR. Semântica do CR

Lógica para Computação

Conteúdo. Correção de Exercício Quantificadores Rosen (pg 33) Tradução Português Lógica Rosen (pg 42)

Lógica de Predicados

Relações semânticas entre os conectivos da Lógica Proposicional(Capítulo 5)

FICHA DE TRABALHO N.º 2 MATEMÁTICA A - 10.º ANO CONJUNTOS E CONDIÇÕES

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Lógica predicados. Lógica predicados (continuação)

Sistemas Dedutivos Lógica de 1ª. Ordem (LPO)

Argumentação em Matemática período Prof. Lenimar N. Andrade. 1 de setembro de 2009

MD Lógica de Proposições Quantificadas Cálculo de Predicados 1

Lógica para computação - Propriedades Semânticas da Lógica Proposicional (parte 2/2) Alfabeto Simplificado e Formas Normais

Cálculo de Predicados

Cálculo de Predicados

Quantificadores, Predicados e Validade

MATEMÁTICA DISCRETA CONCEITOS PRELIMINARES

Predicados e Quantificadores

Matemática Discreta. Fundamentos e Conceitos da Teoria dos Números. Universidade do Estado de Mato Grosso. 4 de setembro de 2017

Inteligência Artificial IA II. LÓGICA DE PREDICADOS PARA REPRESENTAÇÃO DO CONHECIMENTO

Lógica para Computação Segundo Semestre, Aula 10: SAT. Prof. Ricardo Dutra da Silva. ( p (q ( q r))) ( p r) ( p q) ( p q r) p r.

Descrição do Mundo de Wumpus. Inteligência Artificial

Apostila Minicurso SEMAT XXVII

Matemática A - 10 o Ano

Apostila de Lógica para Computação Segunda unidade: Lógica de Predicados

Exercícios de Teoria da Computação Computabilidade

Sistema dedutivo. Sistema dedutivo

obs: i) Salvo menção em contrário, anel = anel comutativo com unidade. ii) O conjunto dos naturais inclui o zero.

Noções de Lógica Matemática. Domingos Moreira Cardoso Maria Paula Carvalho

Semana 3 MCTB J Donadelli. 1 Técnicas de provas. Demonstração indireta de implicação. indireta de. Demonstração por vacuidade e trivial

Lógica de Primeira Ordem. Capítulo 9

Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 12

Cálculo de Predicados. Matemática Discreta. Profa. Sheila Morais de Almeida DAINF-UTFPR-PG. março

Teoria dos Conjuntos MATEMÁTICA DISCRETA CONCEITOS PRELIMINARES. Fundamentos de Lógica Técnicas Elementares de Prova A NOÇÃO DE CONJUNTO

Lógica Formal. Matemática Discreta. Prof Marcelo Maraschin de Souza

Unidade 1 - Elementos de Lógica e Linguagem Matemáticas. Exemplo. O significado das palavras. Matemática Básica linguagem do cotidiano

assim são válidas devido à sua estrutura e ao significado dos quantificadores universal e existencial

1 a Lista de Exercícios Matemática Discreta

Curso Satélite de. Matemática. Sessão n.º 1. Universidade Portucalense

Transcrição:

Aula Teórica 20: Forma Normal de Skolem e António Ravara Simão Melo de Sousa Departamento de Informática, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa Departamento de Informática, Faculdade Engenharia, LISP & Release Group Universidade Beira Interior

Exemplos e definição Skolemização Ilustração do procedimento Lema de Skolem Forma Normal de Skolem A fórmula está na FNCP e os quantificadores são todos universais. Exemplos Q(x) P(x, y); x f (x) = y; x P(x, f (x)); x (f (x) = y (Q(x) P(x, f (x)))). Contra-Exemplos y P(x, y); x y f (x) = y; x (f (x) = y P(x, f (x))).

Exemplos e definição Skolemização Ilustração do procedimento Lema de Skolem Forma Normal de Skolem Definição Uma fórmula ϕ da linguagem de primeira ordem está na Forma Normal de Skolem ou FNS (e escreve-se FNS(ϕ)), se ϕ = x 1... x n ψ sendo ψ uma fórmula de primeira ordem sem quantificadores tal que FNC(ψ).

Exemplos e definição Skolemização Ilustração do procedimento Lema de Skolem Função de Skolem Procedimento de conversão Dada uma fórmula ϕ da linguagem de primeira ordem, obtém-se a partir dela uma fórmula ψ na Forma Normal de Skolem da seguinte forma: Obtém-se primeiro uma fórmula φ ϕ tal que FNCP(φ); Se φ tem k > 0 quantificadores existenciais, então s k (φ) está na FNS, sendo s a seguinte função (de Skolem). s( x Q1 x 1... Q n x n ψ) = Q 1 x 1... Q n x n ψ{a/x}, sendo a uma constante que não ocorre em ψ; s( x1... x i 1 x i Q i+1 x i+1... Q n x n ψ) = x 1... x i 1 Q i+1 x i+1... Q n x n ψ{f (x 1,..., x i 1 )/x i }, sendo f uma função de aridade i 1 que não ocorre em ψ.

Exemplos e definição Skolemização Ilustração do procedimento Lema de Skolem Função de Skolem Exemplo de conversão Seja ϕ = ( x y P(x, y, z) x y Q(x, y, z)). Como ϕ não está na FNCP, faz-se primeiro a conversão. ϕ x y P(x, y, z) x y Q(x, y, z) x y P(x, y, z) x y Q(x, y, z) x y P(x, y, z) x y Q(x, y, z) x y P(x, y, z) u v Q(u, v, z) x y ( P(x, y, z) u v Q(u, v, z)) x y ( u v Q(u, v, z) P(x, y, z)) x y u v (Q(u, v, z) P(x, y, z)) = φ

Exemplos e definição Skolemização Ilustração do procedimento Lema de Skolem Função de Skolem Exemplo de conversão Seja ϕ = ( x y P(x, y, z) x y Q(x, y, z)). Calculou-se já φ ϕ tal que FNCP(φ). Faz-se agora a sua Skolemização: pretende-se encontrar uma fórmula ψ = s 2 (φ). s(s(φ)) = s(s( x y u v (Q(u, v, z) P(x, y, z)))) = s( y u v (Q(u, v, z) P(a, y, z))) = y u (Q(u, f (y, u), z) P(a, y, z))) = ψ Note-se que as fórmulas ϕ e ψ não são equivalentes. No entanto, uma é possível se e só se a outra o é.

Exemplos e definição Skolemização Ilustração do procedimento Lema de Skolem Resultado Lema da Satisfação Para qualquer fórmula de primeira ordem ϕ tal que FNCP(ϕ), existe uma fórmula de primeira ordem ψ tal que: 1. ψ = s k (ϕ), sendo k o número de quantificadores existenciais de ϕ; 2. FNS(ψ); e 3. ϕ é possível se e só se ψ é possível.

Exemplos e definição Skolemização Ilustração do procedimento Lema de Skolem Prova do Lema de Skolem Mostra-se por indução natural em k Caso base: k = 1. Considera-se primeiro que ϕ x φ com FNS(φ). Para alguma constante u que não ocorre em φ tem-se s( x φ) = φ{u/x}. Por definição, ϕ é possível se e só se para alguma estrutura de interpretação M = (U, I ) e atribuição ρ se tem M, ρ x φ, ou seja, se e só se existe u U tal que M, ρ[x := u] φ, i.e., se e só se φ{u/x} é possível.

Exemplos e definição Skolemização Ilustração do procedimento Lema de Skolem Prova do Lema de Skolem Mostra-se por indução natural em k Caso base: k = 1. Considera-se agora que ϕ x 1... x n x φ com FNS(φ). Por definição, ϕ é possível se e só se para alguma estrutura de interpretação M = (U, I ) e atribuição ρ se tem M, ρ x 1... x n x φ, ou seja, para quaisquer u 1,..., u n U e algum u U tem-se M, ρ[x 1 := u 1 ] [x n := u n ][x := u] φ. Para alguma função n-ária f que não ocorre em φ tem-se s( x 1... x n x φ) = x 1... x n φ{f (x 1,..., x n )/x}. Sabe-se que se t TΣ X tal que t é livre para x em ϕ e [[t]]ρ M = u então M, ρ[x := u] ϕ se e só se M, ρ ϕ{t/x}. Fazendo ρ = ρ[x 1 := u 1 ] [x n := u n ] e t = f (x 1,..., x n ) tal que [[t]] ρ M = u, tem-se que M, ρ[x 1 := u 1 ] [x n := u n ][x := u] φ se e só se M, ρ x 1... x n φ{f (x 1,..., x n )/x}.

Exemplos e definição Skolemização Ilustração do procedimento Lema de Skolem Lema da Satisfação Prova Mostra-se por indução natural em k. Passo: k = l + 1. Então, ψ = s k (ϕ) = s(s l (ϕ)). Seja φ = s l (ϕ) tal que FNS(φ). Por hipótese de indução, φ é possível se e só se ϕ é possível. Procedendo como para os casos base, conclui-se que ψ é possível se e só se ϕ é possível (pois a equivalência é transitiva).

Revisão do procedimento Cláusulas Relembrando a resolução... Exemplo em Primeira Ordem Considere-se o seguinte conjunto de cláusulas, assumindo as variáveis universalmente quantificadas. {{ Q(x, y), P(f (x), y)}, { P(f (x), y), R(x, y, z)}} Um resolvente das duas cláusulas em cima é a cláusula R 1 = { Q(x, y), R(x, y, z)}. Considere-se agora a cláusula { P(z, y), R(x, y, z)}. Não se consegue resolve-la directamente com a primeira cláusula do conjunto acima, mas substituindo f (x) em z obtém-se a cláusula { P(f (x), y), R(x, y, f (x))} que já permite encontrar um resolvente: R 2 = { Q(x, y), R(x, y, f (x))}. Note-se que R 2 é consequência de R 1 : se esta é satisfeita (para qualquer z), então é satisfeita para z = f (x).

Revisão do procedimento Cláusulas Cláusulas de Primeira Ordem Definição Considere-se uma fórmula ϕ F X Σ ϕ = x 1... x n ψ tal que FNS(ϕ), i.e., sendo ψ uma fórmula de primeira ordem sem quantificadores tal que FNC(ψ). Como todas as variáveis estão universalmente quantificadas (as livres estão-o implicitamente), ϕ pode ser escrita como um conjunto de cláusulas. Seja C(ψ) o conjunto de cláusulas que se obtém de ψ (que está em FNC). Define-se C(ϕ) = C(ψ).

Revisão do procedimento Cláusulas Cláusulas de Primeira Ordem Lema Para qualquer ϕ FΣ X tal que FNS(ϕ), existe um único C(ϕ) Para quaisquer ϕ, ψ FΣ X, se C(ϕ) = C(ψ) então ϕ ψ. Estes resultados derivam dos respectivos da Lógica Proposicional. Literais Na Lógica de Primeira Ordem chamam-se literais às fórmulas atómicas ( ou predicados) ou à sua negação ( ou negação de predicados).

Revisão do procedimento Cláusulas Resolução em primeira ordem Substituição No exemplo atrás, encontrámos uma substituição (z por f (x)) que converteu { P(z, y), R(x, y, z)} em { P(f (x), y), R(x, y, f (x))}, permitindo encontrar um resolvente de duas cláusulas. Dado um conjunto de literais ocorrendo em duas cláusulas, para encontrar um resolvente é necessário encontrar substituições que façam iguais literais envolvendo o mesmo predicado. Exemplo: L = {P(f (x), y), P(z, w)} e sub = {f (x)/z}{w/y} Lsub = {P(f (x), y), P(f (x), w)}{w/y} = {P(f (x), w)}

Introdução Definições Algoritmo Motivação Substituição No exemplo, a substituição (z por f (x)) converteu { P(z, y), R(x, y, z)} em { P(f (x), y), R(x, y, f (x))}, obtendo-se um resolvente das duas cláusulas. Dado um conjunto de literais ocorrendo em duas cláusulas, para encontrar um resolvente é necessário encontrar substituições que façam iguais literais envolvendo o mesmo predicado. Exemplo Sejam L = {P(f (x), y), P(z, w)} e sub = {f (x)/z}{w/y}. Então Lsub = {P(f (x), y), P(f (x), w)}{w/y} = {P(f (x), w)}

Introdução Definições Algoritmo Definição Um conjunto de literais L é unificável se existe uma substituição sub que aplicada a L torna o conjunto singular (i.e., os vários literais convertem-se num só). Unificações não são necessariamente únicas Seja L = {P(f (x), y), P(z, w)}. Vimos que se sub 1 = {f (x)/z}{w/y} então Lsub 1 = {P(f (x), w)}. Claro que se sub 2 = {w/y}{f (x)/z} também Lsub 2 = {P(f (x), w)}. Mas se sub 3 = {f (x)/z}{a/x}{b/y} então Lsub 3 = {P(f (x), y), P(f (x), b)}{a/x}{b/y} = {P(f (a), y), P(f (a), b)}{b/y} = {P(f (a), b)}.

Introdução Definições Algoritmo Unificador mais geral Definição Dado um conjunto de literais L, a substituição sub é o unificador mais geral de L (e escreve-se umg(l)), se é um unificador de L e se qualquer outro unificador sub de L é tal que subsub = sub. Proposição Um conjunto finito de literais é unificável se e só se tem um unificador mais geral. Prova-se a proposição apresentando um algoritmo que, dado um conjunto finito de literais, ou retorna a mensagem não unificável ou retorna o seu unificador mais geral.

Introdução Definições Algoritmo Algoritmo de unificação Seja L um conjunto finito de literais e faça-se (L 0, sub 0 ) = (L, ). Para dado k 0, se L k é singular então existem sub i para 1 i k tal que sub 0 sub 1 sub k é o unificador mais geral de L k. Caso contrário, existem L i, L j L tal que para P SP n L i = P(a 1,..., a m 1, a m,..., a n ) e L j = P(a 1,..., a m 1, a m,..., a n). Suponha-se que o l-ésimo símbolo de a m é a variável x e o de a m é o termo t (que não contém x). Então, e itera-se este processo. sub k+1 = {t/x} e L k+1 = L k sub k+1 Se nenhuma das condições anteriores se verifica, o algoritmo retorna L não é unificável.

Introdução Definições Algoritmo Exemplo de aplicação do algoritmo de unificação Seja L = {R(f (g(x)), a, x), R(f (g(b)), a, b), R(f (y), z, b)} e (L 0, sub 0 ) = (L, ). Fazendo sub 1 = {g(b)/y} obtém-se L 1 = L 0 sub 1 = {R(f (g(x)), a, x), R(f (g(b)), a, b), R(f (g(b)), z, b)} Como L 1 não é singular, procura-se nova substituição. Fazendo sub 2 = {b/x} obtém-se L 2 = L 1 sub 2 = {R(f (g(b)), a, b), R(f (g(b)), z, b)} Como L 2 não é singular, procura-se nova substituição. Fazendo sub 3 = {a/z} obtém-se L 3 = L 2 sub 3 = {R(f (g(b)), a, b)} Como L 3 é singular, o unificador mais geral de L é sub = sub 0 sub 1 sub 2 sub 3.

Introdução Definições Algoritmo Outro exemplo de aplicação do algoritmo de unificação Seja L = {R(f (g(x)), a, x), R(f (g(a)), a, b), R(f (y), a, b)} e (L 0, sub 0 ) = (L, ). Fazendo sub 1 = {g(a)/y} obtém-se L 1 = L 0 sub 1 = {R(f (g(x)), a, x), R(f (g(a)), a, b)} Como L 1 não é singular, procura-se nova substituição. Fazendo sub 2 = {a/x} obtém-se L 2 = L 1 sub 2 = {R(f (g(a)), a, a), R(f (g(a)), a, b)} Como L 2 não é singular, procura-se nova substituição. Como não há mais variáveis, não há nenhuma substituição que unifique os literais. Logo, o algoritmo retorna L não unificável.

Introdução Definições Algoritmo Outro exemplo de aplicação do algoritmo de unificação Seja L = {R(f (g(x)), a, b), R(f (g(a)), a, b), R(f (x), a, b)} e (L 0, sub 0 ) = (L, ). Fazendo sub 1 = {g(a)/x} obtém-se L 1 = L 0 sub 1 = {R(f (g(g(a))), a, b), R(f (g(a)), a, b)} Como L 1 não é singular, procura-se nova substituição. Como não há mais variáveis, não há nenhuma substituição que unifique os literais. Logo, o algoritmo retorna L não unificável. Em geral, se L contém um literal como P(x) e outro como P(f (x)), não será unificável.

Introdução Definições Algoritmo Correcção do algoritmo de unificação Prova Note-se que como o conjunto de literais L é finito, o número de variáveis que ocorrem em L também o é. Logo, o algoritmo termina sempre após um número finito de passos. Caso o algoritmo retorne L não unificável, pelos casos analisados atrás vê-se que L o é de facto. Assuma-se então que o algoritmo retorna como unificador mais geral sub = sub 0 sub 1 sub k, com k 0. Falta mostrar que sub é de facto o unificador mais geral. Seja sub outro unificador de L. Como sub 0 = tem-se que sub 0 sub = sub. Suponha-se que sub 0 sub n sub = sub, para algum 0 n k; então L n sub = Lsub 0 sub n sub = Lsub, que é singular, ou seja, se sub unifica L também unifica L n.

Introdução Definições Algoritmo Correcção do algoritmo de unificação Conclusão da prova A prova termina por indução natural em n: considere-se que 1. sub n+1 = {t/x} (onde x não ocorre em t); e que 2. para L i, L j L se tem que para P SP n L i = P(a 1,..., a m 1, x,..., a n ) e L j = P(a 1,..., a m 1, t,..., a n). Como por hipótese sub é unificador de L n, tem-se que xsub = tsub, logo sub n+1 sub = {t/x}sub = sub. Por hipótese de indução, para qualquer n < k tem-se que sub 0 sub n+1 sub = sub, logo também sub 0 sub k sub = sub e portanto sub 0 sub k é o unf (L).