Programmation fonctionnelle Preuve

Slides:



Advertisements
Présentations similaires
CHAPITRE 5 Suites réelles.
Advertisements

3. Logique et mathématiques De la logique aux mathématiques.
Introduction à la notion de fonction 1. Organisation et gestion de données, fonctions 1.1. Notion de fonction Déterminer l'image d'un nombre par une fonction.
Algorithmes et structures de données avancées Cours 7
Gestion de portefeuille
Gestion de portefeuille
Algorithmes et structures de données avancés
Fonctions & procédures
Cours 5-b Problèmes spatio-temporels d’ordre 1 en temps
Calcul géométrique avec des données incertaines
COURS DE MATHEMATIQUES DISCRETES SM
Cours d'algorithmique 7 - Intranet 1 27 novembre 2006 Cours dAlgorithmique Dérécursion (début) : Équivalences entre programmes récursifs et programmes.
I. Bases de logique , théorie des ensembles
CHAPITRE 2 Nombres entiers, initiation à l’arithmétique- Nombres rationnels.
Nombres réels et propriétés de R CHAPITRE 3. Fractions : développements décimaux le point de vue « concret » (hérité de lenseignement primaire)
Algèbre de Boole.
Jean-Jacques Lévy INRIA Preuves de programmes et méthodes formelles Microsoft TechDays - 9 février 2010.
Nicolas Bourbaki.
INTRODUCTION.
Résoudre graphiquement une équation ou une inéquation simple
Continuité Introduction Continuité Théorème des valeurs intermédiaires
Logiques Mathématiques
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Graphes Conceptuels J.F. Baget Inria.
Programmation logique Logique des prédicats du premier ordre
Concepts avancés en mathématiques et informatique appliquées
Les formes normales.
ENSIIE-Master MPRO Alain Faye
Programmation fonctionnelle Le langage LISP
Examen partiel #2 Mercredi le 15 novembre de 13h30 à 15h20
Rappel... Solution itérative de systèmes linéaires (suite et fin).
Espaces vectoriels Montage préparé par : S André Ross
Fonction exponentielle: enchaînement de théorèmes
Mais en mathématiques, qu'est ce qu'une ligne de niveau?
Inéquations du 1er degré
Périodicité, Apériodicité, Universalité et autres petits problèmes…
1.1 LES VECTEURS GÉOMÉTRIQUES
Algorithmes d ’approximation
Chapitre 4 : Morphologie Mathématique
Sémantique dénotationnelle
Programmation non procédurale Le projet ECOLE 2000
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Patrons de conceptions de créations
ASI 3 Méthodes numériques pour l’ingénieur
Spécification de programmes et de systèmes
Produit scalaire dans le plan
Suites numériques Définitions.
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
Programmation fonctionnelle Lambda-calcul
l’économie de Robinson et de vendredi
Cours 3ème Fonctions linéaires et fonctions affines I Fonctions linéaires II Fonctions affines.
Théorie du point fixe 1. Rappel Ensemble ordonné Majorant, Minorant
Programmation procédurale preuves D. Preuves Preuves sur les R-algorithmes. Règle de l'appel (Hoare). Exemple Preuves sur les B-algorithmes (Floyd) Automatisation.
8.1 LES NOMBRES COMPLEXES cours 26. Avec la venue de: Doigts Dettes Tartes Distances.
Micro-intro aux stats.
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Le langage Racket (Lisp)
3.1 DÉTERMINANTS Cours 5.
Modèles d’entrelacement
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Introduction à la récursivité
Leçon 4 NOTION DE FONCTION Fabienne BUSSAC.
SÉRIE DE TAYLOR cours 28.
Structure de groupe Def: un groupe est un ensemble (G,*) où
Systèmes formels 1. Définition d'un SF Morphologie Théorie propre
Résolution des équations différentielles
1.1 LES VECTEURS GÉOMÉTRIQUES
Pierre Joli Cours de Mathématique Pierre Joli
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
MATHÉMATIQUES L1 Second Semestre Armand Taranco. BIBLIOGRAPHIE Dupont : Algèbre pour les sciences économiques, Flash U, A. Colin. Bernard Guerrien, Isabelle.
Transcription de la présentation:

Programmation fonctionnelle Preuve C. Preuves Deux approches : système formel et point fixe Approche "Point fixe" Concepts mathématiques Notion de fonctionnelle et de point fixe. Fonction moins définie Convergence Idée de la preuve Exemples

Programmation fonctionnelle Preuve 2 approches : Système de preuve de Hoare Déjà vu Théorie du point fixe

Programmation fonctionnelle Preuve Concepts mathématiques : Notion de fonctionnelle et de points fixes L'écriture f =  n.u(n) a le même sens que l'écriture habituelle f : n-->u(n) Cette notation permet d'exprimer d'une autre manière les définitions récursives.

Programmation fonctionnelle Preuve Concepts mathématiques : Notion de fonctionnelle et de points fixes Exemples : f1 =  n.si n =0 alors 1 sinon n*f1(n-1) Fsi f2 =  xy. Si x=y alors y+1 Sinon f2(x,f2(x-1, y+1)) Fsi

Programmation fonctionnelle Preuve Concepts mathématiques : Notion de fonctionnelle et de points fixes Une fonctionnelle est une application  d'un espace de fonction (E,F) dans lui-même. C'est à dire à une fonction f (de E dans F) on fait correspondre une fonction g (de E dans F). ce qui s'écrit g =  (f). Une fonction f de (E, F) est dite point fixe de si (f) = f. A chaque équation du type f =  x.u(x), on peut associer une fonctionnelle  =  f.µx.u(x) admettant comme points fixes les solutions de l'équation (f) = f.

Programmation fonctionnelle Preuve Concepts mathématiques : Notion de fonctionnelle et de points fixes Par exemple la fonctionnelle f2 admet les 2 solutions suivantes (points fixes) : g =  xy. x+1 h =  xy. Si x>=y alors x+1 Sinon y-1 Fsi à vérifier ....

Programmation fonctionnelle Preuve Concepts mathématiques :Fonction moins définie qu'une autre ( Inclusion ) Soient f et g deux fonctions de E dans F. On dit que f est moins définie que g (f Inclus dans g) si pour tout x de E tel que f(x) définie, g(x) est aussi définie et f(x)=g(x). La relation Inclus est une relation d'ordre dans (E, F). La fonction nulle part définie est le plus petit élément de cet ensemble.

Programmation fonctionnelle Preuve Concepts mathématiques : Convergence. Une suite f1, f2, ..., fn converge vers une fonction f si: - Pour tout i, fi Inclus f - Pour tout x tel que f(x) défini, il existe n0 vérifiant: n > n0 ==> fn(x) = f(x)

Programmation fonctionnelle Preuve Idée de la preuve (E, F) muni de la relation  est un treuilli son plus petit élément  est la fonction nulle part définie. A tout programme fonctionnel récursif correspond une application  de  (E, F) dans  (E, F)  est continue au sens des chaînes le programme est alors vu comme étant une équation fonctionnelle f =  (f) dont le plus petit point fixe coïncide avec la fonction calculée par le programme.

Programmation fonctionnelle Preuve Idée de la preuve La fonction x! est le plus petit point fixe (la plus petite solution de de l ’équation f =  x.si x=0 alors 1 sinon x*f(x-1) fsi de la forme f = (f) C ’est à dire x! =  (x!) = x. si x=0 alors 1 sinon x*(x-1)! fsi

Programmation fonctionnelle Preuve Idée de la preuve pour prouver qu ’un programme fonctionnel (récursif)  calcule bien une fonction donnée f, il faut prouver que f est le pppf de . (Plus Petit Point Fixe) Si f n ’est pas le pppf de  mais un point fixe de  alors on peut conclure que  calcule partiellement f. Si on ne connaît pas f on peut la trouver en calculant le pppf de  qui est égal à Sup (n () ) n 0.

Programmation fonctionnelle Preuve Exemple 1 f1 =  xy.Si x=y alors y+1 Sinon f1(x, f1(x-1, y+1) Fsi Prouver que f1 calcule (au moins partiellement ) la fonction g =  xy. x+1 Il suffit de montrer que g est un point fixe, c ’est à dire (g)=g

Programmation fonctionnelle Preuve Démonstration Cas x=y : x+1 CQFD Cas x#y : calcul de g(x-1, y+1) = x calcul de g(x, x) = x + 1 CQFD

Programmation fonctionnelle Preuve Exemple 2 On peut aussi prouver que f1 calcule la fonction h =  xy. Si x  y alors x+1 Sinon y-1 Fsi. Là aussi, il faut montrer que h est un point fixe de la fonctionnelle f1, c ’est à dire (h) = h

Programmation fonctionnelle Preuve Démonstration : Cas x=y : h(x, y) = x+1 = y +1 CQFD Cas x#y : si x-1 < y+1 ou x<y+2 ou x  y+1 appel interne : h(x-1, y+1) = (y+1) - 1 = y appel externe h(x, y) Si x-1  y+1 ou x  y+2 ou x > y+1 appel interne : h(x-1, y+1) = (x-1) + 1 = x appel externe h(x, x) = x + 1 = h(x,y) (Car si x >y+1 alors on a fortiori x  y) -------!--!-------------------- y y+1 (Toutes les valeurs sont couvertes)

Programmation fonctionnelle Preuve Exemple 3 : On peut aussi prouver que : f =  xy. si x y et pair (x-y) alors x+1 fsi est point fixe de f1, c ’est à dire (m) = m

Programmation fonctionnelle Preuve Démonstration (m) = si x = y alors y+1 = x +1 = m sinon m( x, m(x-1, y+1) ) m(x-1, y+1) = x si x  y+2 et pair(x-y-2) (qui est pair(x-y) ) m(x, x) = x + 1 = m (m) = x +1 si x=y ou x  y+2 et pair(x-y) =  sinon Dans les 2 cas c ’est m.

Programmation fonctionnelle Preuve Montrer que m  g m  h m est pppf de f.

Programmation fonctionnelle Preuve Exercice 4 : Calculer le pppf de l ’équation f = si x = 0 alors 1 sinon x * f(x-1) fsi

Programmation fonctionnelle Preuve Solution de la forme f =  (f) () = si x = 0 alors 1 sinon x *(x-1) fsi = si x = 0 alors 1 sinon  fsi 2() = si x = 0 alors 1 sinon () ( x - 1 ) fsi = si x = 0 alors 1 sinon ( si x-1=0 alors 1 sinon (x-1)* (x-1) ) = si x = 0 alors 1 sinon ( si x-1=0 alors 1 sinon  ) 3() =si x = 0 alors 1 sinon si x=1 alors 1 sinon si x = 2 alors 1*2 sinon  fsi fsi fsi 4() =si x = 0 alors 1 sinon si x=1 alors 1 sinon si x = 2 alors 1*2 sinon si x=3 alors 1*2*3 sinon  fsi fsi fsi fsi n() = 1* 2* 3* 4* 5 ……*n = n!