LydiaSyft
coGR1Reachability.hpp
1 //
2 // Created by shuzhu on 18/04/24.
3 //
4 
5 #ifndef LYDIASYFT_COGR1REACHABILITY_HPP
6 #define LYDIASYFT_COGR1REACHABILITY_HPP
7 
8 #include "GR1.h"
9 #include "automata/SymbolicStateDfa.h"
10 #include "Synthesizer.h"
11 
12 namespace Syft {
19  private:
23  const std::shared_ptr<VarMgr> var_mgr_;
27  const GR1 gr1_;
31  const SymbolicStateDfa arena_;
35  const CUDD::BDD state_space_;
39  const CUDD::BDD initial_condition_;
43  const std::string benchmark_name_;
47  const std::string slugs_dir_;
48 
62  void print_variables(const std::string &filename) const;
63 
75  void print_initial_conditions(const CUDD::BDD &arena_initial_state_bdd, const std::string &filename) const;
76 
89  void print_transitions(const SymbolicStateDfa &arena, const CUDD::BDD &safe_states,
90  const std::string &filename) const;
91 
101  void print_liveness_constraints(const std::string &filename) const;
102 
108  std::string get_slugs_path() const;
109 
110 
111  public:
112 
123  coGR1Reachability(const std::shared_ptr<VarMgr> &var_mgr, const GR1 &gr1,
124  const SymbolicStateDfa &arena,
125  const CUDD::BDD &state_space,
126  const CUDD::BDD &initial_condition,
127  const std::string &slugs_dir,
128  const std::string &benchmark_name);
129 
130  const std::string exec_slugs(const std::string &slugs, const std::string &slugs_input_file,
131  const std::string &slugs_res_file, const std::string &slugs_strategy_file) const;
132 
133 
142  SynthesisResult run() const;
143 
144  coGR1Reachability(SymbolicStateDfa dfa, Player player, Player player1, CUDD::BDD bdd, CUDD::BDD bdd1,
145  CUDD::BDD bdd2);
146  };
147 }
148 
149 
150 #endif //LYDIASYFT_COGR1REACHABILITY_HPP
A DFA with symbolic states and transitions.
Definition: SymbolicStateDfa.h:18
A single-strategy-synthesizer for a Buchi-reachability game given as a symbolic-state DFA.
Definition: coGR1Reachability.hpp:18
coGR1Reachability(const std::shared_ptr< VarMgr > &var_mgr, const GR1 &gr1, const SymbolicStateDfa &arena, const CUDD::BDD &state_space, const CUDD::BDD &initial_condition, const std::string &slugs_dir, const std::string &benchmark_name)
Construct a single-strategy-synthesizer for the given Buchi-reachability game.
Definition: coGR1Reachability.cpp:11
SynthesisResult run() const
Solves the Buchi-reachability game.
Definition: coGR1Reachability.cpp:228
Definition: GR1.h:52
Definition: Synthesizer.h:16