Formal Methods: Z
CS 415, Software Engineering II
Mark Ardis, Rose-Hulman Institute
March 18, 2003
Outline
Types of Formal Methods
Introduction to Z
Examples
2
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
3
Types of Formal Methods
Model-theoretic
VDM,
Algebraic
ACT
One, Larch , OBJ
Concurrent processes
CCS,
Z
CSP, Petri Nets
Finite State Machines
Esterel,
Statecharts
Hybrid
LOTOS,
SDL
4
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
5
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
6
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…)
7
Set Theory
Membership: x S, x T
Union: S T
Intersection: S T
8
Functions and Relations
element mapping: x
y
domain, range: dom(R), ran(R)
overriding: R S
partial function: x
y
9
Sequences
definition: <>, <a, b>
concatenation: <a, b> <x, y>
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
10
Schema Operators
conjunction: S T
disjunction: S T
hiding: S \ (v1, …, vn)
hiding: S \ T
overriding: S T
11
Names
Variables
input:
name?
output: name!
postcondition: name'
Schema
state: Name
constant state: Name
changes
12
Schemas
Name
declarations
predicates
13
Birthday Book [Spivey 92]
Example of use of schemas
Describes a calendar with birthdates
14
BirthdayBook
known: P NAME
birthday: NAME
DATE
known = dom birthday
15
Examples
known = { Mark, Cheryl, Eric, Paul }
birthday = {
Mark
Cheryl
Eric
Paul
April 7,
July 9,
July 14,
April 30
}
16
AddBirthday
BirthdayBook
name? : NAME
date? : DATE
name? known
birthday' = birthday
{name?
date?}
17
FindBirthday
BirthdayBook
name? : NAME
date! : DATE
name? known
date! = birthday(name?)
18
Remind
BirthdayBook
today? : DATE
cards! : P NAME
cards! = { n: known |
birthday(n) = today? }
19
Initialization
InitBirthday
BirthdayBook
known = Ø
20
Deriving Properties
known' = dom birthday'
= dom ( birthday
{name?
date?} )
= dom birthday dom
{name?
date?}
= dom birthday { name? }
= known { name? }
21
Cartoon of the Day
22
Cartoon of the Day (cont.)
23
Symbol Table [Hayes 87]
Describes a relation between symbols and
values
Illustrates use of schema operators
24
Initial Definitions
ST SYM
st ST
st0 Ø
VAL
25
Retrieve
ST
s? : SYM
v! : VAL
s? dom(st)
v! = st(s?)
26
Declare
ST
s? : SYM
v? : VAL
st' = st { s?
v? }
27
NotPresent
ST
s? : SYM
rep! : REPORT
s? dom(st)
rep! = "Symbol not present"
28
Success
rep! : REPORT
rep! = "OK"
29
Combining Schemas
STRetrieve ( Retrieve Success)
NotPresent
STDeclare Declare Success
30
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
31
Block-Structured Symbol Tables
BST seq ST
/ : seq ST ST
/ <> = Ø
/ ( s < t > ) = (/ s ) t
bst0 < >
32
BStart0
BST
bst' = bst < st0 >
BEnd0
BST
bst < >
bst' = front( bst )
33
Z Method
1.
2.
3.
4.
5.
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
34
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.
35
© Copyright 2026 Paperzz