Definition dist_compl_def_1 (A : Set) (p : prechain A) : Prop :=
dist_compl_def_0 A p -> forall m : Map A, dist_compl_def_0 A (concat A p m).

(* Specifications: *)
Lemma dist_compl_1 :
forall (A : Set) (m : Map A), dist_compl_def_1 A (single A m).
Lemma dist_compl_2 :
forall (A : Set) (p : prechain A),
dist_compl_def_1 A p -> forall m : Map A, dist_compl_def_1 A (concat A p m).
Lemma dist_compl_3 :
forall (A : Set) (p : prechain A),
dist_compl_def_0 A p -> forall m : Map A, dist_compl_def_0 A (concat A p m).
Lemma dist_compl_4 :
forall (A : Set) (p : prechain A), dist_chain A p \/ non_dist_chain A p.
Lemma dist_compl_5 :
forall (A : Set) (x : Map A), ~ dist_chain A (concat A (single A x) x).
Lemma dist_compl_6 :
forall (A : Set) (x : Map A) (z : prechain A),
~ dist_chain A (concat A (concat A z x) x).
Lemma dist_compl_7 :
forall (A : Set) (x y : Map A) (z : prechain A),
non_dist_chain A (concat A z x) ->
~ dist_chain A (concat A z x) -> ~ dist_chain A (concat A (concat A z x) y).
Lemma dist_compl_8 :
forall (A : Set) (p : prechain A), non_dist_chain A p -> ~ dist_chain A p.
Lemma dist_compl :
forall (A : Set) (p : prechain A), ~ dist_chain A p <-> non_dist_chain A p.