Repository logo
Log in(current)
Repository logoMIT Open ScholarshipDSpace@MIT
  1. Home
  2. MIT Open Access Articles
  3. MIT Open Access Articles
  4. Integrated reasoning and proof choice point selection in the jahob system (Mechanisms for program survival)

Integrated reasoning and proof choice point selection in the jahob system (Mechanisms for program survival)

Thumbnail Image
Download
Name

01088361d01.pdf

Size

204.81 KB

Format

Adobe PDF

Checksum (MD5)

50c8f87e12c24d1c62f1ff6e44d31a29

Author(s)
Rinard, Martin C.
Alternative Title
Integrated Reasoning and Proof Choice Point Selection in the Jahob System – Mechanisms for Program Survival
Date Issued
July 2009
Journal
Lecture Notes in Computer Science: Automated Deduction – CADE-22
Publisher
Springer Berlin Heidelberg
Citation
Rinard, Martin. “Integrated Reasoning and Proof Choice Point Selection in the Jahob System – Mechanisms for Program Survival.” Automated Deduction – CADE-22 2009.
Version
Author's final manuscript
Abstract
In recent years researchers have developed a wide range of powerful automated reasoning systems. We have leveraged these systems to build Jahob, a program specification, analysis, and verification system. In contrast to many such systems, which use a monolithic reasoning approach, Jahob provides a general integrated reasoning framework, which enables multiple automated reasoning systems to work together to prove the desired program correctness properties. We have used Jahob to prove the full functional correctness of a collection of linked data structure implementations. The automated reasoning systems are able to automatically perform the vast majority of the reasoning steps required for this verification. But there are some complex verification conditions that they fail to prove. We have therefore developed a proof language, integrated into the underlying imperative Java programming language, that developers can use to control key choice points in the proof search space. Once the developer has resolved these choice points, the automated reasoning systems are able to complete the verification. This approach appropriately leverages both the developer’s insight into the high-level structure of the proof and the ability of the automated reasoning systems to perform the mechanical steps required to prove the verification conditions. Building on Jahob’s success with this challenging program verification problem, we contemplate the possibility of verifying the complete absence of fatal errors in large software systems. We envision combining simple techniques that analyze the vast majority of the program with heavyweight techniques that analyze those more sophisticated parts of the program that may require arbitrarily sophisticated reasoning. Modularity mechanisms such as abstract data types enable the sound division of the program for this purpose. The goal is not a completely correct program, but a program that can survive any remaining errors to continue to provide acceptable service.
MIT Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
Attribution-Noncommercial-Share Alike 3.0 Unported
http://creativecommons.org/licenses/by-nc-sa/3.0/
Persistent DSpace Link
http://hdl.handle.net/1721.1/51699
DOI of Published Version
http://dx.doi.org/10.1007/978-3-642-02959-2_1
Repository logo
PrivacyPermissionsAccessibilityContact us
Repository logo
Notify us about copyright concerns.