• Aucun résultat trouvé

la construction de preuves dans le développement de programmes sûrs et fiables[103].

1.3 Déduction naturelle

Dans cette section, nous décrivons le formalisme de déduction naturelle en nous focalisant essentiellement sur la description de certaines approches permettant de démontrer la correc-tion et la complétude que nous utilisons pour démontrer ces propriétés dans le cas de nos systèmes de déduction naturelle.

Le formalisme de déduction naturelle a été introduit par Gentzen [70, 71] en proposant des systèmes pour les logiques classique et intuitionniste. Dans son approche, Gentzen utilise des règles d’inférence ayant comme prémisses et conclusions des formules. Néanmoins, d’autres approches utilisent d’autres structures dans la définition des règles. Le système de déduction naturelle pour IPL que nous décrivons ici utilise la structure de séquent mono-conclusion (nat-ural deduction in sequent-style) [61, 121].

La principale spécificité de l’approche de Gentzen et également Prawitz [110], consiste en l’utilisation d’hypothèses (des formules), au départ ouvertes, qui peuvent être closes (déchargées) pendant le processus de la construction de la preuve. Plus précisément, un arbre de preuve est un arbre étiqueté par des formules dont les feuilles sont étiquetées par des hypothèses de sorte qu’un arbre ayant comme hypothèses ouvertes A1, . . . , Ak et comme étiquette de la racine C correspond à une preuve de C sous les hypothèses A1, . . . , Ak. Ainsi, l’utilisation des séquents n’est autre que le résultat de l’ajout d’un contexte contenant les hypothèses ouvertes à chaque étape de la construction de la preuve. Une preuve du séquent A1, . . . , Ak⊢ C dans un système fondé sur la structure de séquent correspond à une preuve de C ayant comme hypothèses ouvertes A1, . . . , Ak. Γ, A ⊢ A [id] Γ ⊢ ⊥ Γ ⊢ A [⊥i] Γ ⊢ A Γ ⊢ B Γ ⊢ A ∧ B [∧I] Γ ⊢ A ∧ B Γ ⊢ A [∧ 1 E] Γ ⊢ A ∧ B Γ ⊢ B [∧ 2 E] Γ ⊢ A Γ ⊢ A ∨ B [∨ 1 I] Γ ⊢ B Γ ⊢ A ∨ B [∨ 2 I] Γ ⊢ A ∨ B Γ, A ⊢ C Γ, B ⊢ C Γ ⊢ C [∨E] Γ, A ⊢ B Γ ⊢ A ⊃ B [⊃I] Γ ⊢ A ⊃ B Γ ⊢ A Γ ⊢ B [⊃E]

16 1. Déduction naturelle et calcul des séquents

1.3.1 Un système de déduction naturelle pour IPL

Un système de déduction naturelle est un système de preuve où à chaque opérateur, il n’est associé que des règles d’introduction et d’élimination. Considérons le système de déduction naturelle DNIPL pour IPL décrit en figure 1.1. Dans ce dernier, les règles dont les noms sont de la forme [RE] sont des règles d’élimination et celles dont les noms sont de la forme [RI] sont celles d’introduction. Le fait que chaque opérateur possède des règles d’élimination et d’introduction reflète le principe de symétrie qui caractérise la déduction naturelle : pour tout opérateur logique, il existe des règles permettant de l’introduire et d’autres permettant de l’éliminer.

Commentons maintenant quelques règles du système DNIPL. Nous précisons que les rè-gles se lisent de haut en bas. La règle [⊥i] exprime le fait que si des hypothèses impliquent l’absurde (⊥), alors elles impliquent toute autre formule. La règle [⊃I] exprime le fait que si des hypothèses avec la formule A permettent d’obtenir la formule B, alors ces hypothèses impliquent la formule A ⊃ B. Elle est considérée comme une règle introduisant l’implication car la formule B dans sa prémisse est substituée par A ⊃ B dans sa conclusion. Quant à la règle [⊃E], elle est similaire à celle de modus ponens et elle indique que si des hypothèses impliquent les deux formules A et A ⊃ B, alors elles impliquent forcément B.

Illustrons l’utilisation du système DNIPLpar une preuve du séquent (A ∨ B) ⊃ C ⊢ A ⊃ C :

[id] A, (A ∨ B) ⊃ C ⊢ (A ∨ B) ⊃ C [id] A, (A ∨ B) ⊃ C ⊢ A [∨1 I] A, (A ∨ B) ⊃ C ⊢ A ∨ B [⊃E] A, (A ∨ B) ⊃ C ⊢ C [⊃I] (A ∨ B) ⊃ C ⊢ A ⊃ C 1.3.2 Correction et complétude

Un des procédés permettant de démontrer la correction de DNIPL repose sur l’utilisation la sémantique de Kripke de la logique IPL. L’idée consiste à démontrer que pour chaque règle de DNIPL, si sa conclusion a un contre-modèle dans cette sémantique, alors au moins une de ses prémisses en a également un. Si nous considérons la contraposée, alors démontrer la précédente propriété est équivalent à démontrer que pour chaque règle de DNIPL, si chacune de ses prémisses est valide dans tout modèle, alors sa conclusion est aussi valide dans tout modèle. Ainsi, la correction de la sémantique de Kripke implique que si les prémisses sont valides dans IPL alors la conclusion l’est aussi.

En guise d’exemple, nous démontrons la correction de la règle [∨E]. Soit M = (W, 6, V ) un contre-modèle de Γ ⊢ C. Cela indique qu’il existe w ∈ W tel que w V Γ et w 2 C. Si on a w 2 A ∨ B, alors M est un contre-modèle de Γ ⊢ A ∨ B qui est une des prémisses de [∨E]. Sinon, on a w  A ou w  B, ce qui signifie que M est un contre-modèle soit de Γ, A ⊢ C (w  A), soit de Γ, B ⊢ C (w  B). Nous venons de démontrer que si la conclusion de [∨E] a un contre-modèle, alors au moins une de ses prémisses a aussi un contre-modèle.

En ce qui concerne la complétude de DNIPL, nous pouvons la démontrer en considérant la validité dans IPL à travers son système à la Hilbert HIPLdécrit dans la section 1.1. La première

1.3 Déduction naturelle 17 étape de la démonstration de la complétude consiste à montrer que pour chaque axiome A de HIPL, le séquent ⊢A a une preuve dans DNIPL. Nous ne démontrons ici cette propriété que pour une partie des axiomes :

[id] A ⊢ A [∨1 I] A ⊢ A ∨ B [⊃I] ⊢A ⊃ (A ∨ B) [id] A ∧ B ⊢ A ∧ B [∧1 E] A ∧ B ⊢ A [⊃I] ⊢(A ∧ B) ⊃ A [id] ⊥ ⊢ ⊥ [⊥i] ⊥ ⊢ A [⊃I] ⊢⊥ ⊃ A [id] A, B ⊢ A [⊃I] A ⊢ B ⊃ A [⊃I] ⊢A ⊃ (B ⊃ A)

En utilisant la règle [⊃E], nous savons que si les deux séquents ⊢A ⊃ B et ⊢A ont des preuves dans DNIPL, alors ⊢B en a aussi une. Ainsi, nous déduisons que si A est valide dans IPL(a une preuve dans HIPL) alors le séquent ⊢A a une dans DNIPL. Le fait que toute formule valide a une preuve n’implique pas nécessairement que tout séquent valide a une preuve. Démontrons maintenant les deux propriétés suivantes :

1. si Γ ⊢ A ⊃ B a une preuve dans DNIPL, alors Γ, A ⊢ B en a aussi une ; et 2. si Γ, A ∧ B ⊢ C a une preuve dans DNIPL, alors Γ, A, B ⊢ C en a aussi une.

Propriété (1). Nous pouvons aisément démontrer que si Γ⊢A⊃B a une preuve, alors Γ, A⊢A⊃B en a aussi une. En effet, il suffit d’ajouter A à tous les contextes des séquents dans une preuve quelconque de Γ ⊢ A ⊃ B pour avoir une preuve de Γ, A ⊢ A ⊃ B. Une preuve de Γ, A ⊢ B est obtenue à partir d’une preuve quelconque D de Γ, A ⊢ A ⊃ B de la manière suivante :

D

Γ, A ⊢ A ⊃ B Γ, A ⊢ A [id] [⊃E] Γ, A ⊢ B

Propriété (2). Nous supposons que Γ, A∧B⊢C a une preuve dans DNIPL. Alors Γ, A∧B, A, B⊢ C a aussi une preuve dans DNIPL. En utilisant une preuve quelconque D de Γ, A∧B, A, B ⊢C, une preuve de Γ, A, B ⊢ C est obtenue de la manière suivante :

D Γ, A ∧ B, A, B ⊢ C [⊃I] Γ, A, B ⊢ (A ∧ B) ⊃ C [id] Γ, A, B ⊢ A Γ, A, B ⊢ B [id] [∧I] Γ, A, B ⊢ A ∧ B [⊃E] Γ, A, B ⊢ C

Soit Γ ⊢ C un séquent valide dans IPL. Alors V Γ ⊃ C est une formule valide dans IPL et par conséquent le séquent ⊢V Γ ⊃ C a une preuve dans DNIPL. En utilisant la propriété (1), nous obtenons queV Γ ⊢ C a aussi une preuve dans DNIPL. Ensuite, en utilisant la propriété (2), nous déduisons que Γ ⊢ C a une preuve dans DNIPL. Donc nous pouvons conclure que DNIPLest un système complet pour IPL.

La démonstration de correction que nous avons décrite est sémantique car elle est obtenue à partir de la correction de la sémantique de Kripke pour IPL. Quant à celle de la complétude, elle est syntaxique car elle consiste simplement à générer syntaxiquement une preuve dans DNIPL à partir de toute preuve dans HIPL. En réalité, il est aussi possible de démontrer la correction syntaxiquement en suivant le chemin inverse de celui de la complétude. Plus exactement, on démontre qu’il est possible de générer syntaxiquement une preuve dans HIPL

18 1. Déduction naturelle et calcul des séquents à partir de toute preuve dans DNIPL. En outre, la complétude peut également être démontrée sémantiquement par génération de contre-modèles [88] : démontrer que tout séquent qui n’a pas de preuve dans DNIPL a un contre-modèle dans la sémantique de Kripke.

1.3.3 Normalisation

La normalisation est une des propriétés les plus importantes que peut vérifier un système de déduction naturelle. Elle vise principalement à éliminer les détours dans une dérivation. Un détour correspond à une introduction d’un opérateur dans l’unique but de l’éliminer tout de suite après. En fait, démontrer la normalisation consiste à proposer une procédure transformant toute preuve en une preuve sans détours en un temps fini. Dans le cas de DNIPL, la preuve de normalisation est obtenue par simple adaptation aux séquents [61] de la preuve de Prawits [110] pour son système de IPL. En guise d’exemple, les détours associés à l’opérateur ∧ sont éliminés de la manière suivante :

D1 Γ ⊢ A1 D2 Γ ⊢ A2 [∧I] Γ ⊢ A1∧ A2 [∧i E] Γ ⊢ Ai ; Di Γ ⊢ Ai pour i ∈ {1, 2}.

Dans le cas de DNIPL, la normalisation a comme conséquence importante la propriété de la sous-formule.

Un système de preuve SP pour une logique L vérifie la propriété de la sous-formule si la validité de S dans L implique que S a une preuve dans SP où toutes les formules dans cette preuve sont des sous-formules des formules de S.

En plus du fait que cette propriété permet de démontrer la consistance, elle permet également de démontrer la très importante propriété de la séparation.

Un système de preuve SP pour une logique L vérifie la propriété de la séparation si la validité de S dans L implique que S a une preuve dans SP où les règles utilisées sont uniquement celles associées aux opérateurs dans S.

Si nous considérons, par exemple, le fragment implicationnel (les formules qui ne contiennent que ⊃ comme opérateur), alors pour construire des preuves dans ce fragment nous n’avons besoin que de [id], [⊥i], [⊃I] et [⊃E].

1.3.4 Déduction naturelle et logique classique

Un système de déduction naturelle pour le fragment propositionnel de la logique classique CPL, appelé DNCPL, est obtenu par le remplacement dans DNIPLde la règle [⊥i] par la règle suivante :

Γ, ¬A ⊢ ⊥ Γ ⊢ A [⊥c]

Nous rappelons que ¬A = A ⊃ ⊥. Il est à noter que la règle [⊥c] est une généralisation de celle de [⊥i]. En effet, si on a une preuve de Γ ⊢ ⊥, alors on a nécessairement une preuve de Γ, ¬A ⊢ ⊥. Par conséquent, en utilisant la prouvabilité de Γ ⊢ ⊥ dans DNCPL, on obtient celle de Γ ⊢ A.

Puisque toute formule valide dans IPL est forcément valide dans CPL, toutes les règles communes à DNCPL et DNIPL sont correctes pour CPL. Ainsi, pour démontrer la correction

1.4 Calcul des séquents 19