Notation bpow e := (bpow beta e).(** To be a good fexp *)

Class Valid_exp :=
  valid_exp :
  forall k : Z,
  ( (fexp k < k)%Z -> (fexp (k + 1) <= k)%Z ) /\
  ( (k <= fexp k)%Z ->
    (fexp (fexp k + 1) <= fexp k)%Z /\
    forall l : Z, (l <= fexp k)%Z -> fexp l = fexp k ).(** To be a good fexp *)

Class Valid_exp :=
  valid_exp :
  forall k : Z,
  ( (fexp k < k)%Z -> (fexp (k + 1) <= k)%Z ) /\
  ( (k <= fexp k)%Z ->
    (fexp (fexp k + 1) <= fexp k)%Z /\
    forall l : Z, (l <= fexp k)%Z -> fexp l = fexp k ).

(* Specifications: *)
Theorem valid_exp_large : forall k l, (fexp k < k)%Z -> (k <= l)%Z -> (fexp l < l)%Z.
Theorem valid_exp_large' : forall k l, (fexp k < k)%Z -> (l <= k)%Z -> (fexp l < k)%Z.
Theorem valid_exp_large : forall k l, (fexp k < k)%Z -> (k <= l)%Z -> (fexp l < l)%Z.
Theorem valid_exp_large' : forall k l, (fexp k < k)%Z -> (l <= k)%Z -> (fexp l < k)%Z.