Definition pre_domok_incr_chain_def (A : Set) (p : prechain A) :=
  forall (T : mEnsemble A) (r : mRelation A),
  prechain_dom_ok A T p /\ prechain_incr A r p -> chain A T r p.

(* Specifications: *)
Lemma pre_domok_incr_chain_0 : forall (A : Set) (m : Map A), pre_domok_incr_chain_def A (single A m).
Lemma pre_domok_incr_chain_1 : forall (A : Set) (p : prechain A), pre_domok_incr_chain_def A p -> forall m : Map A, pre_domok_incr_chain_def A (concat A p m).
Lemma pre_domok_incr_chain_2 : forall (A : Set) (p : prechain A), pre_domok_incr_chain_def A p.
Lemma pre_domok_incr_chain : forall (A : Set) (p : prechain A) (T : mEnsemble A) (r : mRelation A), prechain_dom_ok A T p /\ prechain_incr A r p -> chain A T r p.