Why You Ought To Use Formal Methods: a 3-Pages 11-Slides Illustration Eric Jaeger, UPMC / LIP6 Réunion SSURF du 5 avril 2007.

Slides:



Advertisements
Présentations similaires
B A 1. Définissez un point A et un point B à côté du bassin (à une distance minimum de 2 mètres du bassin, la ligne AB devant être à peu près parallèle.
Advertisements

Exposé 10 : Les principaux axiomes de Palo Alto
Structures de données avancées : MBT ( Multidimensional B-trees )
ANALYSE DU REFERENTIEL
Thème : science et investigation policière
Le hasard et la 0-connaissance Université Paris II Michel de Rougemont Algorithme et hasard Protocoles interactifs et.
Antoneta Iuliana BRATCU
Le tableur Le tableur.
Spécification et qualité du logiciel
Description de la loiReprésentation algébrique Pour multiplier les puissances avec les mêmes bases, additionne les exposants n a x n b = n a+b.
Découverte automatique de mappings fondée sur les requêtes dans un environnement P2P Présenté Par: Lyes LIMAM Encadré Par: Mohand-Said Hacid.
Chapitre 3 Equilibre des solides
LES GRAPHES.
TP T1 Suivant INTENTIONS PEDAGOGIQUES Ce TP vise à faire analyser et justifier les choix technologiques retenus par le constructeur. Pour la détection.
Notions de variable aléatoire et de probabilité d’un événement
Statistiques 3.
Tableur.
Automate asynchrone.
Calcul numérique (avec Maple)
Génération de colonnes
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Page de garde présentation
L’outil de présentation
Chapitre 2 : Matrice de répartition (S)
Démarche générale et modalités de formation
Corrigé du test de lecture
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Algorithmique et Programmation
L’aire, limite d’une somme
Algorithmes Branch & Bound
Les algorithmes: complexité et notation asymptotique
Structure d’un système industriel.
Introduction à la conception de Bases de Données Relationnelles
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
CALCUL MENTAL ET REFLECHI
Excel Notions et Cas pratiques. Lenvironnement
Les formes normales.
OperationFormules et symboles 1.Utiliser pour trouver la moyenne d'une étendue (bloc) de cellules. 2.Pour trouver parmi une étendue de cellules celle.
C n a m L y o n Schéma explicatif sur la « COMPTABILITE ANALYTIQUE »
La segmentation
Algorithmique et Programmation
Equipements et Installations Electriques CONCOURS GENERAL DES METIERS
Espaces vectoriels Montage préparé par : S André Ross
Ensembles Définition d’un ensemble. Opérations sur les ensembles. Accès, suppression et ajout d’éléments d’un ensemble. Fonctions permettant de manipuler.
Abder Alikacem Semaine 3 Bâtir un algorithme
Recombination and the Nature of Bacterial Speciation
Expressions régulières et hash tables
Algèbre Relationnelle
Deux méthodes incrémentales pour le maintien dun arbre de connexion Nicolas Thibault Christian Laforest
Les outils d'évaluation du C2i
Les Algorithmes de Tri Introduction Tri par Sélection
Calcul des groupes d'homologie d’objets discrets
Introduction aux problèmes d'ordonnancement sans temps-morts.
Initiation aux bases de données et à la programmation événementielle
Mathématiques 9: L’algèbre.
Sous-espaces vectoriels engendrés
Direction générale des technologies de l’information et de la communication (DGTIC) Scénario pédagogique – WebDépôt Mise à la disposition de documents.
Expressions régulières et hash tables
Les brassages chromosomiques
Correction TP1 Exercice 4.
Fabienne BUSSAC CALCUL LITTÉRAL – INITIATION AU TABLEUR 1. DÉFINITION
Programmation linéaire en nombres entiers
Recherches locales et méta-heuristiques
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
ASI 3 Méthodes numériques pour l’ingénieur
Ajouts et retraits dans un arbre de connexion Nicolas Thibault et Christian Laforest, Équipe OPAL Laboratoire IBISC (regroupement LaMI et LSC), Évry 8.
Définition Un algorithme est l’énoncé d’une séquence d’actions primitives réalisant un traitement pouvant être exécuté par un processeur bien défini dans.
INTRODUCTION AUX BASES DE DONNEES
Initiation aux bases de données et à la programmation événementielle
Cours de Systèmes de Gestion de Données - Licence MIAGE – 2003/20041 Cours n°2 La conception d ’un schéma relationnel (suite) Chantal Reynaud Université.
Transcription de la présentation:

Why You Ought To Use Formal Methods: a 3-Pages 11-Slides Illustration Eric Jaeger, UPMC / LIP6 Réunion SSURF du 5 avril 2007

Introduction Objectif de la présentation Démarche Convaincre de l’intérêt des méthodes formelles Démarche Présenter un problème concret et simple Proposer un algorithme pour répondre à ce problème Analyser l’apport d’une conception réfléchie Analyser l’apport du test Analyser l’apport des méthodes formelles Présentation élémentaire, non destinée à des spécialistes

Présentation du problème A l’origine du problème, un cas concret relatif à l’analyse de configuration d’un garde-barrière (firewall) Des commandes Accept ou Drop, associée à des conditions sur les adresses, les ports, les flags, et exécutées séquentiellement On veut comparer des configurations (Sont elles égales ? L’une est-elle strictement plus permissive que l’autre ?) La conception mène à la définition d’intervalles d’entiers et d’unions d’intervalles d’entiers Un intervalle d’entier représente une plage d’adresses ou de ports ; c’est un ensemble convexe Une union d’intervalles représente un ensemble de plages ; elle permet de représenter des ensembles non convexes On se pose la question de l’égalité de deux unions d’intervalles

Représentation et sémantique Un intervalle est représenté par un couple d’entiers [a,b], on définit x ∈ (a,b) ⇔ a≤x≤b (fermé, car on veut pouvoir représenter [#0,#FFFF]) [a,b] avec a>b représente un intervalle vide Une union d’intervalle est représentée par une liste d’intervalles (I1,I2,…,In), on définit x ∈ (I1,I2,…,In) ⇔ ∃k, 1≤k≤n ∧ x ∈ Ik L’égalité extensionnelle n’est pas l’égalité structurelle a b a1 b1 a2 b2 b3 a3 a4 b4 EXT STR

Problèmes des représentations multiples Pour les intervalles comme pour les unions d’intervalles, on peut avoir de multiples représentations d’un même ensemble Nombreuses représentations d’un intervalle vide : [3,2]=[5,1]=[10,8] Nombreuses représentation de toute union d’intervalles (on peut changer l’ordre, décomposer ou fusionner des intervalles, ajouter des intervalles vides) Ceci pose des problèmes d’encombrement et d’efficacité Mémoriser des intervalles vides ou des intervalles redondants est un gaspillage de ressources Les algorithmes ne peuvent pas être optimisés L’égalité extensionnelle est difficile à analyser : pour x allant de Min à Max, vérifier que x est dans l’union U1 si et seulement si x est dans l’union U2

Notion de forme normale On cherche donc à définir pour les intervalles et les unions une « forme normale », compacte, unique Forme normale d’un intervalle [a,b] avec a≤b est l’ensemble des valeurs x tel que a≤x≤b [1,0] est la forme normale de l’intervalle vide La génération de la forme normale est triviale Forme normale d’une union d’intervalles Trier, éliminer les intervalles vides, fusionner les intervalles La génération de la forme normale est non triviale, mais simple Conjecture : l’égalité extensionnelle de deux unions se ramène à l’égalité structurelle de leur forme normale Egalité extensionnelle : U1=U2 ⇔ (x ∈ U1 ⇔ x ∈ U2) Egalité structurelle : (I1,I2,I3…In)=(J1,J2,J3…Jm) ⇔ n=m et Ik=Jk pour tout k

Génération de la forme normale d’une union b1 a2 b2 a3 b4 a5 b5 a4 On cherche à trouver la forme normale d’une union, i.e. la liste « optimale » d’intervalles avec les mêmes éléments Tri selon le critère [a,b]≤[a’,b’] ⇔ a≤a’ Elimination des intervalles vides a1 b1 a2 b2 a3 b4 a5 b5 S’il y a intersection entre Ik et Ik+1 [a,b]∩[a’,b’] ⇔ a’≤b Alors fusionner Ik et Ik+1 [a,b]∪[a’,b’]=[min(a,a’),max(b,b’)] a1 b1 a5 b2

Propriété de la forme normale d’une union On note ⇓U la forme normale de U (obtenue par cet algorithme) Quelques propriétés « simples » et prouvables ⇓U contient moins d’intervalles que U Deux intervalles successifs [a,b] et [a’,b’] de ⇓U vérifient a≤b<a’≤b’, donc ⇓U est triée, ne contient aucun intervalle vide, et deux intervalles de ⇓U sont toujours disjoints ⇓ est idempotente, i.e. ⇓U=⇓⇓U (égalité structurelle) U et ⇓U contiennent les mêmes éléments (égalité extensionnelle), i.e. x ∈ U ⇔ x ∈ ⇓U ⇓U1=⇓U2 ⇒ (x ∈ U1 ⇔ x ∈ U2), l’égalité structurelle des formes normales garantit l’égalité extensionnelle La preuve de ces propriétés donne confiance dans l’algorithme Elles ne semblent pas toutes testables

Conjecture sur l’égalité Notre conjecture affirme aussi que l’égalité extensionnelle implique l’égalité structurelle des formes normales (x ∈ U1 ⇔ x ∈ U2) ⇒ ⇓U1=⇓U2 Informellement, on peut avoir confiance dans l’algorithme conçu avec soin Le test ne permet pas, a priori, d’augmenter notablement le niveau de confiance La preuve, par contre, permet d’obtenir une réelle confiance En pratique, on ne peut pas prouver ce résultat… car il est faux. Où est l’erreur ?

Génération de la forme normale d’une union b1 a2 b2 a3 b4 a5 b5 a4 On cherche à trouver la forme normale d’une union, i.e. la liste « optimale » d’intervalles avec les mêmes éléments Tri selon le critère [a,b]≤[a’,b’] ⇔ a≤a’ Elimination des intervalles vides a1 b1 a2 b2 a3 b4 a5 b5 S’il y a intersection entre Ik et Ik+1 [a,b]∩[a’,b’] ⇔ a’≤b Alors fusionner Ik et Ik+1 [a,b]∪[a’,b’]=[min(a,a’),max(b,b’)] a1 b1 a5 b2

Contre-exemple à la conjecture Union U1 d’un unique intervalle non vide, U1=⇓U1 a’ a b b’ Union U2 de deux intervalles non vides, disjoints et triés, U2=⇓U2 b+1 (x ∈ U1 ⇔ x ∈ U2) mais pourtant ⇓U1≠⇓U2 Il y a des cas où la fusion est possible (nécessaire), même en l’absence d’intersection entre les intervalles Raisonnement sur les dessins erroné : ℕ n’est pas dense Cette erreur peut-elle être détectée par des tests ? Cette erreur est identifiée par les méthodes formelles