“…Software verification provides the highest degree of software assurance, with its strengths residing in the mathematical concepts that can be leveraged to prove correctness with respect to specific properties. Most notably, bounded verification techniques, such as Alloy [28], have recently received a great deal of attention in the software engineering community (e.g., [8,9,11,13,14,16,20,26,34,35,38,43,46,48,52,54,55,61,63,66]), due to the strength of their automated, yet formally precise, analysis capabilities. The basic idea behind these techniques is to construct a formula that encodes the behavior of a system and examine it up to a user-specified bound.…”