Modèle polyédrique et méthodes formelles

Slides:



Advertisements
Présentations similaires
Les matrices.
Advertisements

Initiation à la programmation et algorithmique cours 2
« 1.5. Les fonctions logiques »
AS « Sécurité des Logiciels Embarqués » Axe 3 : Modèles pour la Disponibilité et la Survivabilité Frédéric Cuppens Directeur de recherches.
Projet FIACRE 1 ACI Sécurité InformatiqueToulouse, novembre 2004 FIACRE Fiabilité des Assemblages de Composants Répartis Modèles et outils pour lanalyse.
1 Modélisation, reformulation et interrogation dexpressions temporelles extraites de textes en langage naturel Ce travail est financé par lAgence Nationale.
Raisonnements sur le temps : au carrefour des disciplines
Raisonnement et logique
Synchronisation des Processus
Stabilisation instantanée efficace
Les méthodes formelles en ingénierie des connaissances Damien Lhomme-Desages Jérémie Barlet.
Jean-Jacques Lévy INRIA Preuves de programmes et méthodes formelles Microsoft TechDays - 9 février 2010.
Christelle Scharff IFI Juin 2004
Systèmes distribués C. Delporte-Gallet (ESIEE-IGM)
AMELIORATIONS DE LA STABILITE DU FAISCEAU D’ELECTRONS DE SOLEIL
Le langage PHP 5.
Copyright Oracle Corporation, Tous droits réservés. 9 Écriture de Sous- Interrogations Synchronisées.
ACTIVITÉS : INTENSITÉ D’UN COURANT ÉLECTRIQUE CONTINU
Algorithme de Bellman-Ford
Rappels de logique des prédicats du 1er ordre
Points importants de la semaine Les constantes. Les boucles. Les opérateurs relationnels Les opérateurs logiques.
Chapitre 3 Interblocages 3.1. Ressources
Synchronisation Classique
Modélisation des opérations Spécifier les transformations détat que lon attend des services de la machine Létat dune machine entièrement déterminée par.
L’approche MAD* Par Sabrina Dubé-Morneau
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
Le GRAFCET linéaire à séquence unique
Animateur : Med HAIJOUBI
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
Équations Logiques État Physique État Électrique État Logique L
Additions et soustractions
Spécification de Demoney en JML par raffinement Pierre-Alain Masson, Julien Groslambert LIFC Besançon Réunion GECCOO - 10 mars 2006 FRE 2661.
Shell Equipe ID Bioinformatics Training Course June 2014.
Généralités sur les actions mécanique Cours de méca TGMB1.
COMPRENDRE : Lois et modèles
Suites numériques Définitions.
Arbitrer c’est: Le code de jeu Les violations Règlement du ballon hors jeu Les appuis Règle du dribble Les règles des secondes Le retour en zone.
Identification des manifestations et des items Quiz.
La Logique du premier ordre LPO
Programmation dynamique
Ce mot a dans le public deux sens différents
Programation Parallèle et Distribuée PhD Marco Antonio Ramos Corchado.
Le raisonnement par récurrence
Cours n°2UE102e(S. Sidhom) UE 102e. M1.IST-IE cours n°2 Systèmes à base de règles Par : Sahbi SIDHOM MCF. Université Nancy 2 Équipe de recherche SITE –
Gestion de processus Corrigé TD 1 EFREI I
English as a Second Language PROGRAMME DE FORMATION DE L’ÉCOLE QUÉBÉCOISE Faits saillants.
<< RESISTANCES >>
GRAFCET : IEC/CEI … Rappels Structuration & Hiérarchisation
Le GRAFCET GRAphe Fonctionnel de Commande par Etapes et Transitions
Chapitre 3 :Algèbre de Boole
TAI DE MATHEMATIQUE Michaël Gallego, Alexis Yvin, Bruno Gabriel Promo 2013 Janvier 2009.
Lois des tensions.
Les variables du mouvement
Réponses temporelles des circuits électriques
Du « comment c’est fait ? » Au « à quoi ça sert ? »
Algorithmes de tri et de recherche
NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL Sujets Concepts de processus/thread concurrents –Windows NT et la programmation temps réel Lectures: Chapitres.
 Syntaxe du langage PHP
La vitesse.
A) Avec l’ordonnancement Rate Monotonic les priorités des processus suivent l’ordre inverse des périodes : P1 est prioritaire sur P2, lui-même prioritaire.
Contributions de l’ENST Bretagne à l’ACI Dispo RSM/SERES.
2.4 Le langage SFC - Un langage de description de systèmes séquentiels
Échantillonnage (STT-2000)
LOGIQUE ET PROGRAMMATION LOGIQUE
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Actualisation des besoins en ressources de substitution PAGD - Disposition 40 Présentation des objectifs.
CHAPITRE 8 Les booléens et les chaines de bits 1.
Algorithmique Boucles et Itérations
Philippe Gandy – 13 octobre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Dániel Darvas (CERN BE-ICS-PCS) Spécification formelle pour les API CERN-ESTEREL séminaire 21/01/2016, CERN Travail conjoint avec B. Fernández, E. Blanco,
Transcription de la présentation:

Modèle polyédrique et méthodes formelles Katell Morin-Allory COSI, IRISA

Séminaire d'équipe Roscoff Plan Problématique vérification de propriétés de contrôle exemple: l’arbitre formalisme sous jacent Substitutions quantification universelle quantification existentielle PVS et omega PVS : relation de récurrence omega : présentation et retour à la quantification existentielle Conclusion D-> propriétés fonctionnelles moi propriétés de contrôle 06/06/2001 Séminaire d'équipe Roscoff

Vérification de propriétés de contrôle vivacité sûreté exclusion mutuelle … Logique temporelle: quantificateurs temporels G  :  sera toujours vrai F  :  sera un jour vrai. A U B: A est vrai jusqu’à B. X : l'état suivant vérifie  06/06/2001 Séminaire d'équipe Roscoff

Séminaire d'équipe Roscoff Arbitre requested used use ask arbitration request U1 U2 Un-1 Un Propriétés: Exclusion mutuelle Respect d’un ordre de priorité sur les requêtes par rapport à la place de l’unité dans le circuit Règles d’évolution d’une unité: ask vrai tant que l'unité attend la ressource use vrai tant que l'unité utilise la ressource grant vraie quand l’arbitre accorde la ressource initialement, l’unité n’a pas de ressource elle n’utilise pas la ressource si elle ne lui a pas été accordée elle demande la ressource jusqu'à ce qu’elle lui soit accordée elle commence à l’utiliser dès qu’elle lui est accordée elle ne demande jamais la ressource lorsqu’elle l’utilise Architecture de l’arbitre Arbitre n unites. Ils se partagent 1 ressource 06/06/2001 Séminaire d'équipe Roscoff

Formalisme sous-jacent équations récurrentes: Y[t,i]=Y[t-1,i] or Y[t-2,i+5] propriétés de contrôle  variables booléennes paramètres ordonnancement : indice temporel/ indices spatiaux calculs sur les polyèdres PVS, omega Var bool-> que les valeurs a vraies Parametre prop parametre je veux montrer qq soit le nombre d’unites empeche le MC classique, methodes de plus haut niveau quantif univ sur le temps donc G Idee au maximum les poly 06/06/2001 Séminaire d'équipe Roscoff

Séminaire d'équipe Roscoff Substitution: Quantificateur universel A tout instant, la propriété est vraie sur tout l’espace des processeurs Quantificateur existentiel A tout instant, il existe un point de l’espace des processeurs où la propriété est vraie 06/06/2001 Séminaire d'équipe Roscoff

Séminaire d'équipe Roscoff Pour tout (1) P 1 get P=8 Pour tout 1 get P=8 P t t-1 i i-1 get[t,i]=case { |i=1;t=1} : true[]; { |P>=i>=2;t=1}:false[]; { |i=1;t>1} : get[t-1,P]; { |P>=i>=2;t>=2}: get[t-1,i-1]; esac; P P-1 1 t-P-i t-i Get Or_get P P-1 1 t-P-i t-i Get Or_get P P-1 1 t-P-i t-i Get Or_get P P-1 1 t-P-i t-i Get Or_get P P-1 1 t-P-i t-i Get Or_get Or_get[t,i]= case { |t=1} : false[]; { |P>=i>1;1<t<=i} : false[]; { |i=1; 1<t<=P+1}: Or_get[t-i,i]or get[t-i,i]; { |i=1; t>P+1} : get[t-i,i]or ( not get[t-P-i,i]) { |P>=i>1;i<t<=P+1} : Or_get[t-1,i-1] or get[t-i,i] or (Or_get[t-1,i] and Or_get[t-1,i+1]); { |P>=i>=2;t>P+1}: Or_get[t-1,i-1] or get[t-i,i] or (Or_get[t-1,i] and Or_get[t-1,i+1]and not get[t-P-1,i]); esac; t’-1 t’ 06/06/2001 Séminaire d'équipe Roscoff

Séminaire d'équipe Roscoff Pour tout (2) Or_get[t,i]= case { |t=1} : false[]; { |P>=i>1;1<t<=i} : false[]; { |i=1; 1<t<=P+1}: true; { |i=1; t>P+1} : get[t-i,i] or (not get[t-P-i,i]) { |P>=i>1;i<t<=P+1} : true[]; { |P>=i>=2;t>P+1}: true[]; esac; A montrer : Or_get[2,1]-> get[1,1] Or_get[t,i]= case { |t=1} : false[]; { |P>=i>1;1<t<=i} : false[]; { |i=1; 1<t<=P+1}: true[]or get[t-i,i]; { |i=1; t>P+1} : get[t-i,i] or ( not get[t-P-i,i]) { |P>=i>1;i<t<=P+1} : true[] or get[t-i,i] or (true[] and true[]); { |P>=i>=2;t>P+1}: true[] or get[t-i,i] or(true[] and true[] and not get[t-P-1,i]); esac; Or_get[t,i]= case { |t=1} : false[]; { |P>=i>1;1<t<=i} : false[]; { |i=1; 1<t<=P+1}: Or_get[t-i,i]or get[t-i,i]; { |i=1; t>P+1} : get[t-i,i]or ( not get[t-P-i,i]) { |P>=i>1;i<t<=P+1} : Or_get[t-1,i-1] or get[t-i,i] or (Or_get[t-1,i] and Or_get[t-1,i+1]); { |P>=i>=2;t>P+1}: Or_get[t-1,i-1] or get[t-i,i] or( Or_get[t-1,i] and Or_get[t-1,i+1]and not get[t-P-1,i]); esac; 06/06/2001 Séminaire d'équipe Roscoff

Séminaire d'équipe Roscoff Il existe à l’instant t la variable à vrai peut être présente n’importe où dans l’espace condition suffisante mais pas nécessaire 06/06/2001 Séminaire d'équipe Roscoff

Séminaire d'équipe Roscoff Il existe t t X[t,i]=case … {|10<t<=P,0<=i<=4}:X[t-i,i+2] and Z[t,P]; {|10<t<=P,5<=i<=10}: X[t-i+4,i+3] or X[t-5,i-4]; {|10<t<=P, 10<=i<=t}:X[t-i,i] or X[t-4,i-5]; esac; 06/06/2001 Séminaire d'équipe Roscoff

Séminaire d'équipe Roscoff PVS et Omega PVS validation des relations de récurrence induites preuve des tautologies Omega présentation d’omega retour à l’existence 06/06/2001 Séminaire d'équipe Roscoff

Séminaire d'équipe Roscoff PVS Var Z:{t|1<=i<=P} of boolean; Z[t]= get[t,t]; Z[t] = case { | t=1; 1<=P} : True[]; { | 2<=t<=P} : get[t-1,t-1]; esac; On a prouvé que Z est vrai partout. Z[P]  get[P,P]  t,it>P+1,1i  P: get[t,i] or not get[t-P,i]  t,it>P+2,i=2: get[t-i,i] or not get[t-i-P,i]  t,it>i,1i  P: Or_get[t,i] Y[t,i] = case { | t=P+1; i=1; 1<=P} : get[t-1,P] ; { | P+2<=t; i=1; 1<=P} : Y[t-1,P]; { | t=P+1; 2<=i<=P} :True[]; { | P+2<=t; 2<=i<=P} : Y[t-1,i-1]; esac; Y[t,i] = case { | t=P+1; i=1; 1<=P} : get[t-1,P] or not True[]; { | P+2<=t; i=1; 1<=P} : get[t-1,P] or not get[t-P-1,P]; { | t=P+1; 2<=i<=P} : get[t-1,i-1] or not False[]; { | P+2<=t; 2<=i<=P} : get[t-1,i-1] or not get[t-P-1,i-1]; esac; Z[t] = case { | t=1; 1<=P} : True[]; { | 2<=t<=P} : Z[t-1]; esac; Or_get[t,i]= case { |t=1} : false[]; { |P>=i>1;1<t<=i} : false[]; { |i=1; 1<t<=P+1}: true[]; { |i=1; t>P+1} : get[t-i,i] or (not get[t-P-i,i]) { |P>=i>1;i<t<=P+1} : true[]; { |P>=i>=2;t>P+1}: true[]; esac; Y :{t,i| P<t; P>=i>=1} of boolean; Y[t,i]= get[t,i] or not get[t-P,i]; 06/06/2001 Séminaire d'équipe Roscoff

Séminaire d'équipe Roscoff Omega relations et ensembles de n-uplets d’entiers applications : analyse de dépendances transformations de programmes génération de code formules de Presburger : ,,,,,,,,,, x, y x y outils : union, intersection, image, domain, composition,… complexité : 06/06/2001 Séminaire d'équipe Roscoff

Séminaire d'équipe Roscoff Retour à l’existence t P+2 P 2P t i {P| P>=2}; D={t,i|2<=t<=2P,1<=i<=2P} a={t,i |i+1<=t<=P+i+1, 1<=i<=P} b={ t,i | P+1<=t<=2P, P+2<=i<=2P} c={ t,i |t=i+1, 1<=i<=2P} t’{t|2<=t<=2P}| (abc)Dt ’=Dt ’ Dt ’={t,i| t=t ’, 1<=i<=2P} ti,1 i2P  (t,i)a  (t,i)b  (t,i)c #R:={[t]: forall(i: !(1<=i<=2*P) # |( 1<=i<=P & i+1<=t<=P+i+1) # |( P+1<=t<=2*P & P+2<=i<=2*P) # | ( t=i+1 &1<=i<=2*P ) )} # -{[t]:P<2}; #R; {[P+2]: 2 <= P} 06/06/2001 Séminaire d'équipe Roscoff

Séminaire d'équipe Roscoff Conclusion Travail effectué : Quantification universelle du temps Preuve sur le domaine de définition Propriétés simples: juste une variable Existence:condition suffisante 06/06/2001 Séminaire d'équipe Roscoff