Axiom
  cut2_cons :
    forall (A : Elt) (v : Word), dans A X -> cut2 (cons A v) = cut2 v.

(* Specifications: *)
Lemma cut2_cons_N : forall (A : Elt) (v : Word), ~ dans A X -> cut2 (cons A v) = cons A v.
Lemma Deriveg_imp_Deriveg_cut : forall x y : Word, Deriveg X R x y -> ex2 (fun w : Word => Append (cut1 x) w = y) (fun w : Word => Deriveg X R (cut2 x) w).
Lemma Deriveg_imp_Deriveg_App : forall x y : Word, Deriveg X R x y -> forall u v : Word, Append u v = x -> inmonoid X u -> ex2 (fun w : Word => Append u w = y) (fun w : Word => Deriveg X R v w).
Lemma Derivegstar_imp_Der_inmon : forall x y : Word, Derivegstar X R x y -> forall u v : Word, Append u v = x -> inmonoid X u -> ex2 (fun w : Word => Append u w = y) (fun w : Word => Derivegstar X R v w).