230 likes | 443 Views
Conception Formelle en PVS. Présenté par : Roland Atoui Xavier Dumas Sébastien Jardel Laurent Vendredi. Chef de Projet: M. Pierre Castéran. Master 2 ISC. Plan.
E N D
Conception Formelle en PVS Présenté par: Roland Atoui Xavier Dumas Sébastien Jardel Laurent Vendredi Chef de Projet: M. Pierre Castéran Master 2 ISC
Plan 1- Présentation du Projet 2- La Méthode B 3- PVS: Prototype Verification System 4- PBS: Support pour la méthode B en PVS 5-LeProuveurPVS 6- Conclusion
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion Présentation du Projet Vérification de code Similitude avec B S’initier à PVS Tester PBS
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion La Méthode B Formaliser des spécifications et des programmes Machine abstraite Raffinement Implentation
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion La Méthode B MACHINE nom SETS ENS1,...,ENS2 VARIABLES x1,...,x2 INVARIANT I INITIALIZATION S0 OPERATIONS ... END Structure d'une Machine Abstraite /* nom de la machine */ /* nom des ensembles */ /* nom des variables */ /* propriété */ /* substitution */ /* substitutions */
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion PVS: Prototype Verification System • Un système de vérification • Un assistant de preuve développé par le laboratoire d’informatique de SRI International • Fourni une automatisation pour limiter le travail de l’utilisateur humain. • Un langage de spécification • Langage expressive : • Ordre logique supérieur • Un système fortement typé (non décidable) • Fonctions récursives totales
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion PVS: Prototype Verification System • Notions préliminaires • Sets, relations, fonctions, séquences, lists, numéros, induction. • Assistant de preuve • Calcul basé sur les Séquents, commandes de preuve primitives, procédure de précision, arithmétique linéaire, congruence… • [Stratégies, emacs+interface graphique, model checker] • Types • Types de base : real, int, nat, bool… • Type de construction : records, abstract data types, functions, predicates, sets… • Type dépendant, type paramétré.
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion PVS: Prototype Verification System Exemples : person : TYPE = [# age : nat, married ?: bool #] List[person] [personnat] [person bool] = pred[person] = setof[person] Proposions.pvs Propositions : THEORY BEGIN A, B, C: bool prop: THEOREM (A IMPLIES (B IMPLIES C)) AND (A IMPLIES B) AND (A IMPLIES B) AND (A IMPLIES C) END propositions
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion PBS: Support pour la méthode B en PVS Développé par César Muñoz en 1999 Traduit une machine abstraite B en Théorie PVS m.pbs m.pvs *.pvs Développé en utilisant l’approche du Shallow Embedding
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion PBS: Support pour la méthode B en PVS Une Machine PBS semblable à une machine abstraite B
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion PBS: Support pour la méthode B en PVS Une Machine PBS semblable à une machine abstraite B
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion PBS: Support pour la méthode B en PVS • Quelques différences: • Substitution: WHILE structure récursive de PVS • SELECT peut être similés an PVS • Mots Clefs: SETS TYPES • Certains mots clefs n’existent pas (CONSTRAINTS, PROPERTIES…) Le Raffinement La notion de raffinement existe en PVS Introduite grâce à 2 invariants dans une machine PBS INVARIANT et REFINE_INVARIANT
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion PBS: Support pour la méthode B en PVS Théorie PVS de counter généré par PBS
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion PBS: Support pour la méthode B en PVS • Raffinement • Introduite grâce à deux invariants : • INVARIANT • REFINE_INVARIANT counterRef.pbs
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion PBS: Support pour la méthode B en PVS counterRef.pvs
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion Prouveur PVS • Basé sur les séquents: • Hypothèses |– Conséquents • 3 étapes: • Vérifier la syntaxe (parser) • Vérifier la sémantique (typechecker) • Prouver les TCCs (prover)
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion Prouveur PVS • Générations de TCCs: • En utilisant les théorèmes • En utilisant la puissance du typage • 2 types de preuves: • Preuves itératives • Preuves par induction • Preuves automatiques: • Commande (GRIND) • Commande (INDUCT-AND-SIMPLIFY)
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion Prouveur PVS • Commandes de bas niveau: (CASE), (INDUCT) • Simplifie les preuves • Facilite les preuves • Les stratégies • Utilité • Généraliser les preuves
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion Prouveur PVS • Point technique: • raffinement • Invariant de collage
Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion Prouveur PVS Problème rencontré: • Bug dans la sémantique de PBS N N N Machine abstraite Raffinement
Conclusion Présentation du ProjetLa Méthode BL’outil PVSL’outil PBSLe prouveur PVSConclusion • Résultats de la comparaison • Difficultés Rencontrés • Les Ouvertures