Cours 4. Induction. Calcul propositionnel : syntaxe et sémantique



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

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

Utilisation des tableaux sémantiques dans les logiques de description

Vérification formelle de la plate-forme Java Card

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

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

Réalisabilité et extraction de programmes

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

Plan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position

Cours 1 : La compilation

Cours de Programmation 2

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

Machines virtuelles Cours 1 : Introduction

Théorie de la Programmation

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

STAGE IREM 0- Premiers pas en Python

Une introduction rapide à Coq

Évaluation et implémentation des langages

Introduction à l étude des Corps Finis

ALGORITHMIQUE ET PROGRAMMATION En C

Initiation à l algorithmique

3. Conditionnement P (B)

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)

Recherche dans un tableau

Logiciel Libre Cours 2 Fondements: Programmation

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

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

Algorithmique et Programmation, IMA

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

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

LES TYPES DE DONNÉES DU LANGAGE PASCAL

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

1 - Connexion au service de gestion des demandes informatiques du lycée

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

Le produit semi-direct

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Table des matières. Introduction

UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS VÉRIFICATION ET ANALYSE DES POLITIQUES DE CONTRÔLE D ACCÈS : APPLICATION AU LANGAGE XACML

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

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

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

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Informatique Générale

Contribution à l algorithmique de la vérification

Algorithmique et programmation : les bases (VBA) Corrigé

Conception des bases de données : Modèle Entité-Association

# 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>

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Cours 1 : Qu est-ce que la programmation?

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

Cours Informatique Master STEP

Compilation (INF 564)

VÉRIFICATION DES SYSTÈMES À PILE AU MOYEN DES ALGÈBRES DE KLEENE

IUT de Laval Année Universitaire 2008/2009. Fiche 1. - Logique -

Cours de Master Recherche

Logique : ENSIIE 1A - contrôle final

Classes et Objets en Ocaml.

Continuité d une fonction de plusieurs variables

Présentation du langage et premières fonctions

Espérance conditionnelle

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

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

1 Première section: La construction générale

Les structures de données. Rajae El Ouazzani

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Éclairage naturel L5C 2009/2010. Aurore BONNET

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Chapitre 10 Arithmétique réelle

6. Les différents types de démonstrations

Systèmes décisionnels et programmation avancée

Correction Code nécessaire à la compilation : let bs ="\\" let nl = "\n" ;; let appliquer = List.map ;; (* affichage d'un noeud *)

TP1 Méthodes de Monte Carlo et techniques de réduction de variance, application au pricing d options

Sujet de thèse CIFRE RESULIS / LGI2P

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

III- Raisonnement par récurrence

Peut-on tout programmer?

Intelligence artificielle appliquée à l automatique

Formalisation de propriétés de flux d information avec une logique temporelle du premier ordre pour assurer la sécurité d une infrastructure de Cloud

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

Sur certaines séries entières particulières

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

Rappels Entrées -Sorties

Algorithmique des Systèmes Répartis Protocoles de Communications

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Compter à Babylone. L écriture des nombres

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur

Fonctions de plusieurs variables

Algorithme. Table des matières

Méthodes d évolution de modèle produit dans les systèmes du type PLM

LES GENERATEURS DE NOMBRES ALEATOIRES

Langage SQL : créer et interroger une base

1 Définition et premières propriétés des congruences

Le modèle standard, SPE (1/8)

Élasticité des applications à base de services dans le Cloud

L informatique en BCPST

Cours d algorithmique pour la classe de 2nde

Développements limités. Notion de développement limité

TP 1. Prise en main du langage Python


Transcription:

Cours 4 Induction Calcul propositionnel : syntaxe et sémantique

Induction Bibliographie Induction A. Arnold et I. Guessarian, Mathématiques pour l informatique Logique R. Lassaigne et M. de Rougemont, Logique et fondements de l informatique R. Cori et D. Lascar, Logique mathématique J. Stern, Fondements mathématiques de l informatique M. Huth et M. Ryan, Logic in Computer Science : modelling and reasoning about systems Induction et Calcul propositionnel 2 / 31

Induction

L induction Induction Un outil formel élégant très utile en informatique elle permet de faire des définitions récursives d ensembles de fonctions elle propose une technique de preuve souvent plus élégante que la récursion sur les entiers mais la récursion sur les entiers est toujours possible nous l avons déjà (implicitement) utilisée pour présenter le λ calcul Induction et Calcul propositionnel 4 / 31

Induction Définitions inductives La définition inductive d une partie X d un ensemble consiste en la donnée explicite de certains éléments de X (bases), en la donnée de moyens de construire de nouveaux éléments de X à partir d éléments déjà connus (étapes inductives). Induction et Calcul propositionnel 5 / 31

Induction Définition inductives Définition Soit E un ensemble. Une définition inductive d une partie X de E consiste en la donnée d un sous ensemble B de E, d un ensemble K de fonctions (partielles) Φ : E a(φ) E, où a(φ) N est l arité de Φ. X est défini comme étant le plus petit ensemble vérifiant les assertions (B) et (I) suivantes (B) B X (I) Φ K, x 1,..., x a(φ) X, Φ(x 1,..., x a(φ) ) X. Induction et Calcul propositionnel 6 / 31

Induction Définition inductives L ensemble ainsi défini est donc X = Y F Y où F = {Y E B Y et Y vérifie (I)}. Cela justifie le terme le plus petit ensemble. Notation : nous pourrons noter une définition inductive sous la forme (B) x X ( x B) (I) x 1,..., x a(φ) X = Φ(x 1,..., x a(φ) ) X ( Φ K). Induction et Calcul propositionnel 7 / 31

Induction Exemples L ensemble P N des entiers pairs (B) 0 P (I) n P = n + 2 P L ensemble AB (A {, (, ), ; }) des arbres binaires sur un alphabet A (B) AB (I) a A, g, d AB = (a; g; d) AB Induction et Calcul propositionnel 8 / 31

Induction Définition explicite Théorème Si X est défini inductivement par les conditions (B) et (I), tout élément de X peut s obtenir à partir de la base en appliquant un nombre fini d étapes inductives. où X 0 = B X = n N X n+1 = X n {Φ(x 1,..., x a(φ) ) x 1,..., x a(φ) X n et Φ K} Remarque : tout élément de X peut être représenté graphiquement par une structure arborescente. X n Induction et Calcul propositionnel 9 / 31

Induction Les types récursifs cachent une définition inductive En Caml type list = Nil Cons of int* list En Coq Inductive list : Set := Nil Cons (n: nat) (l: list). ou Inductive list : Set := Nil: list Cons: nat list list. Induction et Calcul propositionnel 10 / 31

Induction Preuve par induction Théorème Soit X un ensemble défini inductivement par les conditions (B) et (I), et soit P(x) un prédicat exprimant une propriété de l élément x de X. Si les conditions suivantes sont vérifiées : P(x) est vraie pour chaque x B, pour tout x 1,..., x a(φ) X, si P(x 1 ),..., P(x a(φ) ) sont vraies alors P(Φ(x 1,..., x a(φ) )) est vraie, pour tout Φ K, alors P(x) est vraie pour tout x X. Induction et Calcul propositionnel 11 / 31

Induction Coq : génération d un principe d induction Check list_ind. >list_ind : P : list Prop, P Nil ( (n : nat) (l : list), P l P ( Cons n l)) l : list, P l Induction et Calcul propositionnel 12 / 31

Induction Exercice On définit sur les arbres binaires AB le nombre de feuille f (x) d un arbre x comme le nombre d occurrence du symbole, le nombre de nœud n(x) d un arbre x comme le nombre d occurrence des symboles de A. Montrer que pour tout x AB n(x) 2f (x) 1 Induction et Calcul propositionnel 13 / 31

Induction Définition non-ambiguë Définition La définition inductive d un ensemble X par les conditions (B) et (I) est dite non-ambiguë si pour tout x 1,..., x a(φ) X et Φ K, Φ(x 1,..., x a(φ) ) B, et pour tout x 1,..., x a(φ), x 1,..., x a(φ ) X et Φ, Φ K, Φ(x 1,..., x a(φ) ) = Φ (x 1,..., x a(φ ) ) implique Φ = Φ et x 1 = x 1,..., x a(φ) = x a(φ). Exercice : donner des exemples de définition non-ambiguë définition ambiguë Induction et Calcul propositionnel 14 / 31

Induction Fonctions définies inductivement Théorème Soit X E un ensemble défini inductivement par les conditions (B) et (I) tel que X est non-ambiguë, soit F un ensemble quelconque, soit f B une fonction de B F et une famille de fonctions f Φ E 2a(Φ) F, pour tout Φ K. Il existe une unique fonction f X F telle que pour tout x B, f (x) = f B (x) pour tout x 1,..., x a(φ) X et Φ K, f (Φ(x 1,..., x a(φ) )) = f Φ (x 1,..., x a(φ), f (x 1 ),..., f (x a(φ) )) Induction et Calcul propositionnel 15 / 31

Induction Fonctions définies par induction Caml/Coq En Caml let rec length : list int = function Nil 0 Cons (x,l) 1 + length l En Coq Fixpoint length (l: list) : nat := match l with Nil 0 Cons x q 1 + length q end. Induction et Calcul propositionnel 16 / 31

Calcul propositionnel

Calcul propositionnel Logique : motivations Mathématiques comprendre la nature du raisonnement formaliser le raisonnement : en faire une théorie mathématique, s assurer la cohérence. mécaniser le raisonnement 1 Informatique : faire raisonner les machines intelligence artificielle vérification des programmes 1 Voir fin du cours pour les (més)aventures de Hilbert et Gödel. Induction et Calcul propositionnel 18 / 31

Calcul propositionnel Le calcul propositionnel Objectifs Formaliser et, ou, implique, non,.. Noyau minimal commun à tous les systèmes logiques Les ingrédients d un système logique (ou système formel) Qu est-ce qu une formule? (syntaxe) Quel sens donner à une formule? (sémantique) Comment démontrer qu une formule est vraie? (systèmes de déduction) Attention à ne pas confondre les formules (syntaxe) et leurs interprétations (sémantique)! Induction et Calcul propositionnel 19 / 31

Calcul propositionnel Syntaxe Syntaxe V un ensemble dénombrable de symboles, appelés variables propositionnelles. C ensemble fini de connecteurs : C = {,,,, } Définition (Formules propositionnelles) L ensemble F des formules propositionnelles est un langage sur V C {(, )} défini inductivement par : V F si F F, alors F F si F, G F, alors (F G), (F G), (F G), (F G) F Induction et Calcul propositionnel 20 / 31

Calcul propositionnel Syntaxe Définition explicite On pose F 0 = V, F n+1 = F n { F F F n } {(F α G) F, G F n, α C} Lemme F = n N F n Induction et Calcul propositionnel 21 / 31

Calcul propositionnel Syntaxe Principe d induction sur les formules Comment prouver une propriété sur les formules? par récurrence sur la hauteur par induction sur les formules Théorème Si une propriété P(F) vérifie P(F) est vraie pour tout formule F V, si P(F) est vraie pour F F alors P( F) est vraie, et si P(F) et P(G) sont vraies pour F, G F alors P((F G)), P((F G)), P((F G)) et P((F G)) sont vraies, alors P(F) vraie pour toute formule F. Induction et Calcul propositionnel 22 / 31

Calcul propositionnel Syntaxe Hauteur d une formule Définition (hauteur) La hauteur d une formule F F est le plus petit entier n tel que F F n. Exercice : Démontrer que pour tout formule F, hauteur(f) < longueur(f) Induction et Calcul propositionnel 23 / 31

Calcul propositionnel Syntaxe Décomposition unique Théorème (Décomposition unique) Soit F une formule, un et un seul des 3 cas suivants se présente : F V il existe une unique formule G telle que F = G il existe un unique α C \ { }, et deux uniques formules G et H telles que F = (G α H) (cf TD ou Cori&Lascar) Remarque : En d autres termes, la définition inductive de F est non-ambiguë. Induction et Calcul propositionnel 24 / 31

Calcul propositionnel Syntaxe Substitution Définition (Substitution) La formule F[G/p] (substitution de G à p dans F) est définie par induction sur la formule F : si F = p, F[G/p] = G si F = q V \ {p}, F[G/p] = F si F = H, F[G/p] = H[G/p] si F = (F 1 α F 2 ) avec α {,,, }, F[G/p] = (F 1 [G/p] α F 2 [G/p]) Induction et Calcul propositionnel 25 / 31

Valuation Calcul propositionnel Sémantique Nous interprétons maintenant les formules en termes de valeur de vérité. Définition Une distribution de valeurs de vérité (valuation) est une application ϕ : V {vrai,faux} (où {0, 1}, {T, F}). Induction et Calcul propositionnel 26 / 31

Calcul propositionnel Opérations booléennes Sémantique : {0, 1} {0, 1} x (x) 0 1 1 0 α : {0, 1} {0, 1} {0, 1}, α C \ { } x y (x, y) (x, y) (x, y) (x, y) 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 Induction et Calcul propositionnel 27 / 31

Calcul propositionnel Sémantique Valeur de vérité Définition La valeur de vérité ϕ(f) d une formule F, par rapport à une valuation ϕ est définie inductivement par : ϕ(p) = ϕ(p), p V ϕ( F) = (ϕ(f)) ϕ((fαg)) = α (ϕ(f), ϕ(g)), α C \ { } Remarque : ϕ sera éventuellement noté ϕ. Induction et Calcul propositionnel 28 / 31

Calcul propositionnel Sémantique Tautologies, formules équivalentes Définition Une formule F est satisfaite pour une valuation ϕ si ϕ(f) = 1. Une tautologie est une formule satisfaite pour toute valuation. Deux formules F et G sont dites équivalentes si pour toute valuation ϕ, ϕ(f) = ϕ(g) (c est une relation d équivalence notée ). Exemple : ((p (q r)) ((p q) (p r))) est une tautologie. Induction et Calcul propositionnel 29 / 31

Calcul propositionnel Sémantique Conséquence, satisfiabilité Définition Soit Σ un ensemble de formules, F une formule. F est conséquence de Σ (noté Σ = F) si toute valuation qui satisfait toutes les formules de Σ satisfait aussi F. Σ est satisfiable s il existe une valuation qui satisfait toutes les formules de Σ. Proposition Σ = F si et seulement si Σ { F} est non satisfiable. Induction et Calcul propositionnel 30 / 31

Plan Calcul propositionnel Sémantique 1 Induction 2 Calcul propositionnel Syntaxe Sémantique Induction et Calcul propositionnel 31 / 31