1 Introduction to LOTOS A LOTOS process is built up from events. An event is unstructured - just a (gate) name e.g. g, a, send, open structured - a name.

Slides:



Advertisements
Similar presentations
Process Algebra Book: Chapter 8. The Main Issue Q: When are two models equivalent? A: When they satisfy different properties. Q: Does this mean that the.
Advertisements

Process Algebra (2IF45) Recursion in Process Algebra Suzana Andova
Introduction to Petri Nets Hugo Andrés López
Process Algebra (2IF45) Abstraction in Process Algebra Suzana Andova.
© 2012 Metamaxim Ltd Modelling Choreography Ashley McNeile 1 st February 2012.
Processes and Basic LOTOS Team LOT ‘O Specs Cara Gibbs Terry Peckham Robert Cowles Manon Sanscartier Ergun Gurak.
Programming Paradigms for Concurrency Lecture 11 Part III – Message Passing Concurrency TexPoint fonts used in EMF. Read the TexPoint manual before you.
1 Statecharts for the many: Algebraic State Transition Diagrams Marc Frappier GRIL – Groupe de recherche en ingénierie du logiciel.
CSE 425: Semantic Analysis Semantic Analysis Allows rigorous specification of a program’s meaning –Lets (parts of) programming languages be proven correct.
Process Algebra (2IF45) Probabilistic Process Algebra Suzana Andova.
Process Algebra (2IF45) Probabilistic Process Algebra Suzana Andova.
Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Lecture 11: An introduction to CSP.
Process Algebra (2IF45) Probabilistic extension: semantics Parallel composition Dr. Suzana Andova.
ISBN Chapter 3 Describing Syntax and Semantics.
1 Ivan Lanese Computer Science Department University of Bologna Roberto Bruni Computer Science Department University of Pisa A mobile calculus with parametric.
1 Ivan Lanese Computer Science Department University of Bologna Italy Behavioural Theory for SSCC Joint work with Luis Cruz-Filipe, Francisco Martins,
1 Formal Models for Distributed Negotiations Concurrent Languages Translation Roberto Bruni Dipartimento di Informatica Università di Pisa XVII Escuela.
1212 Models of Computation: Automata and Processes Jos Baeten.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio Montesi and Gianluigi.
January 14, 2015CS21 Lecture 51 CS21 Decidability and Tractability Lecture 5 January 14, 2015.
1 IFM 2005 – November 30, 2005 EXP.OPEN 2.0 A flexible tool integrating partial order, compositional, and on-the-fly verification methods Frédéric Lang.
Software Testing Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin and Fraunhofer Institute of Computer Architecture and Software Technology.
Real-Time Systems Group University of Pennsylvania 5/24/2001 Resource-bound family of real-time process algebras Oleg Sokolsky, Insup Lee Real-Time Systems.
1 Ivan Lanese Computer Science Department University of Bologna Italy Behavioural Theory at Work: Program Transformations in a Service-centred Calculus.
Describing Syntax and Semantics
1212 Models of Computation: Automata and Processes Jos Baeten.
Process Algebra (2IF45) Basic Process Algebra (Soundness proof) Dr. Suzana Andova.
University of Regina Full LOTOS Department of Computer Science University of Regina, Regina SK, Canada Yashu Bither Amrudee Sukpan Tetyana Manuylenko Chakka.
INRIA Sophia-Antipolis, Oasis team INRIA Rhône-Alpes, Vasy team Feria–IRIT/LAAS, SVF team Toulouse GET - ENST Paris, LTCI team FIACRE Models and Tools.
SDS Foil no 1 Process Algebra Process Algebra – calculating with behaviours.
Mathematical Operational Semantics and Finitary System Behaviour Stefan Milius, Marcello Bonsangue, Robert Myers, Jurriaan Rot.
Communication and Concurrency: CCS
Reactive systems – general
2G1516 Formal Methods2005 Mads Dam IMIT, KTH 1 CCS: Operational Semantics And Process Algebra Mads Dam Reading: Peled 8.3, 8.4, 8.6 – rest of ch. 8.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
1 Bisimulations as a Technique for State Space Reductions.
Internet Security CSCE 813 Communicating Sequential Processes.
Formal Methods for Software Engineering Part II: Modelling & Analysis of System Behaviour.
1 / 48 Formal a Language Theory and Describing Semantics Principles of Programming Languages 4.
2G1516 Formal Methods2005 Mads Dam IMIT, KTH 1 CCS: Processes and Equivalences Mads Dam Reading: Peled 8.5.
Concurrency 5 The theory of CCS Specifications and Verification Expressive Power Catuscia Palamidessi
CS412/413 Introduction to Compilers Radu Rugina Lecture 13 : Static Semantics 18 Feb 02.
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
Process Algebra (2IF45) Abstraction Parallel composition (short intro) Suzana Andova.
Process Algebra (2IF45) Basic Process Algebra Dr. Suzana Andova.
Internet Security CSCE 813 Communicating Sequential Processes.
7/7/20161 Formal Methods in software development a.a.2015/2016 Prof.Anna Labella.
Theory of Computation Automata Theory Dr. Ayman Srour.
1 Context-Free Languages & Grammars (CFLs & CFGs) Reading: Chapter 5.
Context-Free Languages & Grammars (CFLs & CFGs) (part 2)
Formal Methods for Software Engineering
Describing Syntax and Semantics
Math a - Sample Space - Events - Definition of Probabilities
Prof. Dr. Holger Schlingloff 1,2 Dr. Esteban Pavese 1
Syntax Specification and Analysis
Complexity and Computability Theory I
ISA 763 Security Protocol Verification
Process Algebra (2IF45) Expressiveness of BPArec
REGULAR LANGUAGES AND REGULAR GRAMMARS
SS 2018 Software Verification ML, state machines
CSE 370 – Winter Combinational Logic - 1
Non-Deterministic Finite Automata
Formal Methods in software development
Formal Methods in software development
Advanced Topics in Software Engineering 1
Message Sequence Charts
L Calculus.
Formal Methods in software development
A MODULAR LTS FOR OPEN REACTIVE SYSTEMS
Faculty of Computer Science and Information System
Presentation transcript:

1 Introduction to LOTOS A LOTOS process is built up from events. An event is unstructured - just a (gate) name e.g. g, a, send, open structured - a name with a data offer e.g. g!1 - offer the value 1 at gate g g?x:N - offer to accept any value of sort N, bind it to variable x g?y:N[y<10] - offer to accept any number less than 10, bind it to variable y

2 Basic Operations Behaviour expressions Prefix a; P - offer event a and then behave like process P. - n.b. a is an event, P is a process. Choice P1 [] P2 - behave like process P1 or process P2. Termination stop or exit(…) - stop is deadlock - exit is “graceful” termination:  ;stop - exit may have data values associates

3 Basic Operations Process Definition process Buffer[in,out](k:Nat) := body endproc -Buffer is process name - […] is list of gates/events as formal parameters - (…) is list of data as formal parameters - body is behaviour expression

4 Semantics A LOTOS process/behaviour expression denotes a labelled transition system. The lts is defined by a set of axioms and inference rules. Axioms a; P a P g!n;P gn P g?x:Nat; P g1 P g2 P g3 P...

5 More on Choice [] represents non-deterministic choice the environment resolves the non-determinisim. Does a; (b;stop [] c; stop) behave the same as a; b; stop [] a; c; stop ? This is a crucial question. View processes as trees. a a a b c b c When are two processes equivalent?

Bisimulation for LOTOS An LTS consists of States S An initial state S 0 A set of labels L A labelled transition relation -> on LxSxS E.g. g!n; P gn P Defn A strong bisimulation ~ is a binary relation on LTS’s. P and Q are strong bisimilar if P 0 ~ Q 0, for all  in Act, where 1. if P  P’then there exists Q’ s.t. Q  Q’ and P’ ~ Q’. 2.if Q  Q’then there exists P’ s.t. P  P’ and P’ ~ Q’. a a a a a a b c b c b b b

7 Recursion A process can be recursive. E.g. Process P[a] :noexit := a;P a process Buffer[in,out] :noexit := in; out; Buffer[in,out] in out NB mutual recursion is allowed.

8 Parallelism Independent parallelism ||| Eg. P ||| Q. P a P’ and v.v. P ||| Q a P’ ||| Q e.g. Buffer[ain,aout] ||| Buffer[bin,bout] arbitrary interleaving of events.

9 Parallelism Dependent parallelism || Eg. P || Q. P a P’ Q a Q’ P || Q a P’ || Q’ complete dependence.

10 Example A[a,b,c,d] || B[a,b,c,d] when A is a; (b; stop [] c; stop) B is a; (c; stop [] b;stop) A is a; (b; stop [] c; stop) B is a; c; stop A is a; (b; stop [] c; stop) B is b; a;stop

11 Parallelism General parallelism |[…]| Eg. P |[g]| Q. P a P’ Q a Q’ a  {g1,…,gn} P |[g1,…,gn]| Q a P’ | |[g1,…,gn]| | Q’ P a P’ a  {g1,…,gn} P |[g1,…,gn]| Q a P’ | |[g1,…,gn]| | Q (and v.v.)

12 Example 2 one-slot buffers to make 1 two-slot buffer process Buffer2slot[in,out,mid] : noexit := Buffer1[in,mid] |[mid]| Buffer1[mid,out] endproc where process Buffer1[in1,out1]:noexit := in1?x:Nat; out1!x; Buffer1[in1,out1] endproc in Buffer1 Buffer1 out mid is an internal gate.

13 Example A[a,b,c,d] |[..]| B[a,b,c,d] when A is a; (b; stop [] c; stop) B is a; (c; stop [] b;stop) … is [a,b,c] … is [b,c] A is a; (b; stop [] c; stop) B is b; stop … is [a,b,c] … is [b,c] … is [c] … is [b]