Inductive Deriveg (X R : Ensf) : Word -> Word -> Prop :=
  | Deriveg1 :
      forall (u v : Word) (A : Elt),
      dans (couple A (word u)) R -> Deriveg X R (cons A v) (Append u v)
  | Deriveg2 :
      forall (u v : Word) (x : Elt),
      dans x X -> Deriveg X R u v -> Deriveg X R (cons x u) (cons x v).Inductive Deriveg (X R : Ensf) : Word -> Word -> Prop :=
  | Deriveg1 :
      forall (u v : Word) (A : Elt),
      dans (couple A (word u)) R -> Deriveg X R (cons A v) (Append u v)
  | Deriveg2 :
      forall (u v : Word) (x : Elt),
      dans x X -> Deriveg X R u v -> Deriveg X R (cons x u) (cons x v).Inductive Deriveg (X R : Ensf) : Word -> Word -> Prop :=
  | Deriveg1 :
      forall (u v : Word) (A : Elt),
      dans (couple A (word u)) R -> Deriveg X R (cons A v) (Append u v)
  | Deriveg2 :
      forall (u v : Word) (x : Elt),
      dans x X -> Deriveg X R u v -> Deriveg X R (cons x u) (cons x v).Definition Derivegstar (X R : Ensf) := Rstar Word (Deriveg X R).

(* Specifications: *)
Lemma Deriveg_Derive : forall (X R : Ensf) (u v : Word), Deriveg X R u v -> Derive R u v.
Lemma Derivegstar_Derivestar : forall (X R : Ensf) (u v : Word), Derivegstar X R u v -> Derivestar R u v.