Calculabilité Cours 1 : Fonctions récursives et λ-calcul

Documents pareils
Algorithmique et Programmation Fonctionnelle

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

Lambda-calcul et langages fonctionnels

Image d un intervalle par une fonction continue

Peut-on tout programmer?

Réalisabilité et extraction de programmes

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

Suites numériques 3. 1 Convergence et limite d une suite

Cours 1 : La compilation

Machines virtuelles Cours 1 : Introduction

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.


Cours 1 : Qu est-ce que la programmation?

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

"Calcul et hyper-calcul"

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

Intégration et probabilités TD1 Espaces mesurés Corrigé

Exercices - Polynômes : corrigé. Opérations sur les polynômes

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

Intégration et probabilités TD1 Espaces mesurés

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Logiciel de Base. I. Représentation des nombres

Rappels sur les suites - Algorithme

Chapitre 7. Récurrences

UE Programmation Impérative Licence 2ème Année

Corrigé des TD 1 à 5

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Bases de programmation. Cours 5. Structurer les données

dans un cadre richement typé

Sujet 4: Programmation stochastique propriétés de fonction de recours

Cours de mathématiques

Développement décimal d un réel

ASR1 TD7 : Un microprocesseur RISC 16 bits

Contribution aux rapports entre la logique combinatoire et les T[Σ]-algèbres.

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Plus courts chemins, programmation dynamique

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Limites finies en un point

Une réponse (très) partielle à la deuxième question : Calcul des exposants critiques en champ moyen

Cours d Analyse. Fonctions de plusieurs variables

Tâche complexe produite par l académie de Clermont-Ferrand. Mai 2012 LE TIR A L ARC. (d après une idée du collège des Portes du Midi de Maurs)

Par combien de zéros se termine N!?

Quelques algorithmes simples dont l analyse n est pas si simple

Triangle de Pascal dans Z/pZ avec p premier

Algorithmes récursifs

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Comparaison de fonctions Développements limités. Chapitre 10

La persistance des nombres

Année 2014/ er septembre Version de Anca Muscholl, issue du poly de Marc Zeitoun. 1/143

Les arbres binaires de recherche

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

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

Théorie et codage de l information

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Programmation sous QT

Langage SQL : créer et interroger une base

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Université de La Rochelle. Réseaux TD n 6

Représentation des Nombres

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Continuité d une fonction de plusieurs variables

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

Sur certaines séries entières particulières

Table des matières. Introduction

TABLE DES MATIÈRES CHAPITRE I. Les quanta s invitent

Maple: premiers calculs et premières applications

Informatique Machines à calculer en théorie et en pratique

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

Mesure et Intégration (Notes de cours de L3)

Fonctions homographiques

Polynômes à plusieurs variables. Résultant

Programmation linéaire

Consignes pour les travaux d actualité Premier quadrimestre

Plan du cours Cours théoriques. 29 septembre 2014

Informatique Générale

Chapitre 2. Matrices

Optimisation des fonctions de plusieurs variables

Logique : ENSIIE 1A - contrôle final

Modèles formels du calcul quantique : ressources, machines abstraites et calcul par mesure

Chapitre 6. Fonction réelle d une variable réelle

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Chapitre 10 Arithmétique réelle

Problème 1 : applications du plan affine

Feuille TD n 1 Exercices d algorithmique éléments de correction

Continuité et dérivabilité d une fonction

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

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Model checking temporisé

De l arithmétique d intervalles à la certification de programmes

Algorithme. Table des matières

Initiation à l algorithmique

Cours de Master Recherche

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

4. Martingales à temps discret

Représentation d un entier en base b

Algorithmique et Programmation, IMA

Transcription:

Calculabilité Cours 1 : Fonctions récursives et λ-calcul

Introduction Objectifs de cette partie (3 cours) Présenter les éléments essentiels de la calculabilité en évitant les détails trop techniques 3 modèles de calcul fonctions récursives, λ-calcul, machines de Turing La non-calculabilité démontrer l indécidabilité, présentation de quelques problèmes indécidables, théorème de Rice Une référence principale : Pierre Wolper 1, Introduction à la calculabilité, Dunod 1 cf http://www.montefiore.ulg.ac.be/ pw/cours/calc.html Fonctions récursives et λ-calcul 2 / 34

Introduction Motivations Comprendre les limites de l informatique. Distinguer problèmes solubles et insolubles par des algorithmes. Obtenir des résultats indépendants de la technologie employée pour construire les ordinateurs. Fonctions récursives et λ-calcul 3 / 34

Introduction Problèmes et Langages Quels problèmes sont solubles par un programme exécuté sur un ordinateur? Il faut préciser : la notion de problème, la notion de programme exécuté sur un ordinateur. Nous aborderons aujourd hui le 2ième point. Fonctions récursives et λ-calcul 4 / 34

Introduction La notion de procédure effective Trois modèles de calcul Fonctions récursives (Gödel, 1930) λ-calcul (Church, 1930) Machine de Turing (Turing et Post, 1936) Conjecture (non-démontrable) : ces formalisations sont des modèles appropriés. Théorème 2 : ces modèles sont équivalents. 2 cf http://www.lsv.ens-cachan.fr/ comon/ftp.articles/ poly-calculabilite.ps.gz Fonctions récursives et λ-calcul 5 / 34

Les fonctions récursives

Introduction Les fonctions récursives Définie les fonctions calculables sur les naturels. fonctions dans l ensemble avec F k = N k N k N F k Fonctions calculables? fonctions de base composition de fonctions mécanisme de récursion Fonctions récursives et λ-calcul 7 / 34

Les fonctions récursives Fonctions primitives récursives Fonctions primitives récursives Définition (Fonctions primitives récursives de base) fonction zéro : 0() F 0 0() = 0 fonction de projection : π k i F k, k 1, 1 i k π k i (n 1,..., n k ) = n i fonction successeur : σ F 1 σ(n) = n + 1 Fonctions récursives et λ-calcul 8 / 34

Les fonctions récursives Fonctions primitives récursives Fonctions primitives récursives Définition (Composition de fonctions) Soit g F l, h 1,..., h l F k, la composition de g et des fonctions h 1,..., h l est définie par f F k : avec n = (n 1,..., n k ). f (n) = g(h 1 (n),..., h l (n)) Fonctions récursives et λ-calcul 9 / 34

Les fonctions récursives Fonctions primitives récursives Fonctions primitives récursives Définition (Récursion primitive) Soit g F k et h F k+2. La fonction f F k+1 définit par f (n, 0) = g(n) f (n, m + 1) = h(n, m, f (n, m)) est la fonction définie à partir de g et h par récursion primitive. Remarque : f est calculable si g et h sont calculables. Fonctions récursives et λ-calcul 10 / 34

Les fonctions récursives Fonctions primitives récursives Fonctions primitives récursives Définition (Fonctions primitives récursives) Les fonctions primitives récursives sont toutes les fonctions que l on peut construire à partir des fonctions de base par composition et récursion primitive. Fonctions récursives et λ-calcul 11 / 34

Exemples Les fonctions récursives Fonctions primitives récursives Fonction constante j() F 0 Fonction addition Fonction multiplication Fonction puissance Généralisation fonction d Ackermann (pas primitive récursive) Fonction factorielle Fonction prédecesseur Fonction différence Fonction signe Fonctions récursives et λ-calcul 12 / 34

Les fonctions récursives Prédicats primitifs récursifs Prédicats primitifs récursifs Un prédicat est une fonction dont les valeurs sont prises dans un ensemble binaire de la forme {vrai, faux}. Définition Un prédicat P à k arguments est un sous-ensemble de N k (les éléments de N k pour lesquels P est vrai). La fonction caractéristique d un prédicat P N k est la fonction f N k {0, 1} telle que { 0 si n P f (n) = 1 si n P Définition Un prédicat est primitif récursif si sa fonction caractéristique est primitive récursive. Fonctions récursives et λ-calcul 13 / 34

Exemples Les fonctions récursives Prédicats primitifs récursifs zéro? N 1 {0, 1} < N 2 {0, 1} opération booléennes quantification bornée N k+1 {0, 1} i m p(n, i) i m p(n, i) définition par cas g 1 (n) f (n) =... g l (n) si p 1 (n) si p l (n) Fonctions récursives et λ-calcul 14 / 34

Les fonctions récursives Minimisation bornée Prédicats primitifs récursifs La fonction µi q(, i) F k+1 { le plus petit i m tel que q(n, i) = 1 µi m q(n, i) = 0 s il n existe pas est primitive récursive. Fonctions récursives et λ-calcul 15 / 34

Les fonctions récursives Fonctions récursives générales Fonctions récursives générales Théorème Il existe des fonctions qui ne sont pas primitives récursives. Théorème Il existe des fonctions calculables qui ne sont pas primitives récursives. Fonctions récursives et λ-calcul 16 / 34

Les fonctions récursives Minimisation non bornée Fonctions récursives générales µi q(n, i) = Un prédicat q(n, i) est dit sûr si { le plus petit i tel que q(n, i) = 1 0 si un tel i n existe pas n i q(n, i) = 1 Fonctions récursives et λ-calcul 17 / 34

Les fonctions récursives Fonctions récursives générales Fonctions récursives générales Définition (Fonctions µ-récursives) Les fonctions µ-récursives sont toutes les fonctions que l on peut construire à partir des fonctions primitives récursives de base par : composition, récursion primitive et minimisation non bornée de prédicats sûrs. Remarque : Les fonctions µ-récursives sont calculables par une procédure effective. Fonctions récursives et λ-calcul 18 / 34

λ calcul 3 3 cf les notes de cours de Larry Paulson, Foundations of Functional Programming, http://www.cl.cam.ac.uk/ lp15/papers/notes/founds-fp.pdf

Syntaxe λ calcul On fixe un ensemble de variables x, y, z,... V Les termes du λ calcul sont de la forme x (λx. M) avec M un terme (M N) avec M et N des termes Exemple : λx. x λf. λx. (f x) (on omet les parenthèses superflus) λx. M représente la fonction f telle que f (x) = M. x est la variable liée M le corps Fonctions récursives et λ-calcul 20 / 34

λ calcul Substitution Variables libres, variables liés Définition (Variable liées (bound variables)) BV(x) = BV(λx. M) = BV(M) {x} BV(M N) = BV(M) BV(N) Définition (Variable libres (free variables)) FV(x) = {x} FV(λx. M) = FV(M) {x} FV(M N) = FV(M) FV(N) Exemples : λf. (f x) (x λx.(f x)) ((λx. x) λf.(f x)) Fonctions récursives et λ-calcul 21 / 34

Substitution λ calcul Substitution M[L/y] est la substitution dans M de toutes les occurrences libres de y par L. { L si x = y x[l/y] = x sinon { (λx. M) si x = y (λx. M)[L/y] = (λx. M[L/y]) sinon (M N)[L/y] = (M[L/y] N[L/y]) Fonctions récursives et λ-calcul 22 / 34

λ calcul Capture de variables Substitution Exemples : (λz. x)[y/x] et (λy. x)[y/x] Définition La substitution M[N/x] est dite sûre si BV(M) FV(N) =. On se limitera toujours aux substitutions sûres. Ce sera toujours possible après d éventuels renommages (α conversions). Fonctions récursives et λ-calcul 23 / 34

Conversions λ calcul Calcul α conversion : (λx. M) α (λy. M[y/x]) y non libre dans M Convention : Nous ne distinguerons pas les termes qui sont identiques après (éventuellement plusieurs) α conversion. β conversion : ((λx. M) N) β M[N/x]) si la substitution est sûre Fonctions récursives et λ-calcul 24 / 34

λ calcul Calcul Réduction Ces deux conversions sont étendus aux sous-termes (λx. M) (λx. M ) si M M (M N) (M N) si M M (M N) (M N ) si N N β réduction : β = n N n β représente le calcul sur un λ terme. Exemples ((λx. λy. (x y)) b) c (λx. (a (λy. (x y))) b) c Fonctions récursives et λ-calcul 25 / 34

λ calcul Calcul Forme normale Définition (Rédex) Un rédex d un terme est une sous-expression de la forme ((λx. X) Y). Définition (Forme normale) Un terme est en forme normale si il ne contient aucun rédex. Un terme en forme normale ne peut plus être β réduit (le calcul est terminé). Fonctions récursives et λ-calcul 26 / 34

λ calcul Calcul Forme normale Définition (Terme normalisable) Un terme E est normalisable si il existe un terme E en forme normale telle que E β E. Exercices : (λx. (x x)) (λx. (x x)) est-il normalisable? Donner un exemple de terme normalisable pour lequel il existe un séquence infinie de β réduction. Fonctions récursives et λ-calcul 27 / 34

λ calcul Calcul Stratégie de réduction Il existe plusieurs façons de réduire un terme. Théorème (Church-Rosser) Si E β E 1 et E β E 2, alors il existe E tel que E 1 β E et E 2 β E. Ce théorème assure l unicité de la forme normale (exercice). Fonctions récursives et λ-calcul 28 / 34

λ calcul Calcul Stratégie de réduction Il existe un stratégie gagnante. Définition (Réduction normale) La réduction normale d un terme est la stratégie qui applique la β conversion aux rédex le plus à gauche. Théorème (Curry) Si E est normalisable vers une forme normale N alors la réduction normale de E mène aussi à N. Autrement dit, la réduction normale d un terme normalisable termine toujours. Fonctions récursives et λ-calcul 29 / 34

λ calcul Les entiers de Church Représentation des fonctions entières Codage des entiers en λ calcul : cf TD. 0 = λf. λx. x 1 = λf. λx. (f x) 2 = λf. λx. (f (f x))... n = λf. λx. (f (f... x)) } {{ } n fois Fonctions récursives et λ-calcul 30 / 34

λ calcul Fonctions λ représentables Représentation des fonctions entières Convention : on écrit parfois f x y au lieu de ((f x) y). Définition (Fonctions λ représentables) Soit f une fonction de N k N. On dit que f est λ représentable par un terme F si n 1,..., n k N, F n 1... n k β f (n 1,..., n k ) Thèse de Church : Les fonctions calculables sont les fonctions λ représentables. Fonctions récursives et λ-calcul 31 / 34

Exercice λ calcul Représentation des fonctions entières Expliquer pourquoi les fonctions λ représentables sont calculables par une procédure effective. Fonctions récursives et λ-calcul 32 / 34

Remarques divers λ calcul Représentation des fonctions entières La notion de fonction λ représentable est parfois définie à l aide de β (la plus petite relation d équivalence contenant β ). Nous avons utilisé, sans le préciser, des définitions inductives. Nous y reviendrons plus rigoureusement dans les prochaines séances. Fonctions récursives et λ-calcul 33 / 34

Plan λ calcul Représentation des fonctions entières 1 Introduction 2 Les fonctions récursives Fonctions primitives récursives Prédicats primitifs récursifs Fonctions récursives générales 3 λ calcul Substitution Calcul Représentation des fonctions entières Fonctions récursives et λ-calcul 34 / 34