1 Software Model Checking Andrey Rybalchenko Max Planck Institute for Software Systems Incomplete notes summarizing the 2 nd lecture, Nov 5 th, 2007.

Slides:



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

CS 267: Automated Verification Lecture 8: Automata Theoretic Model Checking Instructor: Tevfik Bultan.
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License:
50.530: Software Engineering Sun Jun SUTD. Week 10: Invariant Generation.
Rigorous Software Development CSCI-GA Instructor: Thomas Wies Spring 2012 Lecture 11.
Hybrid Systems Presented by: Arnab De Anand S. An Intuitive Introduction to Hybrid Systems Discrete program with an analog environment. What does it mean?
Discrete Mathematics Lecture 5 Alexander Bukharovich New York University.
1. What number does the following array represent?
1 Introduction to Computability Theory Lecture12: Decidable Languages Prof. Amos Israeli.
Review. In this lecture we will review and fill in loose ends regarding… Variables and how to name them Floating point data types Deciding what type to.
1 2. Constraint Databases Next level of data abstraction: Constraint level – finitely represents by constraints the logical level.
ECIV 301 Programming & Graphics Numerical Methods for Engineers Lecture 4 Programming and Software EXCEL and MathCAD.
Discrete Mathematics Lecture 4: Sequences and Mathematical Induction
Solving Partial Order Constraints for LPO termination.
Discrete Mathematics Lecture 4 Harper Langston New York University.
Loops – While, Do, For Repetition Statements Introduction to Arrays
October 8, 2009Theory of Computation Lecture 10: A Universal Program II 1 Pairing Functions and Gödel Numbers This way the equation  x, y  = z defines.
Embedded Systems Laboratory Department of Computer and Information Science Linköping University Sweden Formal Verification and Model Checking Traian Pop.
ESE601: Hybrid Systems Introduction to verification Spring 2006.
ENEE244-02xx Digital Logic Design Lecture 7. Announcements Homework 3 due on Thursday. Review session will be held by Shang during class on Thursday.
1 Formal Engineering of Reliable Software LASER 2004 school Tutorial, Lecture1 Natasha Sharygina Carnegie Mellon University.
Week 8 - Wednesday.  What did we talk about last time?  Cardinality  Countability  Relations.
Solving Systems of Linear Equations by Graphing
 2012 Pearson Education, Inc. Slide Chapter 5 Number Theory.
 2004 SDU Introduction to the Theory of Computation My name: 冯好娣 My office: 计算中心 430
Software Verification 2 Automated Verification Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität and Fraunhofer Institut für.
DECIDABILITY OF PRESBURGER ARITHMETIC USING FINITE AUTOMATA Presented by : Shubha Jain Reference : Paper by Alexandre Boudet and Hubert Comon.
SAT and SMT solvers Ayrat Khalimov (based on Georg Hofferek‘s slides) AKDV 2014.
Chapter 4 Section 1 Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Computational Complexity Theory Lecture 2: Reductions, NP-completeness, Cook-Levin theorem Indian Institute of Science.
Copyright © 2011 Pearson Education, Inc. Sequences Section 8.1 Sequences, Series, and Probability.
Constraint Satisfaction Problems (CSPs) CPSC 322 – CSP 1 Poole & Mackworth textbook: Sections § Lecturer: Alan Mackworth September 28, 2012.
CS6133 Software Specification and Verification
CSCI 2670 Introduction to Theory of Computing November 29, 2005.
Chapter 4 Section 1. Objectives 1 Copyright © 2012, 2008, 2004 Pearson Education, Inc. Solving Systems of Linear Equations by Graphing Decide whether.
Symbolic Execution with Abstract Subsumption Checking Saswat Anand College of Computing, Georgia Institute of Technology Corina Păsăreanu QSS, NASA Ames.
Mathematical Preliminaries
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Lecture 7: Foundations of Query Languages Tuesday, January 23, 2001.
1 Finite Model Theory Lecture 1: Overview and Background.
1 First order theories (Chapter 1, Sections 1.4 – 1.5) From the slides for the book “Decision procedures” by D.Kroening and O.Strichman.
Sequences & Series. Sequence: A function whose domain is a set of consecutive integers. The domain gives the relative position of each term of the sequence:
1 CSEP590 – Model Checking and Automated Verification Lecture outline for July 9, 2003.
Computing & Information Sciences Kansas State University Friday, 08 Sep 2006CIS 490 / 730: Artificial Intelligence Lecture 7 of 42 Friday, 08 September.
CSCI 2670 Introduction to Theory of Computing December 2, 2004.
CSE 421 Algorithms Richard Anderson Lecture 27 NP-Completeness Proofs.
Today’s Agenda  Quiz 4  Temporal Logic Formal Methods in Software Engineering1.
1 Finite Model Theory Lecture 5 Turing Machines and Finite Models.
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License:
Pre-Calculus Section 8.1A Sequences and Series. Chapter 8: Sequences, Series, and Probability Sequences and series describe algebraic patterns. We will.
Lecture 9: Query Complexity Tuesday, January 30, 2001.
General Discussion of “Properties” The Pumping Lemma Membership, Emptiness, Etc.
ECO 365 Complete Class + Final Exam Check this A+ tutorial guideline at 365/ECO-365-Complete-Class-Final-Exam For more.
COT 3100, Spring 2001 Applications of Discrete Structures
CIS Automata and Formal Languages – Pei Wang
Planning as model checking, (OBDDs)
Section 8.1 Sequences.
CSCI1600: Embedded and Real Time Software
Lesson 5 Relations, mappings, countable and uncountable sets
Presented By: Raquel Whittlesey-Harris 12/04/02
Aim: What is the sequence?
Sequences Overview.
MA/CSSE 474 Theory of Computation
CSCI1600: Embedded and Real Time Software
CS21 Decidability and Tractability
Lecture 5 Binary Operation Boolean Logic. Binary Operations Addition Subtraction Multiplication Division.
Sequences and Summation Notation
Translating Linear Temporal Logic into Büchi Automata
Introduction to verification
Presentation transcript:

1 Software Model Checking Andrey Rybalchenko Max Planck Institute for Software Systems Incomplete notes summarizing the 2 nd lecture, Nov 5 th, 2007

2 Today Administrativia –HISPOS registration for exams deadline Dec 1, 2007 –New location for lectures and tutorials see the webpage Topics –Programs computations and related objects symbolic representation modeling data: integers, arrays, objects –Testing –Directed automated random testing

3 Programs Program P consists of V – set of variables L – set of control locations l 0 – initial location, l 0 2 L l E – error location, l E 2 L T – set of transitions Let V’ be a set of primed program variables Each transition t 2 T is a triple (l, , l’) l – start location, l \in L  – transition relation, represented by a formula over V and V’ l’ – final location, l’ \in L

4 States, sets, relations Program state is a valuation of program variables –use s for states –s(v) is the value of the variable v in the state s S – the set of all program states Symbolic representation of sets: –State s satisfies a formula  over V = (v 1,..., v n ) iff  Æ v 1 =s(v 1 ) Æ... Æ v n = s(v n ) evaluates to true, written as s ²  –Formula  over V represents a set of states X: S  = { s | s ²  } Symbolic representation of binary relations: –use formula  over V and V’ –pair of states s and s’ satisfies  iff  Æ v 1 =s(v 1 ) Æ... Æ v n = s(v n ) Æ v’ 1 =s’(v 1 ) Æ... Æ v’ n = s’(v n ) evaluates to true, written as (s, s’) ²  –Formula  over V and V’ represents a binary relation over states R: S  = { (s, s’) | (s, s’) ²  }

5 Computations and paths Program computation: finite or infinite sequence  of states (l 1, s 1 ), (l 2, s 2 ),... such that 1.l 1 = l 0 – initial location 2.for each i = 1 to length of  there exists transition (l, , l’) 2 T such that l i = l, (s i, s i+1 ) ² , and l i+1 = l’ written as s i – t ! s i+1  is safe if error location l E is not visited Program terminates if there is no infinite computation Program path  is a sequence of transitions Path t 1, t 2,... is feasible if there is a computation s 1, s 2,... induced by the path, i.e., s i – t i ! s i+1 for each t i

6 Path relation Relational composition of  and  over V and V’:  ±  = 9 V’’:  [V’’/V’] Æ  [V’’/V] Path relation of path  = t 1,..., t n   =  1 ±... ±  n

7 Modeling data Program variables range over intended data domains, e.g. integers, Booleans, arrays, objects, etc. We use logical theories to describe sets of states and binary relations over states. For integer variables, we may use the theory of linear arithmetic. For arrays, the theory of arrays Please read: Modeling data structuresModeling data structures article in Viktor Kuncak’s lecture notes What's decidable about arraysWhat's decidable about arrays [optional]

8 Testing Please read Sections 1 to 9 in Software Testing article at Wikipedia Software Testing

9 Directed Automated Random Testing Please read slides 29 to 50 from Patrice Godefroid’s presentation onDynamic and Static AnalysisDynamic and Static Analysis