Predicate Abstraction in Protocol Verification

Size: px
Start display at page:

Download "Predicate Abstraction in Protocol Verification"

Transcription

1 Predicate Abstraction in Protocol Verification Edgar Pek, Nikola Bogunović Faculty of Electrical Engineering and Computing Zagreb, Croatia {edgar.pek, Abstract This paper presents how predicate abstraction can be applied to protocol verification. Predicate abstraction is a method for automatic construction of abstract state graph. Basic idea is to use n predicates φ 1,..., φ n defined on concrete state space to generate abstract state graph. Model checking is a formal verification technique which has been successfully applied to protocol verification. But model checking can only be applied to finite state systems. Many interesting systems are infinite state or number of states is so large that verification becomes infeasible. Predicate abstraction can be applied in verification of infinite state systems (or large finite state systems). Abstract state graph created by predicate abstraction can be used for verification of safety properties using a model checker. We provide simple examples of protocol verification using predicate abstraction. I. INTRODUCTION Correct functioning is implicit requirement for any system. Fulfilling that requirement is especially challenging for distributed software systems. Distributed software systems should appear as a coherent system in spite of being designed from many autonomous computers [1]. The crucial part of those systems is communication between components. Communication can be made successful only if there are rules that should be followed by communicating entities. That rules are called protocols. Design of protocols that operate correctly is notoriously difficult. The main reason is that protocols must deal with asynchronous and concurrent computation in a heterogeneous environment. Proper functioning of software system has usually been achieved using informal techniques such as simulation and testing. But those techniques can only be used to detect flaws. If we want to establish correctness, then formal methods based on mathematical logic must be employed. In this paper we will be concerned with formal verification. There are two main approaches in formal verification: deductive and algorithmic verification. Deductive verification is a methodology in which correctness of the system is established using axioms and proof rules. Traditionally, proofs have been constructed entirely by hand. That process is very time consuming and error prone. Besides that, it requires considerable expertise in mathematics and logic. Over the time various tools have been developed which provided certain degree of automation. Those tools are known as theorem proving systems. In spite of automation, inherent characteristic of theorem proving is that usually requires considerable human intervention. However, theorem proving is a very powerful technique because we have all the methods of logic and mathematics at our disposal. We can verify any system we want, if provided with enough time and computational power. Second methodology - algorithmic verification, is in large sense orthogonal to the previously described approach. The algorithmic verification methodology is best known as model checking [5]. Model checking is a technique for verification of finite state systems. The main idea is to perform exhaustive search of a state space to check whether specified correctness condition can be satisfied. The major advantage of the model checking is that verification can be carried out completely automatically. The main disadvantage is restriction to verification of finite state systems. It is clear that model checking and theorem proving techniques complement each other. But, actual methodologies that combine these two approaches are still open research problems. In this article we will concentrate on one promising approach called predicate abstraction. Basic idea of our work has been to apply predicate abstraction to the problem of infiniteness that appears as main obstacle in protocol verification. We have concentrated on two aspects of the problem: infinite state space due to unbounded data types, real-time aspect. Motivation for this work is related to our previous work. In [2] we have demonstrated verification of five mutual exclusion algorithms. All these algorithms were two process versions with finite data types. Abstractions used in that work had been obtained ad-hoc, without formal justification. It must be mentioned that all mutual exclusion algorithms are parameterized, which is the source of infiniteness, and cannot be tackled with classical predicate abstraction. So, we will not deal with it in this work. In our work related to verification of Bounded Retransmission protocol [3] we have obtained some underapproximations concerning both data types and timing aspects. Similarly in [4], we performed verification of the configuration in Logical Link Control and Adaptation Protocol from Bluetooth protocol stack. In all our work we have used only model checking [5] techniques based on symbolic state space representation by Binary Decision Diagrams [6]. Predicate abstraction has been introduced as a technique for reduction of an infinite state system to a finite state in the work of Graf and Saidi [7]. In that work, a finite state system is obtained as an over-approximation of an infinite state system. They have defined a technique

2 for generation of an abstract state graph and computation of an abstract reachable state space (invariants). Bounded Retransmission Protocol had been chosen as a case study, but only basic facts about actual verification were provided. Another verification technique based on the predicate abstraction had been proposed by Colón and Uribe [8]. In their work predicate abstraction is done on transitions rather then on state space. Although potentially more efficient than techniques which abstract state space that technique usually yields coarser abstraction. Their work has been implemented in a tool STeP (Stanford Temporal Prover), but version of the tool that supports predicate abstraction is not available. Predicate abstraction in terms of protocol verification has been studied by David Dill s group at Stanford. They have verified various protocols using tool Murφ. Some results are reported in [9]. Most of the work is described in context of various approaches to predicate abstraction, and examples are in Murφ input language. That tool is also not available, and there is no documentation about the language. So, we have not been able to fully understand the provided examples. We have found the work of Saidi and Shankar [10] and review by Shankar [11] to be most useful for our purpose. Also, the idea of predicate abstraction as syntactic transformation (as in [12]) is used in our work. The rest of paper is organised as follows. In Section II predicate abstraction will be described based on the [10] and [11]. Section III presents a verification of the Bakery mutual exclusion algorithm for two processes. In Section IV the Fischer mutual exclusion algorithm is used as a case study for real time verification by predicate abstraction. Additional insights about real-time verification based on predicate abstraction came from work by Möller, Rueß and Sorea [13]. Finally, in Section V we will give some concluding remarks. II. PREDICATE ABSTRACTION Intuitively, predicate abstraction provides a mapping from a concrete to an abstract system. Concrete system is usually an infinite state or has extremely large number of states. Abstract system is a finite state, where states correspond to truth assignments to a set of predicates (defined on the concrete system). Now, we will provide a formal description of the predicate abstraction. Predicate abstraction is a methodology which is based on the abstract interpretation [14]. Abstract interpretation is the framework for defining abstractions. It is based on the Galois connection. Definition 1 (Galois connection). Galois connection is a pair (α, γ) that defines a mapping between a concrete domain lattice P(Q) and an abstract domain lattice P(Q A ). Where α and γ represent two monotonic functions such that: (P 1, P 2 ) P(Q) P(Q A ) α(p 1 ) P 2 P 1 γ(p 2 ). The domain of the abstraction function α is poset (i.e. a partially ordered set) P(Q) (S, ), where S represent sets of concrete states, ordered by (implication). Range of α are boolean formulas built from boolean variables B 1, B 2,..., B k. Let X and Y represent a domain of abstraction (α) and concretization (γ) function respectively. Functions γ and α can be implicitly defined as: γ(y ) = {X α(x) Y }, (1) α(x) = {Y X γ(y )}. (2) In abstract space each boolean variable B i represents all concrete states that satisfy predicate φ i. So, the concretization function can be obtained simply by replacing each abstract variable B i with a corresponding predicate φ i, and each abstract state variable with a corresponding concrete state variable. Thus, simpler definition of the function γ is: γ(y ) = Y [φ i (s)/b i (abs s )]. (3) The computation of the abstraction function is much more intricate. As it was mentioned in the Section I there are various approaches to the problem. We will present a method described in [10] and [11]. Based on the definition of abstraction function (2) we can conclude the following. For any predicate P over the concrete variables, the abstraction α(p ) of P can be computed as the conjunction of all boolean expressions satisfying the condition: P γ(b). (4) There are 2 2k distinct boolean functions in k variables (computation of (4) for all functions becomes very expensive). This set of functions is known as a set of test points. An abstraction is precise with respect to the considered abstract lattice if the set of test points is the entire set of boolean expressions that form an abstract lattice. Smaller set of test points can be used, but equation (4) must still be valid. All those smaller sets represent over-approximations (coarser approximations). The first example of predicate abstraction [7] used the lattice of monomials 1 as the abstract lattice. Saidi and Shankar [10] provided a method for computation of the abstraction function without the loss of precision which is more efficient (i.e. it requires fewer number of tests). To accomplish the goal they have chosen appropriate sub-lattice and test points (see Theorem 1). Theorem 1 (Sub-lattice and test points). Let B = {B 1,..., B k } be a set of boolean variables, and let B A be the boolean algebra defined by the structure B,,,, true, false. Let D B be the subset of B A containing only literals and disjunctions of literals. To compute the most precise image by α of any set of concrete states P (given as a predicate), it is sufficient to consider as a set of test points, the set D B instead of the whole set B A of boolean expressions. That is, testing P γ(b) (5) 1 Monomial is a conjunction of b i s where b i can be either B i or B i. Each b i can appear exactly once.

3 for all boolean expressions in B A is equivalent to test this implication only for b in D B. So, 2 2k tests can be reduced to at most 3 k 1 tests. Proof: Proof is based on the fact that each boolean expression can be written in a conjunctive normal form (CNF) as d 1... d j, where d i represent disjunction of literals. So, proof of implication (5) for each element b can be decomposed in proofs for d i s. Thus, by testing only elements in D B we can cover all boolean truth functions. On the grounds of the above theorem the computation of precise abstraction is reduced from 2 2k to 3 k 1 (recall that k is the number of boolean variables representing predicates). Moreover, actual number of tests can be reduced because some of the tests for the elements d i D B become redundant (e.g. because of subsumption). In the following example we will illustrate the above theory. a) Example: Suppose that we want to abstract a formula x = y, which for example appears in a transition relation of a protocol. Variables x and y are integers. First, we must define predicates on the concrete space: φ 1 x > 0 φ 2 y > 0 Furthermore, let a and b represent boolean variables in the abstract lattice. According to (3) concretization function is defined with γ(a) = x > 0 and γ(b) = y > 0. Based on the theorem 1 we create disjunctions d i and for each d i test if x = y γ(d i ) is provable. TABLE I DISJUNCTS d i AS TEST POINTS d i? x = y γ(d i ) a x = y x > 0 a x = y x 0 b x = y y > 0 b x = y y 0 a b x = y x > 0 y > 0 a b x = y x > 0 y 0 a b x = y x 0 y > 0 a b x = y x 0 y 0 Based on the results shown in the table I we can create the abstraction of the atomic formula x = y: α(x = y) = (a b) ( a b). (6) If we enumerate disjunctions in order of increasing length (as it was done in table I) then we can reduce the number of tests. If the test fails on a disjunction d i but succeeds on the disjunction d i q then we can skip tests for: 1) the disjunction d i q, because if this test succeeded the d i would have also succeeded, and so this test can be eliminated, 2) any disjunction that extends d i q, since these are weaker approximations, and therefore subsumed by d i q. Also, it is not necessary to consider any literals q where γ(q) and p share no variables since q is irrelevant and cannot contribute to the success of the test. For instance, the last test a b in the table I could be eliminated because a b succeeded while b didn t. In this section we have shown theory behind predicate abstraction. In the following two sections we will apply the theory on the two examples of mutual exclusion. III. BAKERY MUTUAL EXCLUSION EXAMPLE In this section we will demonstrate predicate abstraction of the two process Bakery mutual exclusion protocol. This example will show how predicate abstraction can be used to tackle problem of infinite state space due to unbounded data types. First, we will provide description of the protocol, then results of predicate abstraction. The results of predicate abstraction have been verified by a symbolic model checker called NuSMV [15]. A. Two process Bakery mutual exclusion protocol Protocol 1 Bakery mutual exclusion protocol var y 1, y 2 : integer; initially y 1 = y 2 = 0 l0 : <noncritical section>; l1 : y 1 := y 2 + 1; l2 : await y 2 = 0 y 1 < y 2 ; l3 : <critical section>; l4 : y 1 := 0; m0 : <noncritical section>; m1 : y 2 := y 1 + 1; m2 : await y 1 = 0 y 2 y 1 ; m3 : <critical section>; m4 : y 2 := 0; From the above description it can be noted that protocol cannot be verified using finite state techniques. The main reason is that the variables y 1 and y 2 are unbounded. Note that, even if actual implementation is considered, state space is very large for only two variables. B. Predicate abstraction of Bakery protocol As it has been shown in Section II, the first step in predicate abstraction is definition of the predicates. In this example we check only the basic property of mutual exclusion, expressed as: both processes cannot be in the critical section at the same time. Temporal logic formula (expressed in Computation Tree Logic - see e.g. [5]) for this property can be written as: AG (P 1.pc = l3 P 2.pc = m3). (7) Usually, a temporal logic formula helps us to define a suitable set of predicates. In this simple example, the set of predicates is easily determined by looking at the

4 condition which guards critical section (l2 and m2). Based on this we propose the following set of predicates: φ 1 y 1 = 0 φ 2 y 2 = 0 φ 3 y 1 < y 2 Boolean variables that represent the abstract lattice are: B 1, B 2, B 3. Concretization function γ is defined with γ(b 1 ) = (y 1 = 0), γ(b 2 ) = (y 2 = 0) and γ(b 3 ) = (y 1 < y 2 ). Now the abstraction function must be defined. Let us consider transition defined as y 1 := y 2 + 1, for which we can compute the abstraction function as described in the example provided in Section II. TABLE II ABSTRACTION OF y 1 := y d i? y 1 := y γ(d i ) B 1 y 1 := y y 1 = 0 B 1 y 1 := y y 1 0 B 3 y 1 := y y 2 = 0 B 3 y 1 := y y 2 0 B 1 B 3 y 1 := y (y 1 = 0 y 2 = 0) B 1 B 3 subsumed B 1 B 3 subsumed B 1 B 3 subsumed Based on the results in the table II, the abstraction of transition y 1 := y is: α(y 1 := y 2 + 1) = B 1 B 3. (8) Equation (8) is equivalent to following assignments: B 1 := 0 and B 3 := 0. Note, that we don t need to consider variable B 2 since it is not affected with transition relation. Similarly, we have abstracted all other transitions. The abstracted version of Bakery mutual exclusion protocol is shown as Protocol 2. Protocol 2 Abstraction of Bakery mutual exclusion protocol var B 1, B 2, B 3 : boolean; initially B 1 = B 2 = 1, B 3 = 0 l0 : <noncritical section>; l1 : B 1 := 0, B 3 := 0; l2 : await B 2 B 3 ; l3 : <critical section>; l4 : B 1 := 1, B 3 := B 2 ; m0 : <noncritical section>; m1 : B 2 := 0, B 3 := 1; m2 : await B 1 B 3 ; m3 : <critical section>; m4 : B 2 := 1, B 3 := 0; We have translated the obtained version of the Bakery mutual exclusion protocol into the NuSMV input language. Using NuSMV engine for symbolic model checking with BDD s, mutual exclusion (7) property has been successfully verified. NuSMV files can be found on the web page: IV. FISCHER MUTUAL EXCLUSION EXAMPLE This section will provide predicate abstraction of the Fischer s real-time mutual exclusion protocol. In this example predicate abstraction will be used to abstract a realtime system to a finite state system, which is amenable to model checking. The source of infiniteness in this example is caused by real-time aspects of the protocol. As in the previous section, we give a protocol description first and then results of the predicate abstraction. A. Two process Fischer mutual exclusion protocol Fischer s mutual exclusion protocol (shown as Protocol 3) assumes uniform positive bounds on time each process can wait before executing its next statement: an enabled transition must wait at least L and at most U before being taken. If 2L > U the protocol guarantees that both processes are never in their critical sections simultaneously. Protocol 3 Fischer s mutual exclusion protocol var x : {0, 1, 2}; initially x = 0 l0 : await x = 0; l1 : x := 1; l2 : skip; l3 : await x = 1; l4 : <critical section>; l5 : x := 0 m0 : await x = 0; m1 : x := 2; m2 : skip; m3 : await x = 2; m4 : <critical section>; m5 : x := 0 Note that in Fischer s real time mutual exclusion protocol we don t have to deal with unboundness of data types (variable x has a finite domain). B. Predicate abstraction of Fischer s protocol Besides theory provided in Section II, we will use insights from the work of Möller, Rueß and Sorea [13] as well as from Colon and Uribe [8]. To model real-time systems it is necessary to augment classical state transition systems with a finite set of real valued clocks. The clocks proceed at a uniform rate and constrain the times at which transition may occur. Those

5 transition systems are called timed automata. A formal definition of timed automata can be found in [13]. As it has been mentioned in the previous section, one of the main problems with predicate abstraction is to define appropriate set of predicates. In the case of timed automata it was shown in [13] that the set of abstraction predicates expressive enough to distinguish between any two clock regions determines a strongly preserving abstraction. The set is called basis. The main technical problem in the definition of the abstraction is to guarantee fairness in the abstract model; that is, to prevent delay steps to be abstracted into selfloops on the abstract system. In the work of [13] that problem is addressed by introducing restricted delay steps, while in [8] there is a notion of time progress condition (in the context of clocked transition systems). For our purpose both approaches are equivalent. The only important thing is to restrict progress of time. First, we define the basis for the Fischer s protocol. Φ :={c 1 = 0, c 2 = 0, c 1 L, c 2 L, c 1 L, c 2 L, c 1 U, c 2 U} Where, c 1 and c 2 represent first resp. second process clock variables. We don t have to use all predicates from the basis, but rather we can incrementally add predicates until abstraction is fine enough. That process is known as a stepwise refinement. In our example, two predicates from the basis set Φ (9) have been initially chosen: φ 1 c 1 L φ 2 c 2 L Based on those two predicates we get the abstract version of the Fischer s mutual exclusion protocol. The procedure for obtaining the concretization and the abstraction function is same as in Section III. The abstraction of the Fischer s mutual exclusion protocol (Protocol 4) must be augmented with a tick transition. The abstraction of the tick transition just changes variables B 1 and B 2. Variables can be non-deterministically changed only when B 1 and B 2 are false. As in previous section, the protocol has been described and verified using the NuSMV system. NuSMV input files for that example are available from: V. CONCLUSION In this work we have presented how predicate abstraction can be applied to protocol verification. Predicate abstraction is a methodology that combines two orthogonal verification approaches: theorem proving and model checking. It relates powerful decision procedures from theorem proving and automatic property checking on a finite model from model checking. The first problem when applying predicate abstraction is defining appropriate set of predicates. Currently, there is no proper formal procedure that would provide a suitable set of predicates for a given protocol description. (9) Protocol 4 Abstraction of Fischer s mutual exclusion protocol var x : {0, 1, 2}; B1, B2 : boolean; initially x = 0, B1 = B2 = false l0 : await (B 1 x = 0); l1 : x := 1; l2 : await B 1 ; l3 : await B 1 ; l4 : await x = 1; l5 : <critical section>; l6 : x := 0 m0 : await (B 2 x = 0); m1 : x := 2; m2 : await B 2 ; m3 : await B 2 ; m4 : await x = 2; m5 : <critical section>; m6 : x := 0 However, useful predicates can be obtained from a model described with guarded commands. In that case, guards are usually chosen as predicates. Besides that, property being verified provides us with predicates that can be useful. The process of finding good predicates still relies on experience and domain knowledge. The second issue in predicate abstraction is the creation of abstraction. Abstraction can be created on various levels. The first work [7] on predicate abstraction created abstraction as a state graph. The approach described in [12] considered abstraction on syntactic level. Our approach is similar to the second approach, because other techniques (symbolic model checking, partial-order reduction) can be applied to the obtained abstraction. Besides that, we must choose the appropriate abstract lattice which must be expressive enough, but also should not generate to much validity checks. Validity checks, done by theorem prover, are the most expensive part in a computation of abstraction. From the aspects of properties that can be verified we have been concerned only with properties expressible as temporal logic formulas without existential quantification over paths. These properties mostly fall in the class of safety properties. Two examples have demonstrated how predicate abstraction can be used to reduce an infinite to a finite system. In the first example it has been shown how the Bakery mutual exclusion protocol can be abstracted to a finite state protocol. The main source of infiniteness in this example has been unbounded data types. The results have shown that predicate abstraction is just the right approach for that class of systems. The second example has demonstrated more subtle source of infiniteness, related to real-

6 time aspects of the Fischer s mutual exclusion protocol. Predicate abstraction can be successfully applied to this kind of systems, but some rules must be followed. First, one must choose a set of predicates which is expressive enough to distinguish between two clock regions. Second, progress of time must be restricted by some conditions to ensure fairness. The main problem that we will try to tackle in our further work is infiniteness due to parameterization. Most protocols are parameterized, so this is very important issue. One of the ideas is to use quantified predicates in the process of predicate abstraction. The main problem is how to relate different instances of the same protocol. REFERENCES [1] A. S. Tanenbaum and M. van Steen, Distributed Systems: Principles and Paradigms. Upper Saddle River, NJ: Prentice Hall, [2] N. Bogunović and E. Pek, Verification of mutual exclusion algorithms with SMV system, in Proceedings of IEEE Region 8 Eurocon 2003: Computer as a Tool, B. Zajc and M. Tkalčić, Eds., vol. II. IEEE, September 2003., pp [3] E. Pek and N. Bogunović, Formal verification of communication protocols in distributed systems, in MIPRO 2003, Proceedings of the Joint Conferences Computers in technical systems and Intelligent systems, B. Leo and R. Slobodan, Eds., May 2003., pp [4], Formal verification of logical link control and adaptation protocol, in Proceedings of the 12th IEEE Mediterranean Electrotechnical Conference, MELECON 200, M. Maja, P. Branimir, T. Željko, and B. Željko, Eds., May 2004., pp [5] E. M. Clarke, O. Grumberg, and D. A. Peled, Model Checking. Cambridge, Massachusetts: The MIT Press, [6] K.L. McMillan, Symbolic Model Checking: An Approach to the State Explosion Problem, Ph.D. dissertation, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, May 1992, CMU-CS [7] S. Graf and H. Saïdi, Construction of abstract state graphs with pvs, in CAV 97: Proceedings of the 9th International Conference on Computer Aided Verification. Springer-Verlag, 1997, pp [8] M. Colón and T. E. Uribe, Generating finite-state abstractions of reactive systems using decision procedures, in CAV 98: Proceedings of the 10th International Conference on Computer Aided Verification. Springer-Verlag, 1998, pp [9] S. Das, D. L. Dill, and S. Park, Experience with predicate abstraction, in 11th International Conference on Computer-Aided Verification. Springer-Verlag, July [10] H. Saïdi and N. Shankar, Abstract and model check while you prove, in CAV 99: Proceedings of the 11th International Conference on Computer Aided Verification. Springer-Verlag, 1999, pp [11] N. Shankar, Automated verification using deduction, exploration, and abstraction, pp , [12] S. Bensalem, Y. Lakhnech, and S. Owre, Computing abstractions of infinite state systems compositionally and automatically, in CAV 98: Proceedings of the 10th International Conference on Computer Aided Verification. Springer-Verlag, 1998, pp [13] M. O. Möller, H. Rueß, and M. Sorea, Predicate abstraction for dense real-time systems, Electronic Notes in Theoretical Computer Science, vol. 65, no. 6, 2002, full version available as Technical Report BRICS-RS-01-44, Department of Computer Science, University of Aarhus, Denmark. [14] P. Cousot and R. Cousot, Abstract intrepretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints, in Conference Record of the 4th ACM Symposium on Principles of Programming Languages, Los Angeles, CA, Jan. 1977, pp [15] R. Cavada, A. Cimatti, E. Olivetti, M. Pistore, and M. Roveri, NuSMV 2.1 User Manual, [Online]. Available: http: //nusmv.irst.itc.it/nusmv/userman/v21/nusmv.pdf [16] S. Das, Predicate Abstraction, Ph.D. dissertation, Department of Computer Science, Stanford University, Stanford, CA, December 2003.

Model checking the basic modalities of CTL with Description Logic

Model checking the basic modalities of CTL with Description Logic Model checking the basic modalities of CTL with Description Logic Shoham Ben-David Richard Trefler Grant Weddell David R. Cheriton School of Computer Science University of Waterloo Abstract. Model checking

More information

Lecture 2: Symbolic Model Checking With SAT

Lecture 2: Symbolic Model Checking With SAT Lecture 2: Symbolic Model Checking With SAT Edmund M. Clarke, Jr. School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 (Joint work over several years with: A. Biere, A. Cimatti, Y.

More information

Abstraction in Program Analysis & Model Checking. Abstraction in Model Checking. Motivations & Results

Abstraction in Program Analysis & Model Checking. Abstraction in Model Checking. Motivations & Results On Completeness in Abstract Model Checking from the Viewpoint of Abstract Interpretation Abstraction in Program Analysis & Model Checking Abstract interpretation has been successfully applied in: static

More information

Abstractions and Decision Procedures for Effective Software Model Checking

Abstractions and Decision Procedures for Effective Software Model Checking Abstractions and Decision Procedures for Effective Software Model Checking Prof. Natasha Sharygina The University of Lugano, Carnegie Mellon University Microsoft Summer School, Moscow, July 2011 Lecture

More information

Model Checking: An Introduction

Model Checking: An Introduction Model Checking: An Introduction Meeting 3, CSCI 5535, Spring 2013 Announcements Homework 0 ( Preliminaries ) out, due Friday Saturday This Week Dive into research motivating CSCI 5535 Next Week Begin foundations

More information

Unbounded, Fully Symbolic Model Checking of Timed Automata using Boolean Methods

Unbounded, Fully Symbolic Model Checking of Timed Automata using Boolean Methods Unbounded, Fully Symbolic Model Checking of Timed Automata using Boolean Methods Sanjit A. Seshia and Randal E. Bryant Computer Science Department Carnegie Mellon University Verifying Timed Embedded Systems

More information

Diagram-based Formalisms for the Verication of. Reactive Systems. Anca Browne, Luca de Alfaro, Zohar Manna, Henny B. Sipma and Tomas E.

Diagram-based Formalisms for the Verication of. Reactive Systems. Anca Browne, Luca de Alfaro, Zohar Manna, Henny B. Sipma and Tomas E. In CADE-1 Workshop on Visual Reasoning, New Brunswick, NJ, July 1996. Diagram-based Formalisms for the Verication of Reactive Systems Anca Browne, Luca de Alfaro, Zohar Manna, Henny B. Sipma and Tomas

More information

Software Verification using Predicate Abstraction and Iterative Refinement: Part 1

Software Verification using Predicate Abstraction and Iterative Refinement: Part 1 using Predicate Abstraction and Iterative Refinement: Part 1 15-414 Bug Catching: Automated Program Verification and Testing Sagar Chaki November 28, 2011 Outline Overview of Model Checking Creating Models

More information

Model Checking. Boris Feigin March 9, University College London

Model Checking. Boris Feigin March 9, University College London b.feigin@cs.ucl.ac.uk University College London March 9, 2005 Outline 1 2 Techniques Symbolic 3 Software 4 Vs. Deductive Verification Summary Further Reading In a nutshell... Model checking is a collection

More information

Relative Completeness of Abstraction Refinement for Software Model Checking

Relative Completeness of Abstraction Refinement for Software Model Checking Relative Completeness of Abstraction Refinement for Software Model Checking Thomas Ball 1, Andreas Podelski 2, and Sriram K. Rajamani 1 1 Microsoft Research 2 Max-Planck-Institut für Informatik Abstract.

More information

New Complexity Results for Some Linear Counting Problems Using Minimal Solutions to Linear Diophantine Equations

New Complexity Results for Some Linear Counting Problems Using Minimal Solutions to Linear Diophantine Equations New Complexity Results for Some Linear Counting Problems Using Minimal Solutions to Linear Diophantine Equations (Extended Abstract) Gaoyan Xie, Cheng Li and Zhe Dang School of Electrical Engineering and

More information

Applications of Craig Interpolants in Model Checking

Applications of Craig Interpolants in Model Checking Applications of Craig Interpolants in Model Checking K. L. McMillan Cadence Berkeley Labs Abstract. A Craig interpolant for a mutually inconsistent pair of formulas (A, B) is a formula that is (1) implied

More information

Bounded Model Checking and Induction: From Refutation to Verification

Bounded Model Checking and Induction: From Refutation to Verification Bounded Model Checking and Induction: From Refutation to Verification (Extended Abstract, Category A) Leonardo de Moura, Harald Rueß, and Maria Sorea SRI International Computer Science Laboratory 333 Ravenswood

More information

State-Space Exploration. Stavros Tripakis University of California, Berkeley

State-Space Exploration. Stavros Tripakis University of California, Berkeley EE 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization Fall 2014 State-Space Exploration Stavros Tripakis University of California, Berkeley Stavros Tripakis (UC Berkeley) EE

More information

A Brief Introduction to Model Checking

A Brief Introduction to Model Checking A Brief Introduction to Model Checking Jan. 18, LIX Page 1 Model Checking A technique for verifying finite state concurrent systems; a benefit on this restriction: largely automatic; a problem to fight:

More information

Partial model checking via abstract interpretation

Partial model checking via abstract interpretation Partial model checking via abstract interpretation N. De Francesco, G. Lettieri, L. Martini, G. Vaglini Università di Pisa, Dipartimento di Ingegneria dell Informazione, sez. Informatica, Via Diotisalvi

More information

Property Checking of Safety- Critical Systems Mathematical Foundations and Concrete Algorithms

Property Checking of Safety- Critical Systems Mathematical Foundations and Concrete Algorithms Property Checking of Safety- Critical Systems Mathematical Foundations and Concrete Algorithms Wen-ling Huang and Jan Peleska University of Bremen {huang,jp}@cs.uni-bremen.de MBT-Paradigm Model Is a partial

More information

An Interpolating Theorem Prover

An Interpolating Theorem Prover An Interpolating Theorem Prover K.L. McMillan Cadence Berkeley Labs Abstract. We present a method of deriving Craig interpolants from proofs in the quantifier-free theory of linear inequality and uninterpreted

More information

Bounded Model Checking with SAT/SMT. Edmund M. Clarke School of Computer Science Carnegie Mellon University 1/39

Bounded Model Checking with SAT/SMT. Edmund M. Clarke School of Computer Science Carnegie Mellon University 1/39 Bounded Model Checking with SAT/SMT Edmund M. Clarke School of Computer Science Carnegie Mellon University 1/39 Recap: Symbolic Model Checking with BDDs Method used by most industrial strength model checkers:

More information

Double Header. Model Checking. Model Checking. Overarching Plan. Take-Home Message. Spoiler Space. Topic: (Generic) Model Checking

Double Header. Model Checking. Model Checking. Overarching Plan. Take-Home Message. Spoiler Space. Topic: (Generic) Model Checking Double Header Model Checking #1 Two Lectures Model Checking SoftwareModel Checking SLAM and BLAST Flying Boxes It is traditional to describe this stuff (especially SLAM and BLAST) with high-gloss animation

More information

1 Algebraic Methods. 1.1 Gröbner Bases Applied to SAT

1 Algebraic Methods. 1.1 Gröbner Bases Applied to SAT 1 Algebraic Methods In an algebraic system Boolean constraints are expressed as a system of algebraic equations or inequalities which has a solution if and only if the constraints are satisfiable. Equations

More information

Using Patterns and Composite Propositions to Automate the Generation of LTL Specifications

Using Patterns and Composite Propositions to Automate the Generation of LTL Specifications Using Patterns and Composite Propositions to Automate the Generation of LTL Specifications Salamah Salamah, Ann Q. Gates, Vladik Kreinovich, and Steve Roach Dept. of Computer Science, University of Texas

More information

The State Explosion Problem

The State Explosion Problem The State Explosion Problem Martin Kot August 16, 2003 1 Introduction One from main approaches to checking correctness of a concurrent system are state space methods. They are suitable for automatic analysis

More information

Linear Temporal Logic and Büchi Automata

Linear Temporal Logic and Büchi Automata Linear Temporal Logic and Büchi Automata Yih-Kuen Tsay Department of Information Management National Taiwan University FLOLAC 2009 Yih-Kuen Tsay (SVVRL @ IM.NTU) Linear Temporal Logic and Büchi Automata

More information

Temporal logics and explicit-state model checking. Pierre Wolper Université de Liège

Temporal logics and explicit-state model checking. Pierre Wolper Université de Liège Temporal logics and explicit-state model checking Pierre Wolper Université de Liège 1 Topics to be covered Introducing explicit-state model checking Finite automata on infinite words Temporal Logics and

More information

A Theory for Comparing the Expressive Power of Access Control Models

A Theory for Comparing the Expressive Power of Access Control Models A Theory for Comparing the Expressive Power of Access Control Models Mahesh V. Tripunitara Ninghui Li Department of Computer Sciences and CERIAS, Purdue University, West Lafayette, IN 47905. {tripunit,ninghui}@cerias.purdue.edu

More information

CS1021. Why logic? Logic about inference or argument. Start from assumptions or axioms. Make deductions according to rules of reasoning.

CS1021. Why logic? Logic about inference or argument. Start from assumptions or axioms. Make deductions according to rules of reasoning. 3: Logic Why logic? Logic about inference or argument Start from assumptions or axioms Make deductions according to rules of reasoning Logic 3-1 Why logic? (continued) If I don t buy a lottery ticket on

More information

The algorithmic analysis of hybrid system

The algorithmic analysis of hybrid system The algorithmic analysis of hybrid system Authors: R.Alur, C. Courcoubetis etc. Course teacher: Prof. Ugo Buy Xin Li, Huiyong Xiao Nov. 13, 2002 Summary What s a hybrid system? Definition of Hybrid Automaton

More information

Introduction to Model Checking. Debdeep Mukhopadhyay IIT Madras

Introduction to Model Checking. Debdeep Mukhopadhyay IIT Madras Introduction to Model Checking Debdeep Mukhopadhyay IIT Madras How good can you fight bugs? Comprising of three parts Formal Verification techniques consist of three parts: 1. A framework for modeling

More information

Verifying Temporal Properties of Reactive Systems: A STeP Tutorial *

Verifying Temporal Properties of Reactive Systems: A STeP Tutorial * Formal Methods in System Design, 16, 1 45 (2000) c 2000 Kluwer Academic Publishers, Boston. Manufactured in The Netherlands. Verifying Temporal Properties of Reactive Systems: A STeP Tutorial * NIKOLAJ

More information

Lecture Notes on Software Model Checking

Lecture Notes on Software Model Checking 15-414: Bug Catching: Automated Program Verification Lecture Notes on Software Model Checking Matt Fredrikson André Platzer Carnegie Mellon University Lecture 19 1 Introduction So far we ve focused on

More information

ESE601: Hybrid Systems. Introduction to verification

ESE601: Hybrid Systems. Introduction to verification ESE601: Hybrid Systems Introduction to verification Spring 2006 Suggested reading material Papers (R14) - (R16) on the website. The book Model checking by Clarke, Grumberg and Peled. What is verification?

More information

Binary Decision Diagrams and Symbolic Model Checking

Binary Decision Diagrams and Symbolic Model Checking Binary Decision Diagrams and Symbolic Model Checking Randy Bryant Ed Clarke Ken McMillan Allen Emerson CMU CMU Cadence U Texas http://www.cs.cmu.edu/~bryant Binary Decision Diagrams Restricted Form of

More information

The Underlying Semantics of Transition Systems

The Underlying Semantics of Transition Systems The Underlying Semantics of Transition Systems J. M. Crawford D. M. Goldschlag Technical Report 17 December 1987 Computational Logic Inc. 1717 W. 6th St. Suite 290 Austin, Texas 78703 (512) 322-9951 1

More information

Transition Predicate Abstraction and Fair Termination

Transition Predicate Abstraction and Fair Termination Transition Predicate Abstraction and Fair Termination Andreas Podelski Andrey Rybalchenko Max-Planck-Institut für Informatik Saarbrücken, Germany ABSTRACT Predicate abstraction is the basis of many program

More information

Introduction. Büchi Automata and Model Checking. Outline. Büchi Automata. The simplest computation model for infinite behaviors is the

Introduction. Büchi Automata and Model Checking. Outline. Büchi Automata. The simplest computation model for infinite behaviors is the Introduction Büchi Automata and Model Checking Yih-Kuen Tsay Department of Information Management National Taiwan University FLOLAC 2009 The simplest computation model for finite behaviors is the finite

More information

02 Propositional Logic

02 Propositional Logic SE 2F03 Fall 2005 02 Propositional Logic Instructor: W. M. Farmer Revised: 25 September 2005 1 What is Propositional Logic? Propositional logic is the study of the truth or falsehood of propositions or

More information

Symbolic Trajectory Evaluation (STE): Orna Grumberg Technion, Israel

Symbolic Trajectory Evaluation (STE): Orna Grumberg Technion, Israel Symbolic Trajectory Evaluation (STE): Automatic Refinement and Vacuity Detection Orna Grumberg Technion, Israel Marktoberdort 2007 1 Agenda Model checking Symbolic Trajectory Evaluation Basic Concepts

More information

Automata-Theoretic Model Checking of Reactive Systems

Automata-Theoretic Model Checking of Reactive Systems Automata-Theoretic Model Checking of Reactive Systems Radu Iosif Verimag/CNRS (Grenoble, France) Thanks to Tom Henzinger (IST, Austria), Barbara Jobstmann (CNRS, Grenoble) and Doron Peled (Bar-Ilan University,

More information

Transition Predicate Abstraction and Fair Termination

Transition Predicate Abstraction and Fair Termination Transition Predicate Abstraction and Fair Termination ANDREAS PODELSKI Max-Planck-Institut für Informatik, Saarbrücken and ANDREY RYBALCHENKO Ecole Polytechnique Fédérale de Lausanne Max-Planck-Institut

More information

Static Program Analysis

Static Program Analysis Static Program Analysis Lecture 16: Abstract Interpretation VI (Counterexample-Guided Abstraction Refinement) Thomas Noll Lehrstuhl für Informatik 2 (Software Modeling and Verification) noll@cs.rwth-aachen.de

More information

Generating Linear Temporal Logic Formulas for Pattern-Based Specifications

Generating Linear Temporal Logic Formulas for Pattern-Based Specifications Generating Linear Temporal Logic Formulas for Pattern-Based Specifications Salamah Salamah, Vladik Kreinovich, and Ann Q. Gates Dept. of Computer Science, University of Texas at El Paso El Paso, TX 79968,

More information

Undergraduate work. Symbolic Model Checking Using Additive Decomposition by. Himanshu Jain. Joint work with Supratik Chakraborty

Undergraduate work. Symbolic Model Checking Using Additive Decomposition by. Himanshu Jain. Joint work with Supratik Chakraborty Undergraduate work Symbolic Model Checking Using Additive Decomposition by Himanshu Jain Joint work with Supratik Chakraborty Organization of the Talk Basics Motivation Related work Decomposition scheme

More information

Introduction to SMT Solving And Infinite Bounded Model Checking

Introduction to SMT Solving And Infinite Bounded Model Checking Introduction to SMT Solving And Infinite Bounded Model Checking John Rushby Computer Science Laboratory SRI International Menlo Park, California, USA John Rushby, SR I Introduction to SMT and Infinite

More information

Propositions and Proofs

Propositions and Proofs Chapter 2 Propositions and Proofs The goal of this chapter is to develop the two principal notions of logic, namely propositions and proofs There is no universal agreement about the proper foundations

More information

First-Order Logic. Chapter Overview Syntax

First-Order Logic. Chapter Overview Syntax Chapter 10 First-Order Logic 10.1 Overview First-Order Logic is the calculus one usually has in mind when using the word logic. It is expressive enough for all of mathematics, except for those concepts

More information

COEN6551: Formal Hardware Verification

COEN6551: Formal Hardware Verification COEN6551: Formal Hardware Verification Prof. Sofiène Tahar Hardware Verification Group Electrical and Computer Engineering Concordia University Montréal, Quebec CANADA Accident at Carbide plant, India

More information

Learning Abstractions for Model Checking

Learning Abstractions for Model Checking Learning Abstractions for Model Checking Anubhav Gupta June 2006 CMU-CS-06-131 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Submitted in partial fulfillment of the requirements

More information

IC3 and Beyond: Incremental, Inductive Verification

IC3 and Beyond: Incremental, Inductive Verification IC3 and Beyond: Incremental, Inductive Verification Aaron R. Bradley ECEE, CU Boulder & Summit Middle School IC3 and Beyond: Incremental, Inductive Verification 1/62 Induction Foundation of verification

More information

Model Checking of Systems Employing Commutative Functions

Model Checking of Systems Employing Commutative Functions Model Checking of Systems Employing Commutative Functions A. Prasad Sistla, Min Zhou, and Xiaodong Wang University of Illinois at Chicago Abstract. The paper presents methods for model checking a class

More information

Design of Distributed Systems Melinda Tóth, Zoltán Horváth

Design of Distributed Systems Melinda Tóth, Zoltán Horváth Design of Distributed Systems Melinda Tóth, Zoltán Horváth Design of Distributed Systems Melinda Tóth, Zoltán Horváth Publication date 2014 Copyright 2014 Melinda Tóth, Zoltán Horváth Supported by TÁMOP-412A/1-11/1-2011-0052

More information

CS357: CTL Model Checking (two lectures worth) David Dill

CS357: CTL Model Checking (two lectures worth) David Dill CS357: CTL Model Checking (two lectures worth) David Dill 1 CTL CTL = Computation Tree Logic It is a propositional temporal logic temporal logic extended to properties of events over time. CTL is a branching

More information

arxiv: v1 [cs.lo] 29 May 2014

arxiv: v1 [cs.lo] 29 May 2014 Under consideration for publication in Theory and Practice of Logic Programming 1 arxiv:1405.7739v1 [cs.lo] 29 May 2014 (Quantified) Horn Constraint Solving for Program Verification and Synthesis Andrey

More information

CTL Model checking. 1. finite number of processes, each having a finite number of finite-valued variables. Model-Checking

CTL Model checking. 1. finite number of processes, each having a finite number of finite-valued variables. Model-Checking CTL Model checking Assumptions:. finite number of processes, each having a finite number of finite-valued variables.. finite length of CTL formula Problem:Determine whether formula f 0 is true in a finite

More information

Model Checking with CTL. Presented by Jason Simas

Model Checking with CTL. Presented by Jason Simas Model Checking with CTL Presented by Jason Simas Model Checking with CTL Based Upon: Logic in Computer Science. Huth and Ryan. 2000. (148-215) Model Checking. Clarke, Grumberg and Peled. 1999. (1-26) Content

More information

Relational Interfaces and Refinement Calculus for Compositional System Reasoning

Relational Interfaces and Refinement Calculus for Compositional System Reasoning Relational Interfaces and Refinement Calculus for Compositional System Reasoning Viorel Preoteasa Joint work with Stavros Tripakis and Iulia Dragomir 1 Overview Motivation General refinement Relational

More information

A Short Introduction to Hoare Logic

A Short Introduction to Hoare Logic A Short Introduction to Hoare Logic Supratik Chakraborty I.I.T. Bombay June 23, 2008 Supratik Chakraborty (I.I.T. Bombay) A Short Introduction to Hoare Logic June 23, 2008 1 / 34 Motivation Assertion checking

More information

Advanced Topics in LP and FP

Advanced Topics in LP and FP Lecture 1: Prolog and Summary of this lecture 1 Introduction to Prolog 2 3 Truth value evaluation 4 Prolog Logic programming language Introduction to Prolog Introduced in the 1970s Program = collection

More information

Verifying Randomized Distributed Algorithms with PRISM

Verifying Randomized Distributed Algorithms with PRISM Verifying Randomized Distributed Algorithms with PRISM Marta Kwiatkowska, Gethin Norman, and David Parker University of Birmingham, Birmingham B15 2TT, United Kingdom {M.Z.Kwiatkowska,G.Norman,D.A.Parker}@cs.bham.ac.uk

More information

Halting and Equivalence of Program Schemes in Models of Arbitrary Theories

Halting and Equivalence of Program Schemes in Models of Arbitrary Theories Halting and Equivalence of Program Schemes in Models of Arbitrary Theories Dexter Kozen Cornell University, Ithaca, New York 14853-7501, USA, kozen@cs.cornell.edu, http://www.cs.cornell.edu/~kozen In Honor

More information

First-Order Theorem Proving and Vampire. Laura Kovács (Chalmers University of Technology) Andrei Voronkov (The University of Manchester)

First-Order Theorem Proving and Vampire. Laura Kovács (Chalmers University of Technology) Andrei Voronkov (The University of Manchester) First-Order Theorem Proving and Vampire Laura Kovács (Chalmers University of Technology) Andrei Voronkov (The University of Manchester) Outline Introduction First-Order Logic and TPTP Inference Systems

More information

Revising Distributed UNITY Programs is NP-Complete

Revising Distributed UNITY Programs is NP-Complete Revising Distributed UNITY Programs is NP-Complete Borzoo Bonakdarpour and Sandeep S. Kulkarni Department of Computer Science and Engineering Michigan State University East Lansing, MI 48824, U.S.A. {borzoo,sandeep}@cse.msu.edu

More information

Propositional Resolution

Propositional Resolution Artificial Intelligence Propositional Resolution Marco Piastra Propositional Resolution 1] Deductive systems and automation Is problem decidible? A deductive system a la Hilbert (i.e. derivation using

More information

IMITATOR: A Tool for Synthesizing Constraints on Timing Bounds of Timed Automata

IMITATOR: A Tool for Synthesizing Constraints on Timing Bounds of Timed Automata ICTAC 09 IMITATOR: A Tool for Synthesizing Constraints on Timing Bounds of Timed Automata Étienne ANDRÉ Laboratoire Spécification et Vérification LSV, ENS de Cachan & CNRS Étienne ANDRÉ (LSV) ICTAC 09

More information

Model Checking, Theorem Proving, and Abstract Interpretation: The Convergence of Formal Verification Technologies

Model Checking, Theorem Proving, and Abstract Interpretation: The Convergence of Formal Verification Technologies Model Checking, Theorem Proving, and Abstract Interpretation: The Convergence of Formal Verification Technologies Tom Henzinger EPFL Three Verification Communities Model checking: -automatic, but inefficient

More information

Introduction to Kleene Algebra Lecture 14 CS786 Spring 2004 March 15, 2004

Introduction to Kleene Algebra Lecture 14 CS786 Spring 2004 March 15, 2004 Introduction to Kleene Algebra Lecture 14 CS786 Spring 2004 March 15, 2004 KAT and Hoare Logic In this lecture and the next we show that KAT subsumes propositional Hoare logic (PHL). Thus the specialized

More information

Software Verification

Software Verification Software Verification Grégoire Sutre LaBRI, University of Bordeaux, CNRS, France Summer School on Verification Technology, Systems & Applications September 2008 Grégoire Sutre Software Verification VTSA

More information

Control Predicates Are Better Than Dummy Variables For Reasoning About Program Control

Control Predicates Are Better Than Dummy Variables For Reasoning About Program Control Control Predicates Are Better Than Dummy Variables For Reasoning About Program Control LESLIE LAMPORT Digital Equipment Corporation When explicit control predicates rather than dummy variables are used,

More information

6. Logical Inference

6. Logical Inference Artificial Intelligence 6. Logical Inference Prof. Bojana Dalbelo Bašić Assoc. Prof. Jan Šnajder University of Zagreb Faculty of Electrical Engineering and Computing Academic Year 2016/2017 Creative Commons

More information

Constraint Solving for Program Verification: Theory and Practice by Example

Constraint Solving for Program Verification: Theory and Practice by Example Constraint Solving for Program Verification: Theory and Practice by Example Andrey Rybalchenko Technische Universität München Abstract. Program verification relies on the construction of auxiliary assertions

More information

First-Order Theorem Proving and Vampire

First-Order Theorem Proving and Vampire First-Order Theorem Proving and Vampire Laura Kovács 1,2 and Martin Suda 2 1 TU Wien 2 Chalmers Outline Introduction First-Order Logic and TPTP Inference Systems Saturation Algorithms Redundancy Elimination

More information

Interpolant-based Transition Relation Approximation

Interpolant-based Transition Relation Approximation Interpolant-based Transition Relation Approximation Ranjit Jhala and K. L. McMillan 1 University of California, San Diego 2 Cadence Berkeley Labs Abstract. In predicate abstraction, exact image computation

More information

Information Flow Analysis via Path Condition Refinement

Information Flow Analysis via Path Condition Refinement Information Flow Analysis via Path Condition Refinement Mana Taghdiri, Gregor Snelting, Carsten Sinz Karlsruhe Institute of Technology, Germany FAST September 16, 2010 KIT University of the State of Baden-Wuerttemberg

More information

Using Patterns and Composite Propositions to Automate the Generation of Complex LTL Specifications

Using Patterns and Composite Propositions to Automate the Generation of Complex LTL Specifications Using Patterns and Composite Propositions to Automate the Generation of Complex LTL Specifications Salamah Salamah, Ann Q. Gates, Vladik Kreinovich, and Steve Roach Dept. of Computer Science, University

More information

Revising UNITY Programs: Possibilities and Limitations 1

Revising UNITY Programs: Possibilities and Limitations 1 Revising UNITY Programs: Possibilities and Limitations 1 Ali Ebnenasir, Sandeep S. Kulkarni, and Borzoo Bonakdarpour Software Engineering and Network Systems Laboratory Department of Computer Science and

More information

Formal Verification of Mobile Network Protocols

Formal Verification of Mobile Network Protocols Dipartimento di Informatica, Università di Pisa, Italy milazzo@di.unipi.it Pisa April 26, 2005 Introduction Modelling Systems Specifications Examples Algorithms Introduction Design validation ensuring

More information

Static Program Analysis using Abstract Interpretation

Static Program Analysis using Abstract Interpretation Static Program Analysis using Abstract Interpretation Introduction Static Program Analysis Static program analysis consists of automatically discovering properties of a program that hold for all possible

More information

Scalable and Accurate Verification of Data Flow Systems. Cesare Tinelli The University of Iowa

Scalable and Accurate Verification of Data Flow Systems. Cesare Tinelli The University of Iowa Scalable and Accurate Verification of Data Flow Systems Cesare Tinelli The University of Iowa Overview AFOSR Supported Research Collaborations NYU (project partner) Chalmers University (research collaborator)

More information

Formal Verification Techniques. Riccardo Sisto, Politecnico di Torino

Formal Verification Techniques. Riccardo Sisto, Politecnico di Torino Formal Verification Techniques Riccardo Sisto, Politecnico di Torino State exploration State Exploration and Theorem Proving Exhaustive exploration => result is certain (correctness or noncorrectness proof)

More information

Notes. Corneliu Popeea. May 3, 2013

Notes. Corneliu Popeea. May 3, 2013 Notes Corneliu Popeea May 3, 2013 1 Propositional logic Syntax We rely on a set of atomic propositions, AP, containing atoms like p, q. A propositional logic formula φ Formula is then defined by the following

More information

First-order resolution for CTL

First-order resolution for CTL First-order resolution for Lan Zhang, Ullrich Hustadt and Clare Dixon Department of Computer Science, University of Liverpool Liverpool, L69 3BX, UK {Lan.Zhang, U.Hustadt, CLDixon}@liverpool.ac.uk Abstract

More information

Overview. Discrete Event Systems Verification of Finite Automata. What can finite automata be used for? What can finite automata be used for?

Overview. Discrete Event Systems Verification of Finite Automata. What can finite automata be used for? What can finite automata be used for? Computer Engineering and Networks Overview Discrete Event Systems Verification of Finite Automata Lothar Thiele Introduction Binary Decision Diagrams Representation of Boolean Functions Comparing two circuits

More information

Computation Tree Logic

Computation Tree Logic Chapter 6 Computation Tree Logic Pnueli [88] has introduced linear temporal logic to the computer science community for the specification and verification of reactive systems. In Chapter 3 we have treated

More information

Easy Parameterized Verification of Biphase Mark and 8N1 Protocols

Easy Parameterized Verification of Biphase Mark and 8N1 Protocols Easy Parameterized Verification of Biphase Mark and 8N1 Protocols Geoffrey M. Brown, Indiana University geobrown@cs.indiana.edu Lee Pike (Presenting), Galois Connections 1 leepike@galois.com March 27,

More information

Lecture Notes on Inductive Definitions

Lecture Notes on Inductive Definitions Lecture Notes on Inductive Definitions 15-312: Foundations of Programming Languages Frank Pfenning Lecture 2 September 2, 2004 These supplementary notes review the notion of an inductive definition and

More information

Propositional and Predicate Logic - V

Propositional and Predicate Logic - V Propositional and Predicate Logic - V Petr Gregor KTIML MFF UK WS 2016/2017 Petr Gregor (KTIML MFF UK) Propositional and Predicate Logic - V WS 2016/2017 1 / 21 Formal proof systems Hilbert s calculus

More information

Efficient Algorithm for Reachability Checking in Modeling

Efficient Algorithm for Reachability Checking in Modeling Efficient Algorithm for Reachability Checking in Modeling Alexander Letichevsky 1, Olexander Letychevskyi 1, and Vladimir Peschanenko 2 1 Glushkov Institute of Cybernetics of NAS of Ukraine, 40 Glushkova

More information

Basing Decisions on Sentences in Decision Diagrams

Basing Decisions on Sentences in Decision Diagrams Proceedings of the Twenty-Sixth AAAI Conference on Artificial Intelligence Basing Decisions on Sentences in Decision Diagrams Yexiang Xue Department of Computer Science Cornell University yexiang@cs.cornell.edu

More information

Reducing CTL-live Model Checking to Semantic Entailment in First-Order Logic (Version 1)

Reducing CTL-live Model Checking to Semantic Entailment in First-Order Logic (Version 1) 1 Reducing CTL-live Model Checking to Semantic Entailment in First-Order Logic (Version 1) Amirhossein Vakili and Nancy A. Day Cheriton School of Computer Science University of Waterloo Waterloo, Ontario,

More information

Unifying Theories of Programming

Unifying Theories of Programming 1&2 Unifying Theories of Programming Unifying Theories of Programming 3&4 Theories Unifying Theories of Programming designs predicates relations reactive CSP processes Jim Woodcock University of York May

More information

EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization

EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization Discrete Systems Lecture: State-Space Exploration Stavros Tripakis University of California, Berkeley Stavros Tripakis:

More information

Decision Procedures for Satisfiability and Validity in Propositional Logic

Decision Procedures for Satisfiability and Validity in Propositional Logic Decision Procedures for Satisfiability and Validity in Propositional Logic Meghdad Ghari Institute for Research in Fundamental Sciences (IPM) School of Mathematics-Isfahan Branch Logic Group http://math.ipm.ac.ir/isfahan/logic-group.htm

More information

- Introduction to propositional, predicate and higher order logics

- Introduction to propositional, predicate and higher order logics Lecture 1: Deductive Verification of Reactive Systems - Introduction to propositional, predicate and higher order logics - Deductive Invariance Proofs Cristina Seceleanu MRTC, MdH E-mail: cristina.seceleanu@mdh.se

More information

Lecture Notes on Loop Variants and Convergence

Lecture Notes on Loop Variants and Convergence 15-414: Bug Catching: Automated Program Verification Lecture Notes on Loop Variants and Convergence Matt Fredrikson Ruben Martins Carnegie Mellon University Lecture 9 1 Introduction The move to total correctness

More information

Chapter 6: Computation Tree Logic

Chapter 6: Computation Tree Logic Chapter 6: Computation Tree Logic Prof. Ali Movaghar Verification of Reactive Systems Outline We introduce Computation Tree Logic (CTL), a branching temporal logic for specifying system properties. A comparison

More information

FORMAL METHODS LECTURE III: LINEAR TEMPORAL LOGIC

FORMAL METHODS LECTURE III: LINEAR TEMPORAL LOGIC Alessandro Artale (FM First Semester 2007/2008) p. 1/39 FORMAL METHODS LECTURE III: LINEAR TEMPORAL LOGIC Alessandro Artale Faculty of Computer Science Free University of Bolzano artale@inf.unibz.it http://www.inf.unibz.it/

More information

Finding Minimal Unsatisfiable Subsets in Linear Temporal Logic using BDDs

Finding Minimal Unsatisfiable Subsets in Linear Temporal Logic using BDDs Finding Minimal Unsatisfiable Subsets in Linear Temporal Logic using BDDs Timothy Sergeant Supervisors: Rajeev Goré and Jimmy Thomson Australian National University Abstract. When writing specifications

More information

Towards Lightweight Integration of SMT Solvers

Towards Lightweight Integration of SMT Solvers Towards Lightweight Integration of SMT Solvers Andrei Lapets Boston University Boston, USA lapets@bu.edu Saber Mirzaei Boston University Boston, USA smirzaei@bu.edu 1 Introduction A large variety of SMT

More information

Probabilistic Guarded Commands Mechanized in HOL

Probabilistic Guarded Commands Mechanized in HOL Probabilistic Guarded Commands Mechanized in HOL Joe Hurd joe.hurd@comlab.ox.ac.uk Oxford University Joint work with Annabelle McIver (Macquarie University) and Carroll Morgan (University of New South

More information

Lecture Notes: Axiomatic Semantics and Hoare-style Verification

Lecture Notes: Axiomatic Semantics and Hoare-style Verification Lecture Notes: Axiomatic Semantics and Hoare-style Verification 17-355/17-665/17-819O: Program Analysis (Spring 2018) Claire Le Goues and Jonathan Aldrich clegoues@cs.cmu.edu, aldrich@cs.cmu.edu It has

More information