Add section in verification course
This commit is contained in:
parent
71a4811ac7
commit
c5532db5b6
1 changed files with 78 additions and 1 deletions
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
title: "Conception formelle : Validation et vérification"
|
||||
date: 2023-01-13
|
||||
tags: ["Bugs", model-checking"]
|
||||
tags: ["Bugs", "model-checking"]
|
||||
categories: ["Conception formelle", "Cours"]
|
||||
mathjax: true
|
||||
---
|
||||
|
@ -151,3 +151,80 @@ Nous utilisons aussi la logique ensemblistes (union, intersection etc.).
|
|||
|
||||
Nous avons dans les graphes deux type de propriétés : les **états** et les
|
||||
**transitions**.
|
||||
|
||||
### Les constantes
|
||||
|
||||
Pour chaque automate, nous avons des constantes de disponibles. Commençons par
|
||||
les constantes vides :
|
||||
|
||||
* `empty_s`: état vide
|
||||
* `empty_t`: transition vide
|
||||
|
||||
Nous avons ensuite les *sets de **tout*** :
|
||||
|
||||
* `any_s`: tous les états
|
||||
* `any_t`: toutes les transitions
|
||||
|
||||
Les sets d'états initiaux: `initial`
|
||||
|
||||
Et un ensemble de transitions " `self`, `epsilon`, `self-epsilon` : boucles sur
|
||||
les états.
|
||||
|
||||
Il est possible de calcules des expressions élémentaires via des variables, par
|
||||
exemple:
|
||||
|
||||
\\([ s%2 = 0 ]\\)
|
||||
|
||||
Permet de trouver les états pairs.
|
||||
|
||||
### Opérateurs ensemblistes
|
||||
|
||||
Il est possible d'utiliser des opérateurs ensemblistes comme l'union et
|
||||
l'intersection
|
||||
|
||||
Soit \\(F_1\\) et \\(F_2\\) deux formules du même type:
|
||||
|
||||
\\(
|
||||
[\\![ F_1 \text{ et } F_2 ]\\!] = [\\![ F_1 \\&\\& F_2 ]\\!] = [\\![ F_1 \cap F_2 ]\\!]
|
||||
\\\
|
||||
[\\![ F_1 \text{ ou } F_2 ]\\!] = [\\![ F_1 \\| F_2 ]\\!] = [\\![ F_1 \cup F_2 ]\\!]
|
||||
\\)
|
||||
|
||||
### Opérateur source, destination
|
||||
|
||||
Soit \\(T\\) une formule de transitions
|
||||
|
||||
* \\(\text{src}(T)\\) représente l'ensemble des états source d'au moins une
|
||||
transition de \\(T\\)
|
||||
* \\(\text{tgt}(T)\\) représente l'ensemble des états destination d'au moins
|
||||
une transition de \\(T\\)
|
||||
|
||||
Soit \\(S\\) une formule d'état
|
||||
|
||||
* \\(\text{rsrc}(S)\\) représente les transitions qui ont leurs source dans au
|
||||
moins un état de \\(S\\)
|
||||
* \\(\text{rtgt}(S)\\) représente les transitions qui ont leurs destination
|
||||
dans au moins un état de \\(S\\)
|
||||
|
||||
### Exemples
|
||||
|
||||
\\(\text{any_s} - \text{src}(\text{any_t})\\) rerésente les états qui sont
|
||||
source d'aucune transition, dont on ne peut pas sortir (état puit)
|
||||
|
||||
\\(\text{src}(\text{rtgt}(S) \cap T)\\) représente les états sources de
|
||||
transitions vers \\(D\\) (**à vérifier**)
|
||||
|
||||
### Reach, coreach et loop
|
||||
|
||||
Ces opérateurs permettent de calculer des formules, dans les explications
|
||||
suivantes \\(S\\) est une formule d'état et \\(T, T_1, T_2\\) des formulesde
|
||||
transitions:
|
||||
|
||||
* \\(\text{reach}(S,T)\\) représente tous les états au départ de \\(S\\) avec
|
||||
\\(T\\) comme transitions
|
||||
* \\(\text{coreach}(S,T)\\) représente tous les états avec comme destnation
|
||||
\\(S\\) et utilisants \\(T\\) comme transitions.
|
||||
* \\(\text{loop}(T_1,T_2)\\) représente les *Strongly Connected Components*
|
||||
(SCC). C'est une formule de transition tel que \\(T_3 \subseteq T_2\\) et
|
||||
\\(T_3 \cap T_1 \neq \emptyset\\)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue