QSL,27 Novembre Vérification probabiliste Université Paris II Michel de Rougemont 1.Algorithmes probabilistes qui vérifient une propriété. 2.Vérification formelle de programmes probabilistes. 3.Applications des deux approches.
QSL,27 Novembre Vérification Logique et Complexité Calcul : f(x) =y Verification : x,y donnés, decider si f(x)=y Pour une définition de f, quelle est la complexité de la vérification? Verification formelle Pour un programme (circuit, C,…) qui calcule une fonction g, comment savoir si
QSL,27 Novembre cf: George Boole The Laws of Thought, 1854 Part I: propositional logic, Part II: probability cf: John von Neumann The Report on EDVAC, 1945 Theory of Games and Economic Behavior, 1944 (cf: Alan Turing On Computable Numbers, 1936 Studies in Quantum Mechanics, ) Ref. C. Papadimitriou: Logique et Probabilité
QSL,27 Novembre Vérification probabiliste Fonctions classiques sur des matrices booléennes Calcul probabiliste t Il existe un algorithme proba. A 1.Si f(x)=1, Prob[ A accepte] > 2/3 2.Si f(x)=0, Prob[ A rejette ] > 2/3
QSL,27 Novembre Vérification polynomiale NP Il existe une fonction t.q. L est dans NP sil existe une fonction g dans P t.q. Pour la fonction : On ne connaît pas de telle fonction g!! La fonction est le complément de Cest une fonction de co-NP.
QSL,27 Novembre Vérification probabiliste P V 0 (1/2) 1 (1/2) L admet une preuve interactive, sil existe un protocole t.q pour tout x : 1.Si, Prob [ P.V(x)=1] =1 2.Si, Prob [ P.V(x)=1] < 1/2 Comment vérifier avec un protocole? 2.V choisit {1,2} et construit 2.P envoit. 3.Si, P.V=1, sinon P.V=0
QSL,27 Novembre Vérification polynomiale probabiliste : IP=PSPACE Soit Il existe un protocole IP qui vérifie si Perm(A)=b Soit kSAT la fonction qui décide de la satisfaisabilité de k- clauses: #kSAT est la fonction de comptage. SkSAT =Prob [ x satisfait] Perm, S2SAT, S3SAT sont #P- complètes.
QSL,27 Novembre Vérification probabiliste dune preuve : PCP
QSL,27 Novembre Checker,Testeur de Blum Checker pour f (Blum, Kannan, ~1990) P C x y Un checker est un programme probabiliste avec oracle P t. q pour tout x,k : Si P=f, C(x,k) = Correct Si P(x)!=f(x), Prob[ C(x,k) =Buggy] >1- ½^k Correct Buggy
QSL,27 Novembre Checker pour Graph-Iso P (G, H) = si G iso H, (1, ) sinon 0 P C G,H (1, ) ou 0 Correct Buggy C(G,H, k): Si P (G, H)=(1, ), verifier que G= (H) Si P (G, H)=0, choisir Si =1, G= (G). Si P(G,G)=0, Buggy Si =2, H= (H), Si P(G,H)=1, Buggy Après k essais, Correct
QSL,27 Novembre Distance d(f,g) = | {x : f(x) != g(x)}| / | D| Un auto-testeur pour f est un programme T(P, ) t.q. –Si d(P,f)=0, alors T(P, )=Correct –Si d(P,f) > alors T(P, )=Buggy Correcteur. Division (x,y) : Majorité { x.r/y.r : r aléa.} Auto testeur
QSL,27 Novembre Classe de fonctions ou de propriétés Goldreich, Golwasser, Ron ~1995 Un test pour F est un algorithme probabiliste A t.q. –Si f est dans F, A accepte –Si f est loin de F, A rejette –T(A) indépendante de n Exemple: k-colorabilité de graphes Test de propriété G Gi sous graphe aléatoire
QSL,27 Novembre Quelles propriétés de graphes (matrices) admettent des testeurs? –Alon et al., STOC 99: Sigma 2 testeurs Compression. Tests et complexité descriptive Epsilon-equivalent
QSL,27 Novembre Vérification formelle Preuves: –Programme correct vs. preuve Modèles –Système de transition du programme –Propriété à vérifier : formule fi – U mod fi Function f(x) Int x; For (0;i;j) {……} Programme nest plus une boite noire.
QSL,27 Novembre Vérification par modèle Système de transition (Structure de Kripke Formules –LTL, CTL, CTL* sur U,s |= (p1 U Accept) => G |= F Vérifier : comparer les OBDDs s P1 P2 P3 Accept
QSL,27 Novembre Branching programs Succinct representation of relations Intractable for: –Multiplication –Connectivity, Bipartition OBDD : Oriented Binary Decision Diagram v1 v2 0 1 R(v1,v2,….vn) vn
QSL,27 Novembre Vérification probabiliste Propriétés : LTL : p1 U p2 Prob [ p1 U p2 ] > a Espace probabiliste: Ensemble des chemins Prob [ p1 U p2 ]=3/8 p1 p2
QSL,27 Novembre Calcul de la probabilité Calcul de Prob [ p1 U p2 ] –C.Y. 95, Hanson et Johnson 94 S1= { s : M |= P1(s) } S+= { s : M |= E(p1 U p2 )}, S0=S-S+ Soit xi = Prob [ p1 U p2 ] depuis i xi = 1 si i dans S1 xi= 0 si i dans S0 xi= Somme p(i,j) xj X= A.X +B, système de taille N !!
QSL,27 Novembre Système PRISM Université de Birmingham, Marta Kwiatkowska SMV : propriétés déterministes AX+B=C : probabilistes AX+B < C : non-déterministes Vérification de protocoles : Consensus de Aspnes et Herlihy, CAV 2001
QSL,27 Novembre Protocoles cryptographiques https (SSL, Secure Socket layer) –Authentification du serveur (certificat) –(Clé de session).RSA –Cryptage.DES Implémentations –Netscape, Open-SSL, Apache-SSL Propriété : – clé de session reste secréte!! –Difficile de décoder –Authentification correcte –……
QSL,27 Novembre Protocoles cryptographiques Process Equivalence Mitchell, Scedrov, 1998,99 P= epsilon Q si pour tout programme (contexte ) C, v Prob[C.P =v] - Prob[C.P =v] < epsilon Pn= f Qn si pour tout programme (contexte ) C, v Prob[C.P =v] - Prob[C.P =v] < 1/f(n) P= Q si Pn = f Qn pour tout polunome f Exemple : Générateur aléatoire = Générateur pseudo aléatoire
QSL,27 Novembre Abstraction Probabiliste Test de propriété : k-colorabilité Abstraction dun programme? Programmme correct => U,G |= F Program loin detre correct => Prob [U,G |= not F]>2/3 Collaboration F. Magniez, S. Laplante, R. Lassaigne, S. Peyronnet.
QSL,27 Novembre Abstraction Probabiliste Abstraction dun programme? Programme C A[i,j] B[i,j] sous-graphe aléatoire Variables u, v u, v Taille de lOBDD : 2,m=1/epsilon m
QSL,27 Novembre Conclusion Vérification de propriétés: –Testeurs Vérification de programmes: –Déterministes : Modèles, OBDD –Probabiliste : systèmes linéaires –Non déterministe : encadrements Approximation de la vérification –Testeurs