200 likes | 323 Views
Lógica para Computação. Prof. Celso Antônio Alves Kaestner, Dr. Eng. c elsokaestner ( at ) utfpr ( dot ) edu ( dot ) br. Lógica Predicativa.
E N D
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br
Lógica Predicativa • A Lógica Predicativa (ou lógica de 1ª ordem) é uma extensão da lógica proposicional que aumenta sua expressividade, permitindo que se façam afirmações sobre propriedades – ou predicados – inerentes a conjuntos de elementos individuais; • Tipicamente as fórmulas envolvem os quantificadores “para todo” () e “existe” (); • Uma fórmula típica é: x(homem(x)→mortal(x)). • Obs.: para representar o mesmo em Lógica Proposicional seria necessário utilizar uma fórmula para cada indivíduo, por exemplo: (homem_joão→ mortal_joão), (homem_josé→ mortal_josé), etc. Prof. Celso A A Kaestner
Lógica Predicativa • A linguagem (sintaxe) da Lógica Predicativa LPRED é mais complexa que a da Lógica Proposicional; • Para a definição deLPRED necessita-se de: • Um conjunto de predicados: Ri = { ri1, ri2,... rin,...} onde o sobrescrito i indica a aridade do predicado (o seu nº de argumentos); • Um conjunto de constantes: C = {c1,c2, ...}; • Um conjunto de funções: Fi= { fi1, fi2,... fin,...} onde o sobrescrito i também indica a aridade da função; • Um conjunto de variáveis: V = {x1,x2, ...}. Prof. Celso A A Kaestner
Lógica Predicativa • A assinatura de LPRED é a uma tupla do tipo = [R1,R2, ...RM,C,F1,F2,...FN] onde N e M são números naturais conhecidos. • O conjunto dos termos de LPRED éT() definido recursivamente por: • Se xV então x T(); • Se cC então c T(); • Se fFj e se t1,...tj T() então f(t1,...tj ) T(). Prof. Celso A A Kaestner
Lógica Predicativa • O conjunto das fórmulas (fbf) de LPRED éFbf() definido recursivamente como sendo o menor conjunto que atenda ao seguinte: • Se t1,...tj T() e se rj Rj então rj(t1,...tj) Fbf(); • Se t1, t2 T() então t1= t2 Fbf(); Estas fbf são chamadas de fórmulas atômicas; • Se , Fbf() então , , , → Fbf(); • Se Fbf() e se xV então x() e x() Fbf(). Prof. Celso A A Kaestner
Lógica Predicativa • O conjunto das variáveis livres VLIVRES() em uma fórmula é definido por: • Se = rj(t1,...tj) com rj Rj e os ti T() então todas as variáveis em pertencem a VLIVRES(); • Se = (t1=t2) com os ti T() então todas as variáveis em pertencem a VLIVRES(); • Se = então VLIVRES()= VLIVRES(); • Se = , , ou → então VLIVRES()= VLIVRES() VLIVRES(); • Se = x() ou x() então VLIVRES()= VLIVRES() – {x}. • Exemplo: Se = x (r(x) q(y) → z (s(z,y))) então VLIVRES() = { y }. Prof. Celso A A Kaestner
Lógica Predicativa • Uma fórmula tal que VLIVRES() = (sem variáveis livres) é denominada uma sentença. • Uma subfórmula de uma fórmula é uma subseqüência dos símbolos de que também pertence a Fbf(). • Exemplo: se = x (r(x) q(y) → z (s(z,y))) então r(x) q(y) → z (s(z,y)) , r(x) q(y), z (s(z,y)), r(x) e q(y) são subfórmulas de . Prof. Celso A A Kaestner
Lógica Predicativa • Exemplos: Prof. Celso A A Kaestner
Lógica Predicativa • A semântica da Lógica Predicativa é definida sobre um par A()=[A, vA()] denominado sistema algébrico da assinatura , tal que: • A é um conjunto denominado domínio (ou portador) do sistema algébrico; • vA() é uma interpretação, que mapeia os elementos dos conjuntos em em relações sobre A (para os predicados), em funções sobre A (para as funções) e em elementos de A (para as constantes). Prof. Celso A A Kaestner
Lógica Predicativa • Desta forma para uma interpretação vA() tem-se: • Se rj Rj então vA() (rj) Aj = A A ... A (j vezes); • Se fFj então existe uma função vA() (fj): Aj →A; • Se c C então vA() (c) A; • Para um conjunto de variáveis X V existe ainda uma função : X → A denominada interpretação das variáveisX em A . Prof. Celso A A Kaestner
Lógica Predicativa • O valor de um termo t T () em um sistema algébrico A() e para uma interpretação de variáveis é definido indutivamente por: • Se t = x X então tA() [] = (x); • Se t = c C então tA() [] = vA() (c); • Se fFj , t1,..., tj são termos e t=f(t1,..., tj) então tA() []=vA() (fj)(t1A()[],..., tjA()[]). Prof. Celso A A Kaestner
Lógica Predicativa • Finalmente é possível se definir quando uma fórmula é verdadeira para um sistema algébrico A() e uma interpretação de variáveis ; • Denota-se por A() |= []; • Se = rj(t1,...tj) Fbf() então A() |= [] é equivalente a [t1A()[],..., tjA()[]] vA() (rj); • Se = (t1=t2) com t1, t2 T() então A() |= [] é equivalente a t1A()[] = t2A()[]; • Se = e Fbf() então A() |= [] se e somente se não for verdade que A() |= []; Prof. Celso A A Kaestner
Lógica Predicativa • Se = , com , Fbf() então A() |= [] se e somente se A() |= [] e A() |= []; • Se = , com , Fbf() então A() |= [] se e somente se A() |= [] ou A() |= []; • Se = →, com , Fbf() então A() |= [] se e somente se quando A() |= [] necessariamente também ocorre A() |= []; • Se = x() com Fbf() então A() |= [] se e somente se existir pelo menos uma interpretação de variáveis : X → A que, restrita às variáveis de , seja tal que A() |= []; • Se = x() com Fbf() então A() |= [] se e somente se para todas as interpretações de variáveis : X → A , quando restritas às variáveis de , sejam tais que A() |= []. Prof. Celso A A Kaestner
Lógica Predicativa • Exemplos Prof. Celso A A Kaestner
Lógica Predicativa • Uma teoria em LPREDé um conjunto de sentenças; • Um sistema algébrico A() é um modelo para uma teoria se A() |= para toda ; • Se tiver ao menos um modelo diz-se que é satisfazível; • Se não tiver modelos é dita insatisfazível. Prof. Celso A A Kaestner
Lógica Predicativa Substituição de variáveis: • Seja uma fórmula, x VLIVRES() uma variável livre em e t T() um termo; • Neste caso a variável x pode ser substituída pelo termo t em , gerando uma nova fórmula [x:=t]; • Exemplo: se = x(r(x) →s(x,y)), yVLIVRES() e t=f(a,z) então [y:=f(a,z)] = x(r(x) →s(x,f(a,z))). Prof. Celso A A Kaestner
Lógica Predicativa • Intuitivamente uma substituição gera um “caso particular” de uma fórmula; • As substituições só podem ser feitas sobre as variáveis livres de , e de forma a não introduzir restrições na fórmula gerada que já não estivessem presentes na fórmula original; • Várias substituições podem ser feitas simultaneamente, desde que não introduzam restrições. • Exemplo: Se = x(r(x) →s(x,y) r(z)) y, zVLIVRES() e t1=f(a,w), t2=b então [y:=f(a,w), z:=b]=x(r(x)→s(x,f(a,z))r(b))) Prof. Celso A A Kaestner
Lógica Predicativa Sistemas Dedutivos em Lógica Predicativa: • Método axiomático: ver item 4.5 pg. 128; • Dedução natural: ver item 4.4 pg. 122, e também a ferramenta JAPE; • Método dos tableaux analíticos: ver item 5.6 pg. 147. Prof. Celso A A Kaestner
Lógica Predicativa Exemplo do método dos tableaux analíticos: • x(r(x) → s(x)) |- x r(x) → x s(x) • T x(r(x) → s(x)) de 1 • F x r(x) → x s(x) de 1 • T x r(x) de 3 • F x s(x) de 3 • F s(a) de 5 • T r(a) de 4 • T r(a) → s(a) de 2 • F r(a) T s(a) de 8 X (7,9) X (6,9) Prof. Celso A A Kaestner
Lógica Predicativa • Método da Dedução Natural... Prof. Celso A A Kaestner