Ce lot rassemble l'ensemble des partenaires du projet, qui seront
amenés à collaborer avec CRIL Technology, pour l'intégration de leurs
systèmes au prototype et la mise en application de leurs résultats.
Responsable
CRIL Technology (Bertrand Tavernier)
Objectifs
Le lot 1 vise à définir et développer une architecture logicielle
permettant l'intégration des différents outils développés par les
partenaires du projet et offrant à l'utilisateur une interface
conviviale, l'objectif final étant de mettre les systèmes de preuve à
la portée des ingénieurs concepteurs d'applications critiques.
Le projet Calife a permis de valider l'utilisation du standard XML
pour représenter les p-automates. Ce format sera étendu à l'ensemble
des objets manipulés par les différents outils du logiciel :
p-automates ;
propriétés fonctionnelles ou non fonctionnelles
(dont le format sera tout d'abord à définir) et
objectifs de test ;
preuves générées par Coq ;
traces d'exécution (suites de tests et contre-exemples du
model-checker).
Ce lot définira la structure XML de ces objets, sur
laquelle sera ensuite construite l'Interface Homme-Machine
(utilisation du format DOM du W3C).
Il définira les formats d'entrée, au format texte ou XML, des systèmes de
preuve (Coq et HCMC), de simulation (Elan) et de génération de test
(Isabelle/Cclair et le générateur de tests developpé par le LaBRI).
Cette partie comprendra également l'écriture des transformations XSL qui
permettront de projeter les fichiers XML vers les formats d'entrée des
outils.
Par ailleurs, ce lot mettra en place une interface d'utilisation
conviviale. Cette interface offrira les fonctions suivantes :
edition graphique d'une spécification sous la forme d'un système
composé de p-automates au sein d'un environnement fortement typé et
modulaire ;
application d'une technique d'abstraction sur un modèle, et
visualisation graphique du résultat ;
edition et validation automatique
(Coq/Model-checker) et semi-automatique (Coq) de propriétés ;
edition graphique d'objectifs de test.
Déroulement et fournitures
document de description de la structure XML des différents
objets du formalisme ;
document décrivant la partie éditeur du logiciel
(édition de spécifications, de propriétés et d'objectifs de test) +
prototype associé ;
fichiers de transformations XSL vers les différents
systèmes à intégrer ;
prototype final, intégrant les environnements de preuve,
de génération de tests et le simulateur ;
Manuel d'utilisation du prototype et exemples
d'applications sur l'ensemble des cas d'étude.
Lot 2 : applications
Partenaires impliqués
CRIL Technology, LSV, FTR&D, LORIA, PCRI, LaBRI
Responsable
FTR&D (Jean-François Monin)
L'architecture logicielle
et les différentes technologies développées seront validées sur
différents cas d'études fournis par les partenaires du projet.
Les premiers que nous considérerons sont les protocoles
multicast comme PIM ou PGM,
qui ont soulevé quelques uns des problèmes évoqués ci-dessus
(par exemple, la nécessité de travailler sur des propriétés temps-réel et
probabilistes).
Mais nous avons en vue d'autres applications,
par exemple
dans le domaine des systèmes d'exploitation embarqués
sur des mobiles.
Par ailleurs, CRIL Technology
travaille avec le milieu industriel de l'aéronautique
et cherchera prendre en compte des applications
issues de ce domaine.
Déroulement et fournitures
définition des cas d'étude ;
fichiers XML des différents cas d'étude modélisés sous
la forme de p-automates ;
Manuel d'utilisation du prototype et exemples
d'applications sur l'ensemble des cas d'étude ;
spécification et vérification de propriétés
temps-réel, stochastiques et de complexité sur les applications
choisies.
Lot 3 : test, animation
Partenaires impliqués
LaBRI, CRIL, FTR&D, LORIA
Responsable
LaBRI (Patrick Félix)
Ce lot comporte différentes techniques d'exécution de
spécifications : les enseignements apportés
par l'animation ou la simulation sont souvent très précieux
lors de la mise au point d'une spécification.
La génération de séquences de tests,
culturellement proche, est également considérée.
Sous-lot 1 : animation
La plate-forme développée intègrera la possibilité de visualiser
graphiquement des traces d'exécution, représentées au format XML.
En particulier, la partie animation utilisera la forme graphique
des différents automates saisis sous l'éditeur afin de visualiser
les localités, d'une part et la valuation des variables, d'autre part.
Les traces d'exécutions seront générées de différentes manière :
par le model-checker ;
par le générateur de tests ;
par le simulateur, en mode pas-à-pas ;
par le simulateur, de manière aléatoire.
L'utilisateur pourra ainsi visualiser le fonctionnement général du
système saisi et les contre-exemples générés par le model-checker, ce qui
lui facilitera grandement la mise au point des spécifications.
Le système Elan offre un cadre homogène basé sur le calcul de
réécriture pour le prototypage de systèmes décrits à bases de règles
et de stratégies. Il possède un interpréteur et un compilateur
efficace qui permettent la traduction rapide de tout système spécifié
à l'aide de règles de réécriture et de stratégies en un programme
exécutable. Nous avons récemment étudié son utilisation pour le
prototypage d'algorithmes de vérification de propriétés d'automates
temporisés. Une extension vers la vérification de propriétés des
p-automates du projet RNRT Calife a aussi été réalisée.
Il en ressort que les systèmes à base de règles comme le système Elan
peuvent permettre un prototypage rapide des algorithmes de
vérification. L'utilisation de ces techniques pourra donc être
expérimentée comme support pour l'animation.
Déroulement et fournitures
description de la structure XML d'une trace d'exécution
(intégrée à la fourniture du lot 1) ;
Rapport sur l'utilisation d'Elan comme support à l'animation ;
simulateur intégré au prototype final.
Sous-lot 2 : test
Un effort de normalisation pour le test de protocoles et de systèmes a
permis de définir une taxinomie des tests en : test de conformité
(implantation conforme à la spécification), test de robustesse (capacité de
l'implantation à réagir dans un environnement
plus « hostile » que prévu, cas
particulièrement intéressant avec les systèmes temporisés), test
d'interopérabilité (capacité de plusieurs systèmes communicants à
interopérer), test de performances (capacité du système à réagir
correctement en optimisant les temps de communication et de réaction).
Dans le cadre du projet Calife, nous nous sommes essentiellement intéressés
au test de conformité avec une approche « objectif de test » : système et
objectif de test s'expriment en termes de p-automates, et une technique de
produit synchronisé entre la spécification et l'objectif de test permet
d'obtenir des séquences de test issues de la spécification et respectant
l'objectif de test. Cette approche a permis d'aborder le test de conformité
et de générer des séquences de test dans le cadre l'étude de cas ABR.
Par contre, dans le cas de l'étude de cas PGM,
où la modélisation fait intervenir plusieurs composants (émetteur,
récepteur, noeud), il est apparu utile d'effectuer des tests
d'interopérabilité : après avoir testé la conformité de différents
composants indépendamment, il s'agit de connaître leur aptitude à
communiquer entre eux en satisfaisant les contraintes temporelles.
Pour aborder le test d'interopérabilité, nous serons amenés à identifier
clairement les propriétés d'interopérabilité temporelles et à proposer un
schéma de répartition de test, avec éventuellement une coordination entre
plusieurs observateurs.
L'objectif de ce sous-lot est de mettre en oeuvre une technique de
génération de test d'interopérabilité pour les p-automates en s'inspirant
des approches connues dans le cadre des automates classiques. La solution
mise en ouvre utilisera naturellement les méthodes de modélisation
compositionnelle du sous-lot « modélisation compositionnelle » du lot 4
(technologie de modélisation) et pourra exploiter les techniques de
vérification compositionnelle du sous-lot 2 « vérification compositionnelle »
du lot 5 (technologie de vérification) afin d'identifier des propriétés
d'interopérabilité temporelles.
Déroulement et fournitures
Techniques de test d'interopérabilité pour les systèmes
temporisés ;
Prototype de génération de séquences de test de conformité ;
Validation du prototype sur des études de cas
(PGM ou PIM par exemple).
Lot 4 : technologie de modélisation
Partenaires impliqués
LSV,
PCRI,
LORIA,
FTR&D
Responsable
LSV (Laurent Fribourg)
Les techniques considérées dans ce lot relèvent
de la modélisation mais aussi de la vérification :
il s'agira de briser la complexité de la vérification
en s'appuyant la décomposition d'un modèle,
ou de l'expression suivie de la vérification de propriétés
non fonctionnelles.
Sous-lot 1 : modélisation compositionnelle
Le model checking,
consiste à modéliser un système par un automate
(ou plusieurs automates mis en parallèle),
et à vérifier des propriétés du système modélisé
en explorant le graphe des états de cet automate.
Le problème majeur auquel doit faire face le model-checking est celui
de l'explosion combinatoire de la taille du graphe d'états.
Ce problème est d'autant plus sensible
dans le cas d'une modélisation par automates temporisés --
des automates finis étendus avec plusieurs horloges
mesurant l'écoulement du temps --
car l'espace des états croit en outre exponentiellement
avec le nombre des horloges de l'automate.
Une solution partielle a été trouvée dans le cadre du projet
Calife: il s'agit d'utiliser un nouveau formalisme,
celui des p-automates, qui étend le formalisme des automates temporisés
en intégrant certains paramètres intervenant, soit
dans les contraintes de temps auquelles sont assujetties les horloges,
soit dans certaines données échangées par les automates.
Ce formalisme, à la fois compact et
expressif, s'est avéré adapté aux techniques de model-checking
traditionnel. C'est ainsi qu'une
vérification complète du programme temps-réel
de contrôle de trafic ABR,
ainsi qu'une vérification partielle du protocole multipoint PGM
(Pragmatic General Multicast)
ont pu être effectuées en partant d'une modélisation
sous forme de p-automates,
à l'aide des outils classiques du model-checking temporisé
HyTech et Uppaal.
Toutefois, le traitement de PGM à base de p-automates fait apparaitre
un nouveau phénomène d'explosion combinatoire.
Ce phénomène n'est plus lié au nombre des horloges
ou aux contraintes temporelles, mais
au nombre d'automates représentant les émetteurs,
les récepteurs et les noeuds intermédiaires mis en parallèle :
dès la modélisation de plus d'un émetteur et de deux récepteurs,
la simulation du système global induit de nouveau
un phénomène d'explosion combinatoire, qui
empêche toute analyse du comportement global.
Pour contourner cette difficulté, il est naturel
d'explorer la voie du model-checking compositionnel
qui a déjà donné d'intéressants résultats dans le cas des automates
finis traditionnels ou temporisés. L'idée est d'éviter de construire
ou d'examiner l'espace des états du réseau global
N=(A1 | ··· | An)
résultant de
la mise en parallèle de n automates.
À la place, quand on a une propriété j à examiner,
les composants A1,···,An sont graduellement retirés
de N et incorporés dans la formule j;
ainsi l'automate An est « intégré » dans j,
ce qui donne une nouvelle formule quotient j/An
représentant ce que doit satisfaire
le reste du réseau (A1 | ··· | An-1).
En itérant ce processus, on est amené à construire une
formule quotient globale (··· ((j/An)/An-1)···/A1),
qui doit être satisfaite par le réseau « vide » (n'exécutant aucune action).
L'objectif de ce sous-lot est de mettre en oeuvre des méthodes
de modélisation compositionnelle pour les p-automates,
en étendant les méthodes connues pour les automates temporisés classiques.
Cela impose de concevoir une logique de spécification
des comportements étendue aux p-automates.
Cela suppose également la mise au point de stratégies
de simplification pour réduire la taille des formules
quotients intermédiaires dans ce cadre. Cela requiert enfin de développer
des méthodes de résolution pour vérifier la formule quotient ultime.
Déroulement et fournitures
extension de la logique de spécification des propriétés
au cadre des p-automates ;
méthodes de construction des formules quotients
dans le cadre étendu ;
méthodes de résolution de contraintes temporelles
dans le cadre étendu.
Sous-lot 2 : probabilités
La spécification et modélisation de systèmes temps réel nécessite
souvent de faire intervenir des facteurs probabilistes dans la
modélisation de l'environnement, des comportements ou des pannes. Les
calculs de probabilités demandent des outils mathématiques avancés.
Les environnements de preuve actuels n'ont pas été conçus pour
prendre en compte des propriétés probabilistes.
L'un des objectifs de ce
projet est de mettre en place des bibliothèques Coq permettant de
raisonner sur les objets de base des probabilités, ces bibliothèques
s'appuient sur les développement actuels de la théorie des réels pour
Coq. Dans un second temps ces bibliothèques seront utilisées dans la
modélisation d'un système temps-réel. Un candidat évident
à cette modélisation est le protocole PIM.
Une approche complémentaire est issue des techniques de réécriture.
Depuis une décennie, les langages à base de règles comme Elan
se sont focalisés
sur l'utilisation de la réécriture comme un outil de modélisation qui
permet l'exécution de spécifications. Ces outils ont été étudiés
essentiellement pour la modélisation de systèmes réactifs discrets. Il
est important de savoir modéliser les systèmes qui font intervenir des
choix probabilistes avec ces langages. L'un des objectifs du projet
concerne l'extension du système Elan pour la modélisation des systèmes
à base de probabilités.
Utiliser des systèmes à base de règles probabilistes pose de
nouveaux problèmes théoriques qui restent à comprendre. Nous avons
ainsi étudié la généralisation des résultats de réécriture classiques
pour une notion de systèmes abstraits de dérivations probabilistes.
Une compréhension fine de ce que pourrait donner la généralisation des
différentes notions de la réécriture (relation de réécriture, logique
de réécriture, calcul de réécriture) lorsque le déclenchement des
règles est sujet à des choix probabilistes est proposée.
Par ailleurs, l'utilisation de règles probabilistes permet le
prototypage et l'utilisation de techniques probabilistes pour la
vérification ou l'analyse de systèmes, qu'ils soient probabilistes ou
non-probabilistes. Nous proposons d'étudier dans ce cadre
l'utilisation de techniques probabilistes pour l'analyse de systèmes
ou la recherche de preuve.
Déroulement et fournitures
bibliothèques Coq pour les notions probabilistes
élémentaires ;
extension du système Elan pour le prototypage de
systèmes probabilistes ;
étude de cas d'une modélisation probabiliste
d'un système temps réel ;
étude de cas d'une technique probabiliste de recherche de
preuve.
Sous-lot 3 : complexité en espace et en temps
La preuve de programme a pour but de répondre par oui ou par non à la
question de savoir si un programme donné se termine et satisfait une
spécification donnée. Mais on aimerait souvent avoir des réponses
plus quantitatives, comme par exemple, si le programme se termine en
temps polynomial ou pourra se contenter pour ses calculs d'un espace
logarithmique. Ce problème a certes été étudié par les
algorithmiciens qui ont bâti des logiciels d'évaluation d'algorithmes
à partir de briques de base connues. Notre objectif est autre :
nous visons a extraire des information sémantiques, visant plus
particulièrement la consommation de ressources en temps et espace, à
partir d'une preuve de correction de programme faite en Coq. L'idée est
que des annotations adéquates des règles de preuve devraient permettre
de réaliser cet objectif, que l'on peut voir comme une évaluation
partielle de la preuve.
De façon complémentaire, nous proposons d'étudier des
techniques pour permettre l'analyse de la complexité d'un programme
spécifié par un langage fonctionnel du premier ordre. Par exemple,
pour évaluer les resources en temps ou en espace requises pour
l'exécution d'un programme spécifié dans le langage Elan, ou dans tout
autre langage fonctionnel du premier ordre.
Dans ce cadre, ces techniques seront utilisées pour garantir
l'utilisation des ressources des systèmes à codes mobiles et
embarqués.
Participants : PCRI, LORIA
Déroulement et fournitures
un système de preuve enrichi pour le calcul des
constructions inductif ;
un système d'analyse pour les programmes fonctionnels
du premier ordre ;
un système de preuve enrichi pour le calcul des
constructions avec modules et réécriture ;
un système d'analyse pour les programmes fonctionnels
du premier ordre avec références avec application aux systèmes à codes
mobiles.
Lot 5 : technologie de vérification
Partenaires impliqués
PCRI, LORIA, LSV-ENS Cachan.
Responsable
LRI (Christine Paulin)
Le travail proposé dans ce lot permettra la construction d'un système
original qui combinera efficacité et sûreté des preuves.
À la différence du lot précédent, l'activité de modélisation
n'entre pas en compte.
Sous-lot 1 : ajouter la réécriture au noyau de
calcul de Coq
Les systèmes interactifs de preuve d'ordre supérieur doivent intégrer
des raisonnements équationnels de manière efficace et sûre. Or
l'égalité n'est pas une notion primitive en logique d'ordre supérieur.
Le raisonnement équationnel doit être traduit en des étapes
élémentaires de remplacement ce qui le rend souvent très inefficace.
La première nécessité est d'utiliser les techniques de pointe de
compilation de réécriture telles que celles développées pour le système
Elan. Le second besoin est de comprendre quel terme de preuve doit
être conservé dans l'assistant de preuve pour justifier le
raisonnement équationnel.
Une particularité du système Coq est
la possibilité de considérer toute preuve d'une propriété
P comme la preuve d'une propriété Q pour peu que Q soient
équivalentes modulo un certain calcul. Ainsi une preuve de 24=24 est
également une preuve de 4!=24 puisque 4=4× 3× 2 × 1=24.
Une idée naturelle est de rendre équivalentes plus de formules, en
intégrant, par exemple, l'associativité ou la commutativité de
certains opérateurs, c'est la base de la déduction modulo.
Cependant, cela ne peut se faire que si on
garantit la cohérence du système logique obtenu ainsi que la
décidabilité de la vérification des preuves.
Des progrès importants ont été réalisés ces trois dernières années
dans la compréhension de l'interaction entre la logique
d'ordre supérieur et la réécriture, en particulier dans le cadre
du projet RNRT Calife.
Des restrictions ont été proposées qui
permettent de garantir la propriété de normalisation du système
résultant. Cependant, la mise au point d'un assistant de preuve
complet reposant sur ces nouvelles technologies pose encore des problèmes
théoriques non triviaux comme la vérification de la cohérence de
définitions, aussi elle n'est pas envisagée à court terme.
Dans ce projet, nous proposons la mise en place d'une extension du
système Coq qui améliore sensiblement les performances des preuves par
réécriture sans remettre en cause les fondements logiques du calcul.
L'idée est de prouver des égalités sur des
fonctions définies dans le calcul des constructions
(on se limitera dans un premier temps
à des fonctions du premier ordre), d'orienter
ces équations en règles et d'intégrer un moteur puissant de
réécriture à la machine actuelle de vérification de convertibilité des
propositions. L'obligation de prouver les égalités (en général de
manière inductive) permet de garantir la cohérence du système obtenu.
Du point de vue de la terminaison, nous analyserons les différentes
techniques garantissant que celle-ci est préservée (schéma général,
ordre RPO d'ordre supérieur ou une adaptation du critère
de paires de dépendances implanté dans CiME) pour choisir la mieux
adaptée au traitement des exemples du projet.
Déroulement et fournitures
définition de la classe de réécriture à intégrer ;
proposition d'architecture du moteur de test de conversion ;
prototype d'extension du système Coq ;
validation du prototype sur des exemples ;
combinaison à des systèmes de vérification automatique de
terminaison.
Sous-lot 2 : vérification compositionnelle
Ce sous-lot s'inscrit naturellement dans la continuation du
sous-lot « modélisation compositionnelle » du lot 4 technologie
de modélisation.
Le lot 4, élabore des techniques de model-checking compositionnel pour
les p-automates qui seront mises en oeuvre dans le cadre de ce lot.
Plus précisément, il s'agit d'étendre le système HCMC réalisé par
François Laroussinie au LSV pour la vérification compositionnelle
d'automates temporisés (pente des horloges égale à 1) et hybrides
simples (pente des horloges égale à 1 ou à 0), au cas des p-automates.
Ce sous-lot exploitera les extensions de la logique de spécification
des propriétés ainsi que les techniques de simplification
et résolution de contraintes,
mises au point dans le lot 4.1.
Nous réfléchirons également à différentes solutions pour faire interagir
les méthodes de vérification propres à HCMC (et son extension)
avec Coq.
Déroulement
prototype d'extension du système de
model-checking compositionnel HCMC aux p-automates ;
validation du prototype sur des exemples
tels que PGM avec un nombre significatif d'émetteurs et
récepteurs ;
utilisation de techniques de preuve interactive
entre HCMC et Coq.
Sous-lot 3 : mécanisation de la déduction
Les étapes de preuves des systèmes nécessitent des techniques
spécialisées de model-checking mais également des preuves de logique
traditionnelle (calcul des prédicats, récurrence). Le système Coq
propose peu de moyens d'automatiser de tels raisonnements. La
difficulté d'adapter les méthodes connues vient du fait que les
connecteurs logiques ne sont pas primitifs mais sont des cas
particuliers de définitions inductives générales et, de plus, il est
nécessaire de produire un terme de preuve acceptable par le noyau sûr
de l'assistant.
Nous aborderons ce problème selon deux méthodes.
La première méthode consiste à construire une
tactique de preuves couvrant uniformément les définitions inductives
correspondant à des formules du premier ordre. La difficulté est de
trouver une méthode qui se généralise aisément au Calcul des
Constructions Inductives et permette la construction efficace de termes de
preuves.
La seconde méthode utilise les résultats récents obtenus dans le cadre
de la déduction modulo qui permet de combiner les
techniques de preuve déductive et calculatoire.
Dans le cadre du projet Calife, nous avons spécialisé l'approche de
[DHK98] pour prendre en compte la notion de redondance
entre propositions basée sur les systèmes ordonnés.
Plus récemment nous avons montré comment le concept de déduction
modulo permet de prendre en compte les raisonnements par
récurrence. Cette approche permet de relier explicitement les
techniques de récurrence implicite basées sur la réécriture telles
qu'elles sont implantées dans Spike ou celles basées sur les preuves par consistance à celles utilisant explicitement des principes de
récurrence.
Notre objectif sera ici de comprendre comment utiliser les résultats
précédents pour étendre la puissance des principes de récurrence
utilisés dans les assistants de preuve en les faisant bénéficier des
techniques issues des méthodes de preuve par récurrence via la
réécriture dans un premier temps ou via réécriture et consistance dans
un second temps.
Déroulement et fournitures
passage des preuves par récurrence par réécriture à des
preuves Coq ;
description d'une méthode de preuve pour les inductifs du
premier ordre ;
implantation et validation de la méthode sur des exemples ;
utilisation des techniques de narrowing pour la
recherche des schémas de récurrence ;
extension des points précédents aux méthodes de preuve
par consistance appliquées à la récurrence.