Definition Derive_inv (R : Ensf) (x y : Word) :=
  match x return Prop with
  | nil =>
      (* nil  *)  False
      (* cons *) 
  | cons A w =>
      ex2 (fun u : Word => dans (couple A (word u)) R)
        (fun u : Word =>
         ex2 (fun v : Word => cons A v = x :>Word)
           (fun v : Word => Append u v = y :>Word)) \/
      ex2 (fun v : Word => Derive R w v)
        (fun v : Word => cons A v = y :>Word)
  end.

Lemma Derive_inv1 : forall (R : Ensf) (u v : Word), Derive R u v -> Derive_inv R u v.