Atelier B MDELTA. Manuel Utilisateur. version 2.0



Documents pareils
Atelier B. Prouveur interactif. Manuel Utilisateur. version 3.7

STAGE IREM 0- Premiers pas en Python

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Certification de l assemblage de composants dans le développement de logiciels critiques

Présentation du langage et premières fonctions

Université Paris-Dauphine DUMI2E 1ère année, Applications

Calculabilité Cours 3 : Problèmes non-calculables.

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Vérification formelle de la plate-forme Java Card

Atelier B. Atelier B. Manuel Utilisateur. Version 4.0

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Université de Sherbrooke, Département d informatique

Powershell. Sommaire. 1) Étude du cahier des charges 2) Veille technologique 3) Administration sur site 4) Automatisation des tâches d administration

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

Introduction : L accès à Estra et à votre propre espace Connexion Votre espace personnel... 5

Licence Sciences et Technologies Examen janvier 2010

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Génération de code à partir d une spécification B : Application aux bases de données

OpenText StreamServe Cours Customer Communication Management L essentiel

Calcul Formel et Numérique, Partie I

Structures algébriques

Solutions en ligne Guide de l utilisateur

MEMOIRE. Présenté à. L École Nationale d Ingénieurs de Sfax. en vue de l obtention du MASTERE

Groupe Eyrolles, 2003, ISBN : X

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Introduction à l étude des Corps Finis

Formula Negator, Outil de négation de formule.

Poker. A rendre pour le 25 avril

Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables

Ecole Technique «Transformation de données documentaires» Poitiers, mars Atelier 1: Sphinx. import, conversion, export de données

Activités numériques [13 Points]

Cours d algorithmique pour la classe de 2nde

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Qu est-ce qu une boîte mail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

L informatique en BCPST

Excel avancé. Frédéric Gava (MCF)

Consignes générales :

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

NOTICE D INSTALLATION DE LA BASCULE STAGE VERSION 4.30 NOTICE D INSTALLATION DE LA BASCULE STAGE VERSION 4.30

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

La fonction exponentielle

GUIDE Excel (version débutante) Version 2013

Initiation à l algorithmique

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Cours Informatique 1. Monsieur SADOUNI Salheddine

Chapitre 2. Eléments pour comprendre un énoncé

Présentation du système DNS

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Introduction aux concepts d ez Publish

Utilisation des tableaux sémantiques dans les logiques de description

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

L import massif introduit plusieurs nouvelles fonctionnalités, selon que l on importe un thésaurus, un ensemble de valeurs contrôlées ou un corpus.

Créer le schéma relationnel d une base de données ACCESS

Évaluation et implémentation des langages

Procédure de Migration de G.U.N.T.3 KoXo Administrator

Probabilité. Table des matières. 1 Loi de probabilité Conditions préalables Définitions Loi équirépartie...

claroline classroom online

P s a sep e o p r o t S e S r e vi v ce c s Fabrice Dubost

Initiation à la Programmation en Logique avec SISCtus Prolog

Dans l école : exportation des données élèves

Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

Machines virtuelles Cours 1 : Introduction

Correction de l examen de la première session

La syllabe (1/5) Unité intuitive (différent du phonème) Constituant essentiel pour la phonologie au même titre que phonème et trait

SYSTRAN 7 Guide de démarrage

1 Description générale de VISFIELD

I. Introduction aux fonctions : les fonctions standards

Algorithmique et Programmation Fonctionnelle

Partie publique / Partie privée. Site statique site dynamique. Base de données.

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

ALGORITHMIQUE ET PROGRAMMATION En C

ORDINATEUR DOSSIERS FICHIERS

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Sommaire. 2. Utiliser la télécommande Télécommande Administrateur Télécommande Utilisateur Échanger une télécommande...

Calcul Formel et Numérique, Partie I

Logique : ENSIIE 1A - contrôle final

Gé nié Logiciél Livré Blanc

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

Automatisation de l administration système

La sauvegarde (backup) de votre comptabilité a pour but de vous permettre de retrouver vos données si un incident est survenu.

Introduction à Eclipse

SQL Data Export for PS/PSS

Note de cours. Introduction à Excel 2007


TP1 - Prise en main de l environnement Unix.

Image d un intervalle par une fonction continue

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

IBM Tivoli Monitoring, version 6.1

Guide d utilisation «Extranet Formation» V3.5

Simulation de variables aléatoires

Cours Linux. Cours en ligne Administrateur Systèmes Linux. Académie Libre

Janvier Entretien de l ordinateur

Configurer une sauvegarde FTP simple et efficace

N avez-vous jamais rêvé d une nouvelle façon de faire un film? gettyimages.fr/film. Guide de l utilisateur

Travaux de Serrurerie

Transcription:

Atelier B MDELTA Manuel Utilisateur version 2.0

ATELIER B MDELTA Manuel Utilisateur version 2.0 Document établi par CLEARSY. Ce document est la propriété de CLEARSY et ne doit pas être copié, reproduit, dupliqué totalement ou partiellement sans autorisation écrite. Tous les noms des produits cités sont des marques déposées par leurs auteurs respectifs. CLEARSY Maintenance ATELIER B Parc de la Duranne 320 avenue Archimède L es P léiades I I I - B ât. A 13857 Aix-en-Provence Cedex 3 France Tél 33 (0)4 42 37 12 70 Fax 33 (0)4 42 37 12 71 mail : contact@atelierb.eu

Table des matières 1 Introduction 1 1.1 Objet....................................... 1 2 Terminologie 3 2.1 Abréviations................................... 3 2.2 Définition des termes employés......................... 3 3 Présentation du problème 5 3.1 Exemple...................................... 5 3.2 Conditions de bonne définition......................... 6 3.3 Exemple de génération de lemmes de bonne définition............ 6 3.4 Localisation des EDS............................... 7 3.5 Outil mdelta pour la vérification de bonne définition............. 7 4 Utilisation de l outil mdelta 9 4.1 Quand l utiliser.................................. 9 4.2 Etape I : procédure de lancement........................ 9 4.2.1 Exemple.................................. 9 4.2.2 Résultat de l étape............................ 10 4.3 Etape II : vérification de l exécution mdelta.................. 10 4.4 Etape III : Création du projet B delta NOM PROJET........... 10 4.4.1 Création manuelle............................ 10 4.4.2 Création automatique.......................... 11 4.4.3 Résultat de l étape de lancement du script............... 11 4.5 Etape IV : Preuve des lemmes de bonne définition.............. 11 1

ii TABLE DES MATIÈRES

Chapitre 1 Introduction 1.1 Objet Un prédicat mathématique peut être : vrai ou faux à condition qu il soit bien défini. La mauvaise définition d un prédicat 1 (ou d une expression contenue dans ce prédicat) ne permet plus de garantir que la preuve, dans laquelle intervient ce prédicat, est juste. L Atelier B V3.6 n a pas de moyen intrinsèque de détecter ces expressions dépourvues de sens 2. Les EDS ne permettent donc pas de garantir pleinement la validité d un travail de preuve effectué avec l Atelier B V3.6. La production de lemmes de bonne définition par l outil mdelta, et leur preuve automatique ou manuelle, permettent de répondre à ce besoin. Le présent document définit les expressions dépourvues (et potentiellement dépourvues) de sens et indique la manière de mettre en œuvre l outil mdelta pour générer les lemmes de bonne définition dont la preuve assurera la validité d un développement B 3 du point de vue de sa bonne définition. 1 La vérification qu un prédicat ou qu une expression est bien typé est réalisée par le vérificateur de type. Cette vérification du typage est indépendante de la vérification de bonne définition. La bonne définition n est étudiée que pour des prédicats et expressions bien typés. 2 En abrégé EDS (voir Terminologie) 3 La méthode B est présentée dans [1]. 1

2 MDELTA - Manuel Utilisateur

Chapitre 2 Terminologie 2.1 Abréviations PO : obligation de preuve. GOP : générateur d obligation de preuve. BDR : Base de règles du Prouveur. BDP : Répertoire Base de Données pour un Projet. PatchProver : Fichier contenant des règles de l utilisateur et permettant d enrichir la BDR, pour l ensemble d un projet. fichier Pmm : Fichier suffixé pmm contenant des règles de l utilisateur et permettant d enrichir la BDR, pour un composant d un projet. fichier Pmi : Fichier suffixé pmi contenant, en particulier, les commandes interactives saisies par l utilisateur, pour chaque PO d un composant. fichier PO : Fichier suffixé po contenant les PO d un composant. Composant : terme désignant indifféremment une machine abstraite, un raffinement ou une implémentation au sens B. EDS : Expression Dépourvue de Sens EPDS : Expression Potentiellement Dépourvue de Sens 2.2 Définition des termes employés Langage de théorie : langage utilisé pour réaliser certains outils de l Atelier B V3.6 et le prouveur en particulier. Obligation de preuve : prédicat logique fabriqué par l Atelier B V3.6 à partir d un composant écrit en langage B 1, qu il faut démontrer pour assurer la cohérence de ce composant. Expression Dépourvue de Sens : expression du langage B à laquelle on ne peut associer aucune interprétation mathématique comme l évaluation d une fonction partielle en un point n appartenant pas à son domaine ou encore le minimum d un ensemble vide. 1 Le langage B est présenté dans [2]. 3

4 MDELTA - Manuel Utilisateur Expression Potentiellement Dépourvue de Sens : expression du langage B nécessitant certaines conditions pour ne pas être dépourvue de sens (ces conditions sont listées dans le tableau du chapitre 3). Lemme de Bonne Définition : prédicat logique qu il faut démontrer pour assurer la bonne définition d une expression.

Chapitre 3 Présentation du problème 3.1 Exemple Soit l expression y = x x+8 c (3.1) Cette expression peut être vraie ou fausse, à la condition qu elle soit bien définie. Si cette expression n est pas bien définie, il est alors impossible de lui associer une valeur vrai ou faux. Cette mauvaise définition signifie qu au moins un opérateur de l expression a au moins un opérande qui n appartient pas à son domaine de définition. L expression (3.1) est manifestement de nature arithmétique. On considère que l expression est bien typée (opération réalisée par le vérificateur de types) et que y, x et c sont des entiers relatifs. Les opérateurs apparaissant dans l expression (3.1) sont : L égalité Une égalité a=b est bien définie à condition que a et b soient bien définis l addition Une addition a+b est bien définie à condition que a et b soient bien définis la division entière Une division entière a/b est bien définie si a et b sont bien définis et si b est non nul Il va donc falloir vérifier que : x et c sont bien définis (ce qui est le cas puisque l on a supposé que y, x et c sont des entiers relatifs) le dénominateur de x/(x + 8/c) est non nul le dénominateur de 8/c est non nul La bonne définition de l expression (3.1) passe par la démonstration des prédicats suivants : (x + 8)/c 0 (3.2) c 0 (3.3) Le contexte de l expression doit contenir ces prédicats sous forme d hypothèses ou doit permettre de le déduire. Si tel n est pas le cas, l expression (3.1) est potentiellement mal définie. 5

6 MDELTA - Manuel Utilisateur On se reportera au tableau (1) pour la liste des expressions pouvant être mal définies. 3.2 Conditions de bonne définition Les conditions de bonne définition 1 sont recensées dans le tableau ci-dessous. Expression Condition de bonne définition a b a N b N a mod b b N 1 a N a/b b Z 1 Π(x).(P E) {x P } F({x P }) Σ(x).(P E) {x P } F({x P }) max(s) S N F(N) S min(s) S (Z N) F(Z) S card(s) S F(S) inter(u) U (x).(p E) {x P } r n n N f(x) x dom(f) f dom(f) ran(f) perm(s) S F(S) conc(s) s seq(ran(s)) x.(x dom(s) s(x) seq(ran(s(x)))) s t s seq(ran(s)) t seq(ran(t)) size(s) s seq(ran(s)) rev(s) s seq(ran(s)) s e s seq(ran(s)) e s s seq(ran(s)) tail(s) size(s) 1 s seq(ran(s)) first(s) size(s) 1 s seq(ran(s)) front(s) size(s) 1 s seq(ran(s)) last(s) size(s) 1 s seq(ran(s)) s n n 0.. size(s) s seq(ran(s)) s n n 0.. size(s) s seq(ran(s)) Tableau (1) : Expressions potentiellement dépourvues de sens 3.3 Exemple de génération de lemmes de bonne définition Soit l expression x/((x + 8)/c). Cette expression est bien définie si x est bien défini (vrai car c est une variable) (x + 8)/c est bien défini si x + 8 est bien défini si x est bien défini (vrai car c est une variable) 8 est bien défini (vrai car c est un entier) c est bien défini (vrai car c est une variable) c est non nul (voir la troisième ligne du tableau (1)) 1 Ces conditions sont tirées de [3] et [4].

PRÉSENTATION DU PROBLÈME 7 (x + 8)/c est non nul (voir la troisième ligne du tableau (1) ) Les lemmes de bonne définition de l expression x/(x + 8/c) sont donc : H x + 8 0 H c 0 où H désigne le contexte courant des hypothèses. 3.4 Localisation des EDS Des EDS peuvent exister, pour un projet B donné, au niveau : des composants B des règles de l utilisateur pour le projet entier, des règles de l utilisateur pour un composant donné (du projet) des commandes interactives de preuve 3.5 Outil mdelta pour la vérification de bonne définition L outil mdelta ne détecte pas, à proprement parlé, les EDS. Lancé sur un projet B donné, il réalise la génération de lemmes de bonne définition pour l ensemble des EPDS du projet, et cherche à les prouver automatiquement. Le résultat est disponible dans un projet B fils, créé ou mis à jour automatiquement. Les fichiers impactés par la recherche d EPDS sont : les fichiers B des composants (forme normale, fichiers suffixés nf ) le fichier Patchprover, les fichiers Pmm, les fichiers Pmi et les fichiers Po associés (les fichiers Po sont nécessaires pour obtenir les informations de contexte.) Les lemmes de bonne définition sont regroupés et leur origine identifiable (traçabilité des EPDS).

8 MDELTA - Manuel Utilisateur

Chapitre 4 Utilisation de l outil mdelta 4.1 Quand l utiliser Cet outil peut être lancé sur n importe quel projet B, à n importe quel moment de son développement, sans que le travail de preuve soit terminé. Il faut néanmoins que les composants soient passés avec succès au typechecker. Il est fortement recommandé d utiliser mdelta à deux moments particuliers d un projet B : Lorsque le projet est validé de manière informelle (toutes les po semblent justes, sans travail de preuve formelle) et lorsque le travail de preuve a validé le projet de manière formelle (des EPDS peuvent avoir été introduites pendant le travail de preuve interactive, par l intermédiaire de commandes ah, ph ou se par exemple ou de règles utilisateurs) 4.2 Etape I : procédure de lancement La commande à taper est la suivante : mdelta < CHOIX DELT A >< AT B HOME >< AT B RESSOURCE >< NOM P ROJET > avec : CHOIX DELTA : directives de compilation : -r : pour lancer l outil sur les règles utilisateurs (fichiers Pmm et PatchProver), -p : pour lancer l outil sur les commandes interactives (fichiers.pmi et.po), -b : pour lancer l outil sur les composants B (fichiers.nf), n importe quelle combinaison des trois options précédentes, -a : pour lancer l outil complet (équivalent à -r -p -b). ATB HOME : répertoire racine de l Atelier B V3.6 à utiliser ATB RESSOURCE : le chemin complet du fichier de ressources de l Atelier B V3.6 à utiliser NOM PROJET : le projet déclaré dans l Atelier B V3.6 sur lequel on veut lancer l outil 4.2.1 Exemple mdelta -a /beta/3.6/ab /beta/3.6/ab/atelierb DeltaTest 9

10 MDELTA - Manuel Utilisateur 4.2.2 Résultat de l étape L ensemble des résultats de cette étape est inscrit dans le répertoire BDP du projet NOM PROJET, sous la forme de fichiers suivants : Pour les EPDS d un composant B X (lorsque l option -a ou -b a été choisie) : X wd.po : fichier contenant les lemmes de bonnes définition X wd.pmi : fichier contenant le travail de preuve interactive à réaliser Pour les EPDS de la preuve interactive d un composant B X (lorsque l option -a ou -p a été choisie) : X pmi.po X pmi.pmi Pour les EPDS du fichier PatchProver (lorsque l option -a ou -r a été choisie) : PatchProver.lemmas PatchProver.unresolved : contient les expressions qui n ont pas pu être analysées car la syntaxe est trop imprécise PatchProver.res : contient les lemmes du PatchProver.lemmas ainsi que leur état après utilisation du prouveur de prédicat (prouvé ou non prouvé). Pour les EPDS de chaque fichier Pmm (lorsque l option -a ou -r a été choisie) : X.lemmas X.unresolved X.res Un fichier script nommé createdelta.sh (cf Etape III) lorsque l option -a a été choisie. 4.3 Etape II : vérification de l exécution mdelta Il faut vérifier le bon déroulement de l étape I, en étudiant les traces générées à l écran. Si certains messages indiquent un problème : analyser et corriger l origine du problème Relancer l étape I 4.4 Etape III : Création du projet B delta NOM PROJET 4.4.1 Création manuelle Pour utiliser l AtelierB sur les lemmes de bonne définition générés à l étape précédente, il faut disposer d un projet B factice dont les obligations de preuve correspondent aux lemmes de bonne définition. Pour cela, il suffit de créer un projet avec ses répertoires bdp, src et lang, d y ajouter les machines vides 1 X wd.mch et X pmi.mch (dont les fichiers X wd.pmi, X wd.po, X pmi.pmi et X pmi.po ont été générés à l étape précédente), de les type-checker et de lancer le générateur d obligations de preuves (qui n en générera pas puisque les machines sont vides) sur chacune d elles. 1 X.mch est une machine vide si elle est réduite à MACHINE X END

UTILISATION DE L OUTIL MDELTA 11 Une fois ceci fait, il reste à remplacer les fichiers.pmi et.po générés par le générateur d obligations de preuve par ceux créés par le mdelta. Les lemmes de bonne définitions sont maintenant disponibles pour un travail de preuve interactive. 4.4.2 Création automatique Le script createdelta.sh, généré pendant l étape I avec l option -a, permet de créer un projet B delta NOM PROJET afin de : Visualiser les lemmes de bonne définition à partir de l atelier B Effectuer un travail de preuve interactive sur ces lemmes Tapez simplement la commande sh./createdelta.sh. 4.4.3 Résultat de l étape de lancement du script Si un projet delta NOM PROJET existe déjà : les données importantes (fichiers.po,.pmi,.lemmas,.res et.unresolved du BDP du projet delta NOM PROJET sont sauvegardées, au même endroit, (fichiers renommés en *.< date de la sauvegarde >) il est détruit le projet delta NOM PROJET est recréé avec des composants factices mais nécessaires au travail de preuve des lemmes de bonne définition. Les fichiers créés à l étape I sont déplacés vers le répertoire BDP du projet delta NOM - PROJET. 4.5 Etape IV : Preuve des lemmes de bonne définition Le travail de vérification informelle et/ou de preuve formelle des lemmes de bonne définition peut commencer : Pour les lemmes correspondants aux composants ou aux commandes interactives : travail de preuve interactive classique, sous l atelier B, en ayant ouvert le projet B delta NOM - PROJET. Pour les lemmes correspondants aux bases de règles (données des fichiers suffixés lemmas ) : Ces lemmes ne sont pas accessibles depuis l Ihm de l atelier. Les fichiers suffixés res contiennent le résultat de l application du prouveur de prédicat sur ces lemmes (effectuée lors de l étape I), c est-à-dire leur état de preuve (Proved ou Unproved). Les lemmes non prouvés doivent alors être démontrés manuellement par l utilisateur qui devra fournir un document de preuve formelle. Pour les règles contenues dans les fichier.unresolved : Elles doivent aussi être démontrées manuellement mais nécessitent deux étapes supplémentaires préalables à la preuve proprement dite. En premier lieu, l utilisateur doit traduire ces règles en lemmes mathématiques 2 susceptibles d être prouvés. Une fois la traduction effectuée, l utilisateur doit en déduire les lemmes de bonne définition correspondants (d après le tableau du chapitre 3 du 2 Utiliser [5]

12 MDELTA - Manuel Utilisateur présent document). La preuve de ces lemmes constitue alors la dernière étape du traitement des fichiers.unresolved.

Bibliographie [1] B-Book, Jean-Raymond ABRIAL (1996). [2] Langage B - Manuel de référence, version 1.1, ClearSy. [3] Partial logics reconsidered : a conservative approach, Formal aspect of computing, Olaf OWE (1993). [4] Traitement des expressions dépourvues de sens de la théorie des ensembles. Application à la méthode B (Thèse de Doctorat), Lilian BURDY. [5] Guide de Rédaction des Règles, version 1.0, ClearSy. 13