Slides - Laboratoire Spécification et Vérification

28 sept. 2006 - Langages de la norme IEC 61131-3 : SFC, Ladder,... SFC action 2. 1 action 1. 2. Condition 1. Condition 2. Page 22. Langages de la norme IEC ...
560KB taille 5 téléchargements 121 vues
Vérification des propriétés temporisées des automates programmables industriels Houda Bel mokadem Laboratoire Spécification et Vérification

Soutenance de Thèse – 28 septembre 2006

Les systèmes embarqués

• téléphones portables • fusées • automobiles • systèmes automatisés (automates programmables industriels) • etc.

Les systèmes embarqués

• téléphones portables • fusées • automobiles • systèmes automatisés (automates programmables industriels) • etc.

➨ de plus en plus autonomes et complexes ➨ réactifs ➨ souvent critiques

Les enjeux

➨ Illustrations malheureuses : Ariane V, Therac-25, etc ➥ fiabilité indispensable

Les enjeux

➨ Illustrations malheureuses : Ariane V, Therac-25, etc ➥ fiabilité indispensable ➨ La Vérification formelle pour les systèmes réactifs : • génération de test • démonstration assistée • vérification automatique : le model-checking

Vérification par model-checking Le système

satisfait-il?

sa spécification

Vérification par model-checking Le système

satisfait-il?

sa spécification

ϕ

Vérification par model-checking Le système

satisfait-il?

sa spécification

ϕ model-checker

oui/non

Vérification par model-checking

• Quel formalisme pour modéliser les systèmes?

automates finis, structures de Kripke, réseaux de Petri, automates temporisés, automates hybrides, ...

Vérification par model-checking

• Quel formalisme pour modéliser les systèmes?

automates finis, structures de Kripke, réseaux de Petri, automates temporisés, automates hybrides, ... • Quel formalisme pour énoncer les spécifications?

Logiques temporelles [Pnu77] LTL, CTL, TCTL, TPTL, MTL, ...

Comment choisir les modèles?

Compromis entre expressivité/complexité ➨ Expressivité : • modéliser de larges classes • d’une manière naturelle, succincte,...

➨ Complexité : • algorithmes efficaces

Exemple d’un automate temporisé [AD94] Problème [CHR91,ACHH93] Modéliser un brûleur à gaz qui peut fuir tel que : • toute fuite dure moins d’une unité de temps • entre deux fuites, il y a au moins 30 unités de temps

Exemple d’un automate temporisé [AD94] Problème [CHR91,ACHH93] Modéliser un brûleur à gaz qui peut fuir tel que : • toute fuite dure moins d’une unité de temps • entre deux fuites, il y a au moins 30 unités de temps

x : horloge x ≤ 1, x := 0 q0 x ≤1

q1 ¬Fuite

Fuite

x ≥ 30, x := 0

Exemple d’un automate temporisé [AD94] Problème [CHR91,ACHH93] Modéliser un brûleur à gaz qui peut fuir tel que : • toute fuite dure moins d’une unité de temps • entre deux fuites, il y a au moins 30 unités de temps

x : horloge x ≤ 1, x := 0 q0 x ≤1

q1 ¬Fuite

Fuite

x ≥ 30, x := 0

➜ Deux types de transitions : • les transitions de délai • les transitions d’action

Exemple d’un automate temporisé [AD94] Problème [CHR91,ACHH93] Modéliser un brûleur à gaz qui peut fuir tel que : • toute fuite dure moins d’une unité de temps • entre deux fuites, il y a au moins 30 unités de temps

x : horloge x ≤ 1, x := 0 q0 x ≤1

q1 ¬Fuite

Fuite

x ≥ 30, x := 0

ρ x

q0 0

0.5

− →

q0 0.5



q1 0

35

− →

q1 35



q0 0

Exemples de propriétés exprimées en TCTL [ACD93]

• L’alarme se déclenche moins de 2 u.t. après le début de

l’incendie AG(

incendie

⇒ AF 10

résultat oui oui non

temps 15 s 15 s 22 s

mémoire 30 Mo 30 Mo 61 Mo

modèle de Mader-Wupper E obs.stop and X > 5

-

-

-

Sommaire Sémantique pour un fragment du langage Ladder Modélisation à base d’automate temporisé Étude de cas Logiques pour abstraction des états transitoires Sémantique “locale” Expressivité Model-checking de TCTL∆

Sémantique “globale”

Model-checking de la logique TCTL∆ Σ

Conclusion

Motivations • Considérer seulement les événements “significatifs” • “significatif” = dure continuellement plus de k u.t.

Motivations • Considérer seulement les événements “significatifs” • “significatif” = dure continuellement plus de k u.t.

➨ Une alarme se déclenche inévitablement avant 100 u.t. AF≤100 alarme

Motivations • Considérer seulement les événements “significatifs” • “significatif” = dure continuellement plus de k u.t.

➨ Une alarme se déclenche inévitablement avant 100 u.t. AF≤100 alarme ➨ Une alarme se déclenche inévitablement avant 100 u.t. et durera pendant au moins k u.t. ?

Problèmes de sémantique: discussion ➨ événement “significatif” = événement qui dure strictement plus de 35 u.t.

Problèmes de sémantique: discussion ➨ événement “significatif” = événement qui dure strictement plus de 35 u.t. ➨ Dans ce cas, quelle interprétation peut-on donner à la formule EϕUψ? Eϕ U ψ

Problèmes de sémantique: discussion ➨ événement “significatif” = événement qui dure strictement plus de 35 u.t. ➨ Dans ce cas, quelle interprétation peut-on donner à la formule EϕUψ? • ψ est un événement “significatif”:

ψ dure strictement plus de 35 u.t. Eϕ U ψ

Problèmes de sémantique: discussion ➨ événement “significatif” = événement qui dure strictement plus de 35 u.t. ➨ Dans ce cas, quelle interprétation peut-on donner à la formule EϕUψ? • ψ est un événement “significatif”:

ψ dure strictement plus de 35 u.t. Eϕ U ψ • ¬ϕ n’est pas un événement “significatif”: • ¬ϕ ne dure jamais plus de 35 u.t. consécutives • la durée total de ¬ϕ est au plus 35 u.t.

Problèmes de sémantique: discussion ➨ événement “significatif” = événement qui dure strictement plus de 35 u.t. ➨ Dans ce cas, quelle interprétation peut-on donner à la formule EϕUψ? • ψ est un événement “significatif”:

ψ dure strictement plus de 35 u.t. Eϕ U ψ • ¬ϕ n’est pas un événement “significatif”: • ¬ϕ ne dure jamais plus de 35 u.t. consécutives • la durée total de ¬ϕ est au plus 35 u.t.

➨ Deux logiques: TCTL∆ et TCTL∆ Σ

Sommaire Sémantique pour un fragment du langage Ladder Modélisation à base d’automate temporisé Étude de cas Logiques pour abstraction des états transitoires Sémantique “locale” Expressivité Model-checking de TCTL∆

Sémantique “globale”

Model-checking de la logique TCTL∆ Σ

Conclusion

Définition de TCTL∆ TCTL (Timed CTL) [ACD93] : • Les propositions atomiques • Les opérateurs booléens • Les opérateurs temporels

P1 ¬ϕ

P2 . . . ϕ∧ψ

EϕU∼c ψ

AϕU∼c ψ

∼∈ {, ≤, ≥, =}, c ∈ N EϕU∼c ψ ∼c

Définition de TCTL∆ Nouvelle logique TCTL∆ : • Les propositions atomiques • Les opérateurs booléens • Les opérateurs temporels

P1 ¬ϕ

P2 . . . ϕ∧ψ

EϕU∼c ψ

AϕU∼c ψ

∼∈ {, ≤, ≥, =}, c ∈ N • De nouveaux opérateurs :

EϕUk∼c ψ

k ∈ N: durée des événements significatifs

AϕUk∼c ψ

Sémantique de TCTL∆ Les formules de TCTL∆ sont évaluées sur une configuration s = (q, v ) s |= EϕUk∼c ψ ⇔

∃ ρ ∈ Exec(s) t.q. ρ |= ϕUk∼c ψ

ρ |= ϕUk∼c ψ ⇔ ∃ σ t.q µ ˆ(σ) > k ∧ σ |= ψ, ∃p ∈ σ t.q. Time(ρ≤p ) ∼ c ∀σ ′ , t.q. σ ′ k

Exemples de formules de TCTL∆ ➨ Une alarme se déclenche inévitablement avant 100 u.t. et durera pendant au moins 2 u.t.

Exemples de formules de TCTL∆ ➨ Une alarme se déclenche inévitablement avant 100 u.t. et durera pendant au moins 2 u.t. AF2≤100 alarme

avec AFk∼c ϕ def = A( ⊤ Uk∼c ϕ)

Exemples de formules de TCTL∆ ➨ Une alarme se déclenche inévitablement avant 100 u.t. et durera pendant au moins 2 u.t. AF2≤100 alarme ➨ Si l’événement réponse a duré plus de 3 u.t. alors une demande a été faite dans le passé et a duré pendant au moins 3 u.t.

avec AFk∼c ϕ def = A( ⊤ Uk∼c ϕ)

Exemples de formules de TCTL∆ ➨ Une alarme se déclenche inévitablement avant 100 u.t. et durera pendant au moins 2 u.t. AF2≤100 alarme ➨ Si l’événement réponse a duré plus de 3 u.t. alors une demande a été faite dans le passé et a duré pendant au moins 3 u.t. A demande P3 réponse avec AFk∼c ϕ def = A( ⊤ Uk∼c ϕ)

AϕPk ψ def = ¬E(¬ϕ)Uk ψ

Exemple

Un dispositif de sûreté • les deux boutons doivent être

simultanément (en moins de 0.5s) enfoncés pour que la machine se mette en marche • la machine s’arrête dès

qu’un bouton est relâché

Example: modèle Programme

les deux boutons init

!L ∧ !R ∧ t 0, x := 0

r1′ ¬a

x >0

r0 b

x > 0, x := 0

• M1 et N1 vérifient les mêmes formules de TCTL de taille 1 • mais, M1 |= E(aU(¬a ∧ EF=0 a)) et N1 6|= E(aU(¬a ∧ EF=0 a))

Expressivité (2): U versus U0 ➨ U ne remplace pas U0

Théorème [Concur’05] EaU0 b n’est pas exprimable avec U

preuve Mi :

qi a

x > 0, x := 0

ri ¬a

x ≥ 0, x := 0

Mi−1

x ≥ 0, x := 0

x > 0, x := 0

Ni :

qi′ a

x > 0, x := 0

ri′ ¬a

x ≥ 0, x := 0

Ni−1

• Mi |= EaU0>0 b et Ni 6|= EaU0>0 b • ∀i Mi et Ni vérifient les mêmes formules de TCTL de taille

inférieure ou égale à i

Expressivité

Théorème [Concur’05] EaUb n’est pas exprimable avec U0

Théorème [Concur’05] EaU0 b n’est pas exprimable avec U

Expressivité

Théorème [Concur’05] EaUb n’est pas exprimable avec U0

Théorème [Concur’05] EaU0 b n’est pas exprimable avec U

Théorème EaUk b n’est pas exprimable avec Uk+1

Sommaire Sémantique pour un fragment du langage Ladder Modélisation à base d’automate temporisé Étude de cas Logiques pour abstraction des états transitoires Sémantique “locale” Expressivité Model-checking de TCTL∆

Sémantique “globale”

Model-checking de la logique TCTL∆ Σ

Conclusion

Model-checking de TCTL

1 Construire le graphe des régions (abstraction finie) 2 Utiliser les techniques du model-checking de CTL

Model-checking de TCTL

1 Construire le graphe des régions (abstraction finie) 2 Utiliser les techniques du model-checking de CTL

➨ Même principe pour le model-checking de TCTL∆

L’abstraction des régions [ACD93] y

0