Locate "<->".
Print iff.
Print iff.
L'équivalence logique est notée en coq ↔.
Une preuve de P ↔ Q est à la fois une preuve de P → Q et une preuve de
Q → R. Les tactiques destruct (pour utiliser une équivalence) et
split (pour prouver une équivalence) s'appliquent de la même manière que
pour la conjonction.
Theorem iff_sym : ∀ P Q : Prop, P ↔ Q → Q ↔ P.
Proof.
(* Soient P et Q deux propositions quelconques. *)
intros P Q.
(* On suppose (H) : P <-> Q. *)
intros H.
(* De (H) on déduit :
(HPQ) : P -> Q
(HQP) : Q -> P *)
destruct H as [HPQ HQP].
(* Pour prouver P <-> Q, il suffit de prouver P -> Q et Q -> P. *)
split.
- (* Preuve de P -> Q : *)
assumption.
- (* Preuve de Q -> P : *)
assumption.
Qed.
Theorem iff_refl : ∀ P : Prop, P ↔ P.
Proof.
(* Remplir la preuve ici *)
Admitted. (* Remplacer cette ligne par Qed. *)
Theorem iff_trans : ∀ P Q R : Prop, (P ↔ Q) → (Q ↔ R) → (P ↔ R).
Proof.
(* Remplir la preuve ici *)
Admitted. (* Remplacer cette ligne par Qed. *)
Lois de de Morgan
Les "lois" de de Morgan sont un résultat très connu (et très utile !) de logique classique. Que se passe-t-il en logique intuitionniste ?Exercice : Prouver le théorème suivant.
Theorem de_morgan_not_or : ∀ P Q : Prop, ~(P ∨ Q) ↔ (¬ P) ∧ (¬ Q).
Proof.
(* Remplir la preuve ici *)
Admitted. (* Remplacer cette ligne par Qed. *)
Theorem de_morgan_not_or_not : ∀ P Q : Prop, (¬ P) ∨ (¬ Q) → ¬ (P ∧ Q).
Proof.
(* Remplir la preuve ici *)
Admitted. (* Remplacer cette ligne par Qed. *)
Remarquez qu'on ne vous a demandé qu'une seule implication dans l'exercice
précédent...
C'est parce que l'autre n'est tout simplement pas prouvable en logique
intuitionniste.
En essayant de prouver le théorème suivant, se convaincre que ce n'est pas possible.
Exercice :
Theorem de_morgan_not_and : ∀ P Q : Prop, ¬ (P ∧ Q) → (¬ P) ∨ (¬ Q).
Proof.
(* Essayez d'aller le plus loin possible dans la preuve. *)
Abort.
Proof.
(* Essayez d'aller le plus loin possible dans la preuve. *)
Abort.
Logique intuitionniste et logique classique
- pas de preuve par l'absurde
- pas de raisonnement par contraposition
Attention ! Un axiome n'est pas un théorème ! En ajoutant un axiome on prend
le risque (énorme) que tout s'écroule !
Un théorème difficile montre que si coq est correct (c'est-à-dire ne permet
pas de prouver quelque chose de faux), alors (coq + tiers-exclus) est aussi
correct. On peut donc, si on le souhaite ajouter l'axiome du tiers-exclus.
Avec cet axiome, on peut prouver, par exemple, que le raisonnement par
l'absurde est correct.
Theorem NNPP : ∀ P : Prop, ¬ ¬ P → P.
Proof.
(* Soit P une proposition quelconque. *)
intros P. unfold not.
(* On suppose (hyp. (H)) que P est non contradictoire. *)
intros H.
(* Par le principe du tiers-exclus appliqué à P, on a
(HP) : P
ou
(HnP) : ~ P *)
destruct (excluded_middle P) as [HP | HnP].
- (* cas 1 : (HP) *)
assumption.
- (* cas 2 : (HnP) *)
(* On va ici utiliser le principe d'explosion : ce cas est contradictoire. *)
exfalso.
unfold not in HnP.
apply H.
assumption.
Qed.
Remarquer destruct (excluded_middle P) as [HP | HnP].. Ici,
excluded_middle est un axiome qui prend une proposition en argument et
(excluded_middle P) est une preuve de (P ∨ ¬P). Avec destruct, on
peut donc la détruire et faire une preuve par cas.
Exercice :
En utilisant le tiers-exclus ou l'une de ses conséquences, prouver le théorème suivant :Theorem de_morgan_not_and : ∀ P Q : Prop, ¬ (P ∧ Q) → (¬ P) ∨ (¬ Q).
Proof.
(* Remplir la preuve ici *)
Admitted. (* Remplacer cette ligne par Qed. *)
Remarque :
- les trois autres lois de de Morgan sont prouvables en logique intuitionniste.
- celle-ci ne l'est pas, on a absolument besoin du tiers exclu.
Theorem classical_imp : ∀ P Q : Prop, (P → Q) ↔ (Q ∨ ¬ P).
Proof.
(* Remplir la preuve ici *)
Admitted. (* Remplacer cette ligne par Qed. *)
Theorem Peirce_law : ∀ P Q : Prop, ((P → Q) → P) → P.
Proof.
(* Remplir la preuve ici *)
Admitted. (* Remplacer cette ligne par Qed. *)
Remarque :
Pour terminer cette partie sur la logique classique.
Il y a bien des théorème qu'on peut démontrer en logique classique et pas en
logique intuitionniste. Ceci dit, une preuve dite "constructive",
c'est-à-dire en logique intuitionniste, lorsqu'elle est possible, apporte
toujours plus d'informations qu'une preuve non constructive. Les preuves par
l'absurde peuvent très souvent (même dans les preuves de mathématiciens
professionnels) être remplacées par des preuves plus simples et plus
parlantes. Dans vos études de mathématiques, vous devriez éviter de vous
jeter dessus.
- les trois autres lois de de Morgan sont prouvables en logique intuitionniste.
- celle-ci ne l'est pas, on a absolument besoin du tiers exclu.