A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Curso Prático de Métodos Formais Revisando Pré-Condições e Provando Refinamentos de Especificações em Z (Alexandre Mota e Augusto Sampaio)

Apresentações semelhantes


Apresentação em tema: "Curso Prático de Métodos Formais Revisando Pré-Condições e Provando Refinamentos de Especificações em Z (Alexandre Mota e Augusto Sampaio)"— Transcrição da apresentação:

1 Curso Prático de Métodos Formais Revisando Pré-Condições e Provando Refinamentos de Especificações em Z (Alexandre Mota e Augusto Sampaio)

2 Tópicos Abordados l Exemplo: A Tabela de Símbolos (TS) l Pré-condições: Estruturando l Provando Refinamentos –Mesmo Estado –Estados Diferentes

3 Exemplo: A Tabela de Símbolos [VAL,SYM] State st: ST Delete  State s?: SYM s?  dom(st) st’={s?} st ST == SYM VAL NotPresent  State s?: SYM rep!: Report s?  dom(st) rep!=Symbol_not_present Report ::= Ok | Symbol_not_present Success = [rep!:Report | rep!=Ok] ^ StDelete = (Delete  Success)  NotPresent ^ Update  State s?: SYM v?: VAL s?  dom st st’ = st  {s?  v?}

4 Pré-condição: Estruturando Disjunções:  - or. Por exemplo, considere StDelete: pre StDelete  pre Delete  pre NotPresent A estruturação é realizada a partir do cálculo intermediário das pré-condições envolvidas. Para o exemplo acima temos: theorem preStDelete  State; s?:SYM; v?: VAL  pre Delete  pre NotPresent Passos da prova: 1. try lemma preStDelete; 2. cases; (cálculos intermediários) 3. prove by reduce; 4. next; (próximo predicado) 5. prove by reduce; (2 objetivo) 6. next; (objetivo OU) 7. prove by reduce; (objetivo final)

5 Refinamento de Operações (Mesmo Estado) l Verificar se operações compostas refinam operações simples; l As obrigações são: a aplicabilidade e a corretude. l Há simplificação dos teoremas pois o esquema Retrieve é a relação identidade Delete StDelete ??? theorem aplicMesmoEstado pre Delete  pre StDelete theorem corrMesmoEstado pre Delete  StDelete  Delete

6 Estratégia para Refinamento l Os teoremas de refinamento usam as pré-condições mais de uma vez; l Portanto, neste caso é interessante guardar o resultado; l Desta forma, deve-se calcular as pré-condições; l Armazenar os resultados obtidos como esquemas; l Introduzir estes resultados nas obrigações de prova. \begin{schema}{Delete}... \end{schema} \begin{schema}{preDeleteRes}... \end{schema} \begin{theorem}{aplicacao}... preDeleteRes... \end{theorem}

7 Refinamento de Dados (funcional) l No caso geral, é necessário estabelecer uma relação entre os dois estados (abstrato e concreto); l Aqui, consideraremos que esta relação é sempre funcional. Inicialização: Cinit  Retr’  Ainit Aplicabilidade: pre Aop  Retr  pre Cop Corretude: pre Aop  Retr  Cop  Retr’  Aop

8 Refinamento de Dados (Geral) l Propor um novo estado; l Propor um esquema Retrieve; l Propor refinamentos para as operações; l Construir as obrigações de prova como teoremas; l Provar os teoremas.

9 Refinamento de Dados (Exemplo 1) Retrieve1 State State1 st = ran st1 State1 st1: seq(SYM  VAL) Update1  State1 s?: SYM v?: VAL s?  dom(ran st1) st1’ = st1 ^  (s?, v?)  A estratégia geral para o cálculo de refinamento é calcular as pré-condições envolvidas e usar estes resultados nos teoremas de aplicabilidade e corretude.

10 Refinamento de Dados (Exemplo 1 - continuação) l Calcular a pré-condição de Update e de Update1; l Armazenar como esquemas; l Usar esquema em teoremas. Exemplo: Calcular SymtabA SymtabC, considerando simplesmente as operações Update e Update1 preUpdateRes State s?: SYM v?: VAL s?  dom st preUpdate1Res State1 s?: SYM v?: VAL s?  dom (ran st1)

11 Refinamento de Dados (Exemplo 1 - continuação) theorem inicializacao Init1 \land Retr1’ \implies Init theorem aplicacao preUpdateRes \land Retr1 \implies preUpdate1 theorem corretude preUpdateRes \land Retr1 \land Update1 \land Retr1’ \implies Update

12 Refinamento de Dados (Exemplo 2) State b: bag IN find  State n?: IN rep!: Report n?  dom b rep! = Yes State1 s: seq IN find1  State1 n?: IN rep!: Report n?  ran s rep! = Yes Especificação Abstrata Especificação Concreta Report ::= Yes | No

13 Refinamento de Dados (Exemplo 2 - Escolha do Retr) Retr1 State State1 Alternativa 1: b = items s Retr2 State State1 Alternativa 2: dom b = ran s  n  dom b  b(n) = #(s |` {n})


Carregar ppt "Curso Prático de Métodos Formais Revisando Pré-Condições e Provando Refinamentos de Especificações em Z (Alexandre Mota e Augusto Sampaio)"

Apresentações semelhantes


Anúncios Google