18 #ifndef AWALI_ALGOS_IS_QUOTIENT_HH
19 # define AWALI_ALGOS_IS_QUOTIENT_HH
26 namespace awali {
namespace sttc {
31 template <
typename Aut1,
typename Aut2>
35 using automaton1_t = Aut1;
42 using automaton2_t = Aut2;
51 using weightset_t = weightset1_t;
52 using labelset_t = labelset1_t;
54 using pair_t = std::pair<state_t, state_t>;
56 const automaton1_t& a1_;
57 const automaton2_t& a2_;
59 std::map<state_t, state_t> morphism;
60 std::vector<bool> visited;
91 visited.resize(a2_->num_states()+2,
false);
92 morphism.insert(pair_t(a2_->pre(),a1_->pre()));
93 morphism.insert(pair_t(a2_->post(),a1_->post()));
98 return visit(a2_->pre());
104 template <
typename Aut1,
typename Aut2>
Definition: is_quotient.hh:33
is_quotient_computer_t(const automaton1_t &a1, const automaton2_t &a2)
Definition: is_quotient.hh:87
bool operator()()
Definition: is_quotient.hh:96
typename internal::label_t_of_impl< internal::base_t< ValueSet > >::type label_t_of
Helper to retrieve the type of the labels of a value set.
Definition: traits.hh:71
typename internal::weight_t_of_impl< internal::base_t< ValueSet > >::type weight_t_of
Helper to retrieve the type of the weights of a value set.
Definition: traits.hh:81
bool is_quotient(const Aut1 &a1, const Aut2 &a2)
Definition: is_quotient.hh:106
typename internal::context_t_of_impl< internal::base_t< ValueSet > >::type context_t_of
Helper to retrieve the type of the context of a value set.
Definition: traits.hh:66
typename internal::labelset_t_of_impl< internal::base_t< ValueSet > >::type labelset_t_of
Helper to retrieve the type of the labelset of a value set.
Definition: traits.hh:76
typename internal::weightset_t_of_impl< internal::base_t< ValueSet > >::type weightset_t_of
Helper to retrieve the type of the weightset of a value set.
Definition: traits.hh:86
Main namespace of Awali.
Definition: ato.hh:22
unsigned state_t
Definition: types.hh:21