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)).