(* démonstration de la propriété de hauteur de chaine bornée dans le treillis *)
Definition lattice_bounded_def_0 (p : prechain bool) : Prop :=
forall (A : Set) (m0 m1 : Map A),
sas_chain bool (ensemble_base A (M2 A m0 m1)) lem p ->
exists p0 : prechain bool,
(exists p1 : prechain bool,
sas_chain bool (ensemble_base A m0) lem p0 /\
sas_chain bool (ensemble_base A m1) lem p1 /\
lem (M2 bool (prechain_last bool p0) (prechain_last bool p1))
(prechain_last bool p) /\
chain_length bool p0 + chain_length bool p1 = S (chain_length bool p)).

(* Specifications: *)
Lemma lattice_bounded_0 :
forall m : Map bool, lattice_bounded_def_0 (single bool m).