(*									*)
(*  first et second renvoient repsectivement le premier et le deuxieme 	*)
(*  element d'un couple.						*)
(*									*)
  
Definition first (x : Elt) : Elt :=
  match x return Elt with
  | natural n =>
      (* natural *)  zero
      (* couple  *) 
  | couple a b => a
      (* up      *) 
  | up e => zero
      (* word    *) 
  | word w => zero
  end.Definition second (x : Elt) : Elt :=
  match x return Elt with
  | natural n =>
      (* natural *)  zero
      (* couple  *) 
  | couple a b => b
      (* up      *) 
  | up e => zero
      (* word    *) 
  | word w => zero
  end.

Lemma couple_couple_inv1 : forall a b c d : Elt, couple a c = couple b d :>Elt -> a = b :>Elt.