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

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

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

Apresentações semelhantes


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

1

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

3 Tópicos Abordados l O Provador de Teoremas Z-EVES l A Tabela de Símbolos (TS) l Cálculo de Pré-condições: Simples e Compostas l Provando Propriedades l Propriedades Complexas

4 O Provador de Teoremas Z-EVES l Interpretador Lisp executado no Windows Carrega-se uma especificação através da seqüência: File  Import (Menu) l O comando reset; (digitado) é usado para poder carregar outra especificação Finalização é feita através de File  Quit (Menu) ou quit; (digitado)

5 Exemplo: A Tabela de Símbolos [VAL,SYM] State st: ST Update  State s?: SYM v?: VAL st’ = st  {s?  v?} Delete  State s?: SYM s?  dom(st) st’={s?} st ST == VAL SYM 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 ^

6 Calculando Pré-condições try  State;In?:T In  pre Schema-Name; (Objetivo) Calculando a pré-condição de Delete: => try \forall State; \pre Delete; => prove by reduce; st \in SYM \pfun VAL \\ \land s? \in SYM \\ \implies s? \in \dom st st  SYM  VAL ^ s?  SYM  s?  dom st +  Exercício: Calcular a pré-condição de Update e de NotPresent

7 Pré-condição de Esquemas Compostos Conjunções:  - and. Por exemplo, considere StUpdate: pre StUpdate  pre Update Disjunções:  - or. Por exemplo, considere StDelete: pre StDelete  pre Delete  pre NotPresent pre StDelete \begin{theorem}{preDelete_Or_preNotPresent} (Resultado de pre Delete ) \lor \\ (Resultado de pre NotPresent ) \end{theorem} Finalmente, try lemma preDelete_Or_preNotPresent; Exercício: Calcular a pré-condição de StLookUp

8 Provando Propriedades l Expressa-se a propriedade desejada através de um teorema; l Usa-se o comando try lemma Teorema; l Usa-se o comando prove by reduce; Exemplo: Provar que o Esquema StLookUp resulta em Ok, quando s?  dom st. \begin{theorem}{LookUpOk} \forall StLookUp | s? \in \dom rep!=Ok \end{theorem} 1. try lemma LookUpOk; 2. prove by reduce;

9 Provando Propriedades l Exercício 1: Provar que a composição seqüencial de Update com Delete não altera o estado do sistema quando s? incluído for o mesmo removido. Exercício 2: Provar que a aplicação de Delete quando s?  dom st resulta em um estado final indefinido.

10 Propriedades Complexas l As vezes o Z-EVES não consegue reduzir um predicado automaticamente, então: –Uso de teoremas do Z-EVES; –Criação de novos teoremas; –Uso de comandos especiais; –etc.

11 Teoremas do Z-EVES l Z-EVES vem com um conjunto de teoremas (arquivo ToolKit.zed); l Usa-se o comando apply teorema; l Em seguida, o comando prove. Exemplo: Pode-se remover o operador de power set de um predicado aplicando o teorema inPower. => apply inPower; => prove;

12 Criação de Teoremas l A introdução de teoremas é importante: –Os teoremas do Z-EVES são insuficientes; –Reduzir o número de passos de uma prova. l Introduz-se um teorema através do ambiente theorem; l Teoremas automáticos são grules(reescrita); \begin{theorem}{grule select_2_1} (x,y).1 = x \end{theorem}

13 Comandos Especiais l O comando split serve para criar um predicado do tipo IF/THEN/ELSE que permite maiores reduções; l O comando cases serve para dividir um prova em mais de uma parte. Usa-se com o comando next que passa para a próxima parte da prova; l O comando instantiate permite informar ao Z-EVES sobre o valor de um objeto; l O manual contém outros comandos.

14 Conclusão l Calcular a pré-condição de StDelete diretamente, ou seja, try pre StDelete; l Miscelânea de comandos: apply inPower, split predicado, etc.


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

Apresentações semelhantes


Anúncios Google