Although in general the translation gives an exponential automaton, the algorithm performs quite well on the temporal formulas typically encountered in verification. It is based on the observation that in many cases the relative order of concurrent actions of a program is unimportant to the checked property. By fixing some arbitrary order, and avoiding all possible orders, a significant gain in memory and time can be achieved in many cases. Sequences that are equivalent up to the order of concurrent actions are grouped together, and the reduction algorithm guarantees to generate a state space which contains at least one sequence per equivalence class. We describe the new version of SPIN which incorporates a partial order reduction technique.
Experimental results show significant reductions.
The partial order reduction affects how a subset of the successors are selected from each state, to guarantee that at least one sequence per equivalence class is generated. Care is taken to minimize the time and space used to calculate these subsets. Thus, achieving the reduction with least overhead. A deterministic component is responsible for the computations. Existing methods are usually based on logical deduction, and we briefly describe the strength and weaknesses of BAN logic which is the method most widely used.