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

Modèle polyédrique et méthodes formelles

Présentations similaires


Présentation au sujet: "Modèle polyédrique et méthodes formelles"— Transcription de la présentation:

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

2 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

3 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

4 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

5 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

6 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

7 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’ t’ 06/06/2001 Séminaire d'équipe Roscoff

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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


Télécharger ppt "Modèle polyédrique et méthodes formelles"

Présentations similaires


Annonces Google