let mk_invariant_4_2 () =
mk_global_comment "//* Inv 4 : Each not reachable state is not reached";
let tmp_st = Cil_const.make_logic_var "_buch_st" Cil_types.Linteger in
let tmp_tr = Cil_const.make_logic_var "_buch_tr" Cil_types.Linteger in
mk_global_invariant (
Pforall(
[tmp_st],
unamed (Pimplies (
unamed (Pand (
unamed (
mk_logicvar_intervalle tmp_st 0 (getNumberOfStates ())
),
unamed (Pforall([tmp_tr],
unamed (Pimplies (
unamed (
mk_logicvar_intervalle tmp_tr 0 (getNumberOfTransitions ())
),
unamed (
mk_disjunction
[
Prel(Req,mk_offseted_array_lval_from_lval (host_trans_term ()) tmp_tr , mk_int_term 0) ;
Prel(Rneq,(mk_logic_call transStop [tmp_tr]), mk_term_from_logic_var tmp_st)
]
)
))
))
)),
unamed (
Prel(Req,mk_offseted_array_lval_from_lval (host_state_term()) (tmp_st), mk_int_term 0)
)
))
)
) "_Buch_not_reachable"