Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
|
#include <AutomataLeftQuotientCartesianProduct.h>
Static Public Member Functions | |
template<class SymbolType , class StateType1 , class StateType2 > | |
static automaton::MultiInitialStateNFA< SymbolType, ext::pair< StateType1, StateType2 > > | quotient (const automaton::NFA< SymbolType, StateType1 > &first, const automaton::NFA< SymbolType, StateType2 > &second, bool full) |
Full quotient requires that w is maximal and x does not have prefix from L(A1). Non-full quotient does not require that to be true and only some prefix is removed from words in L(A2). This method utilizes cartesian product construction and it is described in paper "The Full Quotient and Its Closure Properties for Regular Languages".
|
static |
Divides (computes quotient of) two languages represented by two finite automata.
SymbolType | Type for input symbols. |
StateType1 | Type for states in the first automaton. |
StateType2 | Type for states in the second automaton. |
first | First automaton (A1) representing language of the removed prefix |
second | Second automaton (A2) representing language from which the prefix is removed |
full | true if the resulting quotient should be full, false if not. |