21 template <Automaton Aut>
24 <decltype(
transpose(std::declval<Aut>())),
28 template <Automaton Aut>
31 -> std::enable_if_t<is_free_boolean<Aut>(),
43 template <Automaton Aut>
45 std::enable_if_t<!is_free_boolean<Aut>(), Aut>
48 raise(
"minimize: invalid algorithm"
49 " (non-Boolean or non-free labelset):",
Aut transpose(const transpose_automaton< Aut > &aut)
Request for Brzozowski implementation of minimize (B and free).
auto minimize(const Aut &a, brzozowski_tag) -> std::enable_if_t< is_free_boolean< Aut >(), determinized_automaton< codeterminized_automaton< Aut >, wet_kind_t::bitset >>
Brzozowski-based minimization.
Request the bitset implementation (bool weights).
ATTRIBUTE_NORETURN std::enable_if_t<!is_free_boolean< Aut >), Aut > minimize(const Aut &, brzozowski_tag)
Handling of errors for dyn::minimize.
std::shared_ptr< detail::determinized_automaton_impl< Aut, Kind, Lazy >> determinized_automaton
A determinized automaton as a shared pointer.
auto codeterminize(const Aut &aut, Tag tag={})
std::shared_ptr< detail::transpose_automaton_impl< Aut >> transpose_automaton
An automaton wrapper that presents the transposed automaton.
auto determinize(const Aut &a, Tag={}, bool_constant< Lazy >={})
transpose_automaton< determinized_automaton< decltype(transpose(std::declval< Aut >())), wet_kind_t::bitset >> codeterminized_automaton
The type of the codeterminized automaton.