Systèmes formels de preuve en logique du premier ordre : exemples II 0. Résumé des épisodes précédents Systèmes à la Frege-Hilbert Déduction Naturelle Calcul des Séquents Aujourd’hui : recherche de démonstrations dans le calcul des séquents sans coupures — Résolution I. La recherche de démonstrations dans le calcul des séquents sans coupures Les règles logiques à droites Γ ` >, ∆ >-droite Γ ` A, ∆ Γ ` B, ∆ ∧-droite Γ ` A ∧ B, ∆ Γ ` A, B, ∆ ∨-droite Γ ` A ∨ B, ∆ Γ, A ` B, ∆ ⇒-droite Γ ` A ⇒ B, ∆ Γ, A ` ∆ ¬-droite Γ ` ¬A, ∆ Γ ` A, ∆ ∀-droite Γ ` ∀x A, ∆ Γ ` (t/x)A, ∆ ∃-droite Γ ` ∃x A, ∆ x 6∈ VL(Γ∆) Les règles logiques à gauches Γ, ⊥ ` ∆ ⊥-gauche Γ, A, B ` ∆ ∧-gauche Γ, A ∧ B ` ∆ Γ, A ` ∆ Γ, B ` ∆ ∨-gauche Γ, A ∨ B ` ∆ Γ ` A, ∆ Γ, B ` ∆ ⇒-gauche Γ, A ⇒ B ` ∆ Γ ` A, ∆ ¬-gauche Γ, ¬A ` ∆ Γ, (t/x)A ` ∆ ∀-gauche Γ, ∀x A ` ∆ Γ, A ` ∆ ∃-gauche Γ, ∃x A ` ∆ x 6∈ VL(Γ∆) Axiome, contraction, coupure Γ, A ` A, ∆ axiome Γ, A, A ` ∆ contraction-gauche Γ, A ` ∆ Γ ` A, A, ∆ contraction-droite Γ ` A, ∆ Γ ` A, ∆ Γ, A ` ∆ coupure Γ`∆ Quels choix ? Plus besoin d’énumérer toutes les propositions possibles Mais ... il reste quelques choix à faire 1. Le choix du séquent ? ? P, Q ` P P, Q ` Q ∧-droite P, Q ` P ∧ Q 2. Le choix de la proposition P ∧Q `Q ∨R 3. Le choix de la règle : logique, contraction (ou axiome) 4. Le choix du terme Γ, (t/x)A ` B ∀-gauche Γ, ∀x A ` B Les labyrinthes et les œufs mimosa Choix arborescent Ou bien A ou ou bien B : on choisit A, si A échoue on choisit B (cas général) Choix indiffèrent Ou bien A ou bien B : peu importe que l’on choisisse A ou B, le résultat sera le même (séquentialisation de tâches indépendantes) 1. Le choix du séquent 2. Le choix de la proposition ∀x P(x), ∀x Q(x) ` ∀x (P(x) ∧ Q(x)) 3. Le choix de la règle : ` ∃x (¬P(x) ∨ P(S(x))) 4. Le choix du terme ∀x P(x) ` P(4) Choix finis et infinis Choix de la proposition : fini Choix de la règle : fini Choix du terme : infini Éviter le choix du terme axiome ? ∃-droite P(f (f (c))) ` ∃x P(f (x)) essayer c, f (c), f (f (c)), ... Quel terme choisir ? Comment l’a-t-on deviné ? Essayons plutôt de retarder le choix de ce terme axiome P(f (f (c))) ` P(f (X )) ∃-droite P(f (f (c))) ` ∃x P(f (x)) Essayons plutôt de retarder le choix de ce terme axiome P(f (f (c))) ` P(f (X )) ∃-droite P(f (f (c))) ` ∃x P(f (x)) Schéma de démonstration : I ∃-droite et ∀-gauche limités à une (méta)-variable I la règle axiome permet de démontrer n’importe quel séquent Dans un second temps axiome P(f (f (c))) ` P(f (X )) ∃-droite P(f (f (c))) ` ∃x P(f (x)) Chercher une substitution de X qui parfait ce schéma de démonstration (c’est-à-dire le transforme en démonstration) En comparant P(f (f (c))) et P(f (X )) Parfaire un schéma de démonstration Dans chaque séquent démontré par la (pseudo) règle axiome On choisit une proposition atomique à gauche et à droite Et on cherche une substitution qui rend tous ces couples identiques : l’algorithme d’unification (puis on vérifie les conditions x n’apparaît pas dans Γ∆) L’algorithme d’unification : un exemple Les solutions du problème P(f (X )) = P(f (f (c))) sont les mêmes que celles du problème f (X ) = f (f (c)) qui sont les mêmes que celles du problème X = f (c) et ce problème a une solution qui est la substitution f (c)/X . L’algorithme d’unification Une leçon entière σ mgu : toute solution de la forme η ◦ σ Exercice Démontrer la propriété de la sous-formule Toutes les propositions dans une démonstration sans coupure de A sont des sous-formules de A I S(>) = {>} I S(⊥) = {⊥} I S(A ∧ B) = {A ∧ B} ∪ S(A) ∪ S(B) I S(A ∨ B) = {A ∨ B} ∪ S(A) ∪ S(B) I S(A ⇒ B) = {A ⇒ B} ∪ S(A) ∪ S(B) I S(¬A) = {¬A} ∪ S(A) I S(∀x A) = {∀x A} ∪ {(t/x)A | t ∈ T } I S(∃x A) = {∃x A} ∪ {(t/x)A | t ∈ T } II. Le théorème de Herbrand La (non) commutation des règles du calcul des séquents ... ` ¬P(0) ∨ P(S(0)), ¬P(S(0)) ∨ P(S(S(0))) ` ¬P(0) ∨ P(S(0)), ∃x (¬P(x) ∨ P(S(x))) ` ∃x (¬P(x) ∨ P(S(x))), ∃x (¬P(x) ∨ P(S(x))) ` ∃x (¬P(x) ∨ P(S(x))) Impossible de commuter les règles contraction-droite et ∃-droite Mais commutation dans l’autre sens (contraction vers le bas, ∃-droite vers le haut) Les séquents de la forme ` ∃A A sans quantificateurs Alors une démonstration sans coupures en trois phases : 1. des règles contraction-droite 2. des règles ∃-droite 3. des règles propositionnelles Corollaire (Théorème de Herbrand) Si ∃x A démontrable alors il existe θ1 , ..., θn , telles que θ1 A1 ∨ ... ∨ θn An démontrable (sans quantificateur) Corollaire (mais précurseur) du théorème d’élimination des coupures À gauche Si ∀x A incohérent alors il existe θ1 , ..., θn , telles que θ1 A1 ∧ ... ∧ θn An incohérent III. La Résolution Clauses et formes clausales Littéral : proposition atomique ou négation proposition atomique Clause : disjonction de littéraux Exemple : ¬P(x) ∨ P(S(x)) Quantification universelle implicite 0 littéral : ⊥ Disjonction implicitement AC1 (multiensembles) Toute proposition peut être mise en forme clausale Transformer un ensemble de propositions Γ en un ensemble de clauses Γ0 (les clôtures universelles de) Γ0 cohérent (satisfiable) si et seulement si (les clôtures universelles de) Γ cohérent (satisfiable) Γ, C ∨ (A ∧ B) Γ, C ∨ (A ⇒ B) Γ, C ∨ > Γ, C ∨ ⊥ Γ, C ∨ ∀x A Γ, C ∨ ∃x A −→ −→ −→ −→ −→ −→ Γ, C Γ, C Γ Γ, C Γ, C Γ, C ∨ A, C ∨ B ∨ ¬A ∨ B Γ, C ∨ ¬(A ∧ B) Γ, C ∨ ¬(A ∨ B) Γ, C ∨ ¬(A ⇒ B) Γ, C ∨ ¬> Γ, C ∨ ¬⊥ Γ, C ∨ ¬∀x A Γ, C ∨ ¬∃x A Γ, C ∨ ¬¬ A −→ −→ −→ −→ −→ −→ −→ −→ Γ, C Γ, C Γ, C Γ, C Γ Γ, C Γ, C Γ, C ∨ ¬A ∨ ¬B ∨ ¬A, C ∨ ¬B ∨ A, C ∨ ¬B ∨ A (∗) ∨ (f (y1 , . . . , yn )/x)A (∗∗) ∨ ¬(f (y1 , . . . , yn )/x)A (∗∗) ∨ ¬A (∗) ∨A (*) x 6∈ VL(C ) (**) f pas dans l’ensemble et {y1 , ..., yn } = VL(A) La Résolution Démontrer Γ ` A Démontrer Γ, ¬A ` C1 , ..., Cn : forme clausale de Γ, ¬A Recherche d’une contradiction (clause vide) à partir de C1 , ..., Cn avec P ∨ C ¬Q ∨ C 0 σ = mgu(P, Q) Résolution σ(C ∨ C 0 ) L ∨ L0 ∨ C σ = mgu(L, L0 ) Factorisation σ(L ∨ C ) Un exemple P(0), ∀x (P(x) ⇒ P(S(x)) ` P(S(S(0))) ¬P(x) ∨ P(S(x)) P(0) ¬P(S(S(0))) P(0) ¬P(x) ∨ P(S(x)) P(S(0)) ¬P(x) ∨ P(S(x)) P(S(S(0))) ¬P(S(S(0))) ⊥ La nécessité de la règle Factorisation P ∨P ¬P ∨ ¬P P ∨P P ¬P ∨ ¬P ¬P ⊥ Mais la règle Résolution ne donne que des clauses à deux littéraux La redondance P(0) ¬P(x) ∨ P(S(x)) P(S(0)) ¬P(x) ∨ P(S(x)) P(S(S(0))) ¬P(S(S(0))) ⊥ ¬P(S(S(0))) ¬P(x) ∨ P(S(x)) ¬P(S(0)) ¬P(x) ∨ P(S(x)) ¬P(0) P(0) ⊥ La correction de la Résolution Au choix : Si D dérivable à partir de C1 , ..., Cn , alors ∀C1 , ..., ∀Cn ` ∀D démontrable en calcul des séquents Si D dérivable à partir de C1 , ..., Cn , alors ∀C1 , ..., ∀Cn ` ∀D valide dans tous les modèles Une même démonstration Par récurrence sur la structure de la dérivation Γ = ∀C1 , ..., ∀Cn Si Γ ` ∀(P ∨ C ) et Γ ` ∀(¬Q ∨ C 0 ) démontrables en calcul des séquents (resp. valide dans tous les modèles) et σ = mgu(P, Q), alors ∀(σ(C ∨ C 0 )) aussi Repose sur deux lemmes triviaux (∀A) ⇒ (∀σA) ((A ∨ B) ∧ (¬A ∨ B 0 )) ⇒ (B ∨ B 0 ) démontrables en calcul des séquents (resp. valide dans tous les modèles) Idem pour la règle Factorisation (A ∨ A ∨ B) ⇒ (A ∨ B) démontrable en calcul des séquents (resp. valide dans tous les modèles) Donc Si ⊥ dérivable à partir de C1 , ..., Cn , alors ∀C1 , ..., ∀Cn ` démontrable en calcul des séquents (resp. valide dans tous les modèles) Si C1 , ..., Cn forme clausale de Γ, ¬A, alors (correction de la mise en forme clausale) Γ, ¬A ` démontrable en calcul des séquents (resp. valide dans tous les modèles) donc Γ ` A aussi IV. La complétude de la Résolution Si ∀C1 , ..., ∀Cn ` démontrable en calcul des séquents (resp. valide dans tous les modèles), alors ⊥ dérivable à partir de C1 , ..., Cn Deux types de méthodes (deux écoles) Si ∀C1 , ..., ∀Cn ` démontrable en calcul des séquents, alors ⊥ dérivable à partir de C1 , ..., Cn Si ∀C1 , ..., ∀Cn ` valide dans tous les modèles, alors ⊥ dérivable à partir de C1 , ..., Cn Hélas : les deux méthodes sont utiles (généralisations de la Résolution) Dans les deux cas : un même système intermédiaire (R0 ) P ∨ C ¬P ∨ C 0 Résolution identique C ∨ C0 L∨L∨C Factorisation identique L∨C C Substitution (t/x)C Et un lemme de relèvement Si ⊥ dérivable à partir de C dans R0 , alors ⊥ dérivable à partir de C dans R De manière plus générale : si C 0 copies (renommage) de clauses de C, et θ substitution tels que ⊥ dérivable à partir de θC 0 dans R0 , alors ⊥ dérivable à partir de C dans R Récurrence sur la dérivation dans R0 Substitution : on copie la clause et ajoute (t/x) à θ Résolution identique (ou Factorisation identique) : on a θP = θQ donc P = Q unifiable : mgu σ, θ = η ◦ σ, on continue avec η Complétude et complétude Démontrer la complétude de R0 suffit pour démontrer celle de R Si ∀C1 , ..., ∀Cn ` démontrable en calcul des séquents (resp. valide dans tous les modèles), alors ⊥ dérivable à partir de C1 , ..., Cn dans R0 (complétude de R0 ) et ⊥ dérivable à partir de C1 , ..., Cn dans R (relèvement) On oublie R et on se concentre sur R0 Dans les deux cas : un même lemme clé C ensemble de clauses, C1 et C2 clauses closes Si ⊥ est dérivable à partir de C, C1 dans R0 alors ⊥ ou C2 est dérivable à partir de C, C1 ∨ C2 dans R0 Si ⊥ est dérivable à partir de C, C1 dans R0 et ⊥ est dérivable à partir de C, C2 dans R0 alors ⊥ est dérivable à partir de C, C1 ∨ C2 La méthode syntaxique Si ∀C1 , ..., ∀Cn ` démontrable en calcul des séquents, alors ⊥ dérivable à partir de C1 , ..., Cn Plus généralement : si ∀C1 , ..., ∀Cn ` P1 , ..., Pm démontrable en calcul des séquents, alors ⊥ dérivable à partir de C1 , ..., Cn , ¬P1 , ..., ¬Pm Par récurrence sur la structure d’une preuve close et sans coupures de ∀C1 , ..., ∀Cn ` P1 , ..., Pm Six règles possibles Contraction-gauche, contraction-droite, ¬-gauche, axiome, ∀-gauche, ∨-gauche Trois cas triviaux Contraction-gauche, contraction-droite, ¬-gauche, Même ensemble de clauses Hypothèse de récurrence Et trois cas intéressants I axiome : (∀Ci ) = Pj , Résolution identique entre Ci et ¬Pj I ∀-gauche, l’un des Ci remplacée par (t/x)Ci Hypothèse de récurrence ⊥ dérivable à partir de C1 , ..., (t/x)Ci , ..., Cn , ¬P1 , ..., ¬Pm (t/x)Ci est dérivable à partir de Ci (règle Substitution) ⊥ dérivable à partir de C1 , ..., Ci , ..., Cn , ¬P1 , ..., ¬Pm I ∨-gauche, l’un des Ci disjonction D ∨ D 0 de clauses closes Hypothèse de récurrence ⊥ dérivable à partir de C1 , ..., D, ..., Cn , ¬P1 , ..., ¬Pm ⊥ dérivable à partir de C1 , ..., D 0 , ..., Cn , ¬P1 , ..., ¬Pm Lemme clé ⊥ dérivable à partir de C1 , ..., Ci , ..., Cn , ¬P1 , ..., ¬Pm La méthode sémantique Si ∀C1 , ..., ∀Cn ` valide dans tous les modèles, alors ⊥ dérivable à partir de C1 , ..., Cn Inspiration : preuve de complétude de Gödel de la déduction naturelle (ou du calcul des séquents) : si A valide dans tous les modèles, alors A démontrable Les différentes formes du théorème de complétude de Gödel Troisième forme : Si C est cohérent (⊥ non dérivable à partir de C), alors C a un modèle Corollaire : ∀C1 , ..., ∀Cn ` valide dans tous les modèles, alors ∀C1 , ..., ∀Cn n’a pas de modèle, donc ⊥ dérivable à partir de C1 , ..., Cn Comme dans la démonstration du théorème de complétude de Gödel On commence par saturer la théorie C : Plus simple, pas de ∃ à droite, pas de témoins de Henkin (merci la Skolémisation) Plus délicat : règles plus faibles Au lieu de trois cas : C démontre A, C démontre ¬A, ou ni l’un ni l’autre Une autre formulation : ajouter P ou ajouter ¬P (P atomique close) à un ensemble de clauses préserve la cohérence La préservation de la cohérence Si C cohérent, alors C, P cohérent ou C, ¬P cohérent Contraposée : si ⊥ dérivable à partir de C, P et ⊥ dérivable à partir de C, ¬P, alors ⊥ dérivable à partir de C Lemme clé : ⊥ dérivable à partir de C, P ∨ ¬P puis élimination de la clause inutile P ∨ ¬P La saturation de la théorie Énumération des propositions atomiques closes P0 , P1 , ... U0 = C, cohérent On suppose Un cohérent Un , Pn cohérent ou Un , ¬Pn cohérent Un+1 = Un , Pn ou Un , ¬Pn , cohérent S U = i Ui cohérent Pour chaque proposition atomique close P, P ∈ U ou ¬P ∈ U La construction du modèle Rien de nouveau Domaine : termes clos fˆ trivial P̂ fonction qui à t1 , ..., tn associe 0 ou 1 selon que ¬P(t1 , ..., tn ) ou P(t1 , ..., tn ) appartient à U M modèle de C C = L1 ∨ ... ∨ Ln clause de C ρ valuation qui associe un terme clos à chaque variable de C (aussi une substitution) JL1 ∨ ... ∨ Ln Kρ = 1 ⊥ a une dérivation à partir de ρC , ¬ρL1 , ..., ¬ρLn donc (U cohérent) ¬ρL1 , ..., ¬ρLn pas tous dans U ρLi dans U, JLi Kρ = 1 JL1 ∨ ... ∨ Ln Kρ = 1 Donc Si ⊥ non dérivable à partir de C, alors C a un modèle Si ∀C1 , ..., ∀Cn ` valide dans tous les modèles, alors ⊥ dérivable à partir de C1 , ..., Cn Variations sur la démonstration Arbre sémantique : une fois les propositions atomiques closes énumérées P0 , P1 , P2 ... un arbre infini P0 F V P1 F P1 V F V P2 P2 P2 P2 ... ... ... ... Saturation : choix d’un enfant à chaque nœud Modèle : branche infinie Arbres et dérivations Contraposée : si C n’a pas de modèle, alors ⊥ est dérivable a partir de C P0 F V P1 F P1 V F V P2 P2 P2 P2 ... ... ... ... Pas de modèle, pas de branche infinie : à chaque feuille : une clause à partir de laquelle on peut dériver ⊥ avec l’aide de (¬)P0 , ..., (¬)Pn On remonte des feuilles à la racine en éliminant un littéral clos à chaque étape La Résolution est correcte et complète De nombreuses méthodes Qui reviennent au même (démontrabilité = validité dans tous les modèles) Mais qui se généralisent plus ou moins bien (ce qui explique leur existence) Conclusion Quatre (familles de) systèmes de preuve : à la Frege-Hilbert, Déduction naturelle, Calcul des séquents, Résolution Une tension entre quatre objectifs : I la simplicité (Frege-Hilbert, préféré des théoriciens des modèles) I la proximité avec le raisonnement informel (Déduction naturelle, préféré des philosophes) I l’utilité pour démontrer des propriétés du raisonnement (Calcul des séquents, préféré des théoriciens de la démonstration) I la facilité de l’automatisation (Calcul des séquents, Résolution, préférés des informaticiens) La prochaine fois Théories et modèles en logique du premier ordre. Exemples. Et... Deux développements