12 template <
typename Aut>
16 "is_complete: requires free labelset");
18 if (aut->num_initials() == 0)
21 using label_set_t = std::set<typename labelset_t_of<Aut>::letter_t>;
23 const auto& letters = aut->labelset()->genset();
24 for (
auto state : aut->states())
26 label_set_t missing_letters = {std::begin(letters), std::end(letters)};
28 for (
auto tr : aut->all_out(state))
29 missing_letters.erase(aut->label_of(tr));
31 if (!missing_letters.empty())
47 template <
typename Aut>
bool is_complete(const Aut &aut)
Whether aut is complete.
std::shared_ptr< detail::automaton_base > automaton
typename detail::labelset_t_of_impl< base_t< ValueSet >>::type labelset_t_of
bool is_complete(const automaton &aut)
Bridge.