let mk_invariant_1_2 () =
  mk_global_comment "//* Inv 1 : Crossable transitions are 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 (mk_conjunction
                  [
                    (* 0 <= tr <nbTrans *)
                    mk_logicvar_intervalle tmp_tr 0 (getNumberOfTransitions ());

                    (* curStatesOld[transStart(tr)]!=0 *)
                    Prel(Rneq,mk_offseted_array_lval_from_term (host_stateOld_term()) (mk_logic_call transStart [tmp_tr]), mk_int_term 0);

                    (* transCond(tr) *)
                    Papp(get_predicate transCond,[],[mk_term_from_logic_var tmp_tr])
                  ]
               ),

        (* curTrans[tr]!=0 *)
        unamed(Prel(Rneq,mk_offseted_array_lval_from_lval (host_trans_term ()) tmp_tr , mk_int_term 0))
    )))
  )) "_Buch_crossable"