Add section in verification course

This commit is contained in:
Yorick Barbanneau 2023-02-07 23:50:16 +01:00
parent 71a4811ac7
commit c5532db5b6

View file

@ -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\\)