Theory Conclusion
chapter‹Conclusion›
theory Conclusion
imports DiningPhilosophers
begin
text‹ We presented an analysis of the connection of the refinement notions for CSP, a 'classical'
language for the specification and analysis of concurrent systems studied in a rich body of
literature. A modern formalisation of CSP, called HOL-CSP2.0 or just HOL-CSP and
available in the Isabelle AFP @{cite "HOL-CSP-AFP"}, is the basis of this
work. In particular, we introduced the theory of the ‹Trace-Divergence-Refinement› \<^term>‹P ⊑⇩D⇩T Q›,
which is an alternative to the standard refinements known from the literature.
[❙‹NOTE: This part of the theory development has meanwhile been integrated in HOL-CSP2.0.›]
We developed a novel set of deadlock - and livelock inference proof principles based on
classical and denotational characterizations. In particular, we formally investigated the relations
between different refinement notions in the presence of deadlock - and livelock; an area where
traditional CSP literature skates over the nitty-gritty details. Finally, we demonstrated how to
exploit these results for deadlock/livelock analysis of protocols.
We put a large body of abstract CSP laws and induction principles together to form
concrete verification technologies for generalized classical problems, which have been considered
so far from the perspective of data-independence or structural parametricity. The underlying novel
principle of ``trading rich structure against rich state'' allows one to convert processes
into classical transition systems for which established invariant techniques become applicable.
We present a first example using these proof methods, notably for Dijkstra's Dining Philosophers;
we show that our techniques allow for proving that this cyclic proof architecture is deadlock free
for an arbitrary number of philosopher processes.
Future applications of HOL-CSP 2 could comprise a combination with model checkers, where our theory
with its derived rules can be used to certify the output of a model-checker over CSP. In our experience,
labelled transition systems generated by model checkers may be used to steer inductions or to construct
the normalized processes ‹P⇩n⇩o⇩r⇩m⟦τ⇩,υ⟧› automatically, thus combining efficient finite reasoning
over finite sub-systems with globally infinite systems in a logically safe way.
›
end