theory README_Comp imports Main
begin
section \<open>UNITY: Examples Involving Program Composition\<close>
text \<open>
The directory presents verification examples involving program composition.
They are mostly taken from the works of Chandy, Charpentier and Chandy.
\<^item> examples of \<^emph>\<open>universal properties\<close>: the counter (\<^file>\<open>Counter.thy\<close>) and
priority system (\<^file>\<open>Priority.thy\<close>)
\<^item> the allocation system (\<^file>\<open>Alloc.thy\<close>)
\<^item> client implementation (\<^file>\<open>Client.thy\<close>)
\<^item> allocator implementation (\<^file>\<open>AllocImpl.thy\<close>)
\<^item> the handshake protocol (\<^file>\<open>Handshake.thy\<close>)
\<^item> the timer array (demonstrates arrays of processes) (\<^file>\<open>TimerArray.thy\<close>)
Safety proofs (invariants) are often proved automatically. Progress proofs
involving ENSURES can sometimes be proved automatically. The level of
automation appears to be about the same as in HOL-UNITY by Flemming Andersen
et al.
\<close>
end