Formal Methods: Z - PowerPoint PPT Presentation

1 / 35
About This Presentation
Title:

Formal Methods: Z

Description:

32. Block-Structured Symbol Tables. BST seq ST / : seq ST ST ... BST. bst bst' = front( bst ) 34. Z Method. Introduce basic sets ... – PowerPoint PPT presentation

Number of Views:235
Avg rating:3.0/5.0
Slides: 36
Provided by: MarkA114
Category:
Tags: bst | formal | methods

less

Transcript and Presenter's Notes

Title: Formal Methods: Z


1
Formal Methods Z
  • CS 415, Software Engineering II
  • Mark Ardis, Rose-Hulman Institute
  • March 18, 2003

2
Outline
  • Types of Formal Methods
  • Introduction to Z
  • Examples

3
Formal Methods
  • Specification and verification methods
  • Have formal (mathematical) semantics
  • unambiguous
  • facilitate proofs of correctness
  • In use since late 1970s
  • more popular in Europe than US
  • still only a niche market

4
Types of Formal Methods
  • Model-theoretic
  • VDM, Z
  • Algebraic
  • ACT One, Larch , OBJ
  • Concurrent processes
  • CCS, CSP, Petri Nets
  • Finite State Machines
  • Esterel, Statecharts
  • Hybrid
  • LOTOS, SDL

5
Model-theoretic Methods
  • Vienna Development Method (VDM)
  • invented at IBM Vienna lab in late 1970s
  • used for compilers (Denmark, Germany) and for
    information processing (England)
  • Z
  • Invented by Jean-Raymond Abrial (France)
  • Developed by Programming Research Group (PRG) at
    Oxford
  • Used at IBM Hursley in mid 1980s

6
Foundations of Z
  • Model theoretic method
  • abstract model is constructed
  • properties of the model are proven
  • Set theory (and other discrete math)
  • First order predicate calculus
  • Schema calculus provides incrementality

7
Predicate Logic
  • Variables ranging over arbitrary sets
  • Predicates assertions about variables
  • Operators
  • conjunction A ? B
  • disjunction A ? B
  • negation ? A
  • implication A ? B
  • Quantifiers
  • universal ? x T ? R(x)
  • existential ? x T ? R(x)

8
Set Theory
  • Membership x ? S, x ? T
  • Union S ? T
  • Intersection S ? T

9
Functions and Relations
  • element mapping x y
  • domain, range dom(R), ran(R)
  • overriding R ? S
  • partial function x y

10
Sequences
  • definition ltgt, lta, bgt
  • concatenation lta, bgt ? ltx, ygt
  • length S
  • functions
  • head(S) first element
  • tail(S) all but the first element
  • last(S) last element
  • front(S) all but the last element

11
Schema Operators
  • conjunction S ? T
  • disjunction S ? T
  • hiding S \ (v1, , vn)
  • hiding S \ T
  • overriding S ? T

12
Names
  • Variables
  • input name?
  • output name!
  • postcondition name'
  • Schema
  • changes state ?Name
  • constant state ?Name

13
Schemas
  • Name
  • declarations
  • predicates

14
Birthday Book Spivey 92
  • Example of use of schemas
  • Describes a calendar with birthdates

15
  • BirthdayBook
  • known P NAME
  • birthday NAME DATE
  • known dom birthday

16
Examples
  • known Mark, Cheryl, Eric, Paul
  • birthday Mark April 7,
  • Cheryl July 9,
  • Eric July 14,
  • Paul April 30

17
  • AddBirthday
  • ? BirthdayBook
  • name? NAME
  • date? DATE
  • name? ? known
  • birthday' birthday ?
  • name? date?

18
  • FindBirthday
  • ? BirthdayBook
  • name? NAME
  • date! DATE
  • name? ? known
  • date! birthday(name?)

19
  • Remind
  • ? BirthdayBook
  • today? DATE
  • cards! P NAME
  • cards! n known
  • birthday(n) today?

20
Initialization
  • InitBirthday
  • BirthdayBook
  • known Ø

21
Deriving Properties
  • known' dom birthday'
  • dom ( birthday ?
  • name? date? )
  • dom birthday ? dom
  • name? date?
  • dom birthday ? name?
  • known ? name?

22
Cartoon of the Day
23
Cartoon of the Day (cont.)
24
Symbol Table Hayes 87
  • Describes a relation between symbols and values
  • Illustrates use of schema operators

25
Initial Definitions
  • ST ? SYM VAL
  • st ? ST
  • st0 ? Ø

26
  • Retrieve
  • ? ST
  • s? SYM
  • v! VAL
  • s? ? dom(st)
  • v! st(s?)

27
  • Declare
  • ? ST
  • s? SYM
  • v? VAL
  • st' st ? s? v?

28
  • NotPresent
  • ? ST
  • s? SYM
  • rep! REPORT
  • s? ? dom(st)
  • rep! "Symbol not present"

29
  • Success
  • rep! REPORT
  • rep! "OK"

30
Combining Schemas
  • STRetrieve ? ( Retrieve ? Success) ?
    NotPresent
  • STDeclare ? Declare ? Success

31
Overriding Definitions
  • Introduce a new symbol table for each level of
    scope
  • Need to override the previous definitions of
    symbols
  • s v ? s w
  • Need to introduce a distributed override operator
    for sequences of symbol tables

32
Block-Structured Symbol Tables
  • BST ? seq ST
  • ?/ seq ST ? ST
  • ?/ ltgt Ø
  • ?/ ( s ? lt t gt ) (?/ s ) ? t
  • bst0 ? lt gt

33
  • BStart0
  • ? BST
  • bst' bst ? lt st0 gt

BEnd0 ? BST bst ? lt gt bst' front( bst )
34
Z Method
  • Introduce basic sets
  • Define an abstract state in terms of sets,
    functions, relations, sequences, etc.
  • Specify the initial state
  • Define pre- and post-conditions of operations
  • State and prove theorems

35
References
  • Ian Hayes (editor), Specification Case Studies,
    Prentice-Hall International, 1987, ISBN
    0-13-826579-8.
  • J.M. Spivey, The Z Notation A Reference Manual,
    Prentice-Hall International, 1992, ISBN
    0-13-978529-9.
Write a Comment
User Comments (0)
About PowerShow.com