
x
Require Import Unicode.Utf8.
Set Keyed Unification. (* rewrite plus prévisible *)
Require PeanoNat.
Import PeanoNat.Nat.
Exercices supplémentaires sur les entiers naturels
- add_0_l : ∀ n : nat, 0 + n = n
- add_0_r : ∀ n : nat, n + 0 = n
- add_1_l : ∀ n : nat, 1 + n = S n
- add_1_r : ∀ n : nat, n + 1 = S n
- add_succ_l : ∀ n m : nat, S n + m = S (n + m)
- add_succ_r : ∀ n m : nat, n + S m = S (n + m)
- add_comm : ∀ n m : nat, n + m = m + n
- add_assoc : ∀ n m p : nat, n + (m + p) = (n + m) + p
- mul_0_l : ∀ n : nat, 0 × n = 0
- mul_0_r : ∀ n : nat, n × 0 = 0
- mul_1_l : ∀ n : nat, 1 × n = n
- mul_1_r : ∀ n : nat, n × 1 = n
- mul_succ_l : ∀ n m : nat, S n × m = n × m + m
- mul_succ_r : ∀ n m : nat, n × S m = n × m + n
- mul_comm : ∀ n m : nat, n × m = m × n
xxxxxxxxxx
Check mul_comm.
Exercice : Prouver le théorème suivant.
xxxxxxxxxx
Theorem mul_eq_0 : ∀ (n m : ), n * m = 0 n = 0 m = 0.
Proof.
(* Remplir la preuve ici *)
Admitted. (* Remplacer cette ligne par Qed. *)
xxxxxxxxxx
13
Theorem mul_add_distr_r : ∀ n m p : , (n + m) * p = n * p + m * p.
Proof.
(* Remplir la preuve ici *)
Admitted. (* Remplacer cette ligne par Qed. *)
Exercice : Prouver le théorème suivant, sans induction.
Utiliser rewrite et les théorèmes précédents.xxxxxxxxxx
17
Theorem mul_add_distr_l : ∀ n m p : , n * (m + p) = n * m + n * p.
Proof.
(* Remplir la preuve ici *)
Admitted. (* Remplacer cette ligne par Qed. *)
xxxxxxxxxx
21
Theorem mul_assoc : ∀ n m p : , (n * m) * p = n * (m * p).
Proof.
(* Remplir la preuve ici *)
Admitted. (* Remplacer cette ligne par Qed. *)