(* croissance de predta_coacc *)

Definition lemd (d : preDTA) : mRelation bool :=
  fun m0 m1 : Map bool =>
  ensemble_base state d m0 /\ ensemble_base state d m1 /\ lem m0 m1.

(* Specifications: *)
Lemma lemd_reflexive : forall (d : preDTA) (m : Map bool), ensemble_base state d m -> lemd d m m.
Lemma lemd_antisymmetric : forall (d : preDTA) (m0 m1 : Map bool), lemd d m0 m1 -> lemd d m1 m0 -> m0 = m1.
Lemma lemd_transitive : forall (d : preDTA) (m0 m1 m2 : Map bool), lemd d m0 m1 -> lemd d m1 m2 -> lemd d m0 m2.
Lemma map_or_inc_ld : forall (d : preDTA) (m m0 m1 : Map bool), ensemble_base state d m -> lemd d m0 m1 -> lemd d (map_or m0 m) (map_or m1 m).
Lemma map_or_inc_rd : forall (d : preDTA) (m m0 m1 : Map bool), ensemble_base state d m -> lemd d m0 m1 -> lemd d (map_or m m0) (map_or m m1).
Lemma map_or_inc_d : forall (d : preDTA) (m0 m1 m2 m3 : Map bool), lemd d m0 m1 -> lemd d m2 m3 -> lemd d (map_or m0 m2) (map_or m1 m3).
Lemma predta_coacc_0_incr : forall (d d' : preDTA) (m0 m1 : Map bool), lemd d' m0 m1 -> lemd d (predta_coacc_0 d d' m0) (predta_coacc_0 d d' m1).
Lemma map_replace_inc : forall (m0 m1 : Map bool) (a : ad) (b : bool), lem m0 m1 -> lem (map_replace bool m0 a b) (map_replace bool m1 a b).
Lemma map_replace_inc_d : forall (d : preDTA) (m0 m1 : Map bool) (a : ad) (b : bool), lemd d m0 m1 -> lemd d (map_replace bool m0 a b) (map_replace bool m1 a b).
Lemma predta_coacc_increasing : forall (d : preDTA) (a : ad), increasing_app bool (lemd d) (predta_coacc d a).