1 Teoria de 1ª Ordem Def. 18 Dado um conjunto A, dizemos que um subconjunto A’ de A é...

28
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.

Transcript of 1 Teoria de 1ª Ordem Def. 18 Dado um conjunto A, dizemos que um subconjunto A’ de A é...

Page 1: 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)

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.

Page 2: 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)

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 .

Page 3: 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)

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)

Page 4: 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)

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.

Page 5: 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)

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 - )

Page 6: 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)

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”

Page 7: 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)

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.

Page 8: 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)

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

Page 9: 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)

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

Page 10: 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)

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

Page 11: 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)

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))

Page 12: 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)

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))

Page 13: 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)

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))

Page 14: 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)

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))))

Page 15: 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)

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))

Page 16: 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)

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

Page 17: 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)

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)

Page 18: 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)

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”

Page 19: 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)

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

Page 20: 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)

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.

Page 21: 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)

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.

Page 22: 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)

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

Page 23: 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)

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:

Page 24: 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)

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(~)

Page 25: 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)

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

Page 26: 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)

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

Page 27: 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)

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:

Page 28: 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)

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