let force_condition_to_predicate global_inv restricted_inv =
let pred_l = ref [] in
let mk_pred_det term index = prel(Rneq, term, mk_int_term index) in
let mk_pred_nondet base index =
prel(Req, mk_offseted_array base index, zero_term())
in
let treat global restric mk_pred=
Array.iteri
(fun index value ->
if (not value) && global.(index) then
begin
let n_pred = mk_pred index in
pred_l:= n_pred::!pred_l
end
)
restric
in
treat (fst global_inv) (fst restricted_inv)
(if Aorai_option.Deterministic.get() then mk_pred_det (state_term())
else mk_pred_nondet (host_state_term ()));
if !pred_l<>[] then
pands (List.rev !pred_l)
else
ptrue