+ All Categories
Home > Documents > 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de...

1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de...

Date post: 18-Jan-2016
Category:
Upload: joseph-walton
View: 217 times
Download: 1 times
Share this document with a friend
Popular Tags:
47
1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe
Transcript
Page 1: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

1

Nantes, en BretagneNantes in Brittany

La Cour des Comptes de BretagneLe Château des ducs de Bretagneare situated in Nantes

Spectacle deRoyal de Luxe

Page 2: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

A bad solution, why?

Page 3: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

Composition: to maintain properties

Page 4: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

4

Proof and Model-checking, two Complementary Approaches

Henri HabriasI.U.T. de Nantes

LINA, Laboratoire de Nantes Atlantique

Page 5: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

5

A black box

in out

We do not take into account the data going through this buffer

Page 6: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

6

Two-places buffer

Two accepted traces : [in, out, in, out]

[in, in, out, in, out, out, in, out]

The following traces are never accepted :

[in, in, in]

[out, in, out]

[in, in, out, out, out]

Using the notation for regular expressions :

M = (in . (in . out)* out)*

Page 7: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

7

Jackson trees

M

outin

outin

PROD

in move

*

*

CONS

move out

*

Page 8: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

8

A white box

in out

move

Page 9: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

9

Our presentation

Through an example :

- proof and refinement with B

- model-checking with FSP

To specify a two-places buffer

With two tools : Atelier B and LTSA

Page 10: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

10

B

- Classical B

- Event B

Page 11: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

11

Classical B vs Event B

Classical B

An abstract machine with an Invariant and Operations respecting the invariant.

The execution system of these operations is not explicitely taken into account compte par la méthode.

We prove that an operation called under its precondition respects the invariant..

Page 12: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

12

Classical B vs Event B

Event B,

Keeps the concepts of classical B but use as fundamental concept, the concept of event..

An event is specified as a guarded operation.

An operation is called.An event is not called.

Page 13: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

13

A classical B Machine

MACHINE classicalDoorSETS STATE = {open, closed}VARIABLES doorStateINVARIANT doorState : STATEINITIALISATION doorState :: ETAT

OPERATIONSopen = doorState := open END;close = doorState := closed END;st <-- whatState =st := doorState END If doorState = open,

doorState := openrespects the invariant

Page 14: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

14

A Event B Machine

MACHINE EventBDoorSETS STATE = {open, closed}VARIABLES doorStateINVARIANT doorState : STATEINITIALISATION doorState :: STATE

OPERATIONSopening = SELECT doorState = closedTHEN doorState := open END;closing = SELECT doorState = openTHEN doorState := closed END;st <-- whatStates = st := doorState

END

Page 15: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

15

The door, classical B

close open

openclosed

close

open

open close

Page 16: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

16

The door, Event B

openclosed

close

open

initialisation initialisation

Page 17: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

17

Classical operation vs Event

- a classical operation is called

- an event is NOT called. An event is trigged when its guard istrue

Page 18: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

18

Refinement : guard vs precondition

- in classical B,

preconditions are weaked,

- in Event B ,

Guards are strenghten .

Parachute: more we are closed the ground more events we see.

Page 19: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

19

Refinement in Event B

- new variables

- new constraints linking these new variables to the old variables

- new events

And we refine the higher level events

Page 20: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

20

The two places buffer in B (Architecture)M1

M2

INCLUDES

CONS PROD

M1_IREFINES

IMPORTS

Page 21: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

21

M1 (1)

MACHINE

M1

VARIABLES

state

INVARIANT

state : 0..2

INITIALISATION

state := 0

Page 22: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

22

M1Machine (2)OPERATIONS

in = SELECT state = 0 THEN state := 1

WHEN state = 1 THEN state := 2

END;

out = SELECT state = 1 THEN state := 0

WHEN state = 2 THEN state := 1

END;

move = skip

END

Necessary because we refine withconstant signatures.

Page 23: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

23

MACHINE PROD (1)

MACHINE

PROD

VARIABLES

pstate

INVARIANT

pstate : 0..1

INITIALISATION

pstate := 0

PROD CONS

Page 24: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

24

MACHINE PROD (1)

OPERATIONS

in =

SELECT pstate = 0 THEN

pstate := 1 END;

pmove =

SELECT pstate = 1 THEN

pstate := 0 END

END

PROD CONS

Page 25: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

25

La machine CONS

MACHINE CONS

VARIABLES cstate

INVARIANT

cstat : 0..1

INITIALISATION cstate := 0

OPERATIONS

out = SELECT cstate = 1 THEN cstate := 0 END;

cmove = SELECT cstate = 0 THEN cstate := 1 END

END

PROD CONS

Page 26: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

26

M2 includes PROD and CONS

MACHINE M2

INCLUDES

PROD, CONS

PROMOTES

in, out

OPERATIONS

move = pmove || cmove

END

PROD CONS

Page 27: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

27

M2 simulates M1

IMPLEMENTATION M1_I

/* to prove that M2 simulates M1 */

REFINES

M1

IMPORTS

M2

PROMOTES

in, out, move

END

Page 28: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

28

FSP

We specify a behaviour in FSP.

LTSA generate the automatonandPermits executions.

We can minimise the automaton.

We can verify properties :

- no deadlock- progress property

Page 29: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

29

FSP and LTSA

Magee J., Kramer J., Concurrency, State Models & Java Programs, Wiley, 1999

Second edition, 2006

Page 30: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

30

P = (a (cd)*, b (cd)*)*

P= (a -> STATE1 | b -> STATE1),

STATE1 = (a -> STATE1 | b -> STATE1 | c -> STATE2),

STATE2 = (d -> STATE1).

P= ab*P= (a -> STATE),STATE =(b ->STOP | a -> STATE).

P=aa*

P= (a -> STOP | a -> STATE),

STATE = (a -> STATE).P= (a, b, c)*

P= (a -> P |b -> P | c -> P).

FSP and Regular Expressions

Page 31: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

A limitation of FSP

P = a*

It impossible to translate into FSP

In FSP, no empty sequence

Page 32: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

32

From CCS to FSP

C1 = in.m. C1

C2 = m'.out.C2

System = C1 | C2

C1 =(in -> m -> C1).

C2 =(m -> out -> C1).

||SYSTEM = (C1 || C2).

Is written in LTSA :

Page 33: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

33

|| in B and the diamond in Process algebra

P1

P2

P2

P1

Diamond

x=3 & y = 1

x:= x+2 || y:= y+2

x=5 & y = 5

x=3 & y = 1

x:=x+2; y:=x+2

x=5 & y=7

x=3 & y = 1

x:=x+2;x:=x+2

x=5 & y=5

Page 34: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

34

High level spec in FSP

BUFFER = STATE0,STATE0 = (in -> STATE1),STATE1 = (in -> STATE2 | out -> STATE0),STATE2 = (out -> STATE1).

BUFFER(N=2) = STATE [0],STATE[i:0..N] = (when (i<N) in -> STATE [i+1] | when (i>0) out -> STATE [i-1]).

ou

When : guard in FSP

in

out in

out

Page 35: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

35

Low level spec in FSP

PROD = (in -> move -> PROD).CONS = (move -> out -> CONS).||BUFF_2 = (PROD || CONS).

in outmove move

in

out in

outtau

Page 36: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

36

Equivalent Specs ?

If now we hide the silent action le move, it is replaced by a tau.

If we ask the minimisation of the automation, we obtain the same automaton as the one of the high level spec

Equivalence between the two behaviours

Page 37: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

37

Two equivalences for the minimisation

In FSP, for minimisation, two équivalences are considered.

-The strong equivalence considers that two systems are equal if they

Have the same behaviour when the occurrence of all their actions can

Be observed included the silent action.

Minimisation uses this equivalence when ther is no silent action.

Page 38: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

38

Weak equivalence

-The weak equivalence considers that two systems are equal if they

exhibit the same behaviour for an external observer who cannot detect

the occurrence of the tau actions.

PROD = (in -> move -> PROD).

CONS = (move -> out -> CONS).

||BUFF_2 = (PROD || CONS)\{move}.

Page 39: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

39

Verification of properties with LTSA

- Safety property) , as the absence of deadlock.

Defines a deterministic process asserting that this same processaccepts every trace including the actions of the alphabet of this process.

-Liveness property

Asserts that something good will arrive eventually.

Page 40: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

40

Progress property

In FSP, the temporal logic is not used..

We are limited to a class of liveness property called progress, which is the opposite to the property of starvation.

Such a property asserts that, whatever will be the state of the system,It is always the case where a specified action will eventually be executed.

Page 41: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

41

A behaviour in FSP

MEN(N=3) = BACHELOR[0]BACHELOR[spouses_nb : 0..N] = (marriage -> MARRIED[1])MARRIED[spouses_nb :0..N]=(when (spouses_nb ==1) divorce -> MEN |when (spouses_nb >1) divorce -> MARRIED[spouses_nb –1] |when (spouses_nb == 3] it_is_enough_for_a_man ->divorce -> MARRIED[spouses_nb –1 ] |when (spouses_nb <3) marriage -> MARRIED[spouses_nb + 1]).

Not considered: the death of a a man who was never married

Page 42: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

42

4 Relational schemas (without null values)

Schema 1Marriages_in_course (id_married_men , id_married_women)

Schema 2Marriages_in_course (id_married_men , id_married_women)

Schema 3Marriages_in_course (id_married_men , id_married_women)

Schema 4Marriages_in_course (id_married_men , id_married_women)

Page 43: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

43

B notation

isToDayMarriedWith : id_married_women -->> id_married_men

isToDayMarriedWith : id_married_men ->> id_married_women

isToDayMarriedWith : id_married_women >->> id_married_men

isToDayMarriedWith : id_married_women <--> id_married_men & dom (isToDayMarriedWith) = man

Page 44: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

44

Polygamy without polyandry

Bachelor Married

Marriage/ N:= N+1

Divorce or death/SELECT N=1 THEN N:=N-1

Divorce or death/SELECT N>1 THEN N:=N-1

Marriage/N:=N+1

Harel Automata with guards

Page 45: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

45

Conclusion

To specify, refine and verify :

-the B approach permits to manipulate variables as it is done classicallyin programming.

-The approach by Process Algebras does not use variables. A stateis modelised by a behaviour.-With LTSA, we are obliged to modelise a variable by a behaviour and It complicates the specification comparatively to what is done with B.

Page 46: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

46

Conclusion

But otherwise with B the automaton is not explicit whereas LTSAProducts the automaton.

- in B, we are guided by the proof,

- in FSP we are guided by the execution and by the generated automaton and his minimisation. Considering the automaton it is possibleto restructurate the specification

Page 47: 1 Nantes, en Bretagne Nantes in Brittany La Cour des Comptes de Bretagne Le Château des ducs de Bretagne are situated in Nantes Spectacle de Royal de Luxe.

47

IN MEMORIAM Claude Piéplu (1923-2006)


Recommended