%T Adding Formal Verification to occam\-π
%A Peter H. Welch, Jan Bækgaard Pedersen, Frederick R. M. Barnes, Carl G. Ritson, Neil C.C. Brown
%E Peter H. Welch, Adam T. Sampson, Jan Bækgaard Pedersen, Jon Kerridge, Jan F. Broenink, Frederick R. M. Barnes
%B Communicating Process Architectures 2011
%X This is a proposal for the formal verification of
occam\-π
programs to be managed entirely within
occam\-π.
The language is extended with qualifiers on
types and processes
(to indicate relevance for verification
and/or execution) and assertions
about refinement (including
deadlock, livelock and determinism).
The compiler abstracts
a set of CSPm equations and assertions,
delegates their
analysis to the FDR2 model checker and reports back
in terms
related to the occam\-π source.
The rules for mapping the
extended occam\-π to CSPm are given.
The full range of
CSPm assertions is accessible, with no knowledge of
CSP
formalism required by the occam\-π programmer. Programs
are proved
just by writing and compiling
programs.
A case\-study analysing a new (and elegant)
solution to the Dining
Philosophers problem is
presented.
Deadlock\-freedom for colleges with any
number of philosphers
is established by verifying an
induction argument (the base and
induction steps).
Finally,
following guidelines laid down by Roscoe, the careful use
of
model compression is demonstrated to verify
directly the deadlock\-freedom
of an occam\-π college
with 10^2000 philosphers (in around 30 seconds).
All we need
is a universe large enough to contain the computer
on which
to run it.