Collaboration d outils de preuve interactifs et automatiques



Documents pareils
Une introduction rapide à Coq

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Réalisabilité et extraction de programmes

Vérification formelle de la plate-forme Java Card

Spécification et certification d implantation chaînée avec des orbites : les hypercartes combinatoires

Théorie de la Programmation

Cours de Programmation 2

Arithmétique réelle. Introduction à l arithmétique flottante La précision des calculs: analyse et améliorations. Valérie Ménissier-Morain

Théorème du point fixe - Théorème de l inversion locale

Algorithmique et Programmation Fonctionnelle

Chapitre VI- La validation de la composition.

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Analyse de sécurité de logiciels système par typage statique

Vérification formelle de la plate-forme Java Card

GECCOO. pour des applications orientées objet

Atelier B. Prouveur interactif. Manuel Utilisateur. version 3.7

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

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

Principes des langages de programmation INF 321. Eric Goubault

Informatique Machines à calculer en théorie et en pratique

Courtage sémantique de services de calcul

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

CCP PSI Mathématiques 1 : un corrigé

Cours de Probabilités et de Statistique


Classes et Objets en Ocaml.

Formula Negator, Outil de négation de formule.

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Programmation. fonctionnelle, impérative, logique et orientée objet

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Sites web éducatifs et ressources en mathématiques

Assurance Qualité. Cours de génie logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 23/04/2007

Preuves formelles en arithmétiques à virgule flottante

Section «Maturité fédérale» EXAMENS D'ADMISSION Session de février 2014 RÉCAPITULATIFS DES MATIÈRES EXAMINÉES. Formation visée

Matrice d accès. Master SEMS, Pierre Paradinas. October 16, 2013

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

INSTRUCTIONS STAGE DE RESPONSABILITE Stage obligatoire du cycle Master

Évaluation et implémentation des langages

Plan de la présentation

Experts de Bologne /////////// Guide pratique. pour la mise en place du Supplément au diplôme. 2e 2f.fr

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Curriculum Vitae 1 er février 2008

Quelques tests de primalité

MIS 102 Initiation à l Informatique

Comment repenser l articulation entre présence et distance dans les dispositifs hybrides?

Descriptif des UE, unités d enseignement, d informatique

TP4 : Firewall IPTABLES

DOCM Solutions officielles = n 2 10.

"Calcul et hyper-calcul"

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Théorie et codage de l information

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Description des UE s du M2

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

Exemple 4.4. Continuons l exemple précédent. Maintenant on travaille sur les quaternions et on a alors les décompositions

Fig. 1 Le détecteur de LHCb. En bas à gauche : schématiquement ; En bas à droite: «Event Display» développé au LAL.

Calcul différentiel. Chapitre Différentiabilité

Alexis Lechervy Université de Caen. M1 Informatique. Réseaux. Filtrage. Bureau S3-203

Master européen en traduction spécialisée. Syllabus - USAL

Collection «Poker Expert» Sous la direction de François Montmirel. Parution le 25 février Poker Cash 1

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

Introduction à l étude des Corps Finis

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

Théorie des sondages : cours 5

Algorithmique des Systèmes Répartis Protocoles de Communications

Logique. Plan du chapitre

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

CA SIC Directives de certification Certificate Practice Statement (CPS) du SIC Customer ID CA 1024 Level 2

Objets et Programmation. origine des langages orientés-objet

Modèles de Calcul. Yassine Lakhnech. 2007/08 Université Joseph Fourier Lab.: VERIMAG. Modèles de Calcul Start p.

Les structures de données. Rajae El Ouazzani

Axiomatique de N, construction de Z

Fondements de l informatique Logique, modèles, et calculs

Objets Combinatoires élementaires

PLAN NOTATIONS UTILISÉES

F. Barthélemy. 17 mai 2005

CHAPITRE IV. L axiome du choix

Collection «Poker Expert» Sous la direction de François Montmirel. Parution le 3 avril Poker Cash 2

Automatisation de l administration système

Chapitre 7. Récurrences

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

dans un cadre richement typé

FONDEMENTS DES MATHÉMATIQUES

Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov

TER Réseau : Routeur Linux 2 Responsable : Anthony Busson

Bases de données Cours 5 : Base de données déductives

L évaluation des programmes d Information et Communication par l AEQES

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

Représentation d un entier en base b

Lignes directrices sur les modalités des interventions en prêt et en capital de la SOGEPA

sentée e et soutenue publiquement pour le Doctorat de l Universitl

GESLAB_Pre-Requis_v2.0.doc 01/03/2013. Pré-Requis

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

ALOHA LOAD BALANCER METHODE DE CONTROLE DE VITALITE

Analyse fonctionnelle Théorie des représentations du groupe quantique compact libre O(n) Teodor Banica Résumé - On trouve, pour chaque n 2, la classe

Utilisation des tableaux sémantiques dans les logiques de description

Ici se présente un petit récapitulatif de ce qu il se passe sur le réseau : les connexions bloquées, le matériel du boitier, les mises à jour, etc.

Transcription:

Collaboration d outils de preuve interactifs et automatiques Stage de Master 2 Équipe Démons, LRI Université Paris Sud responsable : Jean-Christophe Filliâtre 8 septembre 2005

Motivation Traduction Utilisation en pratique Perspectives Contexte : preuve de programmes Java Krakatoa C Caduceus Why Coq PVS HOL Mizar Simplify harvey CVC Généricité : facilité pour interfacer de nouveaux prouveurs

Motivation Traduction Utilisation en pratique Perspectives Contexte : preuve de programmes Java Krakatoa C Caduceus Why Coq PVS HOL Mizar Simplify harvey CVC Généricité : facilité pour interfacer de nouveaux prouveurs

Factorisation Coq Premier ordre multisorté Simplify CVC Zenon...

Factorisation Coq Premier ordre multisorté Simplify CVC Zenon...

Factorisation Coq Premier ordre multisorté Simplify CVC Zenon...

Travaux connexes Interface HOL / MESON par combinateurs (Joe Hurd) Interface Isabelle / CVC (Tom Harke) Interface Coq / JProver (Huang Guan-Shieng)

Plan Traduction Utilisation en pratique Perspectives 1. Traduction CCI vers logique du premier ordre multisortée Logiques Propriété de correction 2. Utilisation en pratique Appel interactif Exemple 3. Perspectives

Premier ordre multisorté Sortes nat Signature et termes 0 : nat S : nat nat S(S(0)) : nat Propositions pair : nat x : nat, pair(x) pair(s(s(x)))

Typage, prouvabilité Règles d inférence, jugements Γ FOL t : S Γ FOL P bf Système de déduction naturelle Γ; = P

Calcul des Constructions Inductives λ-calcul typé avec : polymorphisme : λ A : Set. λ x : A. x ordre supérieur : f : nat nat, f 0 = 0 types dépendants : append : n m : nat, list n list m list (n + m) inductifs : nat := 0 : nat S : nat nat Typage, prouvabilité : E; G CCI t : T isomorphisme de Curry-Howard λ A : Set. λ x : A. x : A : Set, A A

Calcul des Constructions Inductives λ-calcul typé avec : polymorphisme : λ A : Set. λ x : A. x ordre supérieur : f : nat nat, f 0 = 0 types dépendants : append : n m : nat, list n list m list (n + m) inductifs : nat := 0 : nat S : nat nat Typage, prouvabilité : E; G CCI t : T isomorphisme de Curry-Howard λ A : Set. λ x : A. x : A : Set, A A

Calcul des Constructions Inductives λ-calcul typé avec : polymorphisme : λ A : Set. λ x : A. x ordre supérieur : f : nat nat, f 0 = 0 types dépendants : append : n m : nat, list n list m list (n + m) inductifs : nat := 0 : nat S : nat nat Typage, prouvabilité : E; G CCI t : T isomorphisme de Curry-Howard λ A : Set. λ x : A. x : A : Set, A A

Éléments traduits égalité arithmétique définitions x : s, f (x) = t définitions récursives et filtrage types inductifs plus : nat nat nat x : nat, plus(0, x) = x x, y : nat, plus(s(y), x) = S(plus(y, x)) x : nat, 0 S(x) x : nat, x = 0 y : nat, x = S(y) x, y : nat, S(x) = S(y) x = y

Éléments traduits égalité arithmétique définitions x : s, f (x) = t définitions récursives et filtrage types inductifs plus : nat nat nat x : nat, plus(0, x) = x x, y : nat, plus(s(y), x) = S(plus(y, x)) x : nat, 0 S(x) x : nat, x = 0 y : nat, x = S(y) x, y : nat, S(x) = S(y) x = y

Éléments traduits égalité arithmétique définitions x : s, f (x) = t définitions récursives et filtrage types inductifs plus : nat nat nat x : nat, plus(0, x) = x x, y : nat, plus(s(y), x) = S(plus(y, x)) x : nat, 0 S(x) x : nat, x = 0 y : nat, x = S(y) x, y : nat, S(x) = S(y) x = y

Éléments traduits égalité arithmétique définitions x : s, f (x) = t définitions récursives et filtrage types inductifs plus : nat nat nat x : nat, plus(0, x) = x x, y : nat, plus(s(y), x) = S(plus(y, x)) x : nat, 0 S(x) x : nat, x = 0 y : nat, x = S(y) x, y : nat, S(x) = S(y) x = y

Problèmes liés à la convertibilité Parameter A : Set. Definition B : Set := A. Parameter f : A -> A. forall (b : B), f b = b A : TYPE B : TYPE f : A -> A forall (b:b), f(b) = b Solution : utiliser la forme normale des types

Problèmes liés à la convertibilité Parameter A : Set. Definition B : Set := A. Parameter f : A -> A. forall (b : B), f b = b A : TYPE B : TYPE f : A -> A forall (b:b), f(b) = b Solution : utiliser la forme normale des types

Problèmes liés à la convertibilité Parameter A : Set. Definition B : Set := A. Parameter f : A -> A. forall (b : B), f b = b A : TYPE B : TYPE f : A -> A forall (b:b), f(b) = b Solution : utiliser la forme normale des types

Jugements de traduction E; G Env S; Γ; E; G T Sort s E; G t Term t E; G P Prop P Notation : [A] E;G pour la traduction de A dans E; G lorsque celle-ci existe.

Jugements de traduction (suite) Exemple : E; G T Sort s E; (x : T ) :: G P Prop P forall-trad E; G x : T, P Prop x : s, P

Résultats Traduction Utilisation en pratique Perspectives Théorème : Si P bien typée dans E; G, alors [P] E;G est bien formée dans [E; G]. Théorème : Si [E; G] = [P] E;G alors il existe h tel que E; G CCI h : P. Preuve par récurrence sur [E; G] = [P] E;G.

Résultats Traduction Utilisation en pratique Perspectives Théorème : Si P bien typée dans E; G, alors [P] E;G est bien formée dans [E; G]. Théorème : Si [E; G] = [P] E;G alors il existe h tel que E; G CCI h : P. Preuve par récurrence sur [E; G] = [P] E;G.

Utilisation en pratique Exemple : Theorem exemple1 : forall f : nat -> nat, forall x : nat, f x = x -> f (f x) = x. Proof. simplify. Qed. Nouvelle «tactique» admit ajoutée à Coq Check exemple1_admitted. exemple1_admitted : forall (f : nat -> nat) (x : nat), f x = x -> f (f x) = x

Utilisation en pratique Exemple : Theorem exemple1 : forall f : nat -> nat, forall x : nat, f x = x -> f (f x) = x. Proof. simplify. Qed. Nouvelle «tactique» admit ajoutée à Coq Check exemple1_admitted. exemple1_admitted : forall (f : nat -> nat) (x : nat), f x = x -> f (f x) = x

Utilisation en pratique Exemple : Theorem exemple1 : forall f : nat -> nat, forall x : nat, f x = x -> f (f x) = x. Proof. simplify. Qed. Nouvelle «tactique» admit ajoutée à Coq Check exemple1_admitted. exemple1_admitted : forall (f : nat -> nat) (x : nat), f x = x -> f (f x) = x

Utilisation en pratique Exemple : Theorem exemple1 : forall f : nat -> nat, forall x : nat, f x = x -> f (f x) = x. Proof. simplify. Qed. Nouvelle «tactique» admit ajoutée à Coq Check exemple1_admitted. exemple1_admitted : forall (f : nat -> nat) (x : nat), f x = x -> f (f x) = x

Exemple Traduction Utilisation en pratique Perspectives Inductive nat : Set := O : nat S : nat -> nat. Fixpoint plus (n m : nat) {struct n} : nat := match n with 0 => m S n => S (plus n m) end. Goal forall n : nat, plus n 0 = n. induction n; zenon. Qed.

"sort_ax_4" (%sort_nat O) "sort_ax_5" (A. ((x1 "nat") (=> (%sort_nat x1) (%sort_nat (S x1))))) "injection_s" (A. ((x1 "nat") (=> (%sort_nat x1) (A. ((y1 "nat") (=> (%sort_nat y1) (=> (= (S x1) (S y1)) (/\ (= x1 y1) True)))))) "sort_ax_6" (A. ((x1 "nat") (A. ((x2 "nat") (=> (%sort_nat x1) (=> (%sort_nat x2) (%sort_nat (plus x1 x2))))))) "plus_o" (A. ((m "nat") (=> (%sort_nat m) (= (plus O m) m)))) "plus_s" (A. ((m "nat") (=> (%sort_nat m) (A. ((n "nat") (=> (%sort_nat n ) (= (plus (S n ) m) (S (plus n m))))))))) "sort_ax_7" (%sort_nat n) "IHn" (= (plus n O) n) $goal (= (plus (S n) O) (S n))

Conclusion Traduction Utilisation en pratique Perspectives Théorie 1. Traduction CCI premier ordre 2. Correction (typabilité, prouvabilité) Pratique 1. Implanté dans la version CVS de Coq 2. Tactiques simplify, cvcl et zenon

Perspectives Études de cas Termes de preuves (CVC Lite et Zenon)