simple induction b; auto.
Qed. Hint Resolve bool_to_nat_all.
(* Lemma bool_to_nat_negb : (b:bool) (bool_to_nat (negb b))=(minus (S O) (bool_to_nat b)). Induction b;Auto. Qed. Hints Resolve bool_to_nat_negb. *)
(****************************************************************)
(* Conditionnelle polymorphique: le test est un booleen,        *)
(* les clauses d'un type quelconque (le meme pour les 2 clauses *)
Definition If (T : Set) (b : bool) (x y : T) :=
match b with
| true => x
| false => y
end.

Lemma If_neg :
forall (T : Set) (b : bool) (x y : T), If T (negb b) x y = If T b y x.