Section OTHER.
(* codage booleen en entier *)
Definition Int (b : bool) := if b then 1%Z else 0%Z.
(* axiome utilise frequement disant que l'egalite fonctionnelle est la meme que l'egalite denotationnelle, il est possible que cet axiome ne soit utilise que sur des ensembles finis sur lequel il pourrait etre demontre. Il est possible aussi que l'on puisse s'en passer mais il simplifie bien la vie *)
Axiom
funct_eq :
forall (E F : Set) (g h : E -> F), (forall e : E, g e = h e) -> g = h.
(* trivialite inclassable *)

Lemma in_not_in :
forall (E : Set) (a b : E) (l : list E), In a l -> ~ In b l -> a <> b.