sig
  type anotations = Nts_functor.Make(Param).anotations
  type control = Nts_functor.Make(Param).control = Nts_State of Param.t
  type transitions_container = Nts_functor.Make(Param).transitions_container
  type states_container = Nts_functor.Make(Param).states_container
  type inv_relation_container =
      Nts_functor.Make(Param).inv_relation_container
  val fold_states_containers :
    Expand_eldarica_compressed_bloc.Make.NFParam.states_container ->
    ('-> Expand_eldarica_compressed_bloc.Make.NFParam.control -> 'a) ->
    '-> 'a
  val fold_transitions_container :
    Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container ->
    ('->
     Expand_eldarica_compressed_bloc.Make.NFParam.control ->
     Nts_types.nts_trans_label list ->
     Expand_eldarica_compressed_bloc.Make.NFParam.control -> 'a) ->
    '-> 'a
  val add_transition_to_container :
    Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control ->
    Nts_types.nts_trans_label list ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control -> unit
  val iter_transitions_container :
    Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container ->
    (Expand_eldarica_compressed_bloc.Make.NFParam.control ->
     Nts_types.nts_trans_label list ->
     Expand_eldarica_compressed_bloc.Make.NFParam.control -> unit) ->
    unit
  val iter_state_container :
    Expand_eldarica_compressed_bloc.Make.NFParam.states_container ->
    (Expand_eldarica_compressed_bloc.Make.NFParam.control -> unit) -> unit
  val is_state_in_inv_relation :
    Expand_eldarica_compressed_bloc.Make.NFParam.inv_relation_container ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control -> bool
  val is_state_in_transition_container :
    Expand_eldarica_compressed_bloc.Make.NFParam.control ->
    Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container ->
    bool
  type nts_automaton =
    Nts_functor.Make(Param).nts_automaton = {
    mutable nts_automata_name : string;
    mutable anot : Expand_eldarica_compressed_bloc.Make.NFParam.anotations;
    init_states :
      Expand_eldarica_compressed_bloc.Make.NFParam.states_container;
    final_states :
      Expand_eldarica_compressed_bloc.Make.NFParam.states_container;
    error_states :
      Expand_eldarica_compressed_bloc.Make.NFParam.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 :
      Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container;
  }
  type nts_system =
    Nts_functor.Make(Param).nts_system = {
    nts_system_name : string;
    nts_global_vars : Nts_types.nts_genrel_var list;
    nts_automata :
      (string, Expand_eldarica_compressed_bloc.Make.NFParam.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(Param).num_subrel_in_cautomaton = {
    subrel_root : Expand_eldarica_compressed_bloc.Make.NFParam.control;
    sub_vertices :
      Expand_eldarica_compressed_bloc.Make.NFParam.states_container;
    sub_transitions :
      Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container;
  }
  val is_state_in_cautomaton :
    Expand_eldarica_compressed_bloc.Make.NFParam.control ->
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton -> bool
  val pprint_control :
    Expand_eldarica_compressed_bloc.Make.NFParam.control -> string
  val anot_parser :
    unit -> Expand_eldarica_compressed_bloc.Make.NFParam.anotations
  val states_container_of_states_list :
    Expand_eldarica_compressed_bloc.Make.NFParam.control list ->
    Expand_eldarica_compressed_bloc.Make.NFParam.states_container
  val transitions_container_of_trans_list :
    (Expand_eldarica_compressed_bloc.Make.NFParam.control *
     Expand_eldarica_compressed_bloc.Make.NFParam.control *
     Nts_types.nts_trans_label list)
    list ->
    Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container
  val control_of_id_param :
    Param.t -> Expand_eldarica_compressed_bloc.Make.NFParam.control
  val out_degree_of_control_state :
    Expand_eldarica_compressed_bloc.Make.NFParam.control ->
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton -> int
  val get_varinfo_by_optname :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_system ->
    string option -> string -> Nts_types.nts_genrel_var option
  val get_varinfo_by_optcautomaton :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_system ->
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton option ->
    string -> Nts_types.nts_genrel_var option
  val is_error_state :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control -> bool
  val is_initial_state :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control -> bool
  val is_final_state :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control -> bool
  val get_transition_from :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control ->
    Nts_types.nts_trans_label list list option
  val get_successor_of :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control ->
    Expand_eldarica_compressed_bloc.Make.NFParam.states_container
  val get_one_state :
    Expand_eldarica_compressed_bloc.Make.NFParam.states_container ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control option
  val is_successor_of :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control -> bool
  val get_one_transition :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control *
    Nts_types.nts_trans_label list
  val pprint_inputvars :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton -> string
  val pprint_outputvars :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton -> string
  val pprint_localvars :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton -> string
  val nt_system_var_cleaner :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_system ->
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_system
  val nt_system_uncalled_subsystem_cleaner :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_system ->
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_system
  val pprint_to_nts :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton -> string
  val pprint_nts :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_system -> string
  val get_cautomaton_by_name :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_system ->
    string -> Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton
  val pprint_transitions :
    string ->
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton -> string
  val compute_pred_relation :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
    Expand_eldarica_compressed_bloc.Make.NFParam.inv_relation_container
  val subgraph_between :
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control ->
    Expand_eldarica_compressed_bloc.Make.NFParam.control ->
    Expand_eldarica_compressed_bloc.Make.NFParam.num_subrel_in_cautomaton
  val pprint_subgraph_transitions :
    Expand_eldarica_compressed_bloc.Make.NFParam.num_subrel_in_cautomaton ->
    string
  val cautomaton_of_subrelation_cautomaton :
    string ->
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
    Expand_eldarica_compressed_bloc.Make.NFParam.num_subrel_in_cautomaton ->
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton
  val cautomaton_of_transitions_container :
    string ->
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
    Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container ->
    Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton
end