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 . The process involved describing the program by a table and then performing a manual “column-by-column” inspection for safety and clean completion properties. The key step in the process is obtaining an invariant strong enough to prove the properties of interest. This paper presents partial automation of this approach. Model checking is first used to validate a formal model of the system with a small, fixed number of concurrent process instances. The verification of the system for an arbitrary number of processes is then performed using automated theorem proving together with model checking on the earlier model to 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 , discovering several random and one systematic mistake of the proof. Subsequently, a new, significantly automated proof was performed. Keywords—Concurrency, SAL, PVS, invariant, tables.
Download Full PDF Version (Non-Commercial Use)