Download - Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Transcript
Page 1: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Vérification formelle par model-checking

Introduction, principes etutilisation du logiciel UPPAAL

Steve LIMAL doctorant

Page 2: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

2Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Planning de la journée

ProblématiquePrincipe du model-checking

• définitions• principe général• Modèle de comportement

- Difficulté de génération- application à UPPAAL

• Modèle de propriété- la logique CTL- exemple de propriété

Traitements de casÉvaluation

Page 3: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Problématique

3Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Les systèmes automatisés

Objectif : • contrôle automatique d’un processus.

Processus :• constituants mécaniques, électriques,

pneumatiques, électroniques, ... • actionneurs.• capteurs ou détecteurs.

Commande :• Automate Programmable Industriel (API):

contrôleur industriel monotache cyclique.

Enjeu :• l’état du processus n’est connu de la

commande qu’à partir d’informations discrètes (entrée).

Processus

Entrées SortiesAPI

Page 4: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Problématique

4Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Les APICaractéristiques

• Robuste• Stable temporellement• Rapide

Fonctionnement :Mono – tache cyclique • collecte des informations du processus (entrées)• traite les données reçues• donne des ordres au processus (sorties)

Programmation :5 langages normalisés (IEC 61131-3):• textuels : ST, IL• graphiques : SFC, LADDER, FBD

Traitement

Émission des sorties

initialisation

Lecture des entrées

Page 5: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Problématique

5Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Ladder Diagram

Caractéristique• langage graphique normalisé

(Norme IEC 61131-3 )

Constitution• réseaux exécutés séquentiellement

- contacts- bobines- blocs fonctionnels

• mémoires• temporisations• détecteurs d’événements

| RS_pce || +------+ || rec bas | RS | pce |

L01+-+-| |--| |-------|S Q1|-----------( )--+| ava bas | | |+-+-| |--| |-+-----|R1 | || | auto | +------+ || +-|/|------+ || || TON_L1 || bas +---------+ bs_1s |

L02+--| |-------|IN TON Q|--------------( )--+| #1sec-|PT ET|- || +---------+ || || RS_ava || +------+ || rec haut | RS | haut O_ava |

L03+-+-| |--| |-------|S Q1|----| |----( )--+| ava | | |+-+-| |--+---------|R1 | || | auto | +------+ || +-|/|--+ || || RS_rec || +------+ || ava haut | RS | haut O_rec |

L04+-+-| |--| |-------|S Q1|----| |----( )--+| rec | | |+-+-| |--+---------|R1 | || | auto | +------+ || +-|/|--+ || || RS_des || +------+ || rec pce haut | RS | rec O_desc|

L05+-+-| |--|/|-+-| |-|S Q1|--+-| |-+--( )--+| | ava pce | | | | ava | || +-| |--| |-+ | | +-| |-+ || bs_1s | | |+-+-| |--+---------|R1 | || | auto | +------+ || +-|/|--+ || || pce O_asp |

L06+--| |--------------------------------( )--+| |

| RS_pce || +------+ || rec bas | RS | pce |

L01+-+-| |--| |-------|S Q1|-----( )--+| ava bas | | |+-+-| |--| |-+-----|R1 | || | auto | +------+ || +-|/|------+ || || TON_L1 || bas +---------+ bs_1s |

L02+--| |-------|IN TON Q|--------( )--+| #1sec-|PT ET|- || +---------+ || |

Bloc fonctionnel

BobineContact

Page 6: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Problématique

6Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

BesoinsComment prouver que le contrôle du processus :

• est exempt de bugs ?• est conforme aux attentes du cahier des charges ?

Scénario de test sur le réel ?• très proche de l’utilisation nominale ;• vue très limitée des possibilités du contrôle ; • nécessite du matériel spécifique.

Simulation par modèle ?• long ;• n’atteint pas tous les cas d’utilisations possibles.

Vérification formelle• prouve que le programme de commande est conforme ;• taux de couverture de 100% du comportement logiciel.• MAIS vérification de modèles de programme et non de programmes.

Page 7: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Problématique

7Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Vérification formelle ducomportement d’un système

Comportement duSystèmeComportement

du système (CS)• Ce que fait le système

CSCD ⊂∅=CSCII

Vérification formelle :• Prouver que

CDCD

CD CDComportement

Désiré

Comportement Désiré (CD)• Ce que le système doit faire CD

CD

CDCDCDComportement

InterditComportement Interdit (CI)

• Ce que le système ne doit pas faire

Page 8: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Problématique

8Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Intégration dans développementde programme de commande

Cahierdes charges

Conception du logiciel de commande

CDComportementDésiré

CDCD

CDCDCDComportement

Interdit Propriétés à vérifier

Comportement duSystèmeContrôleur

processus

Vérification formelle

Propriétés vérifiéesou non

Page 9: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Model-checking

9Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Définitions

« Model ...• connaître ou caractériser tous les états d'évolution du programme de

contrôle nécessaire à la vérification.• Ex : le graphe des situations accessibles d’un GRAFCET ou d’un réseau de

Pétri.

... - Checking »• vérifier des propriétés sur ces états ou la relation entre ces états.

État• Valeur des variables à un instant donné.

Page 10: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Model-checking

10Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Principe

Propriétés • il est toujours vrais que ...• pas de blocage.• tel événement suit toujours celui-ci.

MODEL CHECKER

Propriétés vérifiéesou diagnostic en cas d’échec

Formalisation

AG(APB→AF ~horn)

AG(~d1→AF ~lig)

Logique temporelle (LTL, CTL, …)

Programme de contrôle Moniteur

ETS

I

Modélisation

Modèle de comportement(Automate à états)

Page 11: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Modèle : automates à états

11Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Modélisation du comportement de l’exécution du programme LD par un API

Etat de l’automate• Etat d’avancement du cycle de l’API

- Lecture des entrées- Exécution du programme utilisateur

• Exécution de L1• Exécution de L2

- Ecriture des sorties

• Valeur des variables présentes dans le programme

- A, B, S, T

| A B S |L1 +-+-| |-+-|/|--( )-+

| | S | || +-| |-+ || || S T T |

L2 +--| |--|/|----( )-+| |

A

B

S

T

API en exécution cyclique

Formalisation

Automate àétats finis

4 po

ssib

ilité

s

16 combinaisons

Taille maximalede l’automate : 64 états

Page 12: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

12Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Initialisation

Lecture des entrées

Début cycle API

Génération de l’automateà états finis

Exécutionde la ligne 1Exécutionde la ligne 2

Ecrituredes sorties

| A B S |L1 +-+-| |-+-|/|--( )-+

| | S | || +-| |-+ || || S T T |

L2 +--| |--|/|----( )-+| |

A

B

S

T

Fin cycle API

35 états, 56 transitions

Cyc

le A

PI

ABSTValeurs

des variables

TSBA •••

Initialisation?

Page 13: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Modèle : automates à états

13Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Codage dans un outil de Model-Checking

| A B S |L1 +-+-| |-+-|/|--( )-+

| | S | || +-| |-+ || || S T T |

L2 +--| |--|/|----( )-+| |

A

B

S

T

API en exécution cyclique

Formalisation

Automate àétats finis

Passage directdifficile à formaliseret peu opérationnel

Moniteur d’exécution

Variables du programme• Entrées• Variables calculées

Identification des éléments clés

Moniteurd’exécution

EntréesVariablescalculées

Modélisation ducomportement

des éléments clés

Constructionde l’automate à

états

Outil spécialisé

synchronisation

Page 14: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Introduction à UPPAAL

14Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

UPPAAL

Caractéristiques : • outil pour modéliser, simuler et vérifier des systèmes en temps réel.• modélise les systèmes comme une collection d’automates :

- non déterministes;- temporisés par des horloges à valeurs réelles;- communiquant par des canaux de messages ou des variables partagées.

UPPAAL se compose de trois parties:• un éditeur graphique• un simulateur• un model-checker

Page 15: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

15Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Editeur graphique

Arborescence des automatesConfigurationDéclaration de variables

Outils

Construction d’automate

Page 16: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Introduction à UPPAAL

16Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Editeur graphique

Etatinitial

Etat

Reset d’horloge

Invariant

Réception de message

Emissionsynchronisation

Garde

Affectation de variable

Page 17: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

17Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Simulateur

États des automates communicants

Évolution des automates et synchronisations

États des variables

Historique desévolutions choisies

Choix d’évolution

Page 18: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Les automates à états finis temporisés

18Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Les états

À tout moment un et un seul état est actif dans un automate.3 états spéciaux :• Initial

état unique et obligatoire, activé à l’initialisation.• Committed

état qui, une fois actif, doit être désactivé au prochain pas d’évolution.• Urgent

état qui, une fois actif, doit être désactivé dans un temps nul.

Invariant :• condition associable à un état.• si l’état est actif, la condition doit être respectée.

Page 19: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Les automates à états finis temporisés

19Semaine de regroupement – ATELIER 2 – 11/10/2007

Transition

4 éléments configurables :• Sélection (select)

Valeur non déterministe d’une variable dans un set donné: permet de regrouper la définition de plusieurs transition entre deux états.

• Garde (guard)condition de franchissement : si fausse, la transition ne peut être franchie.

• Synchronisation (synchronization)élément de communication entre automate : permet le franchissement simultané de transitions entre automates.

• Affectation (update et select)modification de la valeur de variables par calcul, avec une formule (update)

automate1 automate2 automate1 automate2

automate3

Normale (1 émetteur, 1 récepteur) Broadcast (1 émetteur, n récepteur(s)) n ∈ Ν

Page 20: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Les automates à états finis temporisés

20Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Les variables

Quatre types élémentaires:• int : variable entière, par défaut dans la plage [-32768, 32767] et

initialisée à 0. Plage et initialisation configurable.• bool : variable booléenne, initialisée par défaut à 0. Initialisation

configurable.• clock : variable réelle dédiée au temps. Test et affectation uniquement avec

des valeurs entières.• chan : canal de communication, de type ‘normal’ par défaut. 3 autres types

possibles : ‘urgent’, ‘broadcast’ et ‘urgent broadcast’.

Déclaration :• Globale• Locale

• Implicite : Pour chaque état Ei de chaque automate Ai, une variable de type ‘bool’ représentant son activité est créée : Ai.Ei

Page 21: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Les automates à états finis temporisés

21Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Règles d’évolutionSans synchronisation :

• Si une transition est franchissable, elle peut être franchie mais sans obligation. • Une seule transition peut être franchie à chaque pas d’évolution parmi tous les

automates.Avec synchronisation :

• Une synchronisation possible de plusieurs automates (i.e. les transitions correspondantes sont franchissables sans la synchronisation) est :

- immédiate ;- prioritaire sur d’autres transitions normales.

• Une synchronisation normale non possible est bloquante pour l’émetteur et le récepteur.

• Une synchronisation broadcast non possible est bloquante seulement pour les récepteurs.

Respect des invariants :• Les invariants de chaque état actif doivent toujours être respectés.• Si un invariant ne peut être respecté, tous les automates sont alors bloqués

(deadlock).

Page 22: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Les automates à états finis temporisés

22Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Exemple d’évolution et première utilisation de UPPAAL

A:=1

A:=0

A:=1

A:=0

A==1

A==0

Réaliser des modèles suivants et simuler leur évolution :

C

A:=1test!

A:=0

test?

test : normal chan

test?

C

A:=1test!

A:=0

test?

test : broadcast chan

test?

Automate 1

Automate 2

Automate 1

Automate 2

Automate 3

Automate 1

Automate 2

Automate 3

Page 23: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Les automates à états finis temporisés

23Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Exercices d’utilisation

Construire et simuler:1. Un automate modifiant alternativement la valeur de la variable booléenne A

entre 0 et 1.2. Un automate comptant jusqu’à 20 avec une variable B puis mettant la

variable A à 1.3. Un automate attribuant une valeur entre 0 et 5 à la variable entière A

comprise entre 0 et 10.4. Un automate aillant le même comportement que trois automates du (1), à

comparer le comportement avec 3 automates.5. Deux automates jouant au ping-pong avec les messages « ping » et

« pong ».6. Trois automates manipulant une variable booléenne chacun, attribuant la

valeur 0 ou 1, de façon non déterministe, simultanément au message top!d’un quatrième automate.

Page 24: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Les automates à états finis temporisés

24Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Le temps

Décompte du temps avec les horloges à valeur réelle.• Écoulement du temps simultané sur chaque horloge• Tests des horloges dans les gardes ou les invariants par rapport à un entier.

Exemples :

Δt >= 5

2

X

1 t

5

Δt = 5

2

X

1 t

5

5 <= Δt <= 7

72

X

1 t

5

2

X >=5

1

X := 0

X <= 52

X >=5and X<=7

1

X := 0

2

X >=5

1

X := 0

0 0 0

Page 25: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Les automates à états finis temporisés

25Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Exercices sur les horloges

Construire et simuler :1.Un automate attendant un temps supérieur à 20 unités de temps puis

mettant la variable A à 1.2.Un automate modifiant alternativement la valeur de la variable booléenne A

entre 0 et 1, toutes les 10 unités de temps.3.Un automate représentant le fonctionnement d’une TON.

L’entrée de la TON sera modélisée par un automate indépendant.

Page 26: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Les automates à états finis temporisés

26Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Temporisation TON| TON_L1 || L1_Prod +---------+ L1_pump |

L06+------| |----|IN TON Q|---+----( )----+-+| #5sec-|PT ET|- | L1_down | || +---------+ +----( )----+ || |

+--------+ +---+ +--------+IN | | | | | |

--+ +--------+ +---+ +-----t0 t1 t2 t3 t4 t5

PT +---+ +---+: / | + / |

ET : / | /| / |: / | / | / |: / | / | / |0-+ +--------+ +---+ +-----t0 t1 t2 t3 t4 t5

+---+ +---+Q | | | |

-------+ +---------------------+ +-----t0+PT t1 t4+PT t5

Ecoulée +---o +---o| | | |

En cours +----o | +---o +----o || : | | | | : |

Inactive 0-o : +--------o +---o : +-----t0 t0+PT t1 t2 t3 t4 t4+PT t5

Page 27: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Application

27Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Application

Modéliser le système suivant...

Processus modélisé par des entrées indéterministes.

... en vue de la vérification de la propriété suivante...Lorsque l’entrée B est présente, la sortie T doit être absente.

... avec l’hypothèse suivante.Le temps de cycle s’écoule seulement entre l’émission des sorties et la lecture des entrées du cycle suivant.

| A B S |L1 +-+-| |-+-|/|--( )-+

| | S | || +-| |-+ || || S T T |

L2 +--| |--|/|----( )-+| |

A

B

S

T

API en exécution cyclique

Traitement

Émission des sorties

initialisation

Lecture des entrées

Temps de cycle : 1 unité de temps

Page 28: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Application

28Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Le moniteur d’exécution

Début de cycle

Après lecture des entrées

Après traitement

Fin de cycle

Avant initialisation

Read!

<Calculs>

Emit !Horloge >= Temps de cycle

U

U

U

U

Page 29: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Application

29Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Variable d’entrée

Variable A

Read?

Read?

Read? Read?

A:=1

A:=0

Variable B

Read?

Read?Read? Read?

B:=1

B:=0

etat_1etat_0

Page 30: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Vérification de propriétés

30Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Principe

Propriétés • il est toujours vrais que ...• pas de blocage.• tel événement suit toujours celui-ci.

MODEL CHECKER

Propriétés vérifiéesou diagnostic en cas d’échec

Formalisation

AG(APB→AF ~horn)

AG(~d1→AF ~lig)

Logique temporelle (LTL, CTL, …)

Programme de contrôle Moniteur

ETS

I

Modélisation

Modèle de comportement(Automate à états)

Page 31: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Vérification de propriétés

31Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Vérification de propriétés

Recherche dans l’automate • d’états• de chemins• de circuits

ayant des caractéristiques données.

Expression des propriétés• Logique temporelle• Automate ayant un rôle

d’observateur

Page 32: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Logique CTL

32Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

La logique CTL : une logique temporelleCTL : Logique temporelle utilisée pour énoncer formellement des propriétés.

Logique temporelle • Logique spécialisée dans les énoncés et raisonnements faisant intervenir la

notion d'ordonnancement dans le temps.

Formule CTL• des propositions atomiques : a, b, …• des opérateurs booléens : • des opérateurs temporels : EF, AF, AG, EG, E p U q, A p U q, EX, AX

→¬∨∧

Page 33: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Logique CTL

33Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

La logique CTL, l'opérateur EF (1)

EF a : " Il existe un chemin le long duquelil existe un état vérifiant a "

FE

q

a

EF aq

Page 34: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Logique CTL

34Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

La logique CTL, l'opérateur EF (2)Analogie : Le métro parisien.

Chaque station est un état. État initial : Bagneux.Comportement : Chemins possibles.

Propriété à vérifier :EF cine_présent

⇒Il existe un chemin le long duquel il existe un état vérifiant « cine_présent »

⇒Existe t’il un chemin depuis Bagneux qui me mène a un ciné présent prés de la station ?

Réponse : OUI.

Page 35: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Logique CTL

35Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

La logique CTL, l'opérateur AF

AF a : " Pour tout chemin, il existe un état vérifiant a "

FA

q

a

AF aq

Page 36: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Logique CTL

36Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

La logique CTL, l'opérateur AG

AG a : " le long de tous les chemins, tous les états vérifient a "

GA

q

AG aq

a

Page 37: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Logique CTL

37Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

La logique CTL, l'opérateur EG

EG a : " Il existe un chemin le long duquel tous les états vérifient a "

GE

q

EG aq

a

Page 38: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Logique CTL

38Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

La logique CTL, l'opérateur E a U b

E a U b : " Il existe un chemin où a est vrai jusqu'à ce que b soit vrai"

a U bE

q

E a U bq

a

b

Page 39: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Logique CTL

39Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

La logique CTL, l'opérateur A a U b

A a U b : " Sur tous les chemins, a est vrai jusqu'à ce que b soit vrai"

a U bA

q

A a U bq

a

b

Page 40: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Logique CTL

40Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

La logique CTL, les opérateurs EX et AX

EX a : " Il existe un chemin le long duquel le prochain état vérifie a "

XE

q

r

AX a : " Tous les prochains états vérifient a "

XA

EX aq

a

AX arEX ar

Page 41: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Logique CTL

41Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

La logique CTL, emboîtement d'opérateursAG EF a : "Depuis tout état accessible, il est possible d'atteindre un état vérifiant a"

AG

qAG (EF a)q

a

EF

Page 42: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Logique CTL

42Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Egalités remarquables

Il est toujours vrais que la propriété ‘a’ est vérifiée≡Il n’est pas possible d’atteindre un état où la propriété ‘a’ n’est pas vérifiéeaa

aaaaaa

¬¬≡¬¬≡¬¬≡¬¬≡

AFEGAGEFEGAFEFAG

Page 43: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Logique CTL

43Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Correspondance CTL - UPPAAL

CTL UPPAAL

A A

E E

G [ ]

F <>

AG (p AF q) p --> q

&& || ! implyand or not imply⇒¬∨∧

Page 44: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Logique CTL

44Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Vérification à l’aide d’observateurs

Dans le cas de propriétés complexes :• traitant de simultanéité,• ou découlant de plusieurs séquentialités,• ou dépendantes du temps physique (horloge),• ou difficile à exprimer.

⇒ Utilisation d’observateurs :• Modification du modèle par :

• Ajout d’un automate supplémentaire (automate observateur) représentant la propriété à vérifier.

• Synchronisation de l’observateur avec le modèle original.• Vérification avec une propriété CTL utilisant l’état de l’observateur.

• AG (! obs.Error)

Read?Read?

A==5 Error

Automate « obs »

Page 45: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Logique CTL

45Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Cyc

le A

PI Initialisation

Lecture des entrées

Début cycle API

Exécutionde la ligne 1

Exécutionde la ligne 2

Ecrituredes sorties

Fin cycle APIA

B

ST

Combinaisons des variables

Exemple de propriétés (1)

P1 Lorsque l’entrée B est présente, la sortie T doit être absente.

Existe-t-il un état de l’automate pour lequel :• B est présent• T est présent• lorsque l’API est en fin de cycle

| A B S |+-+-| |-+-|/|--( )-+| | S | || +-| |-+ || || S T T |+--| |--|/|----( )-+| |

A

B

S

T

Non, P1 est vérifiée.

Page 46: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Logique CTL

46Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Exemple de propriétés (2)

Exercice :P1 « Lorsque l’entrée B est présente,

la sortie T doit être absente »• Enoncer la propriété P1 dans le langage CTL. • Vérifier la propriété P1 sur le modèle UPPAAL.

Page 47: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Exemple

47Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Gestion d’un système de distribution d’eau

Constitution du système• un réservoir• deux circuits de pompage (L1,L2)

(une pompe et deux vannes)• une vanne de distribution générale• une vanne de refoulement

Règles de fonctionnement• Les deux pompes ne doivent jamais

fonctionner simultanément.• En cas de panne de la pompe

principale, la pompe de secours doit assurer la distribution.

• Permutation des circuits toutes les 24h

Bf_valve

L2_down L2_up

Out_valve

L2_pump

L1_down L1_upL1_pump

Page 48: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Exemple

48Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Propriétés à vérifier pour ce système (1)

Propriété n°1• Les 2 pompes ne doivent jamais fonctionner en même temps.

Propriété n°2• Une panne générale provoque l'arrêt des pompes et la fermeture des vannes.

Propriété n°3• Une panne d’une pompe provoque l'arrêt de cette pompe et la fermeture des

vannes associées.

Page 49: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Exemple

49Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Propriétés à vérifier pour ce système (2)

Propriété n°4• En cas de panne de la pompe principale, la pompe de secours doit assurer la

distribution.

Propriété n°5• Dans le cas d'une demande de distribution "bas_debit" seule, la vanne

refoulement doit être ouverte.

Propriété n°6• La mise en route d'une pompe ne peut se faire qu'après avoir ouvert la vanne

en amont pendant 5s.

Page 50: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Exemple

50Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Programme de commande| Line_swap L1_prio Act_L1 | | L1_Prod L1_up |

L01+------|P|--------+----|/|------( )---+--+ L05+-----| |-----------------------( )------+| | L1_prio Act_L2 | | | || +----| |------( )---+ | | TON_L1 || | | L1_Prod +---------+ L1_pump || RS_prio | L06+-----| |----|IN TON Q|---+----( )----+-+| +------+ | | #5sec-|PT ET|- | L1_down | || Act_L1 | RS | L1_prio | | +---------+ +----( )----+ |

L02+------| |--------|S Q1|-------( )-----+ | || Act_L2 | | | | L2_Prod L2_up |+------| |--------|R1 | | L07+-----| |-----------------------( )------+| +------+ | | || | | TON_L2 || RS_L1 | | L2_Prod +---------+ L2_pump || +------+ | L08+-----| |----|IN TON Q|---+----( )----+-+| L1_prio L2_Prod | RS | L1_Prod | | #5sec-|PT ET|- | L2_down | |

L03+-+-| |-----|/|-+-|S Q1|-------( )-----+ | +---------+ +----( )----+ || | L2_fail | | | | | || +----| |------+ | | | | L1_Prod Out_valve || H_flow L_flow | | | L09+--+---| |----+-----------------( )------++-+-|/|-----|/|-+-|R1 | | | | L2_Prod | || | L1_fail | +------+ | | +---| |----+ || +----| |------+ | | || | SP_fail | | | L1_pump H_flow Bf_valve || +----| |------+ | L10+--+---| |----+----|/|----------( )------+| | | | L2_pump | || RS_L2 | | +---| |----+ || +------+ || L1_prio | RS | L2_Prod | VAR_INPUT

L04+-+----|/|------+-|S Q1|-------( )-----+ H_flow, L_flow, L1_fail : BOOL;| | L1_fail | | | | L2_fail, Line_swap, SP_fail : BOOL;| +----| |------+ | | | END_VAR | H_flow L_flow | | | VAR_OUTPUT+-+-|/|-----|/|-+-|R1 | | Bf_valve, L1_down : BOOL;| | L2_fail | +------+ | L1_pump, L1_up, L2_down : BOOL; | +----| |------+ | L2_pump, L2_up, Out_valve : BOOL;| | SP_fail | | END_VAR| +----| |------+ | VAR| | L1_Prod | | Act_L1, Act_L2, L1_prio : BOOL;| +----| |------+ | L1_Prod, L2_Prod : BOOL;

RS_prio, RS_L1, RS_L2 : RS;TON_L1, TON_L2 : TON

END_VAR

Page 51: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

Exemple

51Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Temporisation TON

inactive en cours

écoulée

in

!int < 5

in && t >= 5

Q:=1!in

Q:=0

TON?

TON?

TON?

TON!

Utilisation de Q

U

U

U

Calcul de in

Page 52: Introduction, principes et utilisation du logiciel UPPAAL ...denis.lurpa.free.fr/m2r2.1/atelier_verif_EDC.pdf · • Automate Programmable Industriel (API): contrôleur industriel

52Semaine de regroupement – Atelier Vérification formelle par model-checking – 27/11/2008

Traitement de cas

Vérifier, sur le modèle de contrôle de distribution d’eau donné, toutes les propriétés énoncées en langage naturel :

• Choix du type de vérification (propriété CTL seule ou avec un automate observateur),

• Expression de la propriété CTL et de l’observateur le cas échéant.• Expression de la propriété en langage UPPAAL,• Association avec les variables du modèle,• Vérification de la propriété formelle sur le modèle avec UPPAAL,• Conclusion.