A Case Study in Automated A Case Study in Automated Verification Verification Jason Kirschenbaum Kirschenbaum, , Jason Heather Harton Harton and and Murali Murali Heather Sitaraman Sitaraman
Introduction Introduction Goal is to investigate automatic verification Goal is to investigate automatic verification of extensions to software components of extensions to software components – Including the development process Including the development process – Selection Sort Example Selection Sort Example – Simple Simple – – Theory Development Theory Development – – Specifications Specifications –
Focus of this Work Focus of this Work Full Behavioral Verification Full Behavioral Verification Language with Clean Semantics Language with Clean Semantics Modular Verification Modular Verification Generic Specification and Implementation Generic Specification and Implementation
Resolve Language Resolve Language Design by Contract Parameterized Code Design by Contract Parameterized Code Model Based Value Semantics Model Based Value Semantics Specifications Specifications Alias Avoidance Alias Avoidance Modular Reasoning Modular Reasoning Total Correctness Total Correctness Layered Layered Code Annotation Code Annotation Implementations Implementations Constructs Constructs
Vision of Development Process Vision of Development Process
Isabelle Isabelle Higher Order Higher Order Large Library of Verified Theories Large Library of Verified Theories Both Automated and User- -guided proof guided proof Both Automated and User methods methods
Selection Sort Specification Selection Sort Specification
Challenges Challenges Human Errors Human Errors – Specification bugs Specification bugs – Tool Weaknesses Tool Weaknesses – Lemmas involving permutation Lemmas involving permutation – – Proof is too long for Isabelle to find Proof is too long for Isabelle to find –
Challenge 1: Human Errors Challenge 1: Human Errors
Corrected Implementation Corrected Implementation
Challenge 2: Automation Challenge 2: Automation Verification Condition Proofs Issues Verification Condition Proofs Issues – Permutation Development Permutation Development – – Length of Proof Length of Proof –
First Type of Problem VC First Type of Problem VC
Second Type of Problem VC Second Type of Problem VC
Proposed Theory Development Proposed Theory Development
Updated Implementation Updated Implementation
Questions? Questions?
Recommend
More recommend