let mk_invariant_5 () =
mk_global_comment "//* Inv 5 : Each crossable transition is crossed";
let tmp_tr = Cil_const.make_logic_var "_buch_tr" Cil_types.Linteger in
mk_global_invariant (
Pforall(
[tmp_tr],
unamed (Pimplies (
unamed (mk_conjunction
[
mk_logicvar_intervalle tmp_tr 0 (getNumberOfTransitions ());
Prel(Rneq,mk_offseted_array_lval_from_term (host_stateOld_term()) (mk_logic_call transStart [tmp_tr]), mk_int_term 0);
Papp(get_predicate transCond,[],[mk_term_from_logic_var tmp_tr])
]
),
unamed (mk_conjunction
[
Prel(Rneq,mk_offseted_array_lval_from_lval (host_trans_term ()) tmp_tr , mk_int_term 0) ;
Prel(Rneq,mk_offseted_array_lval_from_term (host_state_term()) (mk_logic_call transStop [tmp_tr]), mk_int_term 0)
]
)
))
)
) "_Buch_tr_cross_2"