let mk_invariant_2_2_1 () =
  mk_global_comment "//* Inv 2.1 : Not crossable transitions (cond = false) are not crossed over";
  let tmp_tr = Cil_const.make_logic_var "_buch_tr" Cil_types.Linteger in
  mk_global_invariant (
    Pforall(
      [tmp_tr],
      unamed (Pimplies (
        unamed (Pand (
          (* 0 <= tr <nbTrans *)
          unamed (mk_logicvar_intervalle tmp_tr 0 (getNumberOfTransitions ())),
          (* !transCond(tr) *)
          unamed (Pnot(unamed(Papp(get_predicate transCond,[],[mk_term_from_logic_var tmp_tr]))))
        )),
        (* curTrans[tr]==0 *)
        unamed(Prel(Req,mk_offseted_array_lval_from_lval (host_trans_term ()) tmp_tr , mk_int_term 0))
      ))
    )
  ) "_Buch_not_crossable_cond"