Using the π-calculus. Evolution. Values As Names 3/24/2004

Size: px
Start display at page:

Download "Using the π-calculus. Evolution. Values As Names 3/24/2004"

Transcription

1 3/4/004 Using the π-calculus Overview Evolution Values as names Boolean values as processes Executor, a simple object model, lists The polyadic π-calculus Mobile telephones Processes as parameters A concurrent programming language References Robin Milner, Communicating and Mobil Systems Robin Milner, Joachim Parrow, David Walker, A Calculus of Mobile Processes, Part I+II 7 Evolution x y x(u).u x can evolve to y x or x y z ν x(x y x(u).u ) x can evolve to y x x y!x(u).u x can evolve to x y!x(u).u z or y!x(u).u x and y!x(u).u z 7 Values As Names If the values with which we wish to compute are drawn from a finite set, say V {v,, v n}, then we can simply designate n names to denote these values as constants (e.g. v to stand for v,, v n to stand for v n). For example, consider the case V {t, f}, the truth values. We set t T and f F. The match operator can be used to control computation. For example, the following process can be thought of as a C# switch-statement: x(y).([y v ]π.p + [y v ]π.p + [y v 3]π 3.P 3) 73

2 3/4/004 Abbreviations Sometimes a communication does not need to carry a parameter. To model this we presuppose a special name, say ε, which is never bound. Then we write x.p in place of xε.p x.p in place of x(y).p if y fn(p) We often omit.0 in a process, and write for example xy in place of x y Boolean Values As Processes We can represent Boolean values by the processes True a and False a emitting Boolean values along channel a, and a process Case a(p, Q), receiving a Boolean along channel a and enacting P or Q depending on the value of the Boolean. Truea Falsea Case (P, Q) a a(x).a(y).x a(x).a(y).y ( ν x y)ax.ay.(x.p y.q) Now Case (P, Q) True evolves to (ν x y)(x.p y.q x), which in a a turn evolves to P (up-to structural congruence). 75 Executor Consider the following process definition Exec(x) x(y).y Exec(x) may be called an executor. It receives via channel x a link, called y, and then activates that link. We can think of y as a trigger of a process. Now for any process P, we obtain the same behavior in each of the following cases: We run P directly, We prefix a trigger z to P, and pass z along the channel x to the executor Exec(x) assuming that x, z fn(p): ν z (xz z.p) 76

3 3/4/004 Exec Example ν x ( ν z (xz z.p) Exec(x)) ν x ( ν z (xz z.p) x(y).y) ν x z (xz z.p x(y).y) τ.ν x z (0 z.p z) τ.τ.ν x z (0 P 0) τ.τ. P 77 An Simple Object Model A concurrent system can be thought of as a process community that appears to be an unstructured collection of autonomous agent. In practice, however, we can identify a structure. In particular, we can identify process group boundaries and communications across group boundaries. ReferenceCell is a process group that represents an object with one private instance variable and two public methods to set and to access the object s state. ReferenceCell ( ν v) ( v0!s(n).s(r).v(_).(vn r)!g(r).v(i).(vi ri) ) 78 A List A list is either Nil or Cons of value and a list. v h Node l The constant Nil, the construction Cons( V, L), and a list of n values are defined as follows: Nil h Cons(V, L) [V,...V ] n h!h(n).h(c).n ( ν v l)(!h(n).h(c).cv.cl V L l ) Cons(V, Cons(..., Cons(V, Nil)...)) n 79 3

4 3/4/004 [, ] [, ] Cons(, Cons(, Nil)) Cons(, Nil) ( ν v l)(!h(n).h(c).cv.cl Nil l ) ( ν v l)(!h(n).h(c).cv.cl (!l(n).l(c).n)) Cons(, []) ( ν v' l')(!h(n).h(c).cv'.cl' v' [] l' ) ( ν v' l')(!h(n).h(c).cv'.cl' v' (( ν v l)!l'(n).l'(c).cv.cl (!l(n).l(c).n))) with V!v(r).rV 80 Head, Tail, and IsEmpty Nil h Cons(V, L) h [V,...V ] n!h(n).h(c).n ( ν v l)(!h(n).h(c).cv.cl V L l ) Cons(V, Cons(..., Cons(V, Nil)...)) n Head(r) (ν n, c)(hn.hc.c(v).c(l).vr) Tail(r) (ν n, c)(hn.hc.c(v).c(l).lr) IsEmpty ( ν n, c)(hn.hc.n."yes" + c."no") 8 List Experiments IsEmpty(r) Nil h ( ν n, c)(hn.hc.n."yes" + c."no") h(n).h(c).n evolves to ( ν n, c)(n."yes" + c."no" n) which evolves to "Yes" Head(r) [, ] ( ν v l)(hn.hc.c(v)c(l).vr) ( ν v' l')(!h(n).h(c).cv'.cl' v' [ '] l' ) Evolves to( ν v l v')(v' r) [, ] h!v'(r).r) which evolves to r 8 4

5 3/4/004 The Polyadic π-calculus In the monadic π-calculus, an interaction involves the transmission of a single name from one process process to another, A natural and convenient extension is to admit processes that pass tuples of names. The processes of the polyadic π-calculus are defined in the same way as the processes of the monadic π-calculus, except that the prefixes are given by π :: x y x(z) τ [x y] π where no name occurs more than once in the tuple z in an input prefix. We write x for the length of the tuple x. If the length of the corresponding tuple is zero then we write x for x( z) and x for x y. 83 Polyadic Interaction The intended interpretations of the new polyadic prefixes are that x y.p can send the tuple y via x and continue as P, and that x( z).q can receive a tuple y via x and continue as { y/z }Q. The reaction relation over P πp contains exactly those transition that can be inferred from the rules in the following table: TAU : τ.p + M P P z y -INTER : (x( z ).P + M) (x y.q + N) {y/ z }P Q P P' PAR : P Q P' Q P P' RES : ν a P ν a P' P STRUCT : Q P P' P' Q' Q Q' 84 Church s Encoding of Booleans We can represent a Boolean value as a channel along we send/receive two other channels for the next true and false interaction. We define two processes True and False that serve as a process representation of their corresponding Boolean values. Both processes create a new channel b that serves as the location of the Boolean value and return b along the result channel r. True(b) False(b) Not(b, c) b(t, f).t b(t, f).f b(t, f).c(f, t) 85 5

6 3/4/004 Mobile Telephones CAR(talk, switch ) talk switch BASE IDLEBASE alert alert give PROVIDER give 86 System Equation CAR(talk, switch) talk switch BASE IDLEBASE alert alert give PROVIDER give SYSTEM (ν talk i, switch i, give i, alert i : i,) (CAR(talk, switch ) BASE IDLEBASE PROVIDER ) 87 Car A car is parametric upon a talk channel and a switch channel. On the talk channel it can repeatedly talk, but at any time it may receive along the switch channel two new channels, which the car must then start to use (new base station): CAR(talk, switch) talk.car(talk, switch) + switch(talk, switch ).CAR(talk, switch ) 88 6

7 3/4/004 Base A BASE can repeatedly talk with the CAR; but at any time it can receive along its give channel two new channels, which it should communicate to the CAR, and then become idle itself: BASE(t, s, g, a) t.base(t, s, g, a) + g(t', s').s t', s'.idlebase(t, s, g, a) An IDLEBASE may be told along its alert channel to become active: IDLEBASE(t, s, g, a) a.base(t, s, g, a) 89 Provider The PROVIDER knows initially that the CAR is in contact with BASE. It can decide (according to a provider-specific protocol) to transmit the channel talk and switch to the CAR via BASE, and alert IDLEBASE of this fact: PROVIDER give. talk, switch.alert.provider PROVIDER give. talk, switch.alert.provider 90 Evolving System SYSTEM CAR(talk, switch ) BASE IDLEBASE PROVIDER CAR(talk, switch ) switch talk, switch.ildebase IDLEBASE alert.provider CAR(talk, switch ) ILDEBASE ILDEBASE alert.provider CAR(talk, switch ) ILDEBASE BASE PROVIDER SYSTEM 9 7

8 3/4/004 New System CAR(talk, switch ) talk switch IDLEBASE BASE alert alert give PROVIDER give 9 Passing Processes As Parameters Passing processes as parameters is not represented directly in the π-calculus. In a direct representation we would write something like ν x(xp x(p).p) where p is a variable over processes, and P is a process expression. 93 Scope Suppose a direct representation of process parameters is given. We can extend our example as follows: The sender, after sending P, whishes to run Q; The receiver (or executor), after receiving P, whishes to run it in parallel with R. We would write ν x(xp.q x(p).(p R)) where we assume that x fn(p, Q, R). A suitable generalized expansion law would equate this to τ.(q (P R)) 94 8

9 3/4/004 Shared Private Name We can further extend our example by assuming that prior to the transmission of P there exists a restricted channel w between P and Q. ν x(ν w(xp.q) x(p).(p R)) We have two alternatives for how the transmission of P should treat the private channel w : Dynamic binding: τ.(ν w Q (P R)) That is, the private link between P and Q is broken and the meaning of w is defined with respect to its current scope. Static binding: τ.ν w'({w' /w}q ({w'/w}p R)) We use a form a scope extrusion where w is a fresh name, that is w fn(p, Q, R). 95 Modeling Process Parameters We start with the following process expression and replace it with ν x(ν w(xp.q) x(p).(p R)) ν x(ν z w(xz.(z.p Q)) x(y).y.r) where y, z fn(r), which by expansion, is equal to τ.ν z ( ν w(z.p Q)) z.r) Now we change to bound name w to w fn(r) and obtain τ.ν z w'({w'/w}z.p {w'/w}q z.r) which, by expansion and then the discard of the restriction becomes τ.τ.(ν w'({w'/w}p {w'/w}q R) 96 A Concurrent Language V :: X Y Variable F :: Function symbols C :: V E Assignment C ; C Sequential Composition if E then C else C Conditional Statement while E do C While Statement let D in C end Declaration C par C Parallel Composition input V Input output E Output skip D :: var V Variable Declaration E :: V Variable Expression F( E,, E n ) Function Call 97 9

10 3/4/004 Ambiguous Meaning X 0; X X + par X X + What is the value of X at the end of the second statement? 98 Basic Elements We assume that each element of the source language is assigned a process expression. Variables: X(init) ( ν v, setx, getx) ( v init!setx(n, r).v.(v n r)!getx(r).v(i).(v i r i ) ) Skip: C ; C : done ν c({c/done} C c.c ) C par C : ( ν l, r, t)( true {l/done}c {r/done}c t (l.t(b).( if b then r. skip else l t false ) (r.t(b).( if b then l. skip else r t false )) 99 Expressions [X] F(E,,E n ) (ν ack)(getx(ack) ack(v).res(v)) arg (x )...arg (x ).F(x,..., xn, res) n n [F(E,,E n )] (ν arg,,arg n )( {arg /res}[e ]{arg /res} {arg n /res}[e n ] [F] ) 00 0

11 3/4/004 Operation Sequence X 0; X X + par X X + What is the value of X at the end of the second statement? According to the former definitions the value of X is either,, or 3. The three values are possible since every atomic action can occur in an arbitrary and meshed order. To guarantee a specific result (e.g., or ), we need to employ semaphores. 0

Using the π-calculus. Overview. References

Using the π-calculus. Overview. References Using the π-calculus Overview Evolution Values as names Boolean values as processes Executor, a simple object model, lists The polyadic π-calculus Mobile telephones Processes as parameters A concurrent

More information

Communicating and Mobile Systems

Communicating and Mobile Systems Communicating and Mobile Systems Overview:! Programming Model! Interactive Behavior! Labeled Transition System! Bisimulation! The π-calculus! Data Structures and λ-calculus encoding in the π-calculus References:!

More information

Information Systems Business Process Modelling I: Models

Information Systems Business Process Modelling I: Models Information Systems 2 Information Systems 2 5. Business Process Modelling I: Models Lars Schmidt-Thieme Information Systems and Machine Learning Lab (ISMLL) Institute for Business Economics and Information

More information

Concurrent Processes and Reaction

Concurrent Processes and Reaction Concurrent Processes and Reaction Overview External and internal actions Observations Concurrent process expressions Structural congruence Reaction References Robin Milner, Communication and Concurrency

More information

Lars Schmidt-Thieme, Information Systems and Machine Learning Lab (ISMLL), Institute BW/WI & Institute for Computer Science, University of Hildesheim

Lars Schmidt-Thieme, Information Systems and Machine Learning Lab (ISMLL), Institute BW/WI & Institute for Computer Science, University of Hildesheim Course on Information Systems 2, summer term 2010 0/29 Information Systems 2 Information Systems 2 5. Business Process Modelling I: Models Lars Schmidt-Thieme Information Systems and Machine Learning Lab

More information

Business Process Management

Business Process Management Business Process Management Theory: The Pi-Calculus Frank Puhlmann Business Process Technology Group Hasso Plattner Institut Potsdam, Germany 1 What happens here? We discuss the application of a general

More information

The Polyadic -Calculus: a Tutorial. Robin Milner. Computer Science Department, University of Edinburgh, October Abstract

The Polyadic -Calculus: a Tutorial. Robin Milner. Computer Science Department, University of Edinburgh, October Abstract The Polyadic -Calculus: a Tutorial Robin Milner Laboratory for Foundations of Computer Science, Computer Science Department, University of Edinburgh, The King's Buildings, Edinburgh EH9 3JZ, UK October

More information

The π-calculus. From CCS to π-calculus. The π-calculus - Basic Ideas 4/1/2004. Overview Syntax Reaction, actions, and transitions

The π-calculus. From CCS to π-calculus. The π-calculus - Basic Ideas 4/1/2004. Overview Syntax Reaction, actions, and transitions The π-calculus Overview Snta eaction, actions, and transitions eferences obin Milner, Communicating and Mobil Sstems Davide Sangiorgi and David Walker, The π-calculus: A Theor of Mobile Processes obin

More information

Trace Refinement of π-calculus Processes

Trace Refinement of π-calculus Processes Trace Refinement of pi-calculus Processes Trace Refinement of π-calculus Processes Manuel Gieseking manuel.gieseking@informatik.uni-oldenburg.de) Correct System Design, Carl von Ossietzky University of

More information

Models of Concurrency

Models of Concurrency Models of Concurrency GERARDO SCHNEIDER UPPSALA UNIVERSITY DEPARTMENT OF INFORMATION TECHNOLOGY UPPSALA, SWEDEN Thanks to Frank Valencia Models of Concurrency p.1/57 Concurrency is Everywhere Concurrent

More information

Review of The π-calculus: A Theory of Mobile Processes

Review of The π-calculus: A Theory of Mobile Processes Review of The π-calculus: A Theory of Mobile Processes Riccardo Pucella Department of Computer Science Cornell University July 8, 2001 Introduction With the rise of computer networks in the past decades,

More information

Deadlock verification of a DPS coordination strategy and its alternative model in pi-calculus

Deadlock verification of a DPS coordination strategy and its alternative model in pi-calculus 154 Int. J. Intelligent Information and Database Systems, Vol. 6, No. 2, 2012 Deadlock verification of a DPS coordination strategy and its alternative model in pi-calculus Pablo D. Robles-Granda, Elham

More information

The π-calculus Semantics. Equivalence and Value-Passing. Infinite Sums 4/12/2004

The π-calculus Semantics. Equivalence and Value-Passing. Infinite Sums 4/12/2004 The π-calculus Semantics Overview ate and early semantics Bisimulation and congruence Variations of the calculus eferences obin Milner, Communicating and Mobil Systems Davide Sangiorgi and David Walker,

More information

From CCS to Hybrid π via baby steps. Bill Rounds CSE, U of Michigan

From CCS to Hybrid π via baby steps. Bill Rounds CSE, U of Michigan From CCS to Hybrid π via baby steps Bill Rounds CSE, U of Michigan Main idea The hybrid pi-calculus extends pi-calculus by adding a component called the continuous environment, which evolves over time

More information

Advanced Process Calculi

Advanced Process Calculi Advanced Process Calculi Lecture 1: the pi-calculus Copenhagen, August 2013 Joachim Parrow Learning outcomes After completing the course you will be able to: Use modern process calculi to make highlevel

More information

Concurrency theory. name passing, contextual equivalences. Francesco Zappa Nardelli. INRIA Paris-Rocquencourt, MOSCOVA research team

Concurrency theory. name passing, contextual equivalences. Francesco Zappa Nardelli. INRIA Paris-Rocquencourt, MOSCOVA research team Concurrency theory name passing, contextual equivalences Francesco Zappa Nardelli INRIA Paris-Rocquencourt, MOSCOVA research team francesco.zappa nardelli@inria.fr together with Frank Valencia (INRIA Futurs)

More information

Strong bisimilarity can be opened

Strong bisimilarity can be opened Strong bisimilarity can be opened Henning E. Andersen Hans Hüttel Karina N. Jensen June 7, 2002 Abstract We present an extension of the semantics of the π-calculus without match where strong bisimilarity

More information

A Note on Scope and Infinite Behaviour in CCS-like Calculi p.1/32

A Note on Scope and Infinite Behaviour in CCS-like Calculi p.1/32 A Note on Scope and Infinite Behaviour in CCS-like Calculi GERARDO SCHNEIDER UPPSALA UNIVERSITY DEPARTMENT OF INFORMATION TECHNOLOGY UPPSALA, SWEDEN Joint work with Pablo Giambiagi and Frank Valencia A

More information

Formalising the π-calculus in Isabelle

Formalising the π-calculus in Isabelle Formalising the π-calculus in Isabelle Jesper Bengtson Department of Computer Systems University of Uppsala, Sweden 30th May 2006 Overview This talk will cover the following Motivation Why are we doing

More information

Communication Errors in the π-calculus are Undecidable

Communication Errors in the π-calculus are Undecidable Communication Errors in the π-calculus are Undecidable Vasco T. Vasconcelos Department of Informatics Faculty of Sciences, University of Lisbon António Ravara Department of Mathematics Lisbon Institute

More information

The Expressivity of Universal Timed CCP: Undecidability of Monadic FLTL and Closure Operators for Security

The Expressivity of Universal Timed CCP: Undecidability of Monadic FLTL and Closure Operators for Security The Expressivity of Universal Timed CCP: Undecidability of Monadic FLTL and Closure Operators for Security Carlos Olarte and Frank D. Valencia INRIA /CNRS and LIX, Ecole Polytechnique Motivation Concurrent

More information

THE LANGUAGE OF FIRST-ORDER LOGIC (FOL) Sec2 Sec1(1-16)

THE LANGUAGE OF FIRST-ORDER LOGIC (FOL) Sec2 Sec1(1-16) THE LANGUAGE OF FIRST-ORDER LOGIC (FOL) Sec2 Sec1(1-16) FOL: A language to formulate knowledge Logic is the study of entailment relationslanguages, truth conditions and rules of inference. FOL or Predicate

More information

Mathematical Preliminaries. Sipser pages 1-28

Mathematical Preliminaries. Sipser pages 1-28 Mathematical Preliminaries Sipser pages 1-28 Mathematical Preliminaries This course is about the fundamental capabilities and limitations of computers. It has 3 parts 1. Automata Models of computation

More information

Partial model checking via abstract interpretation

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

More information

Herbrand Theorem, Equality, and Compactness

Herbrand Theorem, Equality, and Compactness CSC 438F/2404F Notes (S. Cook and T. Pitassi) Fall, 2014 Herbrand Theorem, Equality, and Compactness The Herbrand Theorem We now consider a complete method for proving the unsatisfiability of sets of first-order

More information

Compatible Systems and Charpit s Method

Compatible Systems and Charpit s Method MODULE 2: FIRST-ORDER PARTIAL DIFFERENTIAL EQUATIONS 28 Lecture 5 Compatible Systems Charpit s Method In this lecture, we shall study compatible systems of first-order PDEs the Charpit s method for solving

More information

Concurrency theory. proof-techniques for syncronous and asynchronous pi-calculus. Francesco Zappa Nardelli. INRIA Rocquencourt, MOSCOVA research team

Concurrency theory. proof-techniques for syncronous and asynchronous pi-calculus. Francesco Zappa Nardelli. INRIA Rocquencourt, MOSCOVA research team Concurrency theory proof-techniques for syncronous and asynchronous pi-calculus Francesco Zappa Nardelli INRIA Rocquencourt, MOSCOVA research team francesco.zappa nardelli@inria.fr together with Frank

More information

The Calculus of Communicating Systems

The Calculus of Communicating Systems The Calculus of Communicating Systems Wolfgang Schreiner Research Institute for Symbolic Computation (RISC-Linz) Johannes Kepler University, A-4040 Linz, Austria Wolfgang.Schreiner@risc.uni-linz.ac.at

More information

Groupe de travail. Analysis of Mobile Systems by Abstract Interpretation

Groupe de travail. Analysis of Mobile Systems by Abstract Interpretation Groupe de travail Analysis of Mobile Systems by Abstract Interpretation Jérôme Feret École Normale Supérieure http://www.di.ens.fr/ feret 31/03/2005 Introduction I We propose a unifying framework to design

More information

Secrecy and Group Creation

Secrecy and Group Creation Secrecy and Group Creation Luca Cardelli 1 Giorgio Ghelli 2 Andrew D. Gordon 1 Abstract We add an operation of group creation to the typed π-calculus, where a group is a type for channels. Creation of

More information

Using Counterfactuals in Knowledge-Based Programming

Using Counterfactuals in Knowledge-Based Programming Using Counterfactuals in Knowledge-Based Programming Joseph Y. Halpern Cornell University Dept. of Computer Science Ithaca, NY 14853 halpern@cs.cornell.edu http://www.cs.cornell.edu/home/halpern Yoram

More information

Subtyping for Session Types in the Pi Calculus

Subtyping for Session Types in the Pi Calculus Acta Informatica manuscript No. (will be inserted by the editor) Subtyping for Session Types in the Pi Calculus Simon Gay 1, Malcolm Hole 2 1 Department of Computing Science, University of Glasgow, UK

More information

Session Types Revisited

Session Types Revisited Session Types Revisited Ornela Dardha a, Elena Giachino b, Davide Sangiorgi b a School of Computing Science, University of Glasgow, United Kingdom b INRIA Focus Team / DISI, University of Bologna, Italy

More information

INTRODUCTION TO PREDICATE LOGIC HUTH AND RYAN 2.1, 2.2, 2.4

INTRODUCTION TO PREDICATE LOGIC HUTH AND RYAN 2.1, 2.2, 2.4 INTRODUCTION TO PREDICATE LOGIC HUTH AND RYAN 2.1, 2.2, 2.4 Neil D. Jones DIKU 2005 Some slides today new, some based on logic 2004 (Nils Andersen), some based on kernebegreber (NJ 2005) PREDICATE LOGIC:

More information

2. Component Models: Interface Models by Streams

2. Component Models: Interface Models by Streams Dynamic Distributed Systems * Towards a Mathematical Model Extended Abstract Manfred Broy Institut für Informatik, Technische Universität München D-80290 München, Germany Abstract. This paper aims at a

More information

CS156: The Calculus of Computation Zohar Manna Winter 2010

CS156: The Calculus of Computation Zohar Manna Winter 2010 Page 3 of 31 Page 4 of 31 CS156: The Calculus of Computation Zohar Manna Winter 2010 First-Order Theories I First-order theory T consists of Signature ΣT - set of constant, function, and predicate symbols

More information

An Algebraic Theory of Actors and its Application to a Simple Object-Based Language

An Algebraic Theory of Actors and its Application to a Simple Object-Based Language An Algebraic Theory of Actors and its Application to a Simple Object-Based Language Gul Agha, Prasanna Thati University of Illinois at Urbana-Champaign, USA {agha,thati}@cs.uiuc.edu http://osl.cs.uiuc.edu

More information

A Graph Rewriting Semantics for the Polyadic π-calculus

A Graph Rewriting Semantics for the Polyadic π-calculus A Graph Rewriting Semantics for the Polyadic π-calculus BARBARA KÖNIG Fakultät für Informatik, Technische Universität München Abstract We give a hypergraph rewriting semantics for the polyadic π-calculus,

More information

Semantics and Verification

Semantics and Verification Semantics and Verification Lecture 2 informal introduction to CCS syntax of CCS semantics of CCS 1 / 12 Sequential Fragment Parallelism and Renaming CCS Basics (Sequential Fragment) Nil (or 0) process

More information

Decidable Subsets of CCS

Decidable Subsets of CCS Decidable Subsets of CCS based on the paper with the same title by Christensen, Hirshfeld and Moller from 1994 Sven Dziadek Abstract Process algebra is a very interesting framework for describing and analyzing

More information

1 Introduction. 2 Recap The Typed λ-calculus λ. 3 Simple Data Structures

1 Introduction. 2 Recap The Typed λ-calculus λ. 3 Simple Data Structures CS 6110 S18 Lecture 21 Products, Sums, and Other Datatypes 1 Introduction In this lecture, we add constructs to the typed λ-calculus that allow working with more complicated data structures, such as pairs,

More information

Predicates, Quantifiers and Nested Quantifiers

Predicates, Quantifiers and Nested Quantifiers Predicates, Quantifiers and Nested Quantifiers Predicates Recall the example of a non-proposition in our first presentation: 2x=1. Let us call this expression P(x). P(x) is not a proposition because x

More information

Towards Concurrent Type Theory

Towards Concurrent Type Theory Towards Concurrent Type Theory Luís Caires 1, Frank Pfenning 2, Bernardo Toninho 1,2 1 Universidade Nova de Lisboa 2 Carnegie Mellon University Workshop on Types in Language Design and Implementation (TLDI)

More information

Expressing Dynamics of Mobile Programs by Typing

Expressing Dynamics of Mobile Programs by Typing 5 th Slovakian-Hungarian Joint Symposium on Applied Machine Intelligence and Informatics January 25-26, 2007 Poprad, Slovakia Expressing Dynamics of Mobile Programs by Typing Martin Tomášek Department

More information

MA5219 LOGIC AND FOUNDATION OF MATHEMATICS I. Lecture 1: Programs. Tin Lok Wong 13 August, 2018

MA5219 LOGIC AND FOUNDATION OF MATHEMATICS I. Lecture 1: Programs. Tin Lok Wong 13 August, 2018 MA5219 LOGIC AND FOUNDATION OF MATHEMATICS I Lecture 1: Programs Tin Lok Wong 13 August, 2018 The aim of this lecture is to characterize S N : some algorithm can tell whether n N belongs to S}. By an algorithm

More information

Formal Techniques for Software Engineering: CCS: A Calculus for Communicating Systems

Formal Techniques for Software Engineering: CCS: A Calculus for Communicating Systems Formal Techniques for Software Engineering: CCS: A Calculus for Communicating Systems Rocco De Nicola IMT Institute for Advanced Studies, Lucca rocco.denicola@imtlucca.it June 2013 Lesson 10 R. De Nicola

More information

The λ-calculus and Curry s Paradox Drew McDermott , revised

The λ-calculus and Curry s Paradox Drew McDermott , revised The λ-calculus and Curry s Paradox Drew McDermott drew.mcdermott@yale.edu 2015-09-23, revised 2015-10-24 The λ-calculus was invented by Alonzo Church, building on earlier work by Gottlob Frege and Moses

More information

Lecture 11: Measuring the Complexity of Proofs

Lecture 11: Measuring the Complexity of Proofs IAS/PCMI Summer Session 2000 Clay Mathematics Undergraduate Program Advanced Course on Computational Complexity Lecture 11: Measuring the Complexity of Proofs David Mix Barrington and Alexis Maciel July

More information

A linear account of session types in the pi calculus

A linear account of session types in the pi calculus A linear account of session types in the pi calculus Marco Giunti 1 and Vasco T. Vasconcelos 2 1 Iuav University, Venice 2 LaSIGE, Faculty of Sciences, University of Lisbon Abstract. We present a reconstruction

More information

Notes from How to Prove it: A Structured Approach by Daniel J. Velleman

Notes from How to Prove it: A Structured Approach by Daniel J. Velleman Notes from How to Prove it: A Structured Approach by Daniel J. Velleman DeMorgan s laws: (P Q) is equivalent to P Q) (P Q) is equivalent to P Q) Commutative laws: (P Q) is equivalent to (Q P ) (P Q) is

More information

Technical Report. Bigraphs whose names have multiple locality. Robin Milner. Number 603. September Computer Laboratory

Technical Report. Bigraphs whose names have multiple locality. Robin Milner. Number 603. September Computer Laboratory Technical Report UCAM-CL-TR-603 ISSN 1476-2986 Number 603 Computer Laboratory Bigraphs whose names have multiple locality Robin Milner September 2004 15 JJ Thomson Avenue Cambridge CB3 0FD United Kingdom

More information

Convolutional Coding LECTURE Overview

Convolutional Coding LECTURE Overview MIT 6.02 DRAFT Lecture Notes Spring 2010 (Last update: March 6, 2010) Comments, questions or bug reports? Please contact 6.02-staff@mit.edu LECTURE 8 Convolutional Coding This lecture introduces a powerful

More information

The Quasi-Synchronous Approach to Distributed Control Systems

The Quasi-Synchronous Approach to Distributed Control Systems The Quasi-Synchronous Approach to Distributed Control Systems Paul Caspi caspi@imag.fr Verimag Laboratory http://www-verimag.imag.fr Crisys Esprit Project http://borneo.gmd.de/ ap/crisys/ The Quasi-Synchronous

More information

Introduction to Temporal Logic. The purpose of temporal logics is to specify properties of dynamic systems. These can be either

Introduction to Temporal Logic. The purpose of temporal logics is to specify properties of dynamic systems. These can be either Introduction to Temporal Logic The purpose of temporal logics is to specify properties of dynamic systems. These can be either Desired properites. Often liveness properties like In every infinite run action

More information

Mathematics 114L Spring 2018 D.A. Martin. Mathematical Logic

Mathematics 114L Spring 2018 D.A. Martin. Mathematical Logic Mathematics 114L Spring 2018 D.A. Martin Mathematical Logic 1 First-Order Languages. Symbols. All first-order languages we consider will have the following symbols: (i) variables v 1, v 2, v 3,... ; (ii)

More information

MASTER S THESIS FROM FORMAL TO COMPUTATIONAL AUTHENTICITY DISTRIBUTED AND EMBEDDED SYSTEMS DEPARTMENT OF COMPUTER SCIENCE AALBORG UNIVERSITY

MASTER S THESIS FROM FORMAL TO COMPUTATIONAL AUTHENTICITY DISTRIBUTED AND EMBEDDED SYSTEMS DEPARTMENT OF COMPUTER SCIENCE AALBORG UNIVERSITY DISTRIBUTED AND EMBEDDED SYSTEMS DEPARTMENT OF COMPUTER SCIENCE AALBORG UNIVERSITY MASTER S THESIS MICHAEL GARDE FROM FORMAL TO COMPUTATIONAL AUTHENTICITY AN APPROACH FOR RECONCILING FORMAL AND COMPUTATIONAL

More information

CPSC 421: Tutorial #1

CPSC 421: Tutorial #1 CPSC 421: Tutorial #1 October 14, 2016 Set Theory. 1. Let A be an arbitrary set, and let B = {x A : x / x}. That is, B contains all sets in A that do not contain themselves: For all y, ( ) y B if and only

More information

Chapter 1 Elementary Logic

Chapter 1 Elementary Logic 2017-2018 Chapter 1 Elementary Logic The study of logic is the study of the principles and methods used in distinguishing valid arguments from those that are not valid. The aim of this chapter is to help

More information

A Generic Type System for the Pi-Calculus

A Generic Type System for the Pi-Calculus A Generic Type System for the Pi-Calculus Atsushi Igarashi Kyoto University email:igarashi@kuis.kyoto-u.ac.jp Naoki Kobayashi Tokyo Institute of Technology email:kobayasi@cs.titech.ac.jp April 20, 2009

More information

Full abstraction for nominal exceptions and general references

Full abstraction for nominal exceptions and general references Full abstraction for nominal exceptions and general references Nikos Tzevelekos Oxford University N.Tzevelekos GALOP 08 1 Summary Summary Nominal games Further directions Semantics of nominal computation.

More information

Generation of. Polynomial Equality Invariants. by Abstract Interpretation

Generation of. Polynomial Equality Invariants. by Abstract Interpretation Generation of Polynomial Equality Invariants by Abstract Interpretation Enric Rodríguez-Carbonell Universitat Politècnica de Catalunya (UPC) Barcelona Joint work with Deepak Kapur (UNM) 1 Introduction

More information

Name: Class: IM8 Block:

Name: Class: IM8 Block: Name: Block: Class: IM8 Investigation 1: Mathematical Properties and Order of Operations Mathematical Properties 2 Practice Level 1: Write the name of the property shown in the examples below. 1. 4 + 5

More information

Lecture Notes: Axiomatic Semantics and Hoare-style Verification

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

More information

CSC 7101: Programming Language Structures 1. Axiomatic Semantics. Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11.

CSC 7101: Programming Language Structures 1. Axiomatic Semantics. Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11. Axiomatic Semantics Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11 1 Overview We ll develop proof rules, such as: { I b } S { I } { I } while b do S end { I b } That allow us to verify

More information

Compatibility and inheritance in software architectures

Compatibility and inheritance in software architectures Science of Computer Programming 41 (2001) 105 138 www.elsevier.com/locate/scico Compatibility and inheritance in software architectures Carlos Canal, Ernesto Pimentel, Jose M. Troya Departamento Lenguajes

More information

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

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

More information

An introduction to process calculi: Calculus of Communicating Systems (CCS)

An introduction to process calculi: Calculus of Communicating Systems (CCS) An introduction to process calculi: Calculus of Communicating Systems (CCS) Lecture 2 of Modelli Matematici dei Processi Concorrenti Paweł Sobociński University of Southampton, UK Intro to process calculi:

More information

On Böhm Trees and Lévy-Longo Trees in π-calculus

On Böhm Trees and Lévy-Longo Trees in π-calculus On Böhm Trees and Lévy-Longo Trees in π-calculus Xian Xu East China University of Science and Technology (from ongoing work with Davide Sangiorgi) April, 1 Subject Encodings from to λ-calculus (sequential

More information

Complexity Theory VU , SS The Polynomial Hierarchy. Reinhard Pichler

Complexity Theory VU , SS The Polynomial Hierarchy. Reinhard Pichler Complexity Theory Complexity Theory VU 181.142, SS 2018 6. The Polynomial Hierarchy Reinhard Pichler Institut für Informationssysteme Arbeitsbereich DBAI Technische Universität Wien 15 May, 2018 Reinhard

More information

Outline. Complexity Theory EXACT TSP. The Class DP. Definition. Problem EXACT TSP. Complexity of EXACT TSP. Proposition VU 181.

Outline. Complexity Theory EXACT TSP. The Class DP. Definition. Problem EXACT TSP. Complexity of EXACT TSP. Proposition VU 181. Complexity Theory Complexity Theory Outline Complexity Theory VU 181.142, SS 2018 6. The Polynomial Hierarchy Reinhard Pichler Institut für Informationssysteme Arbeitsbereich DBAI Technische Universität

More information

Self-Adaptation and Information Flow in Multiparty Communications

Self-Adaptation and Information Flow in Multiparty Communications Self-Adaptation and Information Flow in Multiparty Communications Joint work with Ilaria Castellani (INRIA, FR) Jorge A. Pérez (University of Groningen, NL) ABCD meeting London, 20th April, 2015 1 / 36

More information

Reasoning with Quantified Boolean Formulas

Reasoning with Quantified Boolean Formulas Reasoning with Quantified Boolean Formulas Martina Seidl Institute for Formal Models and Verification Johannes Kepler University Linz 1 What are QBF? Quantified Boolean formulas (QBF) are formulas of propositional

More information

Axiomatic Semantics. Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11 CSE

Axiomatic Semantics. Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11 CSE Axiomatic Semantics Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11 CSE 6341 1 Outline Introduction What are axiomatic semantics? First-order logic & assertions about states Results (triples)

More information

Fundamentals of Session Types

Fundamentals of Session Types Fundamentals of Session Types Vasco T. Vasconcelos LaSIGE, Faculty of Sciences, University of Lisbon, Portugal Abstract We present a reconstruction of session types in a linear pi calculus where types

More information

198:538 Complexity of Computation Lecture 16 Rutgers University, Spring March 2007

198:538 Complexity of Computation Lecture 16 Rutgers University, Spring March 2007 198:538 Complexity of Computation Lecture 16 Rutgers University, Spring 2007 8 March 2007 In this lecture we discuss Shamir s theorem that PSPACE is the set of languages that have interactive proofs with

More information

Eureka Lessons for 6th Grade Unit FIVE ~ Equations & Inequalities

Eureka Lessons for 6th Grade Unit FIVE ~ Equations & Inequalities Eureka Lessons for 6th Grade Unit FIVE ~ Equations & Inequalities These 2 lessons can easily be taught in 2 class periods. If you like these lessons, please consider using other Eureka lessons as well.

More information

Technische Universität München Department of Computer Science. Joint Advanced Students School 2009 Propositional Proof Complexity.

Technische Universität München Department of Computer Science. Joint Advanced Students School 2009 Propositional Proof Complexity. Technische Universität München Department of Computer Science Joint Advanced Students School 2009 Propositional Proof Complexity May 2009 Frege Systems Michael Herrmann Contents Contents ii 1 Introduction

More information

A π-calculus with preorders

A π-calculus with preorders A π-calculus with preorders Daniel Hirschkoff, Jean-Marie Madiot, Davide Sangiorgi École Normale Supérieure de Lyon Università di Bologna PACE kick-off meeting, 2013-04-23 Jean-Marie Madiot (Lyon, Bologna)

More information

Chapter 3 Ctd: Combinational Functions and Circuits

Chapter 3 Ctd: Combinational Functions and Circuits Chapter 3 Ctd: Combinational Functions and Circuits 1 Value Fixing, Transferring, and Inverting Four different functions are possible as a function of single Boolean variable Transferring Inverting Value

More information

Manual of Logical Style

Manual of Logical Style Manual of Logical Style Dr. Holmes January 9, 2015 Contents 1 Introduction 2 2 Conjunction 3 2.1 Proving a conjunction...................... 3 2.2 Using a conjunction........................ 3 3 Implication

More information

CS156: The Calculus of Computation

CS156: The Calculus of Computation Page 1 of 31 CS156: The Calculus of Computation Zohar Manna Winter 2010 Chapter 3: First-Order Theories Page 2 of 31 First-Order Theories I First-order theory T consists of Signature Σ T - set of constant,

More information

f(x) x

f(x) x 2 Function 2.1 Function notation The equation f(x) = x 2 + 3 defines a function f from the set R of real numbers to itself (written f : R R). This function accepts an input value x and returns an output

More information

CHAPTER1: Digital Logic Circuits Combination Circuits

CHAPTER1: Digital Logic Circuits Combination Circuits CS224: Computer Organization S.KHABET CHAPTER1: Digital Logic Circuits Combination Circuits 1 PRIMITIVE LOGIC GATES Each of our basic operations can be implemented in hardware using a primitive logic gate.

More information

Lecture Notes on Data Abstraction

Lecture Notes on Data Abstraction Lecture Notes on Data Abstraction 15-814: Types and Programming Languages Frank Pfenning Lecture 14 October 23, 2018 1 Introduction Since we have moved from the pure λ-calculus to functional programming

More information

Contents. Chapter 2 Digital Circuits Page 1 of 30

Contents. Chapter 2 Digital Circuits Page 1 of 30 Chapter 2 Digital Circuits Page 1 of 30 Contents Contents... 1 2 Digital Circuits... 2 2.1 Binary Numbers... 2 2.2 Binary Switch... 4 2.3 Basic Logic Operators and Logic Expressions... 5 2.4 Truth Tables...

More information

Lecture Notes on Intuitionistic Kripke Semantics

Lecture Notes on Intuitionistic Kripke Semantics Lecture Notes on Intuitionistic Kripke Semantics 15-816: Modal Logic Frank Pfenning Lecture 15 March 18, 2010 1 Introduction In this lecture we present an intuitionistic approach to describing a multipleworld

More information

Predicate Calculus lecture 1

Predicate Calculus lecture 1 Predicate Calculus lecture 1 Section 1.3 Limitation of Propositional Logic Consider the following reasoning All cats have tails Gouchi is a cat Therefore, Gouchi has tail. MSU/CSE 260 Fall 2009 1 MSU/CSE

More information

CS 2800: Logic and Computation Fall 2010 (Lecture 13)

CS 2800: Logic and Computation Fall 2010 (Lecture 13) CS 2800: Logic and Computation Fall 2010 (Lecture 13) 13 October 2010 1 An Introduction to First-order Logic In Propositional(Boolean) Logic, we used large portions of mathematical language, namely those

More information

COMP 2600: Formal Methods for Software Engineeing

COMP 2600: Formal Methods for Software Engineeing COMP 2600: Formal Methods for Software Engineeing Dirk Pattinson Semester 2, 2013 What do we mean by FORMAL? Oxford Dictionary in accordance with convention or etiquette or denoting a style of writing

More information

Church s undecidability result

Church s undecidability result Church s undecidability result Alan Turing Birth Centennial Talk at IIT Bombay, Mumbai Joachim Breitner April 21, 2011 Welcome, and thank you for the invitation to speak about Church s lambda calculus

More information

Recursive equations in higher-order process calculi

Recursive equations in higher-order process calculi Theoretical Computer Science 266 (2001) 839 852 www.elsevier.com/locate/tcs Recursive equations in higher-order process calculi Mingsheng Ying a; ;1, Martin Wirsing b a State Key Laboratory of Intelligent

More information

Foundations of Mathematics MATH 220 FALL 2017 Lecture Notes

Foundations of Mathematics MATH 220 FALL 2017 Lecture Notes Foundations of Mathematics MATH 220 FALL 2017 Lecture Notes These notes form a brief summary of what has been covered during the lectures. All the definitions must be memorized and understood. Statements

More information

Logic Model Checking

Logic Model Checking Logic Model Checking Lecture Notes 10:18 Caltech 101b.2 January-March 2004 Course Text: The Spin Model Checker: Primer and Reference Manual Addison-Wesley 2003, ISBN 0-321-22862-6, 608 pgs. the assignment

More information

control in out in out Figure 1. Binary switch: (a) opened or off; (b) closed or on.

control in out in out Figure 1. Binary switch: (a) opened or off; (b) closed or on. Chapter 2 Digital Circuits Page 1 of 18 2. Digital Circuits Our world is an analog world. Measurements that we make of the physical objects around us are never in discrete units but rather in a continuous

More information

Lesson 24: True and False Number Sentences

Lesson 24: True and False Number Sentences NYS COMMON CE MATHEMATICS CURRICULUM Lesson 24 6 4 Student Outcomes Students identify values for the variables in equations and inequalities that result in true number sentences. Students identify values

More information

Communication Engineering Prof. Surendra Prasad Department of Electrical Engineering Indian Institute of Technology, Delhi

Communication Engineering Prof. Surendra Prasad Department of Electrical Engineering Indian Institute of Technology, Delhi Communication Engineering Prof. Surendra Prasad Department of Electrical Engineering Indian Institute of Technology, Delhi Lecture - 41 Pulse Code Modulation (PCM) So, if you remember we have been talking

More information

Notes. Corneliu Popeea. May 3, 2013

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

More information

A Typed Interrupt Calculus

A Typed Interrupt Calculus A Typed Interrupt Calculus Jens Palsberg Di Ma Department of Computer Science Purdue University, W. Lafayette, IN 47907 {palsberg,madi@cs.purdue.edu Abstract. Most real-time systems require responsive

More information

Discrete Probability Refresher

Discrete Probability Refresher ECE 1502 Information Theory Discrete Probability Refresher F. R. Kschischang Dept. of Electrical and Computer Engineering University of Toronto January 13, 1999 revised January 11, 2006 Probability theory

More information

A Multiple-Conclusion Specification Logic

A Multiple-Conclusion Specification Logic A Multiple-Conclusion Specification Logic Alwen Tiu Australian National University ANU Logic Summer School Lecture 3, December 14, 2007 Alwen Tiu (ANU) Intuitionistic and Linear Logic (5) LSS07 1 / 18

More information