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