LANGUAGES, LOGICS, TYPES AND TOOLS FOR CONCURRENT SYSTEM MODELLING

Size: px
Start display at page:

Download "LANGUAGES, LOGICS, TYPES AND TOOLS FOR CONCURRENT SYSTEM MODELLING"

Transcription

1 LANGUAGES, LOGICS, TYPES AND TOOLS FOR CONCURRENT SYSTEM MODELLING Ramūnas Gutkovas NOVA LINCS

2 A LITTLE ABOUT MYSELF 2011 MSc 2016 PhD Uppsala, Sweden 2007 BSc Startup Kaunas, Lithuania

3 BUGS OR, WHEN MACHINES GO WRONG

4

5

6 EXPENSIVE BUGS Pentium FDIV bug, 1994 $475 million worth of recalls Ariane 5 went poof, 1996 Integer Overflow $ 500 million loss goo.gl/bu36b2

7 KILLER BUGS Therac-25, 1980s Toyota, 2010 Due to a race condition produced a lethal radiation burst 5 killed Unintended acceleration Software bug 89 killed

8 Many more: goo.gl/gvqilc Heartbleed Microsoft calls them 1 million dollar bugs! SECURITY CVE OpenSSL A bug that allows to obtain keys Most of the internet affected SSL is foundation for ecommerce. Data race in the linux kernel since 2007 allows to escalate privileges Millions of Android devices vulnerable

9 UNPRECEDENTED IMPLICATIONS Celebgate Influence foreign government elections Celebrity Apple s icloud accounts hacked Voldemord

10 STANDARD APPROACH: TESTING

11 TESTING CAN T BE COMPLETE Testing is essential, however, it is not sufficient! Suppose int is 32 bits int multiply (int x, int y) Thus, there are 2 64 inputs Intel Core i7 5960X (8 core) can do about 2 38 instructions per second It would take 2 26 sec ~ hours ~ 2 years to test

12 TESTING program testing can be used to show the presence of bugs, but never to show their absence! [EWD303] E. W. Dijkstra

13 CONCURRENT SYSTEMS

14

15 THE CHALLENGE find An adequate language for describing concurrent systems A mathematical theory for capturing dynamics, i.e. semantics Well-founded Verification Technique

16 CALCULUS OF [Milner 1980] COMMUNICATING SYSTEMS a 2 A action P,Q ::= a.p input Ex. a.p a.q a.p output 0 inaction t.p silent P Q parallel a P Q a P + Q sum/choice!p replication (can be extend with value passing)

17 OBSERVABLE BEHAVIOUR pay pay pay coffee tea coffee tea

18 OBSERVABLE BEHAVIOUR pay.(coffee.0 + tea.0) pay.coffee.0 + pay.tea.0 pay pay pay coffee.0 + tea.0 coffee.0 tea.0 coffee tea coffee tea

19 [Milner 1980] There is nothing canonical about the choice of the basic combinators, even though they were chosen with great attention to economy. What characterises our calculus is not the exact choice of combinators, but rather the choice of interpretation and of mathematical framework. R. Milner

20 ALGEBRA OF PROCESSES Equivalence based on the observable behaviour P Q Alg. properties P Q Q P 0 P P etc. Bisimilarity at each state P can perform all the actions of Q, and vice versa, and states continue to be P (Q R) (P Q) R bisimilar 0 + P P P + Q Q + P Weak bisimilarity P.P roughly, ignoring silent actions

21 COMPOSITIONALITY (Frege s principle) Systems built from smaller systems Component Modularity Under all contexts a processes behaviour is indistinguishable (ie. bisimilar) A congruence relation Ex. if P. Q Equivalence (bisimulation) then R P. R Q preserved under all operations

22 VERIFICATION TECHNIQUE Specification Implementation (weakly) bisimilar Specification = pay.(co ee.0+tea.0) Implementation = pay.( interal)(internal(amount). if amount =50 then co ee.0 + tea.0 else co ee.0 + tea.0 P )

23 CCS +mobility PI-CALCULUS [Milner et al. 1991] +security spi-calculus concurrent constraint calculus polyadic synch. pi-calculus +algebraic applied pi-calculus polyadic pi-calculus and myriad of other small extensions of pi

24 CCS +mobility PI-CALCULUS [Milner et al. 1991] +security spi-calculus concurrent + your extension constraint calculus polyadic synch. pi-calculus your pi-calculus +algebraic applied pi-calculus polyadic pi-calculus and myriad of other small extensions of pi

25 [Milner et al. ECS-LFCS-89-86] 10 pages of proof appendix + 30 main text and proofs

26 With cheats! [3] is self-reference. For examples of bugs in meta-theories see [Bengtson et al. 2011]

27 [Bengtson et al. 2011] PSI-CALCULUS FRAMEWORK Data structures Logics Logical environment Psi Framework Syntax Bisimulation Pi-calculus like semantics Congruence Weak bisimulation Weak congruence Bengtson and Pohjola

28 x 2 N name M, N 2 T term j 1,...,j n 2 C condition Y 2 A assertion Parameters. $ 2 T T! C channel equivalence 2 A A! A assertion composition ` A C entailment [ex := en] 2 T! T substitution function P, Q ::= M(l ex)n.p input MN.P output P Q parallel!p replication (nx)p LYM casej 1 : P 1 j n : P n case restriction assertion 0 inaction Syntax

29 MAC ( secret)( ( hash(hsecret, message)i = x ) ahmessage,xi a(y). generate a key sign a message send MAC receive MAC case hash(hsecret, fst(y)i) =snd(y) []hash(hsecret, fst(y)i) 6= snd(y) : b YES : b NO ) Verify

30 Languages, Logics, Types and Tools for Concurrent System Modelling RAMUNAS GUTKOVAS

31 Expanding generality of Psi-calculi with a type-system Providing a verification calculus for psi-calculus, and others Tool support for psi-calculi

32 SORT SYSTEM FOR PSI

33 [LMCS 2016] REPRESENTATION A direct encoding of a process calculus to a Psi-calculus No elaborate encodings No superfluous data terms No superfluous behaviour Many calculi were not representable Unsorted polyadic pi-calculus Sorted polyadic pi-calculus LINDA pattern matching Polyadic synchronisation pi-calculus Value-passing CCS Goal: extend psi-calculi to be capable of representing new calculi!

34 SYMMETRIC CRYPTO Computation dec(enc(m,k),k) M makes sense when it is typed ( a, k)(a foobar.0 a( y)y. c dec(y, k).0)! ( a, k)(0 c dec( foobar,k).0) ( a, k)(a enc(m,k).0 a( y)y. c dec(y, k).0)! ( a, k)(0 cm)

35 SORT SYSTEM Set of sorts S Sort assigning to params function Sort(X) 2 S Sorting relations for substitution and processes: can send can receive can restrict can substituted Consider only well sorted substitutions Sanity check: A well-sorted substitution preserves well-sortedness of a process.

36 RESULTS All the standard algebraic laws of bisimulation are preserved Weak bisimulation Weak congruence Congruence Bisimulation All the mentioned calculi are directly representable Unsorted polyadic pi-calculus LINDA pattern matching Sorted polyadic pi-calculus Polyadic synchronisation pi-calculus Value-passing CCS

37 MODAL LOGICS FOR PSI

38 MODAL LOGICS Find grained properties of a system Deadlock freedom Eventually coffee machine produces coffee A malicious message is eventually rejected == Process == Modal Logic Formula Process is a model P ' Modal logical formula formula φ is true for P

39 MODAL LOGICS Concurrent System Models CCS Value-Passing CCS Spi-calculus Applied pi-calculus Fusion calculus Multi-labelled Nominal transition systems Logics Hennessy, Milner 1985 Hennessy, Liu 1995 Frendrup et al.2002 Hüttel, Pedersen et al Haugstad et al De Nicola, Loreti 2008 Psi-calculi framework??? Concurrent constraint calc. Possibly others???

40 [CONCUR 2015] NOMINAL MODAL LOGIC Formulas depend on finite number of names P ' iff P ` ' P A iff not P A ^ P A i iff (8i 2 I) P A i i2i P h ia iff (9P 0 ) P! P 0,P 0 A Thm. Adequate for strong bisimilarity. What s new: finitely supported formulas

41 EXPRESSIVENESS Next step Quantifiers Fresh/New for any action there is a state for every value of a domain for a state where a name does not appear Recursion in Logic recx.a Ex. Eventually get coffee := rec X. <coffee>true next step, recurse on X

42 RESULTS Adequate Modal Logic for many transition systems The main proofs are machine checked Adequate for many variants of bisimilarity: hyper, open, early, late, weak Provide an adequate modal logic for psi-calculi, concurrent constraint calculus, and others

43 TOOL SUPPORT

44 AUTOMATED TOOLS Small specification: WSN secure aggr. Small spec. in Pwb 20 LOC Property There is no tempered data that the network accepts only 3 nodes Results in

45 PSI-CALCULI WORKBENCH Tool factory: define your own tool! [TECS 2015] Based on the parametric psi-calculi framework

46 PARAMETRIC Data Structures e.g., Names, Bits, Vectors, ADTs, Trees,... Logics e.g., EUF, FOL, Equational Theory,... Logical Assertions e.g., Knows a secret, Connectivity,

47 FEATURES Communication Primitives Execution of Processes Unicast (Weak) Bisimulation Checking Unreliable Broadcast [Borgström et al. 2011] Pluggable Architecture

48 EXAMPLE: WSN AGGREGATION Spatially distr. nodes Wireless communication Protocol: Establish routing tree Forward data

49 WORKBENCH MODEL Sink ( nodeid, bschan) <= init(nodeid)!<bschan>.! data(bschan) (x) ; A node listens on its broadcast cha Node ( nodeid, nodechan, datum ) <= init(nodeid)?(pchan). init(nodeid)!<nodechan>. data(pchan) <datum>. NodeForwardData<nodeChan, pchan> ; NodeForwardData (nodechan, pchan) <=! data(nodechan) (x). data(pchan) <x> ;

50 SYMBOLIC EXECUTION generated action gna! ( new bschan)bschan > Source : System3<d1, d2> Constraint : (new chan1, chan2, chans){ init(0)<gna } ^ (new chans, chan2, chan1){ gna>init (1) } ^ (new chans, chan1, chan2){ gna>init (2) } Solution : ([gna := init(0) ], 1) Derivative : (!( data(chans) (x))) (((new chan1)( init(1)!<chan1>. data(chans) <d1>. NodeForwardData<chan1, )) ((new chan2)( init(2)!<chan2>. data(chans) <d2>. ))) system with 3 nodes solution NodeForwardData<chan2, chans> chans> In the derivative the Sink successfully communicated its un constraints Execution: derived process

51 ARCHITECTURE Pwb Command Interpreter Symbolic Equivalence gen. Symbolic Execution Psi Calculi Core Supporting library

52 ARCHITECTURE Parameters Pwb Pretty Printer Parser Command Interpreter Plug in external solvers, Equivalence Constraint Solver e.g. SMT solvers Execution Constraint Solver Z3, CVC4, Yices2 Symbolic Equivalence gen. Symbolic Execution Data Logics Assertions Psi Calculi Core Supporting library

53 CONCLUSION

54 A widened applicability of psi-calculi via a type system A general and powerful modal logic that is applicable to systems such as psi-calculi Tool support for psi

55 QUESTIONS

The Psi-Calculi Workbench: a Generic Tool for Applied Process Calculi

The Psi-Calculi Workbench: a Generic Tool for Applied Process Calculi The Psi-Calculi Workbench: a Generic Tool for Applied Process Calculi Johannes Borgström Ramūnas Gutkovas Iona Rodhe Björn Victor Uppsala University ProFuN meeting, Dec 18, 2013 Presented at ACSD 13 Barcelona,

More information

Psi-calculi Workbench

Psi-calculi Workbench Andrius Paulavičius SWEDEN Psi-calculi Workbench Ramūnas Gutkovas YR-CONCUR `12, Newcastle, 2012-09-03 Application areas applied pi calculus Authentication protocols multicore programming spi-calculus

More information

On the Expressiveness of Infinite Behavior and Name Scoping in Process Calculi

On the Expressiveness of Infinite Behavior and Name Scoping in Process Calculi On the Expressiveness of Infinite Behavior and Name Scoping in Process Calculi Pablo Giambiagi (KTH, Sweden) Gerardo Schneider (IRISA/INRIA) Speaker: Frank D. Valencia (Uppsala Univ., Sweden) FOSSACS 04,

More information

Rule Formats for Nominal Modal Transition Systems

Rule Formats for Nominal Modal Transition Systems Rule Formats for Nominal Modal Transition Systems Anke Stüber Universitet Uppsala, Uppsala, Sweden anke.stuber@it.uu.se Abstract. Modal transition systems are specification languages that allow the expression

More information

Course on Probabilistic Methods in Concurrency. (Concurrent Languages for Probabilistic Asynchronous Communication) Lecture 1

Course on Probabilistic Methods in Concurrency. (Concurrent Languages for Probabilistic Asynchronous Communication) Lecture 1 Course on Probabilistic Methods in Concurrency (Concurrent Languages for Probabilistic Asynchronous Communication) Lecture 1 The pi-calculus and the asynchronous pi-calculus. Catuscia Palamidessi INRIA

More information

Verifying Concurrent ML programs

Verifying Concurrent ML programs Verifying Concurrent ML programs a research proposal Gergely Buday Eszterházy Károly University Gyöngyös, Hungary Synchron 2016 Bamberg December 2016 Concurrent ML is a synchronous language a CML program

More information

Substitution in Structural Operational Semantics and value-passing process calculi

Substitution in Structural Operational Semantics and value-passing process calculi Substitution in Structural Operational Semantics and value-passing process calculi Sam Staton Computer Laboratory University of Cambridge Abstract Consider a process calculus that allows agents to communicate

More information

Resource-bound process algebras for Schedulability and Performance Analysis of Real-Time and Embedded Systems

Resource-bound process algebras for Schedulability and Performance Analysis of Real-Time and Embedded Systems Resource-bound process algebras for Schedulability and Performance Analysis of Real-Time and Embedded Systems Insup Lee 1, Oleg Sokolsky 1, Anna Philippou 2 1 RTG (Real-Time Systems Group) Department of

More information

Lecture Notes on Program Equivalence

Lecture Notes on Program Equivalence Lecture Notes on Program Equivalence 15-312: Foundations of Programming Languages Frank Pfenning Lecture 24 November 30, 2004 When are two programs equal? Without much reflection one might say that two

More information

CSCI-GA Scripting Languages

CSCI-GA Scripting Languages CSCI-GA.3033.003 Scripting Languages 12/02/2013 OCaml 1 Acknowledgement The material on these slides is based on notes provided by Dexter Kozen. 2 About OCaml A functional programming language All computation

More information

40 Behaviour Compatibility

40 Behaviour Compatibility 40 Behaviour Compatibility [2] R. De Nicola, Extentional Equivalences for Transition Systems, Acta Informatica, vol. 24, pp. 21-237, 1987. [3] J. Gray, Notes on Data Base Operating Systems, in Operating

More information

Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen

Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen Harsh Beohar LF 265, harsh.beohar@uni-due.de Harsh Beohar Course Modelling of Concurrent Systems 1 Course handler

More information

Warm-Up Problem. Let be a set of well-formed Predicate logic formulas. Let be well-formed Predicate logic formulas. Prove or disprove the following.

Warm-Up Problem. Let be a set of well-formed Predicate logic formulas. Let be well-formed Predicate logic formulas. Prove or disprove the following. Warm-Up Problem Let be a set of well-formed Predicate logic formulas Let be well-formed Predicate logic formulas Prove or disprove the following If then 1/35 Program Verification Carmen Bruni Lecture 18

More information

Integrating verification in programming languages

Integrating verification in programming languages Integrating verification in programming languages Thomas Jensen, INRIA Seminar INRIA Rennes, 04/11/2015 Collège de France Chaire Algorithmes, machines et langages x / y Types For division to make sense,

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

Handling Integer Arithmetic in the Verification of Java Programs

Handling Integer Arithmetic in the Verification of Java Programs Handling Integer Arithmetic in the Verification of Java Programs Steffen Schlager 1st Swedish-German KeY Workshop Göteborg, Sweden, June 2002 KeY workshop, June 2002 p.1 Introduction UML/OCL specification

More information

Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen

Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen Harsh Beohar LF 265, harsh.beohar@uni-due.de Harsh Beohar Course Modelling of Concurrent Systems 1 Course handler

More information

Graph Query Verification using Monadic 2 nd -Order Logic

Graph Query Verification using Monadic 2 nd -Order Logic 1 Graph Query Verification using Monadic 2 nd -Order Logic Graph Kazuhiro Inaba ( 稲葉一浩 ) kinaba@nii.ac.jp Oct 10, 2010 1 st PKU-NII International Joint Workshop on Advanced Software Engineering 2 Goal

More information

Model Checking. Automatic Verification Model Checking. Process A Process B. when not possible (not AI).

Model Checking. Automatic Verification Model Checking. Process A Process B. when not possible (not AI). Sérgio Campos scampos@dcc.ufmg.br Why? Imagine the implementation of a complex hardware or software system: A 100K gate ASIC perhaps 100 concurrent modules; A flight control system dozens of concurrent

More information

Synchronous Specification

Synchronous Specification Translation Validation for Synchronous Specification in the Signal Compiler Van-Chan Ngo Jean-Pierre Talpin Thierry Gautier INRIA Rennes, France FORTE 2015 Construct a modular translation validationbased

More information

To be or not programmable Dimitri Papadimitriou, Bernard Sales Alcatel-Lucent April 2013 COPYRIGHT 2011 ALCATEL-LUCENT. ALL RIGHTS RESERVED.

To be or not programmable Dimitri Papadimitriou, Bernard Sales Alcatel-Lucent April 2013 COPYRIGHT 2011 ALCATEL-LUCENT. ALL RIGHTS RESERVED. To be or not programmable Dimitri Papadimitriou, Bernard Sales Alcatel-Lucent April 2013 Introduction SDN research directions as outlined in IRTF RG outlines i) need for more flexibility and programmability

More information

Contents. Chapter 1 SPECIFYING SYNTAX 1

Contents. Chapter 1 SPECIFYING SYNTAX 1 Contents Chapter 1 SPECIFYING SYNTAX 1 1.1 GRAMMARS AND BNF 2 Context-Free Grammars 4 Context-Sensitive Grammars 8 Exercises 8 1.2 THE PROGRAMMING LANGUAGE WREN 10 Ambiguity 12 Context Constraints in Wren

More information

Decision Procedures in the Theory of Bit-Vectors

Decision Procedures in the Theory of Bit-Vectors Decision Procedures in the Theory of Bit-Vectors Sukanya Basu Guided by: Prof. Supratik Chakraborty Department of Computer Science and Engineering, Indian Institute of Technology, Bombay May 1, 2010 Sukanya

More information

Behavioral Equivalence

Behavioral Equivalence Behavioral Equivalence Prof. Clarkson Fall 2015 Today s music: Soul Bossa Nova by Quincy Jones Review Previously in 3110: Functional programming Modular programming Interpreters Imperative and concurrent

More information

Denotational Semantics. Domain Theory

Denotational Semantics. Domain Theory Denotational Semantics and Domain Theory 1 / 51 Outline Denotational Semantics Basic Domain Theory Introduction and history Primitive and lifted domains Sum and product domains Function domains Meaning

More information

Program Verification. Aarti Gupta

Program Verification. Aarti Gupta Program Verification Aarti Gupta 1 Agenda Famous bugs Common bugs Testing (from lecture 6) Reasoning about programs Techniques for program verification 2 Famous Bugs The first bug: A moth in a relay (1945)

More information

SoftCOM 2000 THE EFFICIENT SYMBOLIC TOOLS PACKAGE

SoftCOM 2000 THE EFFICIENT SYMBOLIC TOOLS PACKAGE 8th International Conference Software, Telecommunications and Computer Networks, Split, Croatia THE EFFICIENT SYMBOLIC TOOLS PACKAGE Robert Meolic, Tatjana Kapus, Zmago Brezočnik Faculty of Electrical

More information

Formally Specifying Blockchain Protocols

Formally Specifying Blockchain Protocols Formally Specifying Blockchain Protocols 1 IOHK company building blockchain applications research focused invested in functional programming built Cardano network, Ada cryptocurrency 2 Blockchain Protocols

More information

CS 395T. JFK Protocol in Applied Pi Calculus

CS 395T. JFK Protocol in Applied Pi Calculus CS 395T JFK Protocol in Applied Pi Calculus Proving Security Real protocol Process-calculus specification of the actual protocol Ideal protocol Achieves the same goal as the real protocol, but is secure

More information

Behavioral Equivalence

Behavioral Equivalence Behavioral Equivalence Prof. Clarkson Fall 2016 Today s music: Soul Bossa Nova by Quincy Jones Review Previously in 3110: Functional programming Modular programming & software engineering Interpreters

More information

Modal Logic: Implications for Design of a Language for Distributed Computation p.1/53

Modal Logic: Implications for Design of a Language for Distributed Computation p.1/53 Modal Logic: Implications for Design of a Language for Distributed Computation Jonathan Moody (with Frank Pfenning) Department of Computer Science Carnegie Mellon University Modal Logic: Implications for

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

Program verification. Generalities about software Verification Model Checking. September 20, 2016

Program verification. Generalities about software Verification Model Checking. September 20, 2016 Program verification Generalities about software Verification Model Checking Laure Gonnord David Monniaux September 20, 2016 1 / 43 The teaching staff Laure Gonnord, associate professor, LIP laboratory,

More information

Polymorphic lambda calculus Princ. of Progr. Languages (and Extended ) The University of Birmingham. c Uday Reddy

Polymorphic lambda calculus Princ. of Progr. Languages (and Extended ) The University of Birmingham. c Uday Reddy 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 6: Polymorphic Type Systems 1. Polymorphic

More information

Complex Systems Design &DistributedCalculusandCoordination

Complex Systems Design &DistributedCalculusandCoordination Complex Systems Design &DistributedCalculusandCoordination Concurrency and Process Algebras: Theory and Practice - Klaim Francesco Tiezzi University of Camerino francesco.tiezzi@unicam.it A.A. 2014/2015

More information

Introduction & Formal Methods

Introduction & Formal Methods Introduction & Formal Methods http://d3s.mff.cuni.cz Jan Kofroň CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Introduction to dependable systems NSWE 002 What you learn: Dependable systems

More information

Part II. Hoare Logic and Program Verification. Why specify programs? Specification and Verification. Code Verification. Why verify programs?

Part II. Hoare Logic and Program Verification. Why specify programs? Specification and Verification. Code Verification. Why verify programs? Part II. Hoare Logic and Program Verification Part II. Hoare Logic and Program Verification Dilian Gurov Props: Models: Specs: Method: Tool: safety of data manipulation source code logic assertions Hoare

More information

Where is ML type inference headed?

Where is ML type inference headed? 1 Constraint solving meets local shape inference September 2005 2 Types are good A type is a concise description of the behavior of a program fragment. Typechecking provides safety or security guarantees.

More information

Lectures 20, 21: Axiomatic Semantics

Lectures 20, 21: Axiomatic Semantics Lectures 20, 21: Axiomatic Semantics Polyvios Pratikakis Computer Science Department, University of Crete Type Systems and Static Analysis Based on slides by George Necula Pratikakis (CSD) Axiomatic Semantics

More information

Lecture Notes on Real-world SMT

Lecture Notes on Real-world SMT 15-414: Bug Catching: Automated Program Verification Lecture Notes on Real-world SMT Matt Fredrikson Ruben Martins Carnegie Mellon University Lecture 15 1 Introduction In the previous lecture we studied

More information

Lecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning

Lecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning Lecture 1 Contracts 15-122: Principles of Imperative Computation (Fall 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,

More information

: A Bounded Model Checking Tool to Verify Qt Applications

: A Bounded Model Checking Tool to Verify Qt Applications 23 rd International SPIN symposium on Model Checking of Software : A Bounded Model Checking Tool to Verify Qt Applications Mário A. P. Garcia, Felipe R. Monteiro, Lucas C. Cordeiro, and Eddie B. de Lima

More information

Behavioural Equivalences and Abstraction Techniques. Natalia Sidorova

Behavioural Equivalences and Abstraction Techniques. Natalia Sidorova Behavioural Equivalences and Abstraction Techniques Natalia Sidorova Part 1: Behavioural Equivalences p. p. The elevator example once more How to compare this elevator model with some other? The cabin

More information

CITS5501 Software Testing and Quality Assurance Formal methods

CITS5501 Software Testing and Quality Assurance Formal methods CITS5501 Software Testing and Quality Assurance Formal methods Unit coordinator: Arran Stewart May 1, 2018 1 / 49 Sources Pressman, R., Software Engineering: A Practitioner s Approach, McGraw-Hill, 2005

More information

The Essence of Reynolds

The Essence of Reynolds The Essence of Reynolds 3. State and Abstraction Uday S. Reddy 1 1 University of Birmingham POPL, 2014 John C. Reynolds, 1935-2013 Emmy Noether, 1882-1935 According to Mac Lane, she emphasized the importance

More information

TIV: A Toolset for Interactive Verification of Basic LOTOS Specifications

TIV: A Toolset for Interactive Verification of Basic LOTOS Specifications TIV: A Toolset for Interactive Verification of Basic LOTOS Specifications Cheoljoo Jeong Kangho Kim Youngchan Kim Yeondae Chung Systems Engineering Research Institute Taejon, 305-333, Korea {cjeong,khkim,yckim,chung}@eagles.seri.re.kr

More information

CSc 225 Algorithms and Data Structures I Case Studies

CSc 225 Algorithms and Data Structures I Case Studies CSc 225 Algorithms and Data Structures I Case Studies Jianping Pan Fall 2007 9/12/07 CSc 225 1 Things we have so far Algorithm analysis pseudo code primitive operations worst-case scenarios Asymptotic

More information

Processes as Types: A Generic Framework of Behavioral Type Systems for Concurrent Processes

Processes as Types: A Generic Framework of Behavioral Type Systems for Concurrent Processes Processes as Types: A Generic Framework of Behavioral Type Systems for Concurrent Processes Atsushi Igarashi (Kyoto Univ.) based on joint work [POPL2001, TCS2003] with Naoki Kobayashi (Tohoku Univ.) Programming

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

On partial order semantics for SAT/SMT-based symbolic encodings of weak memory concurrency

On partial order semantics for SAT/SMT-based symbolic encodings of weak memory concurrency On partial order semantics for SAT/SMT-based symbolic encodings of weak memory concurrency Alex Horn and Daniel Kroening University of Oxford April 30, 2015 Outline What s Our Problem? Motivation and Example

More information

Hybrid Verification in SPARK 2014: Combining Formal Methods with Testing

Hybrid Verification in SPARK 2014: Combining Formal Methods with Testing IEEE Software Technology Conference 2015 Hybrid Verification in SPARK 2014: Combining Formal Methods with Testing Steve Baird Senior Software Engineer Copyright 2014 AdaCore Slide: 1 procedure Array_Indexing_Bug

More information

Integration of SMT Solvers with ITPs There and Back Again

Integration of SMT Solvers with ITPs There and Back Again Integration of SMT Solvers with ITPs There and Back Again Sascha Böhme and University of Sheffield 7 May 2010 1 2 Features: SMT-LIB vs. Yices Translation Techniques Caveats 3 4 Motivation Motivation System

More information

Software Verification for Java 5

Software Verification for Java 5 Software Verification for Java 5 KeY Symposium 2007 Mattias Ulbrich June 14, 2007 Content KeY + Java 5 Typesafe Enumeration Datatypes Enhanced For Loops Generic Classes 1. Keep pace with the progress of

More information

CS 351 Design of Large Programs Programming Abstractions

CS 351 Design of Large Programs Programming Abstractions CS 351 Design of Large Programs Programming Abstractions Brooke Chenoweth University of New Mexico Spring 2019 Searching for the Right Abstraction The language we speak relates to the way we think. The

More information

Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen

Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen Harsh Beohar LF 265, harsh.beohar@uni-due.de Harsh Beohar Course Modelling of Concurrent Systems 1 Course handler

More information

6. Hoare Logic and Weakest Preconditions

6. Hoare Logic and Weakest Preconditions 6. Hoare Logic and Weakest Preconditions Program Verification ETH Zurich, Spring Semester 07 Alexander J. Summers 30 Program Correctness There are many notions of correctness properties for a given program

More information

Hoare Logic. COMP2600 Formal Methods for Software Engineering. Rajeev Goré

Hoare Logic. COMP2600 Formal Methods for Software Engineering. Rajeev Goré Hoare Logic COMP2600 Formal Methods for Software Engineering Rajeev Goré Australian National University Semester 2, 2016 (Slides courtesy of Ranald Clouston) COMP 2600 Hoare Logic 1 Australian Capital

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

Verification of Bakery algorithm variants for two processes

Verification of Bakery algorithm variants for two processes Verification of Bakery algorithm variants for two processes David Dedi 1, Robert Meolic 2 1 Nova Vizija d.o.o., Vreerjeva ulica 8, SI-3310 Žalec 2 Faculty of Electrical Engineering and Computer Science,

More information

Observable Behaviour Observable behaviour can be defined in terms of experimentation.

Observable Behaviour Observable behaviour can be defined in terms of experimentation. Observable Behaviour Observable behaviour can be defined in terms of experimentation. Consider a coffee machine. We don t need to understand and don t what to understand how the coffee machine works. All

More information

The Formal Semantics of Programming Languages An Introduction. Glynn Winskel. The MIT Press Cambridge, Massachusetts London, England

The Formal Semantics of Programming Languages An Introduction. Glynn Winskel. The MIT Press Cambridge, Massachusetts London, England The Formal Semantics of Programming Languages An Introduction Glynn Winskel The MIT Press Cambridge, Massachusetts London, England Series foreword Preface xiii xv 1 Basic set theory 1 1.1 Logical notation

More information

14 Foundation of Programming Languages and Software Engineering: Summer Term 2010

14 Foundation of Programming Languages and Software Engineering: Summer Term 2010 14 Foundation of Programming Languages and Software Engineering: Abstract Data Types Summer Term 2010 Robert Elsässer Abstract data types 09.06.2010 Theory 1 - Foundation of Programming Languages and Software

More information

Compositional Software Model Checking

Compositional Software Model Checking Compositional Software Model Checking Dan R. Ghica Oxford University Computing Laboratory October 18, 2002 Outline of talk program verification issues the semantic challenge programming languages the logical

More information

4/6/2011. Model Checking. Encoding test specifications. Model Checking. Encoding test specifications. Model Checking CS 4271

4/6/2011. Model Checking. Encoding test specifications. Model Checking. Encoding test specifications. Model Checking CS 4271 Mel Checking LTL Property System Mel Mel Checking CS 4271 Mel Checking OR Abhik Roychoudhury http://www.comp.nus.edu.sg/~abhik Yes No, with Counter-example trace 2 Recap: Mel Checking for mel-based testing

More information

Lecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning

Lecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning Lecture 1 Contracts 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,

More information

The Mobility Workbench User's Guide. Polyadic version Bjorn Victor. October 9, Introduction 2. 2 Input syntax 2

The Mobility Workbench User's Guide. Polyadic version Bjorn Victor. October 9, Introduction 2. 2 Input syntax 2 The Mobility Workbench User's Guide Polyadic version 3.122 Bjorn Victor October 9, 1995 Contents 1 Introduction 2 2 Input syntax 2 2.1 Model checking : : : : : : : : : : : : : : : : : : : : : : : : : :

More information

GNATprove a Spark2014 verifying compiler Florian Schanda, Altran UK

GNATprove a Spark2014 verifying compiler Florian Schanda, Altran UK 1 GNATprove a Spark2014 verifying compiler Florian Schanda, Altran UK Tool architecture User view Source gnatprove Verdict 2 Tool architecture More detailed view... Source Encoding CVC4 gnat2why gnatwhy3

More information

Proving the Correctness of Distributed Algorithms using TLA

Proving the Correctness of Distributed Algorithms using TLA Proving the Correctness of Distributed Algorithms using TLA Khushboo Kanjani, khush@cs.tamu.edu, Texas A & M University 11 May 2007 Abstract This work is a summary of the Temporal Logic of Actions(TLA)

More information

Isabelle/HOL:Selected Features and Recent Improvements

Isabelle/HOL:Selected Features and Recent Improvements /: Selected Features and Recent Improvements webertj@in.tum.de Security of Systems Group, Radboud University Nijmegen February 20, 2007 /:Selected Features and Recent Improvements 1 2 Logic User Interface

More information

CS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Dan Grossman Spring 2011

CS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Dan Grossman Spring 2011 CS152: Programming Languages Lecture 11 STLC Extensions and Related Topics Dan Grossman Spring 2011 Review e ::= λx. e x e e c v ::= λx. e c τ ::= int τ τ Γ ::= Γ, x : τ (λx. e) v e[v/x] e 1 e 1 e 1 e

More information

1 Introduction. 3 Syntax

1 Introduction. 3 Syntax CS 6110 S18 Lecture 19 Typed λ-calculus 1 Introduction Type checking is a lightweight technique for proving simple properties of programs. Unlike theorem-proving techniques based on axiomatic semantics,

More information

Deductive Program Verification with Why3, Past and Future

Deductive Program Verification with Why3, Past and Future Deductive Program Verification with Why3, Past and Future Claude Marché ProofInUse Kick-Off Day February 2nd, 2015 A bit of history 1999: Jean-Christophe Filliâtre s PhD Thesis Proof of imperative programs,

More information

Static Program Analysis Part 1 the TIP language

Static Program Analysis Part 1 the TIP language Static Program Analysis Part 1 the TIP language http://cs.au.dk/~amoeller/spa/ Anders Møller & Michael I. Schwartzbach Computer Science, Aarhus University Questions about programs Does the program terminate

More information

Chapter 1. Introduction

Chapter 1. Introduction 1 Chapter 1 Introduction An exciting development of the 21st century is that the 20th-century vision of mechanized program verification is finally becoming practical, thanks to 30 years of advances in

More information

Verified Secure Routing

Verified Secure Routing Verified Secure Routing David Basin ETH Zurich EPFL, Summer Research Institute June 2017 Team Members Verification Team Information Security David Basin Tobias Klenze Ralf Sasse Christoph Sprenger Thilo

More information

3.4 Deduction and Evaluation: Tools Conditional-Equational Logic

3.4 Deduction and Evaluation: Tools Conditional-Equational Logic 3.4 Deduction and Evaluation: Tools 3.4.1 Conditional-Equational Logic The general definition of a formal specification from above was based on the existence of a precisely defined semantics for the syntax

More information

Semantics for core Concurrent ML using computation types

Semantics for core Concurrent ML using computation types Semantics for core Concurrent ML using computation types Alan Jeffrey Abstract This paper presents two typed higherorder concurrent functional programming languages based on Reppy s Concurrent ML. The

More information

Intro to Proving Absence of Errors in C/C++ Code

Intro to Proving Absence of Errors in C/C++ Code Intro to Proving Absence of Errors in C/C++ Code Develop high quality embedded software Kristian Lindqvist Senior Pilot Engineer MathWorks 2016 The MathWorks, Inc. 1 The Cost of Failure Ariane 5: Overflow

More information

Semantic Subtyping with an SMT Solver

Semantic Subtyping with an SMT Solver Semantic Subtyping with an SMT Solver Cătălin Hrițcu, Saarland University, Saarbrücken, Germany Joint work with Andy Gordon, Gavin Bierman, and Dave Langworthy (all from Microsoft) Refinement Types + Type-test

More information

CSE505, Fall 2012, Midterm Examination October 30, 2012

CSE505, Fall 2012, Midterm Examination October 30, 2012 CSE505, Fall 2012, Midterm Examination October 30, 2012 Rules: The exam is closed-book, closed-notes, except for one side of one 8.5x11in piece of paper. Please stop promptly at Noon. You can rip apart

More information

Why. an intermediate language for deductive program verification

Why. an intermediate language for deductive program verification Why an intermediate language for deductive program verification Jean-Christophe Filliâtre CNRS Orsay, France AFM workshop Grenoble, June 27, 2009 Jean-Christophe Filliâtre Why tutorial AFM 09 1 / 56 Motivations

More information

Softwaretechnik. Program verification. Albert-Ludwigs-Universität Freiburg. June 28, Softwaretechnik June 28, / 24

Softwaretechnik. Program verification. Albert-Ludwigs-Universität Freiburg. June 28, Softwaretechnik June 28, / 24 Softwaretechnik Program verification Albert-Ludwigs-Universität Freiburg June 28, 2012 Softwaretechnik June 28, 2012 1 / 24 Road Map Program verification Automatic program verification Programs with loops

More information

CONVENTIONAL EXECUTABLE SEMANTICS. Grigore Rosu CS522 Programming Language Semantics

CONVENTIONAL EXECUTABLE SEMANTICS. Grigore Rosu CS522 Programming Language Semantics CONVENTIONAL EXECUTABLE SEMANTICS Grigore Rosu CS522 Programming Language Semantics Conventional Semantic Approaches A language designer should understand the existing design approaches, techniques and

More information

Type Systems for Concurrent Programs

Type Systems for Concurrent Programs Type Systems for Concurrent Programs Naoki Kobayashi Tokyo Institute of Technology Type Systems for Programming Languages Guarantee partial correctness of programs fun fact (n) = if n=0 then 1 else n fact(n-1);

More information

Verifying Java Programs Verifying Java Programs with KeY

Verifying Java Programs Verifying Java Programs with KeY Verifying Java Programs Verifying Java Programs with KeY Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at

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

Modeling and Analysis of Fischer s Algorithm

Modeling and Analysis of Fischer s Algorithm Processes and Data, Department of Computer Science, Swansea University Vino - July 2011 Today s Talk 1. Mutual Exclusion Algorithms (recap) 2. Fischer s Algorithm 3. Modeling Fischer s Algorithm 4. Analysis

More information

The design of a programming language for provably correct programs: success and failure

The design of a programming language for provably correct programs: success and failure The design of a programming language for provably correct programs: success and failure Don Sannella Laboratory for Foundations of Computer Science School of Informatics, University of Edinburgh http://homepages.inf.ed.ac.uk/dts

More information

Model Checking with Abstract State Matching

Model Checking with Abstract State Matching Model Checking with Abstract State Matching Corina Păsăreanu QSS, NASA Ames Research Center Joint work with Saswat Anand (Georgia Institute of Technology) Radek Pelánek (Masaryk University) Willem Visser

More information

Graph Representation of Sessions and Pipelines for Structured Service Programming

Graph Representation of Sessions and Pipelines for Structured Service Programming Graph Representation of Sessions and Pipelines for Structured Service Programming Liang Zhao 1,2 with Roberto Bruni 1 and Zhiming Liu 2 1 University of Pisa, Italy 2 UNU-IIST, Macao SR, China FCS 2010

More information

CONVENTIONAL EXECUTABLE SEMANTICS. Grigore Rosu CS422 Programming Language Semantics

CONVENTIONAL EXECUTABLE SEMANTICS. Grigore Rosu CS422 Programming Language Semantics CONVENTIONAL EXECUTABLE SEMANTICS Grigore Rosu CS422 Programming Language Semantics Conventional Semantic Approaches A language designer should understand the existing design approaches, techniques and

More information

CMSC 330: Organization of Programming Languages. Operational Semantics

CMSC 330: Organization of Programming Languages. Operational Semantics CMSC 330: Organization of Programming Languages Operational Semantics Notes about Project 4, Parts 1 & 2 Still due today (7/2) Will not be graded until 7/11 (along with Part 3) You are strongly encouraged

More information

8. Symbolic Trajectory Evaluation, Term Rewriting. Motivation for Symbolic Trajectory Evaluation

8. Symbolic Trajectory Evaluation, Term Rewriting. Motivation for Symbolic Trajectory Evaluation 8. Symbolic Trajectory Evaluation, Term Rewriting 1 8. Symbolic Trajectory Evaluation, Term Rewriting Jacob Abraham Department of Electrical and Computer Engineering The University of Texas at Austin Verification

More information

From Z3 to Lean, Efficient Verification

From Z3 to Lean, Efficient Verification From Z3 to Lean, Efficient Verification Turing Gateway to Mathematics, 19 July 2017 Leonardo de Moura, Microsoft Research Joint work with Nikolaj Bjorner and Christoph Wintersteiger Satisfiability Solution/Model

More information

My other computer is YOURS!

My other computer is YOURS! Octet-based encoding example Here is a DER encoding of the following definition: Person ::= SEQUENCE { first UTF8String, last UTF8String } myself ::= Person { first "Nathanael", last "COTTIN" } Octet-based

More information

Verifying Liveness Properties of ML Programs

Verifying Liveness Properties of ML Programs Verifying Liveness Properties of ML Programs M M Lester R P Neatherway C-H L Ong S J Ramsay Department of Computer Science, University of Oxford ACM SIGPLAN Workshop on ML, 2011 09 18 Gokigeny all! Motivation

More information

Lost in translation. Leonardo de Moura Microsoft Research. how easy problems become hard due to bad encodings. Vampire Workshop 2015

Lost in translation. Leonardo de Moura Microsoft Research. how easy problems become hard due to bad encodings. Vampire Workshop 2015 Lost in translation how easy problems become hard due to bad encodings Vampire Workshop 2015 Leonardo de Moura Microsoft Research I wanted to give the following talk http://leanprover.github.io/ Automated

More information

Software System Design and Implementation

Software System Design and Implementation Software System Design and Implementation Motivation & Introduction Gabriele Keller (Manuel M. T. Chakravarty) The University of New South Wales School of Computer Science and Engineering Sydney, Australia

More information

CS 6110 S11 Lecture 25 Typed λ-calculus 6 April 2011

CS 6110 S11 Lecture 25 Typed λ-calculus 6 April 2011 CS 6110 S11 Lecture 25 Typed λ-calculus 6 April 2011 1 Introduction Type checking is a lightweight technique for proving simple properties of programs. Unlike theorem-proving techniques based on axiomatic

More information

MURPHY S COMPUTER LAWS

MURPHY S COMPUTER LAWS Bosch Workshop 04/08/18 Brandenburg University of Technology at Cottbus, Dep. of Computer Science MURPHY S COMPUTER LAWS (1) No program without faults. DEPENDABLE SOFTWARE - AN UNREALISTIC DREAM OR JUST

More information