sig
  type anotations = Nts_functor.Make(P).anotations
  type control = Nts_functor.Make(P).control = Nts_State of Ntsint.P.t
  type transitions_container = Nts_functor.Make(P).transitions_container
  type states_container = Nts_functor.Make(P).states_container
  type inv_relation_container = Nts_functor.Make(P).inv_relation_container
  val fold_states_containers :
    Ntsint.Nts_int.states_container ->
    ('-> Ntsint.Nts_int.control -> 'a) -> '-> 'a
  val fold_transitions_container :
    Ntsint.Nts_int.transitions_container ->
    ('->
     Ntsint.Nts_int.control ->
     Nts_types.nts_trans_label list -> Ntsint.Nts_int.control -> 'a) ->
    '-> 'a
  val add_transition_to_container :
    Ntsint.Nts_int.transitions_container ->
    Ntsint.Nts_int.control ->
    Nts_types.nts_trans_label list -> Ntsint.Nts_int.control -> unit
  val iter_transitions_container :
    Ntsint.Nts_int.transitions_container ->
    (Ntsint.Nts_int.control ->
     Nts_types.nts_trans_label list -> Ntsint.Nts_int.control -> unit) ->
    unit
  val iter_state_container :
    Ntsint.Nts_int.states_container ->
    (Ntsint.Nts_int.control -> unit) -> unit
  val is_state_in_inv_relation :
    Ntsint.Nts_int.inv_relation_container -> Ntsint.Nts_int.control -> bool
  type nts_automaton =
    Nts_functor.Make(P).nts_automaton = {
    mutable nts_automata_name : string;
    mutable anot : Ntsint.Nts_int.anotations;
    init_states : Ntsint.Nts_int.states_container;
    final_states : Ntsint.Nts_int.states_container;
    error_states : Ntsint.Nts_int.states_container;
    input_vars : Nts_types.nts_genrel_var list;
    output_vars : Nts_types.nts_genrel_var list;
    local_vars : Nts_types.nts_genrel_var list;
    transitions : Ntsint.Nts_int.transitions_container;
  }
  type nts_system =
    Nts_functor.Make(P).nts_system = {
    nts_system_name : string;
    nts_global_vars : Nts_types.nts_genrel_var list;
    nts_automata : (string, Ntsint.Nts_int.nts_automaton) Hashtbl.t;
    nts_gvars_init : Nts_types.nts_gen_relation list option;
    nts_system_threads : (string * Big_int.big_int) list option;
  }
  type num_subrel_in_cautomaton =
    Nts_functor.Make(P).num_subrel_in_cautomaton = {
    subrel_root : Ntsint.Nts_int.control;
    sub_vertices : Ntsint.Nts_int.states_container;
    sub_transitions : Ntsint.Nts_int.transitions_container;
  }
  val pprint_control : Ntsint.Nts_int.control -> string
  val anot_parser : unit -> Ntsint.Nts_int.anotations
  val states_container_of_states_list :
    Ntsint.Nts_int.control list -> Ntsint.Nts_int.states_container
  val transitions_container_of_trans_list :
    (Ntsint.Nts_int.control * Ntsint.Nts_int.control *
     Nts_types.nts_trans_label list)
    list -> Ntsint.Nts_int.transitions_container
  val control_of_id_param : Ntsint.P.t -> Ntsint.Nts_int.control
  val out_degree_of_control_state :
    Ntsint.Nts_int.control -> Ntsint.Nts_int.nts_automaton -> int
  val get_varinfo_by_optname :
    Ntsint.Nts_int.nts_system ->
    string option -> string -> Nts_types.nts_genrel_var option
  val get_varinfo_by_optcautomaton :
    Ntsint.Nts_int.nts_system ->
    Ntsint.Nts_int.nts_automaton option ->
    string -> Nts_types.nts_genrel_var option
  val get_transition_from :
    Ntsint.Nts_int.nts_automaton ->
    Ntsint.Nts_int.control ->
    Ntsint.Nts_int.control -> Nts_types.nts_trans_label list list option
  val get_successor_of :
    Ntsint.Nts_int.nts_automaton ->
    Ntsint.Nts_int.control -> Ntsint.Nts_int.states_container
  val get_one_state :
    Ntsint.Nts_int.states_container -> Ntsint.Nts_int.control option
  val is_successor_of :
    Ntsint.Nts_int.nts_automaton ->
    Ntsint.Nts_int.control -> Ntsint.Nts_int.control -> bool
  val get_one_transition :
    Ntsint.Nts_int.nts_automaton ->
    Ntsint.Nts_int.control ->
    Ntsint.Nts_int.control * Nts_types.nts_trans_label list
  val pprint_inputvars : Ntsint.Nts_int.nts_automaton -> string
  val pprint_outputvars : Ntsint.Nts_int.nts_automaton -> string
  val pprint_localvars : Ntsint.Nts_int.nts_automaton -> string
  val nt_system_var_cleaner :
    Ntsint.Nts_int.nts_system -> Ntsint.Nts_int.nts_system
  val nt_system_uncalled_subsystem_cleaner :
    Ntsint.Nts_int.nts_system -> Ntsint.Nts_int.nts_system
  val pprint_to_nts : Ntsint.Nts_int.nts_automaton -> string
  val pprint_nts : Ntsint.Nts_int.nts_system -> string
  val get_cautomaton_by_name :
    Ntsint.Nts_int.nts_system -> string -> Ntsint.Nts_int.nts_automaton
  val pprint_transitions : string -> Ntsint.Nts_int.nts_automaton -> string
  val compute_pred_relation :
    Ntsint.Nts_int.nts_automaton -> Ntsint.Nts_int.inv_relation_container
  val subgraph_between :
    Ntsint.Nts_int.nts_automaton ->
    Ntsint.Nts_int.control ->
    Ntsint.Nts_int.control -> Ntsint.Nts_int.num_subrel_in_cautomaton
  val pprint_subgraph_transitions :
    Ntsint.Nts_int.num_subrel_in_cautomaton -> string
  val cautomaton_of_subrelation_cautomaton :
    string ->
    Ntsint.Nts_int.nts_automaton ->
    Ntsint.Nts_int.num_subrel_in_cautomaton -> Ntsint.Nts_int.nts_automaton
end