spot
0.8.3
|
Helper class to build a spot::tgba_bdd_concrete object. More...
#include <tgba/tgbabddconcretefactory.hh>
Public Member Functions | |
tgba_bdd_concrete_factory (bdd_dict *dict) | |
virtual | ~tgba_bdd_concrete_factory () |
int | create_state (const ltl::formula *f) |
int | create_anonymous_state () |
int | create_atomic_prop (const ltl::formula *f) |
void | declare_acceptance_condition (bdd b, const ltl::formula *a) |
const tgba_bdd_core_data & | get_core_data () const |
Get the core data for the new automata. | |
bdd_dict * | get_dict () const |
void | constrain_relation (bdd new_rel) |
Add a new constraint to the relation. | |
void | finish () |
Perfom final computations before the relation can be used. | |
Private Types | |
typedef Sgi::hash_map< const ltl::formula *, bdd, ltl::formula_ptr_hash > | acc_map_ |
Private Attributes | |
tgba_bdd_core_data | data_ |
Core data for the new automata. | |
acc_map_ | acc_ |
BDD associated to each acceptance condition. |
Helper class to build a spot::tgba_bdd_concrete object.
typedef Sgi::hash_map<const ltl::formula*, bdd, ltl::formula_ptr_hash> spot::tgba_bdd_concrete_factory::acc_map_ [private] |
virtual spot::tgba_bdd_concrete_factory::~tgba_bdd_concrete_factory | ( | ) | [virtual] |
void spot::tgba_bdd_concrete_factory::constrain_relation | ( | bdd | new_rel | ) |
Add a new constraint to the relation.
Create a anonymous Now/Next variables.
int spot::tgba_bdd_concrete_factory::create_atomic_prop | ( | const ltl::formula * | f | ) |
Create an atomic proposition variable for formula f.
f | The formula to create an aotmic proposition for. |
The atomic proposition is not created if it already exists. Instead its existing variable number is returned. Variable numbers can be turned into BDD using ithvar().
int spot::tgba_bdd_concrete_factory::create_state | ( | const ltl::formula * | f | ) |
Create a Now/Next variables for formula f.
f | The formula to create a state for. |
The state variables are not created if they already exist. Instead their existing variable numbers are returned. Variable numbers can be turned into BDD using ithvar().
void spot::tgba_bdd_concrete_factory::declare_acceptance_condition | ( | bdd | b, |
const ltl::formula * | a | ||
) |
Declare an acceptance condition.
Formula such as 'f U g' or 'F g' make the promise that 'g' will be fulfilled eventually. So once one of this formula has been translated into a BDD, we use declare_acceptance_condition() to associate all other states to the acceptance set of 'g'.
b | a BDD indicating which variables are in the acceptance set |
a | the formula associated |
Perfom final computations before the relation can be used.
This function should be called after all propositions, state, acceptance conditions, and constraints have been declared, and before calling get_code_data() or get_dict().
const tgba_bdd_core_data& spot::tgba_bdd_concrete_factory::get_core_data | ( | ) | const [virtual] |
Get the core data for the new automata.
Implements spot::tgba_bdd_factory.
BDD associated to each acceptance condition.
Core data for the new automata.