Section Be_iter1.
Variable bef : bool_expr -> bool_expr.
Hypothesis bef_inc : be_to_be_inc bef.
Hypothesis
bef_ok :
forall be : bool_expr,
be_ok (var_lu 0 N) be -> be_ok (var_lu 0 N) (bef be).
Fixpoint be_iter1 (be : bool_expr) (n : nat) {struct n} : bool_expr :=
match n with
| O => be
| S m => be_iter1 (bef be) m
end.
Fixpoint be_iter2 (be : bool_expr) (n : nat) {struct n} : bool_expr :=
match n with
| O => be
| S m => bef (be_iter2 be m)
end.

Lemma be_iter1_fix_ex :
forall be : bool_expr,
be_ok (var_lu 0 N) be ->
be_le be (bef be) ->
exists m : nat,
m <= two_power N /\ be_eq (be_iter1 be m) (be_iter1 be (S m)).