let mk_decl_axiomatized_auotmata () =
  let (_,trans_l) = getAutomata() in
  let param=(Cil_const.make_logic_var "tr" Lintegerin
  let logic=mk_global_logic transStart (*[]*) [param] (Some Linteger(*[]*) (*[TSSingleton(TSLval(TSVar(param),TSNo_offset))]*) in
  let tr_start_log_info = Data_for_ltl.get_logic transStart in
  let annotlist=List.fold_left
    (fun res tr ->
       (mk_global_axiom
          (transStart^(string_of_int tr.numt))
          (Prel(Req,
                mk_dummy_term
                  (Tapp(tr_start_log_info,[],[mk_int_term tr.numt]))
                  Cil.intType,
                mk_int_term tr.start.nums))
       )::res
    )
    [logic]
    trans_l in
  globals_queue:=(GAnnot(Daxiomatic(transStart,List.rev annotlist),
                  Cilutil.locUnknown
                 ))::(!globals_queue);


  let logic=mk_global_logic transStop  (*[]*) [param] (Some Linteger(*[]*) (*[TSSingleton(TSLval(TSVar(param),TSNo_offset))]*) in
  let tr_stop_log_info = Data_for_ltl.get_logic transStop in
  let annotlist=List.fold_left
    (fun res tr ->
       (mk_global_axiom
         (transStop^(string_of_int tr.numt))
         (Prel(Req,
               mk_dummy_term
                 (Tapp(tr_stop_log_info,[],[mk_int_term tr.numt]))
                 Cil.intType,
               mk_int_term tr.stop.nums))
       )::res
    )
    [logic]
    trans_l in

  globals_queue:=(GAnnot(Daxiomatic(transStop,List.rev annotlist),
                         Cilutil.locUnknown
                        ))::(!globals_queue);






  let num= Cil_const.make_logic_var "_buch_numTrans" Linteger in
  let op = Cil_const.make_logic_var "_buch_op" Linteger in
  let st = Cil_const.make_logic_var "_buch_status" Linteger in
  let pred =
    mk_conjunction
      (List.map
         (fun tr ->
            Pimplies(
              unamed (Prel(Req, mk_term_from_logic_var num, mk_int_term tr.numt)),
              unamed (crosscond_to_pred tr.cross op st)
            )
         )
         trans_l
      )
  in
  mk_global_predicate transCondP ["L"] [num;op;st] pred;

  let pred2 =
    Papp(
      Data_for_ltl.get_predicate transCondP,
      [(LogicLabel("L"),LogicLabel("L"))],
      [mk_term_from_logic_var num;
       mk_term_from_logic_var (Cil.cvar_to_lvar (Data_for_ltl.get_varinfo curOp));
       mk_term_from_logic_var (Cil.cvar_to_lvar (Data_for_ltl.get_varinfo curOpStatus))
      ]
    )
  in
  mk_global_predicate transCond ["L"] [num] pred2