Minimize.A
A
is the automaton that must be minimized.
include DFA with type label := Label.t
The type states
is a type-level representation of the number of states of the automaton. Thus, a state number has type states index
. See Indexing
for more information about type-level indices.
val states : states Indexing.cardinal
states
is the number of states of the automaton.
type state = states Indexing.index
A state number is an integer in the range [0, cardinal states)
.
The type transitions
is a type-level representation of the number of transitions of the automaton. Thus, a transition number has type transitions index
. See Indexing
for more information about type-level indices.
val transitions : transitions Indexing.cardinal
transitions
is the number of transitions of the automaton.
type transition = transitions Indexing.index
A transition number is an integer in the range [0, cardinal transitions)
.
val label : transition -> Label.t
label t
returns the label of the transition t
.
val source : transition -> state
source t
returns the source state of the transition t
.
val target : transition -> state
target t
returns the target state of the transition t
.
If debug
is true then the algorithm checks that the automaton is deterministic, that is, no two transitions have the same source state and label.
groups
is a possibly empty enumeration of groups, where a group is a possibly empty set of states. The minimization algorithm must respect every group in this enumeration. That is, for each group, two states can be regarded as equivalent only if they both lie outside this group or both lie inside this group.