search menu icon-carat-right cmu-wordmark

SAT-Based Software Certification

Technical Note
This 2006 report presents a technique that uses proofs to certify software.
Publisher

Software Engineering Institute

CMU/SEI Report Number
CMU/SEI-2006-TN-004
DOI (Digital Object Identifier)
10.1184/R1/6583580.v1

Abstract

This report formalizes a notion of witnesses as the basis of certifying the correctness of software. The first part of the report is concerned with witnesses for the satisfaction of linear temporal logic specifications by infinite state programs and shows how such witnesses may be constructed via predicate abstraction and validated by generating and proving verification conditions. In addition, the first part of this report proposes the use of theorem provers based on Boolean propositional satisfiability (SAT) and resolution proofs in validating these verification conditions. In addition to yielding extremely compact proofs, a SAT-based approach overcomes several limitations of conventional theorem provers when applied to the verification of programs written in real-life programming languages. 

The second part of this report formalizes a notion of witnesses of simulation conformance between infinite state programs and finite state machine specifications. The report also proves that computing a minimal simulation relation between two finite state machines is an NP-hard problem. Finally, the report presents algorithms to construct simulation witnesses of minimal size by solving pseudo-Boolean constraints. The author's experiments on several nontrivial benchmarks suggest that a SAT-based approach can yield extremely compact proofs.

Cite This Technical Note

Chaki, S. (2006, February 1). SAT-Based Software Certification. (Technical Note CMU/SEI-2006-TN-004). Retrieved April 20, 2024, from https://doi.org/10.1184/R1/6583580.v1.

@techreport{chaki_2006,
author={Chaki, Sagar},
title={SAT-Based Software Certification},
month={Feb},
year={2006},
number={CMU/SEI-2006-TN-004},
howpublished={Carnegie Mellon University, Software Engineering Institute's Digital Library},
url={https://doi.org/10.1184/R1/6583580.v1},
note={Accessed: 2024-Apr-20}
}

Chaki, Sagar. "SAT-Based Software Certification." (CMU/SEI-2006-TN-004). Carnegie Mellon University, Software Engineering Institute's Digital Library. Software Engineering Institute, February 1, 2006. https://doi.org/10.1184/R1/6583580.v1.

S. Chaki, "SAT-Based Software Certification," Carnegie Mellon University, Software Engineering Institute's Digital Library. Software Engineering Institute, Technical Note CMU/SEI-2006-TN-004, 1-Feb-2006 [Online]. Available: https://doi.org/10.1184/R1/6583580.v1. [Accessed: 20-Apr-2024].

Chaki, Sagar. "SAT-Based Software Certification." (Technical Note CMU/SEI-2006-TN-004). Carnegie Mellon University, Software Engineering Institute's Digital Library, Software Engineering Institute, 1 Feb. 2006. https://doi.org/10.1184/R1/6583580.v1. Accessed 20 Apr. 2024.

Chaki, Sagar. SAT-Based Software Certification. CMU/SEI-2006-TN-004. Software Engineering Institute. 2006. https://doi.org/10.1184/R1/6583580.v1