let print_automata_specification (states_l,trans_l) operations_l main_op fichier =
  let cout = open_out fichier in
    out_fmt:=formatter_of_out_channel cout ;

    fprintf !out_fmt "#ifndef _BUCHI_AUTOMATA_H_\n";
    fprintf !out_fmt "#define _BUCHI_AUTOMATA_H_\n\n";
    print_operations_constants (states_l,trans_l);
    print_operations_list operations_l ;
    print_automata (states_l,trans_l) ;
    print_ghosts_declaration main_op states_l;
    print_macros (states_l,trans_l);
    print_buch_synch ();
    fprintf !out_fmt "\n#endif /*_BUCHI_AUTOMATA_H_*/\n";

    close_out cout;
    out_fmt:=formatter_of_out_channel stdout