22 #include <spot/kripke/fairkripke.hh> 23 #include <spot/twacube/cube.hh> 36 template<
typename State,
typename SuccIterator>
38 public std::enable_shared_from_this<kripkecube<State, SuccIterator>>
43 State initial(
unsigned tid);
46 std::string to_string(
const State,
unsigned tid)
const;
49 SuccIterator* succ(
const State,
unsigned tid);
53 void recycle(SuccIterator*,
unsigned tid);
56 const std::vector<std::string> get_ap();
62 template <
typename State,
typename SuccIter>
72 const std::vector<std::string>
75 void (SuccIter::*test_next)() = &SuccIter::next;
76 State (SuccIter::*test_state)()
const= &SuccIter::state;
77 bool (SuccIter::*test_done)()
const= &SuccIter::done;
78 cube (SuccIter::*test_condition)()
const = &SuccIter::condition;
82 (void) test_to_string;
88 (void) test_condition;
122 void recycle(
const bdd& cond)
129 virtual bdd cond()
const override;
160 kripke(
const bdd_dict_ptr& d)
171 typedef std::shared_ptr<kripke> kripke_ptr;
172 typedef std::shared_ptr<const kripke> const_kripke_ptr;
Interface for a Fair Kripke structure.
Definition: fairkripke.hh:87
Interface for a Kripke structure.
Definition: kripke.hh:157
Abstract class for states.
Definition: twa.hh:50
Iterator code for Kripke structure.
Definition: kripke.hh:110
bool is_a_kripkecube(kripkecube< State, SuccIter > &)
This method allows to ensure (at compile time) if a given parameter is of type kripkecube. It also check if the iterator has the good interface.
Definition: kripke.hh:63
This class is a template representation of a Kripke structure. It is composed of two template paramet...
Definition: kripke.hh:37
kripke_succ_iterator(const bdd &cond)
Constructor.
Definition: kripke.hh:117
Iterate over the successors of a state.
Definition: twa.hh:397
unsigned * cube
A cube is only a set of bits in memory.
Definition: cube.hh:66