sig
type state
type letter
module StateSet : Set.S
module Alphabet : Set.S
module StateToTransitionMap : Map.S
module TransitionMap : Map.S
type dfa = {
mutable dfa_states : StateSet.t;
mutable dfa_alphabet : Alphabet.t;
mutable dfa_start_state : StateSet.elt option;
mutable dfa_final_states : StateSet.t;
mutable dfa_transitions :
StateSet.elt TransitionMap.t StateToTransitionMap.t;
}
val dfa_empty : Dfa.DFA.dfa
val fresh_dfa_empty : unit -> Dfa.DFA.dfa
val get_dfa_alphabet : Dfa.DFA.dfa -> Alphabet.t
val add_letter : Dfa.DFA.dfa -> Alphabet.elt -> unit
val add_all_letters : Dfa.DFA.dfa -> Alphabet.t -> unit
val get_dfa_states : Dfa.DFA.dfa -> StateSet.t
val get_dfa_start_state : Dfa.DFA.dfa -> StateSet.elt
val get_dfa_final_states : Dfa.DFA.dfa -> StateSet.t
val add_state : Dfa.DFA.dfa -> StateSet.elt -> unit
val set_start_state : Dfa.DFA.dfa -> StateSet.elt -> unit
val set_final_states : Dfa.DFA.dfa -> StateSet.t -> unit
val add_final_state : Dfa.DFA.dfa -> StateSet.elt -> unit
val get_dfa_transitions :
Dfa.DFA.dfa -> StateSet.elt TransitionMap.t StateToTransitionMap.t
val get_TransitionMap :
Dfa.DFA.dfa -> StateToTransitionMap.key -> StateSet.elt TransitionMap.t
val get_destStateSet :
StateSet.elt TransitionMap.t -> TransitionMap.key -> StateSet.t
val get_destStateSet_s :
Dfa.DFA.dfa ->
StateToTransitionMap.key -> TransitionMap.key -> StateSet.t
val add_transitions_aux :
Dfa.DFA.dfa ->
StateToTransitionMap.key -> Alphabet.elt * StateSet.elt -> unit
val add_transitions :
Dfa.DFA.dfa -> StateSet.elt -> (Alphabet.elt * StateSet.elt) list -> unit
val print_automata :
Dfa.DFA.dfa -> (Alphabet.elt -> unit) -> (StateSet.elt -> unit) -> unit
end