let pre_post_to_term  (st_status, _tr_status) =
  if Aorai_option.Deterministic.get () then begin
    let pp_to_term status var f =
      let (authorized,_) =
        Array.fold_left
          (fun (auth,i) b ->
            if b then
              Logic_const.por(auth,prel(Req,var (), f i)),i+1
            else
              auth,i+1)
          (pfalse,0)
          status
      in authorized
    in
(*    let tr =
      pp_to_term tr_status trans_term mk_trans_cst in
*)

    let st = pp_to_term st_status state_term int2enumstate in
    st
  end else begin
    let pp_to_term an_array array_term func =
      let (authorized,_) =
        Array.fold_left
          (fun (au_pred,i) b ->
            if b then
              begin
                (Logic_const.por(au_pred,prel(Req, one_term(),
                                              (func array_term i))),
                 i+1
                )
              end
            else
              (au_pred,i+1)
          )
          (pfalse,0)
          an_array
      in
      authorized
    in
(*    let tr = pp_to_term tr_status (host_trans_term ())  mk_offseted_array in
 *)

    let st =
      pp_to_term st_status (host_state_term ())
        mk_offseted_array_states_as_enum
    in
    st (* @ tr *)
  end