On Quantitative Software Verification

Software verification has made great progress in recent years, resulting in several tools capable of working directly from source code, for example, SLAM and Astree. Typical properties that can be verified are expressed as Boolean assertions or temporal logic properties, and include whether the program eventually terminates, or the executions never violate a safety property. The underlying techniques crucially rely on the ability to extract from programs, using compiler tools and predicate abstraction, finite-state abstract models, which are then iteratively refined to either demonstrate the violation of a safety property (e.g. a buffer overflow) or guarantee the absence of such faults. An established method to achieve this automatically executes an abstraction-refinement loop guided by counterexample traces [1].

[1]  Lijun Zhang,et al.  Probabilistic CEGAR , 2008, CAV.

[2]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[3]  Marta Z. Kwiatkowska,et al.  Abstraction Refinement for Probabilistic Software , 2008, VMCAI.

[4]  Marta Z. Kwiatkowska,et al.  Game-based Abstraction for Markov Decision Processes , 2006, Third International Conference on the Quantitative Evaluation of Systems - (QEST'06).

[5]  Marta Z. Kwiatkowska Quantitative verification: models techniques and tools , 2007, ESEC-FSE '07.