let force_condition_to_predicate global_inv restricted_inv =
  let pred_l = ref [] in
  let treat global restric array_term=
    Array.iteri
      (fun index value ->
         if (not value) && global.(index) then
           begin
             let n_pred = Prel(Req,(mk_offseted_array array_term index),zero_term())in
             pred_l:= n_pred::!pred_l
           end
      )
      restric
  in
  treat (fst global_inv) (fst restricted_inv) (host_state_term ());
  treat (snd global_inv) (snd restricted_inv) (host_trans_term ());
  if !pred_l<>[] then
    mk_conjunction (List.rev !pred_l)
  else
    Ptrue