25
Organization of the Course Introduction Formal Models for Reactive Systems Modelling, Specification and Verification of Reactive Systems Introduction to the Course Lecturer: Luca Aceto Email: [email protected] or [email protected] Course web page: http://www.ru.is/faculty/luca/IMTCOURSE/ Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Modelling, Specification and Verification of Reactive Systems

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

Modelling, Specification and Verification ofReactive Systems

Introduction to the Course

Lecturer: Luca AcetoEmail: [email protected] or [email protected] web page: http://www.ru.is/faculty/luca/IMTCOURSE/

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 2: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

OverviewLectures and Tutorials/Exercise SessionsExam and Literature

Focus of the Course

Study of mathematical models for the formal description andanalysis of programs.

Study of formal languages for the specification of programbehaviour.

Particular focus on parallel and reactive systems.

Verification tools and their use in the analysis of systemdesigns.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 3: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

OverviewLectures and Tutorials/Exercise SessionsExam and Literature

Tentative Overview

Transition systems and CCS.

Strong and weak bisimilarity, bisimulation games.

Hennessy-Milner logic and bisimulation.

Tarski’s fixed-point theorem (possibly).

Hennessy-Milner logic with recursively defined formulae.

Timed automata and their semantics.

One group project.

More advanced topics may be covered depending on how thecourse develops.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 4: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

OverviewLectures and Tutorials/Exercise SessionsExam and Literature

Group Project

Putting the theory and tools into practice!

Two possibilities (to be taken with a pinch of salt)

Modelling of a solitaire game in CWB.

Solving Rush Hour games using UPPAAL.

The project counts for 40% of the final mark for the course.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 5: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

OverviewLectures and Tutorials/Exercise SessionsExam and Literature

Lectures

There will be lectures for three weeks.

Ask/answer questions. Be active!

Slides will be available before each lecture.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 6: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

OverviewLectures and Tutorials/Exercise SessionsExam and Literature

Exercises

I will regularly post exercise sheets.

Suggestion: Work on the exercises in groups of two-threepeople.

I will post solutions to (selected) exercises for each exercisesheet.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 7: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

OverviewLectures and Tutorials/Exercise SessionsExam and Literature

Exam and Literature

Individual Oral Exam = Celebration!

The oral exam counts for 60% of the final mark.

Literature

Reactive Systems: Modelling, Specification and Verification(Cambridge University Press, July 2007) by AnnaIngolfsdottir, Kim G. Larsen, Jiri Srba and myself.

Best Reader Competition with award!

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 8: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

OverviewLectures and Tutorials/Exercise SessionsExam and Literature

Hints (Summary)

Check regularly the course web-page.

Be an active participant!

Work on the exercises.

Take your own notes.

“I hear and I forget. I see and I remember. I do and Iunderstand.” (Confucius, 551 BC–479 BC)

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 9: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

Aims of the CourseReactive SystemsWhy Do We Need a Theory?

Aims of the Course

Present a general theory of reactive systems and its applications.The theory supports:

Design.

Specification.

Verification (possibly automatic and compositional).

Aims

1 Give the students practice in modelling parallel systems in aformal framework.

2 Give the students skills in analyzing behaviours of reactivesystems.

3 Introduce algorithms and tools based on the modellingformalisms.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 10: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

Aims of the CourseReactive SystemsWhy Do We Need a Theory?

Aims of the Course

Present a general theory of reactive systems and its applications.The theory supports:

Design.

Specification.

Verification (possibly automatic and compositional).

Aims

1 Give the students practice in modelling parallel systems in aformal framework.

2 Give the students skills in analyzing behaviours of reactivesystems.

3 Introduce algorithms and tools based on the modellingformalisms.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 11: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

Aims of the CourseReactive SystemsWhy Do We Need a Theory?

Aims of the Course

Present a general theory of reactive systems and its applications.The theory supports:

Design.

Specification.

Verification (possibly automatic and compositional).

Aims

1 Give the students practice in modelling parallel systems in aformal framework.

2 Give the students skills in analyzing behaviours of reactivesystems.

3 Introduce algorithms and tools based on the modellingformalisms.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 12: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

Aims of the CourseReactive SystemsWhy Do We Need a Theory?

Aims of the Course

Present a general theory of reactive systems and its applications.The theory supports:

Design.

Specification.

Verification (possibly automatic and compositional).

Aims

1 Give the students practice in modelling parallel systems in aformal framework.

2 Give the students skills in analyzing behaviours of reactivesystems.

3 Introduce algorithms and tools based on the modellingformalisms.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 13: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

Aims of the CourseReactive SystemsWhy Do We Need a Theory?

Classic View

Characterization of a “Classic” Program

A program transforms an input into an output.

Denotational semantics:the meaning of a program is a partial function

states ↪→ states

Nontermination is bad!

In case of termination, the result is unique.

Is this all we need?

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 14: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

Aims of the CourseReactive SystemsWhy Do We Need a Theory?

Classic View

Characterization of a “Classic” Program

A program transforms an input into an output.

Denotational semantics:the meaning of a program is a partial function

states ↪→ states

Nontermination is bad!

In case of termination, the result is unique.

Is this all we need?

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 15: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

Aims of the CourseReactive SystemsWhy Do We Need a Theory?

Reactive systems

What about:

Operating systems?

Communication protocols?

Control programs?

Mobile phones?

Vending machines?

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 16: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

Aims of the CourseReactive SystemsWhy Do We Need a Theory?

Reactive systems

Characterization of a Reactive System

Reactive System = system that computes by reacting to stimulifrom its environment.

Key Issues:

communication and interaction

parallelism

Nontermination is good!

The result (if any) does not have to be unique.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 17: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

Aims of the CourseReactive SystemsWhy Do We Need a Theory?

Reactive systems

Characterization of a Reactive System

Reactive System = system that computes by reacting to stimulifrom its environment.

Key Issues:

communication and interaction

parallelism

Nontermination is good!

The result (if any) does not have to be unique.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 18: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

Aims of the CourseReactive SystemsWhy Do We Need a Theory?

Analysis of Reactive Systems

Questions

How can we develop (design) a system that ”works”?

How do we analyze (verify) such a system?

Fact of Life

Even short parallel programs may be hard to analyze.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 19: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

Aims of the CourseReactive SystemsWhy Do We Need a Theory?

The Need for Theory

Conclusion

We need formal/systematic methods (tools), otherwise ...

Intel’s Pentium-II bug in floating-point division unit

Ariane-5 crash due to a conversion of 64-bit real to 16-bitinteger

Mars Pathfinder

...

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 20: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

Aims of the CourseReactive SystemsWhy Do We Need a Theory?

Classic vs. Reactive Computing

Classic Reactive/Parallel

interaction no yes

nontermination undesirable often desirable

unique result yes no

semantics states ↪→ states ?

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 21: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

MotivationLabelled Transition SystemsNotation

How to Model Reactive Systems

Question

What is the most basic view of a reactive system (process)?

Answer

A process performs an action and becomes another process.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 22: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

MotivationLabelled Transition SystemsNotation

How to Model Reactive Systems

Question

What is the most basic view of a reactive system (process)?

Answer

A process performs an action and becomes another process.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 23: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

MotivationLabelled Transition SystemsNotation

Labelled Transition Systems

Definition

A labelled transition system (LTS) is a triple

(Proc, Act, { a−→| a ∈ Act})

where

Proc is a set of states (or processes),

Act is a set of labels (or actions), anda−→ ⊆ Proc × Proc is a binary relation on states called the

transition relation, for each a ∈ Act.

We will use the infix notation sa−→ s ′ meaning that (s, s ′) ∈ a−→.

Sometimes we distinguish an initial (or start) state.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 24: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

MotivationLabelled Transition SystemsNotation

Keyword: Interaction!

LTSes describe process behaviour, and explicitly focus oninteraction.

The Motto (after Tony Hoare and Robin Milner)

Everything is (or can be viewed as) a process!

Buffers, shared memory, Linda tuple spaces, senders,receivers, . . . are all agents/processes.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.

Page 25: Modelling, Specification and Verification of Reactive Systems

Organization of the CourseIntroduction

Formal Models for Reactive Systems

MotivationLabelled Transition SystemsNotation

Labelled Transition Systems – Notation

Let (Proc, Act, { a−→| a ∈ Act}) be an LTS.

We extenda−→ to the elements of Act∗.

−→=⋃

a∈Acta−→

−→∗ is the reflexive and transitive closure of −→. (Do youknow what this means?)

sa−→ and s 6 a−→.

Reachable states.

Introduction to the Course Reactive Systems: Mod., Spec. and Ver.