|
There is a well-established theory and practice for creating
correct-by-construction functional programs by extracting them from
constructive proofs of assertions of the form
There have been several efforts to extend this
methodology to concurrent programs, say by using linear logic, but
there is no practice and the results are limited.
In this paper we define a logic of events that justifies the
extraction of correct distributed processes from
constructive proofs that system specifications are achievable, and
we describe an implementation of an extraction process in
the context of constructive type theory. We show that a class of
message automata, similar to IO automata and to active
objects, are realizers for this logic. We provide a relative
consistency result for the logic. We show an example of protocol
derivation in this logic, and show how to embed temporal logics such
as TLA+ in the event logic.
| |