La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Conception Formelle en PVS Master 2 ISC Chef de Projet: M. Pierre Castéran Présenté par: Roland Atoui Xavier Dumas Sébastien Jardel Laurent Vendredi.

Présentations similaires


Présentation au sujet: "Conception Formelle en PVS Master 2 ISC Chef de Projet: M. Pierre Castéran Présenté par: Roland Atoui Xavier Dumas Sébastien Jardel Laurent Vendredi."— Transcription de la présentation:

1 Conception Formelle en PVS Master 2 ISC Chef de Projet: M. Pierre Castéran Présenté par: Roland Atoui Xavier Dumas Sébastien Jardel Laurent Vendredi

2 PVS: Prototype Verification System 3- PVS: Prototype Verification System PBS: Support pour la méthode B en PVS 4- PBS: Support pour la méthode B en PVS LeProuveur PVS 5- Le Prouveur PVS Présentation du Projet 1- Présentation du Projet Plan Conclusion 6- Conclusion La Méthode B 2- La Méthode B

3 Présentation du Projet Vérification de code Présentation du Projet Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion Similitude avec B S’initier à PVS Tester PBS

4 La Méthode B Formaliser des spécifications et des programmes La Méthode B Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion Machine abstraite Raffinement Implentation

5 La Méthode B MACHINE nom SETS ENS1,...,ENS2 VARIABLES x1,...,x2 INVARIANT I INITIALIZATION S0 OPERATIONS... END Structure d'une Machine Abstraite La Méthode B Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion /* nom de la machine */ /* nom des ensembles */ /* nom des variables */ /* propriété */ /* substitution */ /* substitutions */

6 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 L’outil PVS Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion

7 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é. L’outil PVS Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion PVS: Prototype Verification System

8 Exemples : person : TYPE = [# age : nat, married ?: bool #] List[person] [person  nat] [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 L’outil PVS Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion PVS: Prototype Verification System

9 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 Développé en utilisant l’approche du Shallow Embedding PBSPVS m.pbs *.pvs m.pvs L’outil PBS Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion

10 PBS: Support pour la méthode B en PVS Une Machine PBS semblable à une machine abstraite B L’outil PBS Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion OPERATIONS reset = BEGIN value := 0 END; next = PRE value < maxi THEN ANY val WHERE val : NAT & val value THEN value := val END MACHINE Counter(maxi) CONSTRAINTS maxi : NAT1 VARIABLES value INVARIANT value : NAT & value <= maxi INITIALISATION value := 0

11 PBS: Support pour la méthode B en PVS Une Machine PBS semblable à une machine abstraite B L’outil PBS Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion OPERATIONS reset = value := 0 next = PRE `value < maxi' THEN ANY val : nat WHERE `val value' THEN value := val ENDANY END END counter counter [maxi:posnat]: MACHINE BEGIN PVS `IMPORTING finite_sets@top' VARIABLES value : `nat' INVARIANT `value <= maxi' INITIALIZATION value := 0

12 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 L’outil PBS Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion

13 PBS: Support pour la méthode B en PVS Théorie PVS de counter généré par PBS L’outil PBS Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion % Theory: Counter Machine counter [ maxi:posnat ]: THEORY BEGIN % PVS Commands IMPORTING finite_sets@top % General Type counter_Type : TYPE = [# value:nat #] % Invariant Type counter : TYPE = { self: counter_Type | value(self) <= maxi } % Initialization init : counter = LET self = (# value := 0 #) IN self % Operations reset(self:counter) : counter = LET self = self WITH [ value := 0 ] IN self next(self:counter | value(self) < maxi) : counter = LET self = LET val = choose! (val:nat) : ( val value(self) ) IN LET self = self WITH [ value := val ] IN self IN self END counter

14 PBS: Support pour la méthode B en PVS L’outil PBS Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion Raffinement  Introduite grâce à deux invariants : 1.INVARIANT 2.REFINE_INVARIANT counterRef [maxi:posnat]: REFINEMENT OF counter BEGIN VARIABLES value_ref : `nat' REFINE_INVARIANT `value_ref <= value' INITIALIZATION value_ref := 0 OPERATIONS next = value_ref := `value_ref + 1' END counterRef counterRef.pbs

15 PBS: Support pour la méthode B en PVS L’outil PBS Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion counterRef [ maxi:posnat ]: THEORY BEGIN % Refinement Importing IMPORTING counter[maxi] … % Initialization init : counterRef = LET self = (# value_ref := 0 #) IN self init_ref : counterRef_Ref = (# counterRef := counterRef.init, counter := counter.init #)% Operations next(self:counterRef) : counterRef = LET self = self WITH [ value_ref := value_ref(self) + 1 ] IN self next_ref(self_ref:counterRef_Ref | value(counter(self_ref)) < maxi) : counterRef_Ref = (# counterRef := counterRef.next(counterRef(self_ref)), counter := counter.next(counter(self_ref)) #) END counterRef counterRef.pvs

16 Basé sur les séquents:  Hypothèses |– Conséquents Le prouveur PVS Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion Prouveur PVS 3 étapes:  Vérifier la syntaxe (parser)  Vérifier la sémantique (typechecker)  Prouver les TCCs (prover)

17 Générations de TCCs:  En utilisant les théorèmes  En utilisant la puissance du typage Le prouveur PVS Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion Prouveur PVS Preuves automatiques:  Commande (GRIND)  Commande (INDUCT-AND-SIMPLIFY) 2 types de preuves:  Preuves itératives  Preuves par induction

18 Commandes de bas niveau: (CASE), (INDUCT)  Simplifie les preuves  Facilite les preuves Le prouveur PVS Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion Prouveur PVS Les stratégies  Utilité  Généraliser les preuves

19 Point technique:  raffinement  Invariant de collage Le prouveur PVS Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion Prouveur PVS

20 Problème rencontré:  Bug dans la sémantique de PBS N+2 N N+1N+2 N+…N+P N Machine abstraiteRaffinement N Le prouveur PVS Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion

21 Conclusion  Résultats de la comparaison  Difficultés Rencontrés  Les Ouvertures Conclusion Présentation du Projet La Méthode B L’outil PVS L’outil PBS Le prouveur PVS Conclusion

22 Questions ?


Télécharger ppt "Conception Formelle en PVS Master 2 ISC Chef de Projet: M. Pierre Castéran Présenté par: Roland Atoui Xavier Dumas Sébastien Jardel Laurent Vendredi."

Présentations similaires


Annonces Google