SLIDE 1
A Case Study in Automated A Case Study in Automated Verification Verification
Jason Jason Kirschenbaum Kirschenbaum, , Heather Heather Harton Harton and and Murali Murali Sitaraman Sitaraman
SLIDE 2 Introduction Introduction
Goal is to investigate automatic verification Goal is to investigate automatic verification
- f extensions to software components
- f 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
SLIDE 3
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
SLIDE 4
Resolve Language Resolve Language
Design by Contract Design by Contract Model Based Model Based Specifications Specifications Modular Reasoning Modular Reasoning Layered Layered Implementations Implementations Parameterized Code Parameterized Code Value Semantics Value Semantics Alias Avoidance Alias Avoidance Total Correctness Total Correctness Code Annotation Code Annotation Constructs Constructs
SLIDE 5
Vision of Development Process Vision of Development Process
SLIDE 6 Isabelle Isabelle
Higher Order Higher Order Large Library of Verified Theories Large Library of Verified Theories Both Automated and User Both Automated and User-
guided proof methods methods
SLIDE 7
Selection Sort Specification Selection Sort Specification
SLIDE 8
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
SLIDE 9
Challenge 1: Human Errors Challenge 1: Human Errors
SLIDE 10
Corrected Implementation Corrected Implementation
SLIDE 11
Challenge 2: Automation Challenge 2: Automation
Verification Condition Proofs Issues Verification Condition Proofs Issues
– – Permutation Development Permutation Development – – Length of Proof Length of Proof
SLIDE 12
First Type of Problem VC First Type of Problem VC
SLIDE 13
Second Type of Problem VC Second Type of Problem VC
SLIDE 14
Proposed Theory Development Proposed Theory Development
SLIDE 15
Updated Implementation Updated Implementation
SLIDE 16
Questions? Questions?