(* similar remark apply here… *)

(*****************************************************************************)
(*                                                                           *)
(*              Every function number is within the bounds                   *)
(*                                                                           *)
(*****************************************************************************)
(* first and last do save the monad state (before and after) *)
Lemma BC_to_TRS_state_bounds bc st:
let (st',trs) := BC_to_TRS bc st in
st+1 = trs.(first) ∧ trs.(last) = st'.