spot  1.0.2
Public Member Functions | Private Types | Private Attributes | List of all members
spot::tgba_bdd_concrete_factory Class Reference

Helper class to build a spot::tgba_bdd_concrete object. More...

#include <tgba/tgbabddconcretefactory.hh>

Inheritance diagram for spot::tgba_bdd_concrete_factory:
Inheritance graph
Collaboration diagram for spot::tgba_bdd_concrete_factory:
Collaboration graph

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_dataget_core_data () const
 Get the core data for the new automata.
bdd_dictget_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.

Detailed Description

Helper class to build a spot::tgba_bdd_concrete object.

Member Typedef Documentation

Constructor & Destructor Documentation

spot::tgba_bdd_concrete_factory::tgba_bdd_concrete_factory ( bdd_dict dict)
virtual spot::tgba_bdd_concrete_factory::~tgba_bdd_concrete_factory ( )
virtual

Member Function Documentation

void spot::tgba_bdd_concrete_factory::constrain_relation ( bdd  new_rel)

Add a new constraint to the relation.

int spot::tgba_bdd_concrete_factory::create_anonymous_state ( )

Create a anonymous Now/Next variables.

Returns
The BDD variable number v for the Now state. The Next BDD corresponds to v+1.
int spot::tgba_bdd_concrete_factory::create_atomic_prop ( const ltl::formula f)

Create an atomic proposition variable for formula f.

Parameters
fThe formula to create an aotmic proposition for.
Returns
The variable number for this state.

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.

Parameters
fThe formula to create a state for.
Returns
The BDD variable number v for the Now state. The Next BDD corresponds to v+1.

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'.

Parameters
ba BDD indicating which variables are in the acceptance set
athe formula associated
void spot::tgba_bdd_concrete_factory::finish ( )

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_dict* spot::tgba_bdd_concrete_factory::get_dict ( ) const

Member Data Documentation

acc_map_ spot::tgba_bdd_concrete_factory::acc_
private

BDD associated to each acceptance condition.

tgba_bdd_core_data spot::tgba_bdd_concrete_factory::data_
private

Core data for the new automata.


The documentation for this class was generated from the following file:

Please comment this page and report errors about it on the RefDocComments page.
Generated on Wed Mar 6 2013 09:25:16 for spot by doxygen 1.8.1.2