280 likes | 415 Views
Teoria de 1ª Ordem. Def. 18 Dado um conjunto A, dizemos que um subconjunto A’ de A é decidível se e somente se existir um procedimento efetivo (um algoritmo) tal que, dado qualquer a A, pare com SIM se a A’ e pare com NÃO se a A’.
E N D
Teoria de 1ª Ordem • Def. 18 Dado um conjunto A, dizemos que um subconjunto A’ de A é decidível se e somente se existir um procedimento efetivo (um algoritmo) tal que, dado qualquer a A, pare com SIM se a A’ e pare com NÃO se a A’. • Def. 19 Uma Teoria de 1ª Ordem (ou simples-mente uma Teoria) é um par T = <S, G>, onde S é um alfabeto de 1ª ordem e G é um conjunto de sentenças de L(S) fechado por consequência lógica.
Teoria de 1ª Ordem • Def.20 Uma teoria T = <S, G> é axiomatizável se e somente se existe um subconjunto decidível G’ de G tal que aG se e somente se G’ |= a. As sentenças em G’ são os axiomas de T. • Def.21 Uma teoria T é finitamente axiomatizável se e somente se T for axiomatizável por um conjunto finito de sentenças (axiomas). • Def.22 Um modelo para uma teoria T = <S, G> é um modelo para G.
Teoria de 1ª Ordem • Podemos expandir uma teoria com novos símbolos predicativos ou funcionais. Exemplo: Suponha uma teoria sobre os naturais onde “=“ e “>“ são símbolos predicativos binários do alfabeto definido.O que fazer para usar o símbolo “”? Solução 1: “” significa “t = u t > u”. Solução 2: Expandir a teoria incluindo o predicado “” no alfabeto e acrescentando o axioma de definição de “” xy(x y x = y x > y)
Um exemplo sobre Teoria:Dicionário de um Sistema Descrição do Problema • considere um dicionário contendo os programas e os arquivos usados em um determinado sistema. • cada programa possui como atributo apenas a linguagem em que foi escrito. • cada arquivo possui como atributo apenas o tipo de organização física. • o dicionário mantém os arquivos usados e os programas chamados por cada programa.
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação) • Formalização do Problema T = <S, G> • como descrever a organização lógica do dicionário (o alfabeto - S) • como descrever um estado consistente do dicionário em um determinado instante (as sentenças sobre a teoria - G)
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação) Alfabeto do dicionário (AD): • constantes: letras minúsculas do alfabeto da Língua Portuguesa • símbolos predicativos binários: “programa”, “arquivo”, “chama”, “usa”, “depende”
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação) Significados pretendido em AD : constantes : nomes de programas, arquivos, linguagens de programação e tipos de organização de arquivos. programa(n, m) : o programa n é escrito na linguagem m. arquivo(n, m) : o arquivo n tem organização m. chama(n, m) : o programa n chama o programa m. usa(n, m) : o programa n usa o arquivo m. depende(n, m) : o programa n usa ou chama direta ou indiretamente m.
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação) • Definição da teoria do Dicionário (restrições): 1. As únicas Linguagens permitidas são Fortran, Java ou Pascal 2. Todo programa é escrito em uma única linguagem 3. As únicas organizações de arquivos permitidas são Sequencial, Direta ou Indexada
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação) • Definição da teoria do Dicionário (restrições): 4. Todo arquivo possui uma única organização física 5. Se x chama y então x e y são programas no dicionário 6. Se x usa y então x é um programa e y é um arquivo no dicionário
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação) • Definição da teoria do Dicionário (restrições): 7. Se x chama y então x depende de y 8. Se x usa y então x depende y 9. Se x depende de z e z depende de y então x depende de y
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação) • Escrevendo a teoria no alfabeto de 1a Ordem 1. As únicas Linguagens permitidas são Fortran, Java ou Pascal xy( programa(x, y) (y = fortran y = Java y = pascal) ) 2. Todo programa é escrito em uma única linguagem xyz( (programa(x, y) & programa(x, z)) (y = z))
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação) • Escrevendo a teoria no alfabeto de 1a Ordem 5. Se x chama y então x e y são programas xy(chama(x, y) (z(programa(x, z))& w(programa(y, w)))) 9 . Se x depende de z e z depende de y então x depende de de y xyz(xyz((depende(x, z) & depende(z, y)) depende(x, y))
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação) • Teoria do Dicionário no alfab. de 1a Ordem 1. xy(programa(x, y) (y = fortran y = java y = pascal)) 2. xyz((programa(x, y) & programa(x, z)) (y = z)) 3. xy(arquivo(x, y) (y = sequencial y = direto y = indexado))
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação) • Teoria do Dicionário no alfab. de 1a Ordem 4. xyz ((arquivo(x, y) & arquivo(x, z)) (y = z)) 5. xy(chama(x, y) (z(programa(x, z))& w(programa(y, w)))) 6. xy(usa(x, y) (z(programa(x, z))& w(arquivo(y, w))))
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação) • Teoria do Dicionário no alfab. de 1a Ordem 7. xy(chama(x, y) depende(x, y)) 8. xy(usa(x, y) depende(x, y)) 9. xyz((depende(x, z) & depende(z, y)) depende(x, y))
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação) • Segue exemplo de uma interpretação I que satisfaz as restrições desse dicionário, ou seja, que é um modelo para G, ou ainda, que é um estado consistente para esse dicionário
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação)
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação) • É interessante observar que um determinado estado consistente, como a interpretação I, também pode ser escrito por uma teoria cujos axiomas representam: • os dados (fatos) armazenados no Dicionário, através de fórmulas atômicas • as propriedades desejadas de “depende”
Teoria equivalente a Interpretação I 1. programa(a, fortran) 2. programa(b, pascal) 3. programa(c, fortran) F 4. arquivo(d, sequencial) A 5. arquivo(e, direto) T 6. chama(a, b) O 7. chama(a, c) S 8. usa(a, d) 9. usa(b, e) R 10. xy(chama(x, y) depende(x, y)) E 11. xy(usa(x, y) depende(x, y)) G 12. xyz((depende(x, z) & depende(z, y)) R depende(x, y)) A S
Um Sistema Formal Axiomático (SFA) • Apresentação de um “cálculo” permitindo verificar se uma fórmula de 1ª ordem é consequência lógica de um conjunto de fórmulas.
Um SFA • Def.23 a é uma generalização de b se e somente se a for da forma x1 ... xn (b), para n > 0 e variáveis x1, ... ,xn. • Def.24 Uma fórmula de 1ª Ordem é uma tautologia se ela puder ser mapeada em uma tautologia da Lógica Proposicional.
Um SFA • Def.25 Um Sistema Formal Axiomático é uma tripla S = <L, A, R>, onde: • L : uma linguagem de 1ª ordem • A : um conjunto de sentenças chamadas axiomas lógicos • R : um conjunto de regras de inferência
Um SFA Exemplo: Um SFA denominado S. S = <L, A, R>, onde: L : uma linguagem de 1ª ordem R: uma regra de inferência Modus Ponens: { → b, }├ b A: um conjunto de axiomas classificados em 5 Grupos:
Um SFA A : todas as generalizações de fórmulas da forma: Grupo 0: traduz a Lóg. Proposicional p/ S (A v B) (~A B) (A ^ B) ~(A ~B) (A B) (A B)^(B A) Grupo 1:traduz em ~x(a) →x(~a) x(a) ~x(~a)
Um SFA • Os três grupos que seguem dizem respeito às propriedades do Grupo 2:x1 ... xn (a) a[x1/t1, ... ,xn/tn] (se xi for substituível por ti em a) Grupo 3:x(ab) (x(a) x(b)) Grupo 4:ax(a) (se x não ocorre livre em a)
Um SFA: Exemplo de uma derivação (prova) em S • {x(P(x) Q(x)), x(P(x))} |- x(Q(x)) • x(P(x) Q(x)) P (G) • x(P(x)) P(G) 3. x(P(x) Q(x)) (x(P(x)) x(Q(x))) Grp. 3 4. x(P(x)) x(Q(x)) 1, 3 MP 5. x(Q(x)) 2, 4 MP
Um SFA: Um outro Exemplo de derivação (prova) em S • Seja G a formalização de um estado do “Dicionário” como uma teoria e a a fórmula : depende(a, e). A derivação de a a partir de Gno sistema S, G— a é dada a seguir:
G — depende (a,e) 1. chama(a, b) G 2. usa(b, e) G 3. xy(chama(x, y) depende(x, y)) G 4. xy(usa(x, y) depende(x, y)) G 5. xyz((depende(x, z)(depende(z, y) depende(x, y))) G 6. xy (chama(x, y) depende(x, y)) (chama(a, b) depende(a, b)) Grupo 2 7. chama(a, b) depende(a, b) 3, 6 MP 8. depende(a, b) 1, 7 MP 9. xy(usa(x, y) depende(x, y)) (usa(b, e) depende(b, e)) Grupo 2 10. usa(b, e) depende(b, e) 4, 9 MP 11. depende(b, e) 2, 10MP 12. xyz((depende(x, z) (depende(z, y)depende(x, y))) (depende(a, b) (depende(b, e)depende(a, e))) Grupo 2 13. depende(a, b) (depende(b, e) depende(a, e)) 5, 12 MP 14. depende(b, e) depende(a, e) 8, 13 MP 15. depende(a, e)MP 11c/14