let pre_post_to_term_neg  (st_status, _) =
  if Aorai_option.Deterministic.get () then begin
    let pp_to_term status var f =
      let (forbidden,_) =
        Array.fold_left
          (fun (auth,i) b ->
            if not b then
              Logic_const.por(auth,prel(Req,var (), f i)),i+1
            else
              auth,i+1)
          (pfalse,0)
          status
      in forbidden
    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 (forbidden,_) =
        Array.fold_left
          (fun (au_pred,i) b ->
            if b then
              begin
                (Logic_const.pand(au_pred,prel(Req, zero_term(),
                                              (func array_term i))),
                 i+1
                )
              end
            else
              (au_pred,i+1)
          )
          (ptrue,0)
          an_array
      in
      forbidden
    in
    let st =
      pp_to_term st_status (host_state_term ())
        mk_offseted_array_states_as_enum
    in
    st
  end