posted on 2023-02-25, 13:51authored byVera Pantelic
A process for rigorous inspection of concurrent systems using tabular specification was developed and applied to the classic Readers/Writers concurrent program by Jin in [15]. The process involved rewriting the program into a table and then performing a manual "column-by-column" inspection for safety and clean completion properties.
The key element in the process is obtaining an invariant strong enough to prove the properties of interest. This thesis presents partial automation of the proposed approach by combining theorem proving and model checking. Model checking is first used to validate a formal model of the system with a small, xed number of concurrent process instances. The verification of the system for an arbitrary number of processes
is then performed using theorem proving together with model checking on the earlier model to quickly validate potential invariants before they are used in the formal proof. This method was used to check the manual proof of the Readers/Writers problem given in [15], discovering several random and one systematic mistake of the proof. Then, a new, significantly automated proof was performed.