24#include <spot/twa/twagraph.hh>
31 typedef std::set<unsigned> power_state;
32 std::vector<power_state> map_;
35 states_of(
unsigned s)
const
47 mutable bool reason_is_states_;
50 unsigned max_edges = ~0
U)
51 : max_states_(max_states), max_edges_(max_edges)
55 unsigned max_states()
const
60 unsigned max_edges()
const
65 bool too_large(
const const_twa_graph_ptr& aut)
const
67 bool too_many_states = aut->num_states() > max_states_;
68 if (!too_many_states && (aut->num_edges() <= max_edges_))
71 reason_is_states_ = too_many_states;
75 std::ostream& print_reason(std::ostream&)
const;
99 SPOT_API twa_graph_ptr
103 std::vector<unsigned>* accepting_sinks =
nullptr);
104 SPOT_API twa_graph_ptr
107 std::vector<unsigned>* accepting_sinks =
nullptr);
130 SPOT_API twa_graph_ptr
132 unsigned threshold_states = 0,
133 unsigned threshold_cycles = 0);
162 SPOT_API twa_graph_ptr
164 unsigned threshold_states = 0,
165 unsigned threshold_cycles = 0,
167 const_twa_graph_ptr neg_aut =
nullptr);
Helper object to specify when an algorithm should abort its construction.
Definition: powerset.hh:44
twa_graph_ptr tgba_powerset(const const_twa_graph_ptr &aut, power_map &pm, bool merge=true, const output_aborter *aborter=nullptr, std::vector< unsigned > *accepting_sinks=nullptr)
Build a deterministic automaton, ignoring acceptance conditions.
Definition: automata.hh:26
twa_graph_ptr tba_determinize(const const_twa_graph_ptr &aut, unsigned threshold_states=0, unsigned threshold_cycles=0)
Determinize a TBA using the powerset construction.
twa_graph_ptr tba_determinize_check(const twa_graph_ptr &aut, unsigned threshold_states=0, unsigned threshold_cycles=0, formula f=nullptr, const_twa_graph_ptr neg_aut=nullptr)
Determinize a TBA and make sure it is correct.
Definition: powerset.hh:30