v2.11.0 (5976)

Programme d'approfondissement - CSC_51051_EP : Logique Informatique : de l'Intelligence Artificielle à l'Absence d'erreurs

Domaine > Informatique.

Illustration de la fiche

Descriptif

La logique informatique est utilisé dans un large éventail d'applications en informatique, allant de l'approche déductive de l'Intelligence Artificielle préconisée par le pionnier de l'IA, John McCarthy, à la démonstration de l'absence de bogues dans de grands logiciels industriels, comme la ligne 14 du métro de Paris, ou à vérifier les théorèmes difficiles comme celui de Feit-Thompson dans la classification des groupes simples finis.

L'objectif de ce cours est d'expliquer la manière dont la logique peut être utilisée afin de modéliser des problèmes de nature informatique ou mathématique, et comment les ordinateurs peuvent être utilisés pour y parvenir. Nous allons présenter des assistants de preuve, qui permettent de formaliser un raisonnement humain par la construction interactive de preuves, et expliquent leur utilité pour certifier l'absence de bogues dans les programmes. Il est basé sur la correspondance Curry-Howard : un programme est identique à une preuve (ou plus précisemment, un programme fonctionnel typé correspond à une dérivation de son type). Afin d'atteindre des applications réalistes, nous présenterons l'assistant de preuve Agda et la logique dépendente qu'il sous tend. Si le temps nous le permet, nous présenterons également différentes notions et techniques telles que la théorie des ensembles et la recherche de preuve.

Ce cours est aussi à propos de logique en pratique : toutes les PC se feront sur ordinateurs, utilisant OCaml puis Agda.

 

Site du cours : http://inf551.mimram.fr/

Objectifs pédagogiques

Les objectifs du cours sont d'acquérir

  • les bases en programmation fonctionnelle : notions fondamentales (fonctions, lieurs, réduction), formalisation (λ-calcul), propriétés (confluence), expressivité (complétude au sens de Turing), implémentation
  • les bases des systèmes de types : fonctionnement (règles, inférence), garanties apportées (réduction du sujet, progrès, terminaison), variantes (types dépendants)
  • une connaissance de la logique : propriétés fondamentales (cohérence, élimination des coupures), systèmes (calcul des prédicats, premier ordre, types dépendants), constructivité (logique intuitionniste ou classique), formalismes (déduction naturelle, séquents)
  • la correspondance preuve-programme : λ-calcul simplement typé et extensions (divers connecteurs, types dépendants), utilisation pour les assistants de preuve
  • les bases de l'assistant de preuve Agda : utilisation, types inductifs, techniques de preuve, traitement de l'égalité

Pour les étudiants du diplôme M1 MPRI - Fondements de l'Informatique

Aucun

Pour les étudiants du diplôme Programmes d'échange internationaux

Aucun

Pour les étudiants du diplôme M2 CPS - Système Cyber Physique

Aucun

Pour les étudiants du diplôme Titre d’Ingénieur diplômé de l’École polytechnique

INF412 conseillé (mais pas obligatoire)

Pour les étudiants du diplôme M1 CPS - Système Cyber Physique

Aucun

Format des notes

Numérique sur 20

Littérale/grade réduit

Pour les étudiants du diplôme M2 CPS - Système Cyber Physique

Vos modalités d'acquisition :

La note finale est composée de

  • la moyenne de la note des TDs (TD4 excepté) : 25%
  • le TD4 qui fait office de projet : 25%
  • l'examen final : 50%

Le rattrapage est autorisé (Note de rattrapage conservée)
    L'UE est acquise si Note finale >= 10
    • Crédits ECTS acquis : 5 ECTS

    Pour les étudiants du diplôme Programmes d'échange internationaux

    Vos modalités d'acquisition :

    La note finale est composée de

    • la moyenne de la note des TDs (TD4 excepté) : 25%
    • le TD4 qui fait office de projet : 25%
    • l'examen final : 50%

    Le rattrapage est autorisé (Note de rattrapage conservée)
      L'UE est acquise si note finale transposée >= C
      • Crédits ECTS acquis : 5 ECTS

      La note obtenue rentre dans le calcul de votre GPA.

      Pour les étudiants du diplôme M1 MPRI - Fondements de l'Informatique

      Vos modalités d'acquisition :

      La note finale est composée de

      • la moyenne de la note des TDs (TD4 excepté) : 25%
      • le TD4 qui fait office de projet : 25%
      • l'examen final : 50%

      Le rattrapage est autorisé (Note de rattrapage conservée)
        L'UE est acquise si Note finale >= 10
        • Crédits ECTS acquis : 5 ECTS

        Pour les étudiants du diplôme Titre d’Ingénieur diplômé de l’École polytechnique

        Vos modalités d'acquisition :

        La note finale est composée de

        • la moyenne de la note des TDs (TD4 excepté) : 25%
        • le TD4 qui fait office de projet : 25%
        • l'examen final : 50%

        Le rattrapage est autorisé (Note de rattrapage conservée)
          L'UE est acquise si note finale transposée >= C
          • Crédits ECTS acquis : 5 ECTS

          La note obtenue rentre dans le calcul de votre GPA.

          Pour les étudiants du diplôme M1 CPS - Système Cyber Physique

          Vos modalités d'acquisition :

          La note finale est composée de

          • la moyenne de la note des TDs (TD4 excepté) : 25%
          • le TD4 qui fait office de projet : 25%
          • l'examen final : 50%

          L'UE est acquise si Note finale >= 10
          • Crédits ECTS acquis : 5 ECTS

          Programme détaillé

          1. Programmation fonctionnelle
            • Le langage OCaml
            • Types de données de base
            • Système de typage
          2. Logique propositionnelle
            • Déduction naturelle
            • Élimination des coupures
            • Logique classique
          3. λ-calcul pur
            • Définition
            • Réduction
            • Expressivité
            • Confluence
          4. λ-calcul simplement typé
            • Règles de typage
            • Inférence de types
            • Correspondance preuve-programme
            • Connecteurs logiques
            • Extension à la logique classique
            • Normalisation forte
          5. Agda
            • Utilisation de base
            • Types inductifs pour les données : booléens, nombres naturels, listes, vecteurs, ensembles finis
            • Types inductifs pour les connecteurs logiques
            • Égalité
            • Preuves extrinsèques vs intrinsèques
            • Terminaison
          6. Logique du premier ordre
            • Règles
            • Correspondance preuve-programme
            • Théorie des ensembles
            • Géométrie différentielle synthétique
          7. Types dépendants
            • Règles pour divers types : types Π et Σ, entiers naturels
            • Incohérence de type in type, univers
            • Terminaison : critères syntaxiques, technique du carburant, induction bien fondée
            • Types inductifs
          •  
          Veuillez patienter