22 #include <spot/twa/twagraph.hh>
23 #include <spot/twaalgos/game.hh>
57 SPOT_API twa_graph_ptr
59 const bdd& output_bdd,
bool complete_env);
77 SPOT_API twa_graph_ptr
85 SPOT_API twa_graph_ptr
103 double total_time = 0.0;
104 double trans_time = 0.0;
105 double split_time = 0.0;
106 double paritize_time = 0.0;
107 double solve_time = 0.0;
108 double strat2aut_time = 0.0;
109 double aig_time = 0.0;
110 unsigned nb_states_arena = 0;
111 unsigned nb_states_arena_env = 0;
112 unsigned nb_strat_states = 0;
113 unsigned nb_strat_edges = 0;
114 unsigned nb_latches = 0;
115 unsigned nb_gates = 0;
116 bool realizable =
false;
120 : force_sbacc{false},
124 verbose_stream{nullptr},
125 dict(make_bdd_dict())
132 std::optional<bench_var> bv;
133 std::ostream* verbose_stream;
140 SPOT_API std::ostream&
141 operator<<(std::ostream& os, synthesis_info::algo s);
145 SPOT_API std::ostream &
160 SPOT_API twa_graph_ptr
162 const std::vector<std::string>& all_outs,
164 SPOT_API twa_graph_ptr
166 const std::vector<std::string>& all_outs);
167 SPOT_API twa_graph_ptr
169 const std::vector<std::string>& all_outs,
171 SPOT_API twa_graph_ptr
173 const std::vector<std::string>& all_outs);
185 SPOT_API spot::twa_graph_ptr
187 bool unsplit,
bool keep_acc);
207 SPOT_API twa_graph_ptr
215 SPOT_API twa_graph_ptr
217 SPOT_API twa_graph_ptr
228 enum class realizability_code
237 realizability_code success;
238 twa_graph_ptr strat_like;
255 SPOT_API std::pair<std::vector<formula>, std::vector<std::set<formula>>>
258 SPOT_API std::pair<std::vector<formula>, std::vector<std::set<formula>>>
260 const std::vector<std::string>& outs);
277 const std::vector<std::string>& output_aps,
Manage a map of options.
Definition: optionmap.hh:38
bool solve_game(const twa_graph_ptr &arena)
Generic interface for game solving.
twa_graph_ptr minimize_strategy(const_twa_graph_ptr &strat, int min_lvl)
Minimizes a strategy. Strategies are infact Mealy machines. So we can use techniques designed for the...
void split_2step_fast_here(const twa_graph_ptr &aut, const bdd &output_bdd)
make each transition a 2-step transition.
twa_graph_ptr unsplit_2step(const const_twa_graph_ptr &aut)
the reverse of split_2step
twa_graph_ptr ltl_to_game(const formula &f, const std::vector< std::string > &all_outs, synthesis_info &gi)
Creates a game from a specification and a set of output propositions.
std::pair< std::vector< formula >, std::vector< std::set< formula > > > split_independant_formulas(formula f, const std::vector< std::string > &outs)
Seeks to decompose a formula into independently synthesizable sub-parts. The conjunction of all sub-p...
twa_graph_ptr split_2step_fast(const const_twa_graph_ptr &aut, const bdd &output_bdd)
make each transition a 2-step transition.
twa_graph_ptr split_2step(const const_twa_graph_ptr &aut, const bdd &output_bdd, bool complete_env)
make each transition a 2-step transition, transforming the graph into an alternating arena
spot::twa_graph_ptr apply_strategy(const spot::twa_graph_ptr &arena, bool unsplit, bool keep_acc)
Takes a solved game and restricts the automaton to the winning strategy of the player.
twa_graph_ptr create_strategy(twa_graph_ptr arena, synthesis_info &gi)
creates a strategy from a solved game taking into account the options given in gi
void minimize_strategy_here(twa_graph_ptr &strat, int min_lvl)
Minimizes a strategy. Strategies are infact Mealy machines. So we can use techniques designed for the...
strategy_like_t try_create_direct_strategy(formula f, const std::vector< std::string > &output_aps, synthesis_info &gi)
Creates a strategy for the formula given by calling all intermediate steps.
Definition: automata.hh:27
A struct that represents different types of strategy like objects.
Definition: synthesis.hh:226
Definition: synthesis.hh:102
Benchmarking data and options for synthesis.
Definition: synthesis.hh:91