May 11, 2009 1 ACL2 Panel: What is the Future of Theorem Proving? Arvind Computer Science & Artificial Intelligence Laboratory.

Slides:



Advertisements
Similar presentations
The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.
Advertisements

Omnibus: A clean language and supporting tool for integrating different assertion-based verification techniques Thomas Wilson, Savi Maharaj, Robert G.
Addressing the Challenges of Current Software. Questions to Address Why? What? Where? How?
Transaction Based Modeling and Verification of Hardware Protocols Xiaofang Chen, Steven M. German and Ganesh Gopalakrishnan Supported in part by Intel.
What are Formal Verification Methods Mathematically based languages, techniques and tools for specifying and verifying systems Language – Clear unambiguous.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
LIFE CYCLE MODELS FORMAL TRANSFORMATION
The ideal of program correctness Tony Hoare BudapestSeptember 2006.
6/14/991 Symbolic verification of systems with state machines David L. Dill Jeffrey Su Jens Skakkebaek Computer System Laboratory Stanford University.
ISBN Chapter 3 Describing Syntax and Semantics.
1 Semantic Description of Programming languages. 2 Static versus Dynamic Semantics n Static Semantics represents legal forms of programs that cannot be.
CS 355 – Programming Languages
Software Reliability CIS 640 Adapted from the lecture notes by Doron Pelel (
1 Formal Methods in SE Qaisar Javaid Assistant Professor Lecture 05.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
Assurance through Enhanced Design Methodology Orlando, FL 5 December 2012 Nirav Davé SRI International This effort is sponsored by the Defense Advanced.
SD3049 Formal Methods Module Leader Dr Aaron Kans Module website
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
Secure Operating Systems Lesson 0x11h: Systems Assurance.
May 27, 2008 L1-1 Why formal verification remains on the fringes of commercial development Arvind Computer Science & Artificial.
Presenter : Yeh Chi-Tsai System-on-chip validation using UML and CWL Qiang Zhu 1, Ryosuke Oish 1, Takashi Hasegawa 2, Tsuneo Nakata 1 1 Fujitsu Laboratories.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Lecture 36: Programming Languages & Memory Management Announcements & Review Read Ch GU1 & GU2 Cohoon & Davidson Ch 14 Reges & Stepp Lab 10 set game due.
Software Reliability Methods Sorin Lerner. Software reliability methods: issues What are the issues?
Validating High-Level Synthesis Sudipta Kundu, Sorin Lerner, Rajesh Gupta Department of Computer Science and Engineering, University of California, San.
From last time S1: l := new Cons p := l S2: t := new Cons *p := t p := t l p S1 l p tS2 l p S1 t S2 l t S1 p S2 l t S1 p S2 l t S1 p L2 l t S1 p S2 l t.
1 CMSC 132: Object-Oriented Programming II Software Development III Department of Computer Science University of Maryland, College Park.
Describing Syntax and Semantics
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
1 Scenario-based Analysis of UML Design Class Models Lijun Yu October 4th, 2010 Oslo, Norway.
Formal verification Marco A. Peña Universitat Politècnica de Catalunya.
By D. Beyer et. al. Simon Fraser University (Spring 09) Presentation By: Pashootan Vaezipoor.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
1 New Development Techniques: New Challenges for Verification and Validation Mats Heimdahl Critical Systems Research Group Department of Computer Science.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
B. Fernández, D. Darvas, E. Blanco Formal methods appliedto PLC code verification Automation seminar CERN – IFAC (CEA) 02/06/2014.
Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
Formal Verification Lecture 9. Formal Verification Formal verification relies on Descriptions of the properties or requirements Descriptions of systems.
A Static Approach to Consistency Verification of UML Models Andrea Baruzzo Department of Computer Science University of Udine MoDeV.
Quality Driven SystemC Design By Nasir Mahmood. Hybrid Approach The idea here is to combine the strengths of simulation – namely the ability to handle.
A Mechanized Model for CAN Protocols Context and objectives Our mechanized model Results Conclusions and Future Works Francesco Bongiovanni and Ludovic.
Page 1 Advanced Technology Center HCSS 03 – April 2003 vFaat: von Neumann Formal Analysis and Annotation Tool David Greve Dr. Matthew Wilding Rockwell.
Writing Systems Software in a Functional Language An Experience Report Iavor Diatchki, Thomas Hallgren, Mark Jones, Rebekah Leslie, Andrew Tolmach.
March, 2007Intro-1http://csg.csail.mit.edu/arvind Design methods to facilitate rapid growth of SoCs Arvind Computer Science & Artificial Intelligence Lab.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
ISBN Chapter 3 Describing Semantics.
© Andrew IrelandDependable Systems Group Proof Automation for the SPARK Approach to High Integrity Ada Andrew Ireland Computing & Electrical Engineering.
Tool Support for proof Engineering Anne Mulhern Computer Sciences Department University of Wisconsin-Madison Madison, WI USA
Open Incremental Model Checking (OIMC) and the Role of Contracts Model-Based Programming and Verification.
RESOLVE VERIFICATION: A New Perspective Joan Krone William F. Ogden.
Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
ARO Workshop Wendy Roll - May 2004 Topic 4: Effects of software certification on the current balance between software/system modeling, analysis and testing.
Static Techniques for V&V. Hierarchy of V&V techniques Static Analysis V&V Dynamic Techniques Model Checking Simulation Symbolic Execution Testing Informal.
Automated Formal Verification of PLC (Programmable Logic Controller) Programs
Agenda  Quick Review  Finish Introduction  Java Threads.
Writing, Verifying and Exploiting Formal Specifications for Hardware Designs Chapter 3: Verifying a Specification Presenter: Scott Crosby.
Formal Methods. What Are Formal Methods Formal methods refers to a variety of mathematical modeling techniques that are applicable to computer system.
D10A Metode Penelitian MP-04b Metodologi Penelitian di dalam Ilmu Komputer/Informatika Program Studi S-1 Teknik Informatika FMIPA Universitas.
Problem: design complexity advances in a pace that far exceeds the pace in which verification technology advances. More accurately: (verification complexity)
Cache Coherence Constructive Computer Architecture Arvind
Types for Programs and Proofs
Creating high confidence, highly dependable, critical software
Verification and Validation Overview
IS 2935: Developing Secure Systems
Creating high confidence, highly dependable, critical software
Creating high confidence, highly dependable, critical software
Presentation transcript:

May 11, ACL2 Panel: What is the Future of Theorem Proving? Arvind Computer Science & Artificial Intelligence Laboratory Massachusetts Institute of Technology Eighth International Workshop On The ACL2 Theorem Prover and Its Applications, Boston, MA, USA May 11-12, 2009

May 11, http://csg.csail.mit.edu/arvind What is the Future of Theorem Proving? ATP will continue to exist Has already proved its utility ATP in its present form is unlikely to be used widely Very few systems requires the level of correctness guaranteed by ATP ATP is currently unsuitable for evolving designs (all useful designs)

May 11, http://csg.csail.mit.edu/arvind Widespread Use of ATP Technology Integrate it into design flow (not post-facto) ATP as debugging aid Use in the development of rock-solid components which can be used without concern for correctness reduces space of possible design bugs Use ATP with synthesis methodologies correct by construction High-Level Synthesis

May 11, http://csg.csail.mit.edu/arvind Cost Matters The goal is to design systems that meet cost, performance, power, correctness, compatibility, robustness, etc. Design time  $$$ Designers will use any technique that increases their confidence in the system provided it: gives useful feedback quickly is better than manual debugging doesn’t require learning a “foreign language” is not elitist (No PhD requirement)

May 11, http://csg.csail.mit.edu/arvind Some “Do”s and “Don’t”s Most successful formal techniques (e.g. types) help the designer, not just the verifier Separation of design and verification languages is a non-starter what are you verifying? manual abstraction, changing specs, … Writing specs is a good idea, but it rarely happens error prone time consuming incomplete incomprehensible changing requirements

May 11, http://csg.csail.mit.edu/arvind What is needed High-level notation with precise semantics capable of expressing nondeterminism and parallelism amenable to synthesis of actual implementation Powerful tools for proving properties of such designs Automatic extraction of abstract models from designs expressed in Verilog or C or SystemC is a lost cause Thanks!

May 11, http://csg.csail.mit.edu/arvind

May 11, http://csg.csail.mit.edu/arvind A personal anecdote My student Xiaowei Shen designed an adaptive protocol called Caché Very difficult for me to understand and be sure of its correctness We used TRS to give a precise definition and TLAs to prove its correctness This was not enough …

May 11, http://csg.csail.mit.edu/arvind Realization The proof was so long that we could have made a mistake easily Nobody else was going to read the proof – “it is not interesting” Even though the protocol correctness is of extreme importance the burden of its correctness is solely on its designers. Different from a math theorem Mechanical theorem proving

May 11, http://csg.csail.mit.edu/arvind It took Joe Stoy more than 6 months to learn PVS and show that some of the proofs in Xiaowei Shen’s thesis were correct This technology is not ready for design engineers

May 11, http://csg.csail.mit.edu/arvind Model Checking CC is one of the most popular applications of model checking The abstract protocol needs to be abstracted more to avoid state explosion For example, only 3 CPUs, 2 addresses There is a separate burden of proof why the abstraction is correct Nevertheless model checking is a very useful debugging aid for the verification of abstract CC protocols

May 11, http://csg.csail.mit.edu/arvind Implementation Design is expressed in some notation which is NOT used directly to generate an implementation The problem of verification of the actual protocol remains formidable Testing cannot uncover all bugs because of the huge non-deterministic space Proving the correctness of cache coherence protocol implementations remains a challenging problem