Definition fp (bef : bool_expr -> bool_expr) (be : bool_expr) :=
be_eq be (bef be).
Definition lfp_be (bef : bool_expr -> bool_expr) (be1 be : bool_expr) :=
fp bef be /\
be_le be1 be /\
(forall be' : bool_expr, fp bef be' -> be_le be1 be' -> be_le be be').
Definition lfp (bef : bool_expr -> bool_expr) (be : bool_expr) :=
fp bef be /\ (forall be' : bool_expr, fp bef be' -> be_le be be').

(* Specifications: *)
Lemma lt_mn_minus : forall n m : nat, m < n -> 0 < n - m.
Lemma le_minus_minus : forall m n : nat, n <= m -> n = m - (m - n).
Lemma minus_n_m_le_n : forall n m : nat, n - m <= n.
Lemma le_minus_le : forall p n m : nat, n <= m -> p - m <= p - n.
Section Nsec.