Verification of Petri net properties in CLP

Size: px
Start display at page:

Download "Verification of Petri net properties in CLP"

Transcription

1 V C L I m p l e x e Operational Intelligence Verification of Petri net properties in CLP Guy A. Narboni gulliver.fr In this report, we show how to model a Petri net as a CLP program and how to solve some reachability problems in CLP using the fixed-point semantics of that program. We highlight the structural properties of both the logic part of the rules and the linear part of the constraint systems, which allow us to: traverse the state-space rather efficiently treat integer variables as real-valued ones, while retaining completeness of solving. We decompose the verification problem into two steps: first, we compute the set of all reachable states ; second, we check whether a given state property holds (or can be refuted) on that set. We finally report on our experiments with Prolog III. Introduction Petri nets are a graph-based formalism for concurrent process modeling. They are used in areas ranging from flexible manufacturing systems to telecommunication protocols. Petri nets consist of places (circles) and transitions (bars). Each transition relates a set of input places to a set of output places. An allocation of tokens to places is a marking. It globally describes a state of the concurrent system. A change of state occurs when a transition is fired, provided that all the transition s input places hold at least one token (or more, if explicitly specified). The number of tokens is then decremented in each of the input places and incremented in each of the output places. By starting from an initial marking and repeatedly applying transitions (one at a time), we can explore a system s behaviour. But simulation runs are not enough. To really gain confidence in a system design, we may have to prove some critical invariant properties, such as safety properties: forbidden states can never be reached or all reachable states must satisfy p, where p is a state formula. Checking such requirements (which can be specified in discrete time temporal logic) amounts to searching a state-space that can be infinite. Therefore, a general problem is of determining whether a given marking is reachable from an initial state. Yet, when convenient extensions such as inhibitor arcs are used, this verification problem becomes undecidable. This doesn t mean that proofs cannot be made in practice. Indeed, we know semi-algorithms for such purposes i.e., algorithms with no guarantee of termination. In this work, we follow the approach of Bérard-Fribourg for the analysis of reachability properties in Petri nets, and substitute a program written in Prolog III to the HyTech tool used for proving their examples. In doing so, we make an intensive use of both the constraint solving and the search capabilities of the language. The results we obtain, like those of Delzanno-Podelski, demonstrate the suitability of Constraint Logic Programming for symbolic Model Checking. Page 1 / 10

2 Rule-based search A straightforward correspondence can be drawn between a Petri net, viewed as a nondeterministic automaton (with counters), and a logic program (equipped with linear arithmetic constraints). In that setting, a transition becomes a rule and a marking a tuple of integers. A rule says that a marking M is reachable if it is the output of a transition whose input M is also reachable. The base case of this recursive program corresponds to the statement that the initial marking M 0 is a reachable state. Here is for instance how we can declare a transition relating places 1 and 3 to place 4, in a 5-place network, in Prolog III (using a tuple of numerical variables <x 1,..., x 5 >): reachable(<x 1-1, x 2, x 3-1, x 4 +1, x 5 >) -> reachable(<x 1, x 2, x 3, x 4, x 5 >), {x 1 >= 1, x 3 >= 1, x 2 >= 0, x 4 >= 0, x 5 >= 0} ; The constraints attached to the rule either appear within brackets (e.g., x >= 1) or, in functional form, within predicate arguments (e.g., x = x-1). They express the conditions under which the transition can be fired and the effect of the state change. Since there is no directionality in the constraint statements, we can as easily compute the precessor state from the successor or the successor from the predecessor. (This symmetry will be of interest for running backward and forward computations.) This 100% pure CLP program defines a closure property of the reachability relation. To derive all its logical consequences, i.e. here, the set of reachable states (or the program model), it is a standard practice to interpret the program rules in a bottom-up fashion. To that intent, we choose to operate on a dynamic database initialized with: fact(0, reachable(m 0 )) -> {description of the initial marking} ; At each step, we compute all immediate consequences and assert the reachable markings which are not already known. (This mechanism, similar to tabling, does not impair the declarative nature of our source program.) forward_iteration_step(i) -> fact(j, F) % select a fact rule(f, [F]) % select a rule: equivalent to clause (ISO) conditional_assert(fact(i, F )) fail, {J I} ; % considering only results of preceding iterations J forward_iteration_step(i) -> ; conditional_assert(fact(_, F)) -> fact(_, F)! % fact already asserted fail ; conditional_assert(fact(i, F)) -> assert(fact(i, F), []) ; We iterate the process until there is no new fact we can assert. The least fixed-point model is then reached: the generated database is ready to be queried. Page 2 / 10

3 Note: because of the symmetry of the transition rules, we can proceed in backward chaining in a manner quite similar to the way we proceed in forward chaining from a particular marking. To switch from bottom-up to top-down evaluation, we just havc to permute the antecedent and the consequent. backward_iteration_step(i) -> fact(j, F) rule(f, [F ]) conditional_assert(fact(i, F )) fail, {J I} ; backward_iteration_step(i) -> ; Another interest of this special clause structure (with two literals: one positive, one negative) is that we do not need to scan the whole fact base to produce new facts. Only the facts derived at the preceding iteration are of use. Thus, using our simple indexing of the fact base (by iteration steps), we can slash a great deal of the search. We can also reduce the overhead of meta-interpretation in the fixed-point computations by replacing calls to the rule built-in primitive with standard predicate calls. Therefore, as a pre-processing step, we transform the static rule base defining the unary reachable predicate into an equivalent fact base defining a binary transition predicate. Rewriting the previous example gives for instance: transition(<x 1,x 2,x 3,x 4,x 5 >, <x 1-1,x 2,x 3-1,x 4 +1,x 5 >) ->, {x 1 >= 1, x 3 >= 1, x 2 >= 0, x 4 >= 0, x 5 >= 0} ; The initial marking declaration becomes: fact(0, M 0 ) -> {description of the initial marking} ; and the iteration step simplifies to: forward_iteration_step(i) -> fact(i-1, M) transition(m, M ) conditional_assert(fact(i, M )) fail ; forward_iteration_step(i) -> ; This is almost all we need to show the presence or absence of deadlocks in the manufacturing example of [BF], when an initial marking is given. In this Petri net of 25 places and 14 transitions, the reachability graph happens to be finite for initial markings satisfying: x 2 = x 4 = x 7 = x 12 = x 13 = x 16 = x 19 = x 24 = 1, x 10 = x 15 = 3, and x 3 = x 5 = x 6 = x 8 = x 9 = x 11 = x 14 = x 17 = x 18 = x 20 = x 21 = x 22 = x 23 = x 25 = 0. A deadlock occurs when no transition can be fired, i.e., when, for each transition, there is at least one input place with no token allocated. Here, deadlock patterns are characterized by a simple state formula specifying the empty places : %Indexes: % deadlock(<_,0,_,_,0,_,0,_,0,0,_,0,0,_,_,0,_,_,0,0,_,0,0,_,0>) -> ; Page 3 / 10

4 Once the database is generated (assuming the fixed-point algorithm terminates), we can launch the following query which reads: does there exist a marking M that is both a deadlock state and a reachable state? deadlock(m) fact(_, M) ; If the state-space search done by Prolog III fails to produce an answer solution, it gives a proof of deadlock-freeness. If it succeeds, it returns a selection of states which are counterexamples. The following table summarizes results obtained with this simple procedure when the number of tokens in the initial marking varies from 1 to 12. Value of x1 Table 1: standard bottom-up evaluation Number of Iterations Generated Facts Approx. Time Deadlockfreeness yes yes yes yes yes yes yes yes no no no no Of course, the number of tokens that can be assigned to the first place is unbounded. If we want to know for which values of x 1 there is a chance of getting into a deadlock trap, i.e., if we want to reason symbolically, we need the full power of linear constraint solving. Page 4 / 10

5 Constraint-based reasoning Numerical constraints allow us to reason about markings that are only partially specified. From a geometrical point of view, a marking is a point in an n-dimensional space, namely the set of integer tuples N n. A partially specified marking can denote any point in a given subset (or region) of N n. The constraints present in our rule base are basic linear equations and inequations. They define regions which are closed convex polyhedra. When trying to unify (or match) two markings intentionally defined by two polyhedral regions (for inferring new facts), Prolog III s engine performs equation solving. Unification succeeds if the conjunction of the constraint systems brought together (by the goal and the head of the rule) is satisfiable. In other words, if the two regions in N n share a non-empty intersection. Up to now, no mention has been made of the discrete nature of the numerical variables in these definitions. A first simple reason is that Prolog III does not provide a relation restricting a number to be an integer. But a good reason is: this time we don t need it. This comes from the particular structure of the constraints manipulated. Constraints attached to the transition rules are the form: x Op k or: x - x Op k (where the constant k denotes an integer and where the operator Op is either, or =). These constraints express a difference of potentials. The specific linear systems Ay b built out of such constraints 1 have a well known property: they define the convex hull of their integer elements. If S = {y N m Ay b} is their solution set (possibly infinite) and if R = {y R + m Ay b} is its linear relaxation, proving that S contains members is equivalent to proving the non-emptyness of R which is a basic operation of the linear solver. We can therefore consider that integrality conditions are implicit, without affecting the completeness of solving. Computing the immediate consequences of a marking belonging to a polyhedral region of R n amounts to producing new non-empty polyhedral regions whose projection on to R n define new markings. In other words, abstracting computations on markings leads to computations on regions. Provided we start from a convex hull region, all we can produce are convex hull regions. Incidentally, our dynamic database becomes a database of constrained facts 2. The only change in the procedure affects the conditions for recording a new entry in the database. Checking for inclusion instead of equality between facts is now essential for termination. Unfortunately, Prolog III does not provide a built-in mechanism for deciding whether or not a given constraint system implies another. However, meta-programming 1. A matrix in O/1, b integer vector. 2. Prolog III has the native ability to assert a fact or rule with the constraint system attached to it (which defines the projected set of current solutions). Page 5 / 10

6 facilities are offered for converting constraints into non-interpreted terms (data trees) to manipulate then syntactically. Therefore, we can program by hand the test for inclusion we need to insert in the code: conditional_assert(fact(_, F)) -> fact(_, E) contains(e, F)! % replaces {E = F} fail ; conditional_assert(fact(i, F)) -> assert(fact(i, F), []) ; Note: the facts asserted define a finite union of polyhedra (solutions to a disjunction of conjunctions of linear constraints). In principle, we should only add to the database regions which are not contained in any combination of recorded polyhedra instead of looking up in the current table for a single enclosing polyhedron. But the decision procedure for full subsumption would be far more complex than the one adopted, without guaranteeing termination anyway. Since we are reasoning on fixed-sized markings, the old and new sets we are comparing in E F are two polyhedral subsets of R + n. Assume (to simplify) that E is full-dimensional. Then E is the intersection of a finite number of hyperplanes H p, and testing E F amounts to testing H p F for all ps. Now, a hyperplane H is defined by a single linear inequation: H = {x R n ax ß} (where a is a vector of R n and ß a scalar). The complement of H in R n is also a hyperplane : H = {x R n ax > ß}. Converting the definition of H into the definition of H therefore amounts to reverting the inequality sign and making sure that it is strict. Having done that, we can replace the former test for inclusion: H F by an equivalent test for emptyness: H F =. The latter boils down to checking the satisfiability of a linear constraint system. By going up to the abstract syntaxt level, then down to the concrete interpretation level, we are able to transform the test for inclusion into a series of satisfiability checks that are basic to CLP. Additionally, we can compile the corresponding conditions on the fly and make a virtue of necessity. We can now go back to the manufacturing example and deduce the states that are reachable from an initial marking partially specified as follows: %Indexes: % fact(0, <x 1,1,0,1,0,0,1,0,0,3,0,1,1,0,3,1,0,0,1,0,0,0,0,1,0>) -> {x 1 >= 0} ; forward % computes the constraint database of reachable states deadlock(m) fact(_, M) ; {M = <z,0,1,1,0,1,0,1,0,0,3,0,0,1,2,0,1,1,0,0,1,0,0,1,0>, z >= 0} The answer to the above query shows there is a risk of deadlock: for any (integer) instance of z, M is a deadlock state which is reachable from a marking of the initial region (e.g., we have already proved the case for z = 2 and x 1 = 11). Page 6 / 10

7 If we want to be more precise, we need to add a 26th argument to our model that is passed through in forward mode and will act as a pointer to the initial value of x 1. Thus, we relaunch the search, starting from: fact(0, <x 1,1,0,1,0,0,1,0,0,3,0,1,1,0,3,1,0,0,1,0,0,0,0,1,0,x 1 >) -> {x 1 >= 1} ; forward deadlock(m) fact(m.<q>) ; {M = <z,0,1,1,0,1,0,1,0,0,3,0,0,1,2,0,1,1,0,0,1,0,0,1,0>, q = z + 9, z >= 0} We conclude that a necessary and sufficient condition of deadlock-freeness is: x 1 8. Our results are consistent with those obtained with HyTech. Checker Table 2: manufacturing Number of Iterations Generated Facts Approx. Time Prolog III HyTech a a. we presume our implementation is an order of magnitude slower than HyTech. Comments: With exactly the same number of iterations and generated facts as for x 1 = 12 in the previous experiment, the twenty-fold time increase shows the cost paid for implication checking instead of unification. HyTech s removal of redundant regions explains our greater number of generated facts (we check that no fact is subsumed by an older fact, but an old fact can still be subsumed by a new one). A difference in search strategy might explain our smaller number of iterations. Page 7 / 10

8 Extensions to the method If the fixed-point procedure converges too slowly or does not terminate, generation flounders. When this is the case and it happens for the deceptively simple swimming pool example of [BF] (7 places, 6 transitions but 2 query parameters), we need to resort to some accelerating technique. A possible remedy consists in adding fused transitions as well as moving to metatransitions. Fused transitions are short-cuts corresponding to compositions of transitions that are applied in one step (e.g., r 1 r 2 r 3 vs. r 1 then r 2 then r 3 ). They can speed-up convergence by favouring the production of regions of greater interest. As redundant arcs in the graph, they neither affect the rule structure nor the solution set. In contrast, metatransitions do. A meta-transition corresponds to the repeated application of a transition r an arbitrary number of times in a single step (i.e., r k with k N * ). For instance, the meta-transition generalizing our rule example removes k tokens from places 1 and 3 and deposits k tokens in place 4: transition(<x 1,x 2,x 3,x 4,x 5 >, <x 1 -k,x 2,x 3 -k,x 4 +k,x 5 >) ->, {x 1 >= k, x 3 >= k, x 2 >= 0, x 4 >= 0, x 5 >= 0, k >= 1} ; Meta-transitions change the syntactic structure of the constraint system: first, we move to a higher dimensional space with a new (existentially quantified) variable k that will have to be eliminated by projection second, with equations of the form: x = x - 2k (when the original transition consumes more than a token, e.g., 2), we no longer have the guarantee that the linear relaxation of the integer system corresponds to its convex hull 1, i.e., to its tightest approximation. Assume the generation procedure successfully terminates with the modified rule base. Then the finite union of regions U produced by applying meta-transitions in place of transitions gives an upper approximation of the set of all the reachable states. We can no longer conclude that a marking in U is reachable. But we know there is no reachable marking outside U. By using meta-transitions with the 6 suggested fused transitions, and running the swimming pool example backward, from a deadlock state, we are able to show, as with HyTech, that we can cross the initial state region. Checker Table 3: swimming pool Number of Iterations Generated Facts Approx. Time Prolog III HyTech Now a proof would require to exhibit a deadlock path. But this is a relatively small price to pay compared to the gain in performance improvement. Besides, we can facilitate this new combinatorial search by specifically adorning the constrained facts generated with Prolog III. 1. This property was a consequence of the total unimodularity of the system s matrix [Sc]. Page 8 / 10

9 The expressive power of our constrained rules can be used to model communicating systems that may require an extended Petri net setting (0-tests, inhibitor arcs, etc.) or simply may not be originally defined as such. Therefore, we have a great latitude in choosing examples for performing reachability analysis. Taken from [DP], the backery n and ticket n are two algorithms ensuring that no two processes (among n concurrent ones) can enter a critical section simultaneously. Processes are assigned priorities which are local (and can be reset to zero) in the bakery case, whereas they are global (and can grow indefinitely) in the ticket example. The last two protocols, from the same benchmark suite, model communications without loss of data between a producer and a consumer, using bounded or unbounded buffers respectively. The invariants checked express the balance flow between the number of elements produced, the number of elements consumed and the ones within the buffers. Bench Program Proof of Property Table 4: other case studies Number of Iterations Generated Facts Direct Proof Metatransitions In the above table, the examples are often small enough to be proved by hand. Fused transitions bakery2 mutual exclusion 5 16 yes no no bakery3 mutual exclusion yes no no bakery4 mutual exclusion yes no no ticket2 mutual exclusion 6 19 no yes yes b.buffer prog. invariant 0 1 yes no no u.buffer prog. invariant 0 2 no yes no In contrast, the PNCSA communication protocol is a real example where, before the experiments of [BF], nobody suspected a possible deadlock path. The proof of this property is obtained by an astute combination of fused transitions and meta-transitions. And again, the model checker s results can be reproduced with our CLP prototype. Checker Table 5: PNCSA (simplified) Number of Iterations Generated Facts Approx. Time Prolog III HyTech 9 3 Page 9 / 10

10 Conclusion Following up the method of Bérard-Fribourg, we have shown in this report how to model a Petri net as a CLP program and how solve some reachability problems in CLP using the fixed-point semantics of that program. We have highlighted the structural properties of both the logic part of the rules and the linear part of the constraint systems, which allow us to: traverse the state-space rather efficiently treat integer variables as real-valued ones, while retaining completeness of solving (as long as we don t make use of meta-transitions). We have decomposed the verification problem into two steps: first, compute the set of all reachable states ; second, check whether a given state property holds (or can be refuted) on that set. Step by step, we have moved from computations on markings to computations on regions, then, for the sake of accelerating convergence, to computations on upper approximated marking regions. By giving a polyhedral interpretation of the three basic operations: satisfiability check (non-emptyness of intersection), implication check (inclusion) and variable elimination (projection), we have outlined a prototype implementation in Prolog III which enables us to prove the examples of [BF] in a way similar to HyTech. This approach to model checking is very much in the vein of Delzanno-Podelski s. Their CLP implementation is based on Sicstus Prolog s CLP(Q) library which provides a fully featured meta-interpreted linear constraint solver. While more insight has to be gained into the widening techniques they use in their proofs, table 4 comparisons suggest that fusions and meta-transitions could actually form a viable alternative. References [BF] Bérard B., Fribourg L. Reachability analysis of timed Petri nets using Real arithmetic Proc. CONCUR 99, LNCS 1664, pp , [DP] Delzanno G., Podelski A. Model Checking in CLP Proc. TACAS 99, LNCS 1579, pp , [Co] Colmerauer A. An introduction to Prolog III CACM Vol.33, No. 7, [Ko] Kowalski R. Logic for Problem Solving AI series, The Computer science library, North Holland, [Sc] Schrijver A. Theory of Linear and Integer Programming Wiley-Interscience series in Discrete Mathematics and Optimization, Page 10 / 10

Action Language Verifier, Extended

Action Language Verifier, Extended Action Language Verifier, Extended Tuba Yavuz-Kahveci 1, Constantinos Bartzis 2, and Tevfik Bultan 3 1 University of Florida 2 Carnegie Mellon University 3 UC, Santa Barbara 1 Introduction Action Language

More information

LOGIC AND DISCRETE MATHEMATICS

LOGIC AND DISCRETE MATHEMATICS LOGIC AND DISCRETE MATHEMATICS A Computer Science Perspective WINFRIED KARL GRASSMANN Department of Computer Science University of Saskatchewan JEAN-PAUL TREMBLAY Department of Computer Science University

More information

Programming Languages Third Edition

Programming Languages Third Edition Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand

More information

Petri Nets ee249 Fall 2000

Petri Nets ee249 Fall 2000 Petri Nets ee249 Fall 2000 Marco Sgroi Most slides borrowed from Luciano Lavagno s lecture ee249 (1998) 1 Models Of Computation for reactive systems Main MOCs: Communicating Finite State Machines Dataflow

More information

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered

More information

COMP4418 Knowledge Representation and Reasoning

COMP4418 Knowledge Representation and Reasoning COMP4418 Knowledge Representation and Reasoning Week 3 Practical Reasoning David Rajaratnam Click to edit Present s Name Practical Reasoning - My Interests Cognitive Robotics. Connect high level cognition

More information

Integer Programming Theory

Integer Programming Theory Integer Programming Theory Laura Galli October 24, 2016 In the following we assume all functions are linear, hence we often drop the term linear. In discrete optimization, we seek to find a solution x

More information

Outline. Petri nets. Introduction Examples Properties Analysis techniques. 1 EE249Fall04

Outline. Petri nets. Introduction Examples Properties Analysis techniques. 1 EE249Fall04 Outline Petri nets Introduction Examples Properties Analysis techniques 1 Petri Nets (PNs) Model introduced by C.A. Petri in 1962 Ph.D. Thesis: Communication with Automata Applications: distributed computing,

More information

Timed Automata: Semantics, Algorithms and Tools

Timed Automata: Semantics, Algorithms and Tools Timed Automata: Semantics, Algorithms and Tools Johan Bengtsson and Wang Yi Uppsala University Email: {johanb,yi}@it.uu.se Abstract. This chapter is to provide a tutorial and pointers to results and related

More information

Counting multiplicity over infinite alphabets

Counting multiplicity over infinite alphabets Counting multiplicity over infinite alphabets Amal Dev Manuel and R. Ramanujam The Institute of Mathematical Sciences, Chennai, India {amal,jam}@imsc.res.in Summary Motivation for infinite data. We need

More information

Semantics via Syntax. f (4) = if define f (x) =2 x + 55.

Semantics via Syntax. f (4) = if define f (x) =2 x + 55. 1 Semantics via Syntax The specification of a programming language starts with its syntax. As every programmer knows, the syntax of a language comes in the shape of a variant of a BNF (Backus-Naur Form)

More information

1 Lexical Considerations

1 Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2013 Handout Decaf Language Thursday, Feb 7 The project for the course is to write a compiler

More information

Distributed Systems Programming (F21DS1) Formal Verification

Distributed Systems Programming (F21DS1) Formal Verification Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on

More information

Model checking pushdown systems

Model checking pushdown systems Model checking pushdown systems R. Ramanujam Institute of Mathematical Sciences, Chennai jam@imsc.res.in Update Meeting, IIT-Guwahati, 4 July 2006 p. 1 Sources of unboundedness Data manipulation: integers,

More information

Chapter 3. Set Theory. 3.1 What is a Set?

Chapter 3. Set Theory. 3.1 What is a Set? Chapter 3 Set Theory 3.1 What is a Set? A set is a well-defined collection of objects called elements or members of the set. Here, well-defined means accurately and unambiguously stated or described. Any

More information

Timed Automata From Theory to Implementation

Timed Automata From Theory to Implementation Timed Automata From Theory to Implementation Patricia Bouyer LSV CNRS & ENS de Cachan France Chennai january 2003 Timed Automata From Theory to Implementation p.1 Roadmap Timed automata, decidability issues

More information

Directed Model Checking for PROMELA with Relaxation-Based Distance Functions

Directed Model Checking for PROMELA with Relaxation-Based Distance Functions Directed Model Checking for PROMELA with Relaxation-Based Distance Functions Ahmad Siyar Andisha and Martin Wehrle 2 and Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany {andishaa,westphal}@informatik.uni-freiburg.de

More information

Summary of Course Coverage

Summary of Course Coverage CS-227, Discrete Structures I Spring 2006 Semester Summary of Course Coverage 1) Propositional Calculus a) Negation (logical NOT) b) Conjunction (logical AND) c) Disjunction (logical inclusive-or) d) Inequalities

More information

VS 3 : SMT Solvers for Program Verification

VS 3 : SMT Solvers for Program Verification VS 3 : SMT Solvers for Program Verification Saurabh Srivastava 1,, Sumit Gulwani 2, and Jeffrey S. Foster 1 1 University of Maryland, College Park, {saurabhs,jfoster}@cs.umd.edu 2 Microsoft Research, Redmond,

More information

Lecture notes on the simplex method September We will present an algorithm to solve linear programs of the form. maximize.

Lecture notes on the simplex method September We will present an algorithm to solve linear programs of the form. maximize. Cornell University, Fall 2017 CS 6820: Algorithms Lecture notes on the simplex method September 2017 1 The Simplex Method We will present an algorithm to solve linear programs of the form maximize subject

More information

GSPeeDI a Verification Tool for Generalized Polygonal Hybrid Systems

GSPeeDI a Verification Tool for Generalized Polygonal Hybrid Systems GSPeeDI a Verification Tool for Generalized Polygonal Hybrid Systems Hallstein A. Hansen 1 and Gerardo Schneider 2 1 Buskerud University College, Kongsberg, Norway Hallstein.Asheim.Hansen@hibu.no 2 Dept.

More information

Multi-paradigm Declarative Languages

Multi-paradigm Declarative Languages Michael Hanus (CAU Kiel) Multi-paradigm Declarative Languages ICLP 2007 1 Multi-paradigm Declarative Languages Michael Hanus Christian-Albrechts-University of Kiel Programming Languages and Compiler Construction

More information

On the Definition of Sequential Consistency

On the Definition of Sequential Consistency On the Definition of Sequential Consistency Ali Sezgin Ganesh Gopalakrishnan Abstract The definition of sequential consistency is compared with an intuitive notion of correctness. A relation between what

More information

Foundations of AI. 9. Predicate Logic. Syntax and Semantics, Normal Forms, Herbrand Expansion, Resolution

Foundations of AI. 9. Predicate Logic. Syntax and Semantics, Normal Forms, Herbrand Expansion, Resolution Foundations of AI 9. Predicate Logic Syntax and Semantics, Normal Forms, Herbrand Expansion, Resolution Wolfram Burgard, Andreas Karwath, Bernhard Nebel, and Martin Riedmiller 09/1 Contents Motivation

More information

Introduction to Mathematical Programming IE496. Final Review. Dr. Ted Ralphs

Introduction to Mathematical Programming IE496. Final Review. Dr. Ted Ralphs Introduction to Mathematical Programming IE496 Final Review Dr. Ted Ralphs IE496 Final Review 1 Course Wrap-up: Chapter 2 In the introduction, we discussed the general framework of mathematical modeling

More information

Part I Logic programming paradigm

Part I Logic programming paradigm Part I Logic programming paradigm 1 Logic programming and pure Prolog 1.1 Introduction 3 1.2 Syntax 4 1.3 The meaning of a program 7 1.4 Computing with equations 9 1.5 Prolog: the first steps 15 1.6 Two

More information

Automatic synthesis of switching controllers for linear hybrid systems: Reachability control

Automatic synthesis of switching controllers for linear hybrid systems: Reachability control Automatic synthesis of switching controllers for linear hybrid systems: Reachability control Massimo Benerecetti and Marco Faella Università di Napoli Federico II, Italy Abstract. We consider the problem

More information

Functional Logic Programming. Kristjan Vedel

Functional Logic Programming. Kristjan Vedel Functional Logic Programming Kristjan Vedel Imperative vs Declarative Algorithm = Logic + Control Imperative How? Explicit Control Sequences of commands for the computer to execute Declarative What? Implicit

More information

DISCRETE MATHEMATICS

DISCRETE MATHEMATICS DISCRETE MATHEMATICS WITH APPLICATIONS THIRD EDITION SUSANNA S. EPP DePaul University THOIVISON * BROOKS/COLE Australia Canada Mexico Singapore Spain United Kingdom United States CONTENTS Chapter 1 The

More information

Lexical Considerations

Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2010 Handout Decaf Language Tuesday, Feb 2 The project for the course is to write a compiler

More information

! Use of formal notations. ! in software system descriptions. ! for a broad range of effects. ! and varying levels of use. !

! Use of formal notations. ! in software system descriptions. ! for a broad range of effects. ! and varying levels of use. ! What Are Formal Methods? David S. Rosenblum ICS 221 Winter 2001! Use of formal notations! first-order logic, state machines, etc.! in software system descriptions! system models, constraints, specifications,

More information

Handout 9: Imperative Programs and State

Handout 9: Imperative Programs and State 06-02552 Princ. of Progr. Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 9: Imperative Programs and State Imperative

More information

CSC 501 Semantics of Programming Languages

CSC 501 Semantics of Programming Languages CSC 501 Semantics of Programming Languages Subtitle: An Introduction to Formal Methods. Instructor: Dr. Lutz Hamel Email: hamel@cs.uri.edu Office: Tyler, Rm 251 Books There are no required books in this

More information

Chapter 15 Introduction to Linear Programming

Chapter 15 Introduction to Linear Programming Chapter 15 Introduction to Linear Programming An Introduction to Optimization Spring, 2015 Wei-Ta Chu 1 Brief History of Linear Programming The goal of linear programming is to determine the values of

More information

(Refer Slide Time: 0:19)

(Refer Slide Time: 0:19) Theory of Computation. Professor somenath Biswas. Department of Computer Science & Engineering. Indian Institute of Technology, Kanpur. Lecture-15. Decision Problems for Regular Languages. (Refer Slide

More information

CS599: Convex and Combinatorial Optimization Fall 2013 Lecture 14: Combinatorial Problems as Linear Programs I. Instructor: Shaddin Dughmi

CS599: Convex and Combinatorial Optimization Fall 2013 Lecture 14: Combinatorial Problems as Linear Programs I. Instructor: Shaddin Dughmi CS599: Convex and Combinatorial Optimization Fall 2013 Lecture 14: Combinatorial Problems as Linear Programs I Instructor: Shaddin Dughmi Announcements Posted solutions to HW1 Today: Combinatorial problems

More information

Runtime Checking for Program Verification Systems

Runtime Checking for Program Verification Systems Runtime Checking for Program Verification Systems Karen Zee, Viktor Kuncak, and Martin Rinard MIT CSAIL Tuesday, March 13, 2007 Workshop on Runtime Verification 1 Background Jahob program verification

More information

CSE 20 DISCRETE MATH. Fall

CSE 20 DISCRETE MATH. Fall CSE 20 DISCRETE MATH Fall 2017 http://cseweb.ucsd.edu/classes/fa17/cse20-ab/ Final exam The final exam is Saturday December 16 11:30am-2:30pm. Lecture A will take the exam in Lecture B will take the exam

More information

The Constraint Database Approach to Software Verification

The Constraint Database Approach to Software Verification The Constraint Database Approach to Software Verification Peter Revesz Max Planck Institut für Informatik University of Nebraska-Lincoln revesz@cse.unl.edu Abstract. Based on constraint database techniques,

More information

[Ch 6] Set Theory. 1. Basic Concepts and Definitions. 400 lecture note #4. 1) Basics

[Ch 6] Set Theory. 1. Basic Concepts and Definitions. 400 lecture note #4. 1) Basics 400 lecture note #4 [Ch 6] Set Theory 1. Basic Concepts and Definitions 1) Basics Element: ; A is a set consisting of elements x which is in a/another set S such that P(x) is true. Empty set: notated {

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

More information

An Annotated Language

An Annotated Language Hoare Logic An Annotated Language State and Semantics Expressions are interpreted as functions from states to the corresponding domain of interpretation Operators have the obvious interpretation Free of

More information

Structure of Abstract Syntax trees for Colored Nets in PNML

Structure of Abstract Syntax trees for Colored Nets in PNML Structure of Abstract Syntax trees for Colored Nets in PNML F. Kordon & L. Petrucci Fabrice.Kordon@lip6.fr Laure.Petrucci@lipn.univ-paris13.fr version 0.2 (draft) June 26, 2004 Abstract Formalising the

More information

ABC basics (compilation from different articles)

ABC basics (compilation from different articles) 1. AIG construction 2. AIG optimization 3. Technology mapping ABC basics (compilation from different articles) 1. BACKGROUND An And-Inverter Graph (AIG) is a directed acyclic graph (DAG), in which a node

More information

Harvard School of Engineering and Applied Sciences CS 152: Programming Languages

Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Lecture 19 Tuesday, April 3, 2018 1 Introduction to axiomatic semantics The idea in axiomatic semantics is to give specifications

More information

AND-OR GRAPHS APPLIED TO RUE RESOLUTION

AND-OR GRAPHS APPLIED TO RUE RESOLUTION AND-OR GRAPHS APPLIED TO RUE RESOLUTION Vincent J. Digricoli Dept. of Computer Science Fordham University Bronx, New York 104-58 James J, Lu, V. S. Subrahmanian Dept. of Computer Science Syracuse University-

More information

COMPUTER SCIENCE TRIPOS

COMPUTER SCIENCE TRIPOS CST.2011.3.1 COMPUTER SCIENCE TRIPOS Part IB Monday 6 June 2011 1.30 to 4.30 COMPUTER SCIENCE Paper 3 Answer five questions. Submit the answers in five separate bundles, each with its own cover sheet.

More information

Formal Methods in Software Engineering. Lecture 07

Formal Methods in Software Engineering. Lecture 07 Formal Methods in Software Engineering Lecture 07 What is Temporal Logic? Objective: We describe temporal aspects of formal methods to model and specify concurrent systems and verify their correctness

More information

Language Overview for PHAVer version 0.35

Language Overview for PHAVer version 0.35 Language Overview for PHAVer version 0.35 Goran Frehse June 22, 2006 We have tried to construct a textual input language that is as user friendly as possible, while keeping the parser simple. In the syntax,

More information

Chapter 3. Describing Syntax and Semantics

Chapter 3. Describing Syntax and Semantics Chapter 3 Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings of Programs:

More information

Reducing Clocks in Timed Automata while Preserving Bisimulation

Reducing Clocks in Timed Automata while Preserving Bisimulation Reducing Clocks in Timed Automata while Preserving Bisimulation Shibashis Guha Chinmay Narayan S. Arun-Kumar Indian Institute of Technology Delhi {shibashis, chinmay, sak}@cse.iitd.ac.in arxiv:1404.6613v2

More information

Alloy: A Lightweight Object Modelling Notation

Alloy: A Lightweight Object Modelling Notation Alloy: A Lightweight Object Modelling Notation Daniel Jackson, ACM Transactions on Software Engineering, 2002 Presented By: Steven Stewart, 2012-January-23 1 Alloy: 2002 to present Software is built on

More information

Self Stabilization. CS553 Distributed Algorithms Prof. Ajay Kshemkalyani. by Islam Ismailov & Mohamed M. Ali

Self Stabilization. CS553 Distributed Algorithms Prof. Ajay Kshemkalyani. by Islam Ismailov & Mohamed M. Ali Self Stabilization CS553 Distributed Algorithms Prof. Ajay Kshemkalyani by Islam Ismailov & Mohamed M. Ali Introduction There is a possibility for a distributed system to go into an illegitimate state,

More information

The PCAT Programming Language Reference Manual

The PCAT Programming Language Reference Manual The PCAT Programming Language Reference Manual Andrew Tolmach and Jingke Li Dept. of Computer Science Portland State University September 27, 1995 (revised October 15, 2002) 1 Introduction The PCAT language

More information

3 No-Wait Job Shops with Variable Processing Times

3 No-Wait Job Shops with Variable Processing Times 3 No-Wait Job Shops with Variable Processing Times In this chapter we assume that, on top of the classical no-wait job shop setting, we are given a set of processing times for each operation. We may select

More information

Local Two-Level And-Inverter Graph Minimization without Blowup

Local Two-Level And-Inverter Graph Minimization without Blowup Local Two-Level And-Inverter Graph Minimization without Blowup Robert Brummayer and Armin Biere Institute for Formal Models and Verification Johannes Kepler University Linz, Austria {robert.brummayer,

More information

Implementação de Linguagens 2016/2017

Implementação de Linguagens 2016/2017 Implementação de Linguagens Ricardo Rocha DCC-FCUP, Universidade do Porto ricroc @ dcc.fc.up.pt Ricardo Rocha DCC-FCUP 1 Logic Programming Logic programming languages, together with functional programming

More information

1 Inference for Boolean theories

1 Inference for Boolean theories Scribe notes on the class discussion on consistency methods for boolean theories, row convex constraints and linear inequalities (Section 8.3 to 8.6) Speaker: Eric Moss Scribe: Anagh Lal Corrector: Chen

More information

CS 267: Automated Verification. Lecture 13: Bounded Model Checking. Instructor: Tevfik Bultan

CS 267: Automated Verification. Lecture 13: Bounded Model Checking. Instructor: Tevfik Bultan CS 267: Automated Verification Lecture 13: Bounded Model Checking Instructor: Tevfik Bultan Remember Symbolic Model Checking Represent sets of states and the transition relation as Boolean logic formulas

More information

Module 6. Knowledge Representation and Logic (First Order Logic) Version 2 CSE IIT, Kharagpur

Module 6. Knowledge Representation and Logic (First Order Logic) Version 2 CSE IIT, Kharagpur Module 6 Knowledge Representation and Logic (First Order Logic) Lesson 15 Inference in FOL - I 6.2.8 Resolution We have introduced the inference rule Modus Ponens. Now we introduce another inference rule

More information

Flavor of Computational Geometry. Voronoi Diagrams. Shireen Y. Elhabian Aly A. Farag University of Louisville

Flavor of Computational Geometry. Voronoi Diagrams. Shireen Y. Elhabian Aly A. Farag University of Louisville Flavor of Computational Geometry Voronoi Diagrams Shireen Y. Elhabian Aly A. Farag University of Louisville March 2010 Pepperoni Sparse Pizzas Olive Sparse Pizzas Just Two Pepperonis A person gets the

More information

Lexical Considerations

Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Fall 2005 Handout 6 Decaf Language Wednesday, September 7 The project for the course is to write a

More information

A Gentle Introduction to Program Analysis

A Gentle Introduction to Program Analysis A Gentle Introduction to Program Analysis Işıl Dillig University of Texas, Austin January 21, 2014 Programming Languages Mentoring Workshop 1 / 24 What is Program Analysis? Very broad topic, but generally

More information

Advanced Operations Research Techniques IE316. Quiz 1 Review. Dr. Ted Ralphs

Advanced Operations Research Techniques IE316. Quiz 1 Review. Dr. Ted Ralphs Advanced Operations Research Techniques IE316 Quiz 1 Review Dr. Ted Ralphs IE316 Quiz 1 Review 1 Reading for The Quiz Material covered in detail in lecture. 1.1, 1.4, 2.1-2.6, 3.1-3.3, 3.5 Background material

More information

Introduction to the Lambda Calculus

Introduction to the Lambda Calculus Introduction to the Lambda Calculus Overview: What is Computability? Church s Thesis The Lambda Calculus Scope and lexical address The Church-Rosser Property Recursion References: Daniel P. Friedman et

More information

On Detecting Global Predicates in Distributed Computations

On Detecting Global Predicates in Distributed Computations On Detecting Global Predicates in Distributed Computations Neeraj Mittal Department of Computer Sciences The University of Texas at Austin Austin TX 787-88 USA neerajm@cs.utexas.edu Vijay K. Garg Department

More information

Chapter 9: Constraint Logic Programming

Chapter 9: Constraint Logic Programming 9. Constraint Logic Programming 9-1 Deductive Databases and Logic Programming (Winter 2007/2008) Chapter 9: Constraint Logic Programming Introduction, Examples Basic Query Evaluation Finite Domain Constraint

More information

Small Formulas for Large Programs: On-line Constraint Simplification In Scalable Static Analysis

Small Formulas for Large Programs: On-line Constraint Simplification In Scalable Static Analysis Small Formulas for Large Programs: On-line Constraint Simplification In Scalable Static Analysis Isil Dillig, Thomas Dillig, Alex Aiken Stanford University Scalability and Formula Size Many program analysis

More information

Draft Standard for Verilog. Randomization and Constraints. Extensions

Draft Standard for Verilog. Randomization and Constraints. Extensions Draft Standard for Verilog Randomization and Constraints Extensions Copyright 2003 by Cadence Design Systems, Inc. This document is an unapproved draft of a proposed IEEE Standard. As such, this document

More information

Chapter 16. Logic Programming. Topics. Unification. Resolution. Prolog s Search Strategy. Prolog s Search Strategy

Chapter 16. Logic Programming. Topics. Unification. Resolution. Prolog s Search Strategy. Prolog s Search Strategy Topics Chapter 16 Logic Programming Summary (resolution, unification, Prolog search strategy ) Disjoint goals The cut operator Negative goals Predicate fail Debugger / tracer Lists 2 Resolution Resolution

More information

Cuts from Proofs: A Complete and Practical Technique for Solving Linear Inequalities over Integers

Cuts from Proofs: A Complete and Practical Technique for Solving Linear Inequalities over Integers Cuts from Proofs: A Complete and Practical Technique for Solving Linear Inequalities over Integers Isil Dillig, Thomas Dillig, and Alex Aiken Computer Science Department Stanford University Linear Arithmetic

More information

Introduction to Automata Theory. BİL405 - Automata Theory and Formal Languages 1

Introduction to Automata Theory. BİL405 - Automata Theory and Formal Languages 1 Introduction to Automata Theory BİL405 - Automata Theory and Formal Languages 1 Automata, Computability and Complexity Automata, Computability and Complexity are linked by the question: What are the fundamental

More information

Timo Latvala. January 28, 2004

Timo Latvala. January 28, 2004 Reactive Systems: Kripke Structures and Automata Timo Latvala January 28, 2004 Reactive Systems: Kripke Structures and Automata 3-1 Properties of systems invariants: the system never reaches a bad state

More information

Cover Page. The handle holds various files of this Leiden University dissertation

Cover Page. The handle   holds various files of this Leiden University dissertation Cover Page The handle http://hdl.handle.net/1887/22891 holds various files of this Leiden University dissertation Author: Gouw, Stijn de Title: Combining monitoring with run-time assertion checking Issue

More information

AXIOMS OF AN IMPERATIVE LANGUAGE PARTIAL CORRECTNESS WEAK AND STRONG CONDITIONS. THE AXIOM FOR nop

AXIOMS OF AN IMPERATIVE LANGUAGE PARTIAL CORRECTNESS WEAK AND STRONG CONDITIONS. THE AXIOM FOR nop AXIOMS OF AN IMPERATIVE LANGUAGE We will use the same language, with the same abstract syntax that we used for operational semantics. However, we will only be concerned with the commands, since the language

More information

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2016

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2016 Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2016 Lecture 15 Ana Bove May 23rd 2016 More on Turing machines; Summary of the course. Overview of today s lecture: Recap: PDA, TM Push-down

More information

Lecture Notes on Ints

Lecture Notes on Ints Lecture Notes on Ints 15-122: Principles of Imperative Computation Frank Pfenning Lecture 2 August 26, 2010 1 Introduction Two fundamental types in almost any programming language are booleans and integers.

More information

Boolean Representations and Combinatorial Equivalence

Boolean Representations and Combinatorial Equivalence Chapter 2 Boolean Representations and Combinatorial Equivalence This chapter introduces different representations of Boolean functions. It then discusses the applications of these representations for proving

More information

Lecture 9: Reachability

Lecture 9: Reachability Lecture 9: Reachability Outline of Lecture Reachability General Transition Systems Algorithms for Reachability Safety through Reachability Backward Reachability Algorithm Given hybrid automaton H : set

More information

Lecture 5 - Axiomatic semantics

Lecture 5 - Axiomatic semantics Program Verification March 2014 Lecture 5 - Axiomatic semantics Lecturer: Noam Rinetzky Scribes by: Nir Hemed 1.1 Axiomatic semantics The development of the theory is contributed to Robert Floyd, C.A.R

More information

AXIOMS FOR THE INTEGERS

AXIOMS FOR THE INTEGERS AXIOMS FOR THE INTEGERS BRIAN OSSERMAN We describe the set of axioms for the integers which we will use in the class. The axioms are almost the same as what is presented in Appendix A of the textbook,

More information

MA651 Topology. Lecture 4. Topological spaces 2

MA651 Topology. Lecture 4. Topological spaces 2 MA651 Topology. Lecture 4. Topological spaces 2 This text is based on the following books: Linear Algebra and Analysis by Marc Zamansky Topology by James Dugundgji Fundamental concepts of topology by Peter

More information

Linear programming and duality theory

Linear programming and duality theory Linear programming and duality theory Complements of Operations Research Giovanni Righini Linear Programming (LP) A linear program is defined by linear constraints, a linear objective function. Its variables

More information

COMP 763. Eugene Syriani. Ph.D. Student in the Modelling, Simulation and Design Lab School of Computer Science. McGill University

COMP 763. Eugene Syriani. Ph.D. Student in the Modelling, Simulation and Design Lab School of Computer Science. McGill University Eugene Syriani Ph.D. Student in the Modelling, Simulation and Design Lab School of Computer Science McGill University 1 OVERVIEW In the context In Theory: Timed Automata The language: Definitions and Semantics

More information

Relational Database: The Relational Data Model; Operations on Database Relations

Relational Database: The Relational Data Model; Operations on Database Relations Relational Database: The Relational Data Model; Operations on Database Relations Greg Plaxton Theory in Programming Practice, Spring 2005 Department of Computer Science University of Texas at Austin Overview

More information

Stochastic Petri nets

Stochastic Petri nets Stochastic Petri nets 1 Stochastic Petri nets Markov Chain grows very fast with the dimension of the system Petri nets: High-level specification formalism Markovian Stochastic Petri nets adding temporal

More information

Multi Domain Logic and its Applications to SAT

Multi Domain Logic and its Applications to SAT Multi Domain Logic and its Applications to SAT Tudor Jebelean RISC Linz, Austria Tudor.Jebelean@risc.uni-linz.ac.at Gábor Kusper Eszterházy Károly College gkusper@aries.ektf.hu Abstract We describe a new

More information

Software Engineering using Formal Methods

Software Engineering using Formal Methods Software Engineering using Formal Methods Introduction to Promela Wolfgang Ahrendt 03 September 2015 SEFM: Promela /GU 150903 1 / 36 Towards Model Checking System Model Promela Program byte n = 0; active

More information

Splitting the Control Flow with Boolean Flags

Splitting the Control Flow with Boolean Flags École Normale Supérieure, Paris, France A.Simon@ens.fr July 2008 Good States are Usually Convex Declare C variable int array[12];. 0 1 2 3 4 5 6 7 8 9 10 11 i Access array[i] within bound if 0 i and i

More information

Deductive Methods, Bounded Model Checking

Deductive Methods, Bounded Model Checking Deductive Methods, Bounded Model Checking http://d3s.mff.cuni.cz Pavel Parízek CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Deductive methods Pavel Parízek Deductive Methods, Bounded

More information

The Prolog to Mercury transition guide

The Prolog to Mercury transition guide The Prolog to Mercury transition guide Version 14.01.1 Thomas Conway Zoltan Somogyi Fergus Henderson Copyright c 1995 2014 The University of Melbourne. Permission is granted to make and distribute verbatim

More information

Promela and SPIN. Mads Dam Dept. Microelectronics and Information Technology Royal Institute of Technology, KTH. Promela and SPIN

Promela and SPIN. Mads Dam Dept. Microelectronics and Information Technology Royal Institute of Technology, KTH. Promela and SPIN Promela and SPIN Mads Dam Dept. Microelectronics and Information Technology Royal Institute of Technology, KTH Promela and SPIN Promela (Protocol Meta Language): Language for modelling discrete, event-driven

More information

Dataflow Languages. Languages for Embedded Systems. Prof. Stephen A. Edwards. March Columbia University

Dataflow Languages. Languages for Embedded Systems. Prof. Stephen A. Edwards. March Columbia University Dataflow Languages Languages for Embedded Systems Prof. Stephen A. Edwards Columbia University March 2009 Philosophy of Dataflow Languages Drastically different way of looking at computation Von Neumann

More information

Finite State Verification. CSCE Lecture 14-02/25/2016

Finite State Verification. CSCE Lecture 14-02/25/2016 Finite State Verification CSCE 747 - Lecture 14-02/25/2016 So, You Want to Perform Verification... You have a property that you want your program to obey. Great! Let s write some tests! Does testing guarantee

More information

Lecture 4: January 12, 2015

Lecture 4: January 12, 2015 32002: AI (First Order Predicate Logic, Interpretation and Inferences) Spring 2015 Lecturer: K.R. Chowdhary Lecture 4: January 12, 2015 : Professor of CS (VF) Disclaimer: These notes have not been subjected

More information

Formal Support for QVT-Relations with Coloured Petri Nets

Formal Support for QVT-Relations with Coloured Petri Nets Formal Support for QVT-Relations with Coloured Petri Nets Juan de Lara Univ. Autónoma de Madrid (Spain) MODELS 2009 Denver, Colorado, USA Esther Guerra 1 Univ. Carlos III de Madrid (Spain) Motivation Model-to-Model

More information

4 Integer Linear Programming (ILP)

4 Integer Linear Programming (ILP) TDA6/DIT37 DISCRETE OPTIMIZATION 17 PERIOD 3 WEEK III 4 Integer Linear Programg (ILP) 14 An integer linear program, ILP for short, has the same form as a linear program (LP). The only difference is that

More information

The Apron Library. Bertrand Jeannet and Antoine Miné. CAV 09 conference 02/07/2009 INRIA, CNRS/ENS

The Apron Library. Bertrand Jeannet and Antoine Miné. CAV 09 conference 02/07/2009 INRIA, CNRS/ENS The Apron Library Bertrand Jeannet and Antoine Miné INRIA, CNRS/ENS CAV 09 conference 02/07/2009 Context : Static Analysis What is it about? Discover properties of a program statically and automatically.

More information

Incompatibility Dimensions and Integration of Atomic Commit Protocols

Incompatibility Dimensions and Integration of Atomic Commit Protocols The International Arab Journal of Information Technology, Vol. 5, No. 4, October 2008 381 Incompatibility Dimensions and Integration of Atomic Commit Protocols Yousef Al-Houmaily Department of Computer

More information

Chapter 3: Propositional Languages

Chapter 3: Propositional Languages Chapter 3: Propositional Languages We define here a general notion of a propositional language. We show how to obtain, as specific cases, various languages for propositional classical logic and some non-classical

More information