Lógica de Primeira Ordem 1- Modelos e Teorias 2- Definibilidade de (classes de) Estruturas (s) 3- Definibilidade em um estrutura Ref ==> Seções 2.1 e 2.2 de [Enderton] Edward Hermann Lógica e Especificação 1 Modelos e Teorias Algumas Definições Úteis Sejam - L uma linguagem não-lógica de primeira ordem, - Est(L) a classe de todas as estruturas para L - Sent(L) o conjunto das sentenças de L Def. Seja Sent(L). Define-se Mod() = { S / S Est(L) e S |= } Def. Sejam C Est(L) e Sent(L). Diz-se que a classe de estruturas C satisfaz (C |= , em símbolos) , sss, para toda estrutura S C tem-se S |= Def. Seja C Est(L). Define-se Th(C) = { / Sent(L) e C |= } Def. Seja D um sistema dedutivo correto e completo para a LPO. Nota-se |- , sempre exista uma prova de a partir de em D. Def. Cn() = { / |- } Edward Hermann Lógica e Especificação 2 Modelos e Teorias Uma linguagem não-lógica L Fórmulas sobre L Estruturas para L Th C Th(D) D Th(C) => 1- O que Th({S}) tem de especial ??? 2- Th({S}) como uma descrição lingüística de S. Edward Hermann Lógica e Especificação 3 Modelos e Teorias Definição Importante em Lógica e Ciências Formais Seja L uma linguagem da LPO. Def. Formulas(L) é uma teoria, sss, para toda Formulas(L) , tem-se: T , se e somente se, T |- Fato: T Formulas(L) é uma teoria , sss, Cn(T) = T. Def. T Formulas(L) é completa sss, para toda Formulas(L) , tem-se que ou T ou T. Edward Hermann Lógica e Especificação 4 Definibilidade em Lógica (I) Uma linguagem não-lógica L Sentenças sobre L Estruturas para L Mod Mod() Mod() => 1- Um conjunto de fórmulas “especifica” uma classe de estruturas 2- Axiomatização de uma Classe de estruturas Edward Hermann Lógica e Especificação 5 Modelos e Teorias Exercícios: Verifique se é falso ou verdadeiro: 1- Cn(1 2) = Cn(1) Cn(2) 2- Cn() = Th(Mod()) 3- Se 1 2 então Cn(2) Cn(1) 4- Se C1 C2 então Th(C2) Th(C1) 5 - Th(Mod()) e C Mod(Th(C)) 6 - Mod() Mod(Th(Mod())) e Th(C) Th(Mod(Th(C))) 7- Th(C1) Th(C2) = Th(C1 C2) Edward Hermann Lógica e Especificação 6 Questões Naturais : 1- Todo conjunto de fórmulas (sobre L) define uma classe de estruturas ?? 2 - Qual o conjunto de fórmulas que define a classe de todas as estruturas para uma linguagem L ? 3- Toda classe de estruturas é definível por um conjunto de fórmulas, ou seja todas as classes de estruturas são elementares ?? 4- Toda classe de estruturas é definível por uma única fórmula ?? => Existem classes não elementares Edward Hermann Lógica e Especificação 7 Teorema da Completude: |= se e somente se |- Teorema da Compacidade: é finitamente satisfatível sss é satisfatível Teorema da Compacidade: é finitamente satisfatível sss é satisfatível finitamente satisfatível = Para todo finito com tem-se sat. => A Classe das estruturas (para L fixa) infinitas não é definível por nenhuma fórmula. (isto é, não é elementar) => A Classe das estruturas (para L fixa) finitas não é definível por nenhum conjunto de fórmulas Edward Hermann Lógica e Especificação 8 Definibilidade em Lógica (I) Para cada estrutura S tem-se a linguagem LS da estrutura Estrutura S Fórmulas para LS Th Cn Cn Th(S) 1- Definibilidade de uma (classe de) estrutura (s) !!!! 2- Axiomatização da Teoria de uma Estrutura Edward Hermann Lógica e Especificação 9 Definibilidade em Lógica (II) Definibilidade em uma estrutura: (x1,...,xn) uma fórmula na linguagem da estrutura S (x1,...,xn) define uma relação n-ária (um subconjunto de Sn) [[(x1,...,xn) ]] = { <a1,...,an> / ai |S| e |= (x1,...,xn) } <S,[a1/x1,...an/xn]> Exemplos: 1. Em <N,suc>: [[y(suc(y)=x)]]={0}, [[z (y(suc(y)=z)(suc(z)=x)]]={1} e [[suc(suc(x1)=x2)]]={<a1,a2>/ a1+2=a2 e a1,a2 N} 2. Em <R,,+>: [[y(+(y,x)=y]]={0}, [[y((y, y)=x)]]={r / r R e r0}, [[y((x1+y=x2) (+(y,y) y))]]={<r1,r2> / r1<r2 e r1,r2 R Obs: Às vezes a notação infixa é usada : x+y no lugar de +(x,y) Edward Hermann Lógica e Especificação 10 Definibilidade em Lógica (I) Homomorfismo de Estruturas h P PQh s h(s) b h(b) a h(a) h(f(a,b)) = fh(h(a),h(b)) f(a,b) = g(h(a),h(b)) S1 <|S1|,f,P> |S1| h f P Edward Hermann Lógica e Especificação |S2| S2 g fh Q Ph <|S2|,g,Q> 11 Definibilidade em Lógica (I) Subestruturas e Extensões Def. Sejam S1 e S2 duas estruturas tais que a função de inclusão S1 S2 é um homomorfismo. Diz-se que S1 é subestrutura de S2, e que S2 é uma extensão de S1. Def. Sejam S1 e S2 duas estruturas e h: S1 S2 um homomorfimo bijetivo (injetivo e sobrejetivo), então h é dito ser um isomorfimo de estruturas e S1 é dita ser isomorfa a S2 (S1 S2) => Estruturas isomorfas satisfazem as mesmas fórmulas ??? => Estruturas que satisfazem as mesmas fórmulas são isomorfas ??? Edward Hermann Lógica e Especificação 12 Definibilidade em Lógica (I) Teorema do homomorfimo: Seja |= P(t1,...,tn) sss <S1,> h homomorfismo de S1 em S2 (estruturas para L) Vars |= P(t1,...,tn) <S2,h> h |S1| h |S2| <(t1),....., (tn)> PS1 sss <h((t1)),....., h((tn))> PS2 a h(a)=h(b) 1. Se não possui quantificadores nem a igualdade. b 2. Se não possui quantificadores mas sim a igualdade e h é um homomorfismo injetivo S1 S2 3. Se possui quantificadores e mas não a igualdade e h é um homomorfismo sobrejetivo h(|S1|) t1=t2 |= <S1,> x Edward Hermann sss |= t1=t2 <S2,h> c x Lógica e Especificação S1 S2 13 Definibilidade em Lógica (II) Homomorfismo e Definibilidade Def. Um Automorfismo é um isomorfismo (homomorfismo bijetivo) de uma estrutura nela mesma. Corolário: Seja S uma estrutura e h:S S um automorfismo, então ASn é definível, se e somente se, h(A) Sn é definível. ==> O Corolário acima é uma boa ferramenta para mostrar que algumas relações/conjuntos não são definíveis. Exemplos: 1- Na estrutura <N> nenhum conjunto diferente do vazio e do N é definível (em particular o número zero não é definível). Qualquer função bijetiva é um automorfismo em N. 2- Em <N,> a adição não é definível, pois o a função:f(0)=0,f(1)=1 f(3)=2, f(2)=3 e f(p1 p2)=f(p1) f(p2) se caso contrário, é um automorfismo em <N ,> que não preserva a adição. Edward Hermann Lógica e Especificação 14 Definibilidade em Lógica (II) Relações de extensibilidade própria entre estruturas sobre N. <N, ,+ > <N, > <N,+> < N,< > <N,s> Edward Hermann Lógica e Especificação 15