automaton.is_functional
Whether the automaton is functional, i.e. each input (string) is transduced to a unique output (string). There may be multiple paths, however, that contain this input and output string pair.
Precondition:
The automaton is transducer
Examples
Simple Cases
This transducer is functional, as can also be seen from its series (computed thanks to automaton.shortest): it uniquely maps ab
to xy
.
However, the following transducer is not functional, as it maps ab
to both xy
and xz
, again, as demonstrated by shortest
.
A More Complex Example
The following example (Figure 3 from beal.2003.tcs) shows a transducer whose input automaton is ambiguous, yet the transduder is functional.
This transducer is functional:
If we focus on the "input automaton", in other words, on the tape 0 of this transducer, we can see that it is ambigous.