Curso Prático de Métodos Formais

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

description

Curso Prático de Métodos Formais. Revisando Pré-Condições e Provando Refinamentos de Especificações em Z. (Alexandre Mota e Augusto Sampaio). Tópicos Abordados. Exemplo: A Tabela de Símbolos ( TS ) Pré-condições: Estruturando Provando Refinamentos Mesmo Estado Estados Diferentes. State. - PowerPoint PPT Presentation

Transcript of Curso Prático de Métodos Formais

Page 1: Curso Prático de Métodos Formais

Curso PráticoCurso Práticode Métodos Formaisde Métodos Formais

Revisando Pré-Condições e Provando Refinamentos de Especificações em Z

(Alexandre Mota e Augusto Sampaio)

Page 2: Curso Prático de Métodos Formais

Tópicos AbordadosTópicos Abordados

Exemplo: A Tabela de Símbolos (TS) Pré-condições: Estruturando Provando Refinamentos

– Mesmo Estado– Estados Diferentes

Page 3: Curso Prático de Métodos Formais

Exemplo: A Tabela de SímbolosExemplo: A Tabela de Símbolos

[VAL,SYM]State

st: ST

DeleteStates?: SYMs? dom(st)st’={s?} st

ST == SYM VAL

NotPresentStates?: SYMrep!: Report

s? dom(st)rep!=Symbol_not_present

Report ::= Ok | Symbol_not_present

Success = [rep!:Report | rep!=Ok]^

StDelete = (Delete Success) NotPresent^

Update States?: SYMv?: VAL

s? dom stst’ = st {s? v?}

Page 4: Curso Prático de Métodos Formais

Pré-condição: EstruturandoPré-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)

Page 5: Curso Prático de Métodos Formais

Refinamento de Operações Refinamento de Operações (Mesmo Estado)(Mesmo Estado)

Verificar se operações compostas refinam operações simples;

As obrigações são: a aplicabilidade e a corretude. Há simplificação dos teoremas pois o esquema Retrieve

é a relação identidade

Delete StDelete ???

theorem aplicMesmoEstado pre Delete pre StDelete

theorem corrMesmoEstadopre Delete StDelete Delete

Page 6: Curso Prático de Métodos Formais

Estratégia para RefinamentoEstratégia para Refinamento Os teoremas de refinamento usam as pré-condições

mais de uma vez; Portanto, neste caso é interessante guardar o resultado; Desta forma, deve-se calcular as pré-condições; Armazenar os resultados obtidos como esquemas; Introduzir estes resultados nas obrigações de prova.

\begin{schema}{Delete} ...\end{schema}

\begin{schema}{preDeleteRes} ...\end{schema}

\begin{theorem}{aplicacao} ... preDeleteRes ...\end{theorem}

Page 7: Curso Prático de Métodos Formais

Refinamento de DadosRefinamento de Dados(funcional)(funcional)

No caso geral, é necessário estabelecer uma relação entre os dois estados (abstrato e concreto);

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

Page 8: Curso Prático de Métodos Formais

Refinamento de Dados (Geral)Refinamento de Dados (Geral)

Propor um novo estado; Propor um esquema Retrieve; Propor refinamentos para as operações; Construir as obrigações de prova como

teoremas; Provar os teoremas.

Page 9: Curso Prático de Métodos Formais

Refinamento de DadosRefinamento de Dados(Exemplo 1)(Exemplo 1)

Retrieve1StateState1

st = ran st1

State1st1: seq(SYM VAL)

Update1 State1s?: SYMv?: 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.

Page 10: Curso Prático de Métodos Formais

Refinamento de DadosRefinamento de Dados(Exemplo 1 - continuação)(Exemplo 1 - continuação)

Calcular a pré-condição de Update e de Update1; Armazenar como esquemas; Usar esquema em teoremas.

Exemplo: Calcular SymtabA SymtabC, considerando simplesmente as operações Update e Update1

preUpdateResStates?: SYMv?: VAL

s? dom st

preUpdate1ResState1s?: SYMv?: VAL

s? dom (ran st1)

Page 11: Curso Prático de Métodos Formais

Refinamento de DadosRefinamento de Dados(Exemplo 1 - continuação)(Exemplo 1 - continuação)

theorem inicializacaoInit1 \land Retr1 \implies Init

theorem aplicacaopreUpdateRes \land Retr1 \implies Update1

theorem corretudepreUpdateRes \landRetr1 \landUpdate1 \landRetr1’ \implies Update

Page 12: Curso Prático de Métodos Formais

Refinamento de DadosRefinamento de Dados(Exemplo 2)(Exemplo 2)

Stateb: bag IN

find Staten?: INrep!: Report

n? dom brep! = Yes

State1s: seq IN

find1 State1n?: INrep!: Report

n? ran srep! = Yes

EspecificaçãoAbstrata

EspecificaçãoConcreta

Report ::= Yes | No

Page 13: Curso Prático de Métodos Formais

Refinamento de DadosRefinamento de Dados(Exemplo 2 - Escolha do Retr)(Exemplo 2 - Escolha do Retr)

Retr1StateState1

Alternativa 1:

b = items s

Retr2StateState1

Alternativa 2:

dom b = ran s n dom b b(n) = #(s |` {n})