69 typedef std::map<formula, int>
fv_map;
71 typedef std::map<int, formula>
vf_map;
79 enum var_type { anon = 0, var, acc };
87 typedef std::vector<bdd_info> bdd_info_map;
102 int register_proposition(
formula f,
const void* for_me);
104 template <
typename T>
105 int register_proposition(
formula f, std::shared_ptr<T> for_me)
107 return register_proposition(f, for_me.get());
117 int has_registered_proposition(
formula f,
const void* me);
119 template <
typename T>
120 int has_registered_proposition(
formula f, std::shared_ptr<T> for_me)
122 return has_registered_proposition(f, for_me.get());
137 int register_acceptance_variable(formula f,
const void* for_me);
139 template <
typename T>
140 int register_acceptance_variable(formula f, std::shared_ptr<T> for_me)
142 return register_acceptance_variable(f, for_me.get());
154 void register_acceptance_variables(bdd f,
const void* for_me);
156 template <
typename T>
157 void register_acceptance_variables(bdd f, std::shared_ptr<T> for_me)
159 register_acceptance_variables(f, for_me.get());
172 formula oneacc_to_formula(bdd oneacc)
const;
182 formula oneacc_to_formula(
int var)
const;
192 int register_anonymous_variables(
int n,
const void* for_me);
194 template <
typename T>
195 int register_anonymous_variables(
int n, std::shared_ptr<T> for_me)
197 return register_anonymous_variables(n, for_me.get());
208 void register_all_variables_of(
const void* from_other,
const void* for_me);
210 template <
typename T>
211 void register_all_variables_of(
const void* from_other,
212 std::shared_ptr<T> for_me)
214 register_all_variables_of(from_other, for_me.get());
217 template <
typename T>
218 void register_all_variables_of(std::shared_ptr<T> from_other,
221 register_all_variables_of(from_other.get(), for_me);
224 template <
typename T,
typename U>
225 void register_all_variables_of(std::shared_ptr<T> from_other,
226 std::shared_ptr<U> for_me)
228 register_all_variables_of(from_other.get(), for_me.get());
240 void register_all_propositions_of(
const void* from_other,
243 template <
typename T>
244 void register_all_propositions_of(
const void* from_other,
245 std::shared_ptr<T> for_me)
247 register_all_propositions_of(from_other, for_me.get());
250 template <
typename T>
251 void register_all_propositions_of(std::shared_ptr<T> from_other,
254 register_all_propositions_of(from_other.get(), for_me);
257 template <
typename T,
typename U>
258 void register_all_propositions_of(std::shared_ptr<T> from_other,
259 std::shared_ptr<U> for_me)
261 register_all_propositions_of(from_other.get(), for_me.get());
268 void unregister_all_my_variables(
const void* me);
273 void unregister_all_typed_variables(var_type type,
const void* me);
275 template <
typename T>
276 void unregister_all_typed_variables(var_type type, std::shared_ptr<T> me)
278 unregister_all_typed_variables(type, me.get());
284 void unregister_variable(
int var,
const void* me);
286 template <
typename T>
287 void unregister_variable(
int var, std::shared_ptr<T> me)
289 unregister_variable(var, me.get());
295 std::ostream& dump(std::ostream& os)
const;
308 void assert_emptiness()
const;
312 bdd_dict(
const bdd_dict& other) SPOT_DELETED;
313 bdd_dict& operator=(
const bdd_dict& other) SPOT_DELETED;
316 typedef std::shared_ptr<bdd_dict> bdd_dict_ptr;
318 inline bdd_dict_ptr make_bdd_dict()
320 return std::make_shared<bdd_dict>();
std::set< const void * > ref_set
BDD-variable reference counts.
Definition: bdddict.hh:77
std::map< int, formula > vf_map
BDD-variable-to-formula maps.
Definition: bdddict.hh:71
fv_map acc_map
Maps acceptance conditions to BDD variables.
Definition: bdddict.hh:74
std::map< formula, int > fv_map
Formula-to-BDD-variable maps.
Definition: bdddict.hh:69
Definition: bdddict.hh:80
Map BDD variables to formulae.
Definition: bdddict.hh:55
fv_map var_map
Maps atomic propositions to BDD variables.
Definition: bdddict.hh:73