1 Teoria de 1ª Ordem Def. 18 Dado um conjunto A, dizemos que um subconjunto A’ de A é...
-
Upload
vagner-coimbra-farias -
Category
Documents
-
view
224 -
download
2
Transcript of 1 Teoria de 1ª Ordem Def. 18 Dado um conjunto A, dizemos que um subconjunto A’ de A é...
1
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, >, onde S é um alfabeto de 1ª ordem e é um conjunto de sentenças de L(S) fechado por consequência lógica.
2
Teoria de 1ª Ordem Def.20 Uma teoria T = <S, > é axiomatizável
se e somente se existe um subconjunto decidível ’ de tal que se e somente se ’ |= . As sentenças em ’ 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, >
é um modelo para .
3
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)
4
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.
5
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação)
Formalização do Problema T = <S, >
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 - )
6
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”
7
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.
8
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
9
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
10
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
11
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))
12
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))
13
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))
14
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))))
15
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))
16
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 ou ainda, que é um estado consistente para esse dicionário
17
Um exemplo sobre Teoria:Dicionário de um Sistema (continuação)
programaI (A, FORTRAN)
usaI (A, D)
programaI (B, PASCAL) usaI (B, E) programaI (C, FORTRAN)
dependeI (A, B) arquivoI (D, SEQUENCIAL)
dependeI (A, C)
arquivoI (E, DIRETO) dependeI (A, D) dependeI (B, E)
chamaI (A, B) dependeI (A, E) chamaI (A, C)
18
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”
19
Teoria equivalente a Interpretação I
1. programa(a, fortran)2. programa(b, pascal)3. programa(c, fortran) F4. arquivo(d, sequencial) A5. arquivo(e, direto) T6. chama(a, b) O7. chama(a, c)S8. usa(a, d)9. usa(b, e)
R10.xy(chama(x, y) depende(x, y)) E11.xy(usa(x, y) depende(x, y)) G12. xyz((depende(x, z) & depende(z, y)) R
depende(x, y)) AS
20
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.
21
Um SFA Def.23 é uma generalização de se e
somente se for da forma x1 ... xn (), 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.
22
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
23
Um SFAExemplo: Um SFA denominado S.
S = <L, A, R>, onde:
L : uma linguagem de 1ª ordemR: uma regra de inferência Modus Ponens: { → }├ A: um conjunto de axiomas classificados em 5 Grupos:
24
Um SFAA : 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() → x(~) x() ~x(~)
25
Um SFA Os três grupos que seguem dizem
respeito às propriedades do
Grupo 2: x1 ... xn () [x1/t1, ... ,xn/tn] (se xi for substituível por ti em
Grupo 3: x( ) (x() x())
Grupo 4: x() (se x não ocorre livre em
26
Um SFA: Exemplo de uma derivação (prova) em S
{x(P(x) Q(x)), x(P(x))} |- x(Q(x))1. x(P(x) Q(x))P ( )2. x(P(x)) P ( )3. x(P(x) Q(x)) (x(P(x)) x(Q(x))) Grp.
34. x(P(x)) x(Q(x)) 1, 3 MP5. x(Q(x)) 2, 4 MP
27
Um SFA: Um outro Exemplo de derivação (prova) em S
Seja a formalização de um estado do “Dicionário” como uma teoria e a fórmula : depende(a, e).
A derivação de a partir de no sistema S,
— é dada a seguir:
28
— depende (a,e) 1. chama(a, b) 2. usa(b, e) 3. xy(chama(x, y) depende(x, y)) 4. xy(usa(x, y) depende(x, y)) 5. xyz((depende(x, z)(depende(z, y) depende(x, y)))
6. xy (chama(x, y) depende(x, y))
(chama(a, b) depende(a, b))Grupo 27. chama(a, b) depende(a, b) 3, 6 MP8. depende(a, b) 1, 7 MP 9. xy(usa(x, y) depende(x, y))
(usa(b, e) depende(b, e)) Grupo 210. 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