Formal Methods: Model Checkers and Theorem Provers

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Functional Decompositions for Hardware Verification With a few speculations on formal methods for embedded systems Ken McMillan.
Copyright 2000 Cadence Design Systems. Permission is granted to reproduce without modification. Introduction An overview of formal methods for hardware.
Copyright 2000 Cadence Design Systems. Permission is granted to reproduce without modification. Conclusion Summary Research trends Resources.
Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
Automatic Verification Book: Chapter 6. How can we check the model? The model is a graph. The specification should refer the the graph representation.
A Survey of Runtime Verification Jonathan Amir 2004.
CS 267: Automated Verification Lecture 8: Automata Theoretic Model Checking Instructor: Tevfik Bultan.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
1 Model checking. 2 And now... the system How do we model a reactive system with an automaton ? It is convenient to model systems with Transition systems.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
Formal Semantics of Programming Languages 虞慧群 Topic 5: Axiomatic Semantics.
What are Formal Verification Methods Mathematically based languages, techniques and tools for specifying and verifying systems Language – Clear unambiguous.
Model Checking : Making Automatic Formal Verification Scale Shaz Qadeer EECS Department University of California at Berkeley.
Efficient Reachability Analysis for Verification of Asynchronous Systems Nishant Sinha.
Verification of Hybrid Systems An Assessment of Current Techniques Holly Bowen.
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 Soundness Proofs for Dataflow Analyses and Transformations via Local Rules Sorin Lerner* Todd Millstein** Erika Rice* Craig Chambers* * University.
An Integration of Program Analysis and Automated Theorem Proving Bill J. Ellis & Andrew Ireland School of Mathematical & Computer Sciences Heriot-Watt.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
CSEP590 – Model Checking and Software Verification University of Washington Department of Computer Science and Engineering Summer 2003.
Proof-system search ( ` ) Interpretation search ( ² ) Main search strategy DPLL Backtracking Incremental SAT Natural deduction Sequents Resolution Main.
Transaction Ordering Verification using Trace Inclusion Refinement Mike Jones 11 January 2000.
Embedded Systems Laboratory Department of Computer and Information Science Linköping University Sweden Formal Verification and Model Checking Traian Pop.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Formal verification Marco A. Peña Universitat Politècnica de Catalunya.
272: Software Engineering Fall 2012 Instructor: Tevfik Bultan Lecture 4: SMT-based Bounded Model Checking of Concurrent Software.
MCAI 2.0 Model Checking in Ten Minutes Edmund Clarke School of Computer Science Carnegie Mellon University.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
An Introduction to Formal Methods
Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Chair of Software Engineering Static program checking and verification Slides: Based.
1 Inference Rules and Proofs (Z); Program Specification and Verification Inference Rules and Proofs (Z); Program Specification and Verification.
B. Fernández, D. Darvas, E. Blanco Formal methods appliedto PLC code verification Automation seminar CERN – IFAC (CEA) 02/06/2014.
CS6133 Software Specification and Verification
Formal Verification Lecture 9. Formal Verification Formal verification relies on Descriptions of the properties or requirements Descriptions of systems.
Lecture Introduction to Proofs 1.7 Proof Methods and Strategy.
An Axiomatic Basis for Computer Programming Robert Stewart.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 05/06 Universität Dortmund Validation - Formal verification -
Model Checking Overview Edmund M. Clarke, Jr. School of Computer Science Carnegie Mellon University Pittsburgh, PA
Verification & Validation By: Amir Masoud Gharehbaghi
SAFE KERNEL EXTENSIONS WITHOUT RUN-TIME CHECKING George C. Necula Peter Lee Carnegie Mellon U.
Static Techniques for V&V. Hierarchy of V&V techniques Static Analysis V&V Dynamic Techniques Model Checking Simulation Symbolic Execution Testing Informal.
ECE/CS 584: Verification of Embedded Computing Systems Model Checking Timed Automata Sayan Mitra Lecture 09.
Requirements Engineering Methods for Requirements Engineering Lecture-31.
Automated Formal Verification of PLC (Programmable Logic Controller) Programs
CS357 Lecture 13: Symbolic model checking without BDDs Alex Aiken David Dill 1.
From Natural Language to LTL: Difficulties Capturing Natural Language Specification in Formal Languages for Automatic Analysis Elsa L Gunter NJIT.
Frederico Araujo CS6362 – Fall 2010 Automated Theorem Proving.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Formal Verification – Robust and Efficient Code Lecture 1
Survey on the Formal Verification Dept. of Nuclear and Quantum Engineering NICIEL Myung Jun Song.
Complexity 27-1 Complexity Andrei Bulatov Interactive Proofs (continued)
Sub-fields of computer science. Sub-fields of computer science.
Presentation Title 2/4/2018 Software Verification using Predicate Abstraction and Iterative Refinement: Part Bug Catching: Automated Program Verification.
Basic concepts of Model Checking
Creating high confidence, highly dependable, critical software
Automatic Verification
Formal Verification/Methods
Advantages of Formal Methods
IS 2935: Developing Secure Systems
Automatic Verification of Industrial Designs
Creating high confidence, highly dependable, critical software
Creating high confidence, highly dependable, critical software
Software Verification and Validation
Software Verification and Validation
Project Management: Inspections and Reviews Formal Specifications
Introduction to Proofs Proof Methods and Strategy
Software Verification and Validation
Presentation transcript:

Formal Methods: Model Checkers and Theorem Provers Emerson Murphy-Hill (Slides from Travis Breaux)

Verification The process of verification involves identifying inconsistencies and ambiguities in a system, which are otherwise likely to go undetected. Some of the formal verification techniques include: Model checking and Theorem proving [3] Edmund M. Clarke, Jeannette M. Wing: Formal Methods: State of the Art and Future Directions. 626-643  2

Model Checking Model checking involves building a finite model of the system to verify its properties. Involves an exhaustive state-space search. Primarily used in hardware and protocol verification. What are the different approaches to model checking? Temporal model checking : specifications are represented as temporal logic expressions and systems modeled as finite state machines and the two are compared to ensure that the finite state machine correctly models the specifications. Second approach: Both specifications and the system are represented by an automaton and compared to identify conformance. [3] Edmund M. Clarke, Jeannette M. Wing: Formal Methods: State of the Art and Future Directions. 626-643  3

State space explosion problem The number of states in a system grows exponentially with an increase in the number of variables in a program. For instance, consider a program with 5 boolean variables and 6 integers. The number of states that would need to be checked = 2 ^ 5 * 10 ^ 6 = 32000000 states. Since every value that the variable is likely to take should be checked, it results in an explosion of states. Heuristics can be used to prioritize state space search. For instance, identifying and exploring important states first. 4

Case study Formal modeling and verification techniques were applied to the International Telecommunications Union (formerly CCITT) ISDN/IUPP (ISDN User Part Protocol). 145 requirements were formalized using temporal logic and proofs were produced by automated model checkers. 112 errors were detected and fixed and about 55% of the original design was found to be logically inconsistent. [3] Edmund M. Clarke, Jeannette M. Wing: Formal Methods: State of the Art and Future Directions. 626-643  5

Theorem Proving Theorem proving is the technique in which both the system and its properties are expressed as formulae. It defines a set of axioms and inference rules for the system. Theorem proving involves obtaining a proof for a system’s property by making use of its axioms and rules. Theorem provers could be highly automated for general purpose operations or be interactive in nature, to assist in special-purpose operations. [3] Edmund M. Clarke, Jeannette M. Wing: Formal Methods: State of the Art and Future Directions. 626-643  6

Case study Nqthm - a theorem prover, has been used to check a proof of Godel’s first incompleteness theorem, and in a variety of large-scale verification efforts. Boyer and Yu used Nqthm’s specification of the Motorola 68020 microprocessor (binary machine code programs) to verify their correctness. [3] Edmund M. Clarke, Jeannette M. Wing: Formal Methods: State of the Art and Future Directions. 626-643  7

Comparison of Model Checkers and Theorem Provers Model checkers are completely automatic and generate results faster than theorem provers. They can be used to verify partial specifications, even if a system’s full specifications are not available. Model checkers face the state space explosion problem whereas theorem proving can deal with infinite state spaces. Interactive theorem provers allow humans to interact with the provers, which might result in a slow and error-prone process. [3] Edmund M. Clarke, Jeannette M. Wing: Formal Methods: State of the Art and Future Directions. 626-643  8