Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members

spot::tgba_bdd_core_data Struct Reference

Core data for a TGBA encoded using BDDs. More...

#include <tgbabddcoredata.hh>

Collaboration diagram for spot::tgba_bdd_core_data:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 tgba_bdd_core_data (bdd_dict *dict)
 Default constructor.

 tgba_bdd_core_data (const tgba_bdd_core_data &copy)
 Copy constructor.

 tgba_bdd_core_data (const tgba_bdd_core_data &left, const tgba_bdd_core_data &right)
 Merge two tgba_bdd_core_data.

const tgba_bdd_core_dataoperator= (const tgba_bdd_core_data &copy)
void declare_now_next (bdd now, bdd next)
 Update the variable sets to take a new pair of variables into account.

void declare_atomic_prop (bdd var)
 Update the variable sets to take a new automic proposition into account.

void declare_acceptance_condition (bdd prom)
 Update the variable sets to take a new acceptance condition into account.


Public Attributes

bdd relation
 encodes the transition relation of the TGBA.

bdd acceptance_conditions
 encodes the acceptance conditions

bdd all_acceptance_conditions
 The set of all acceptance conditions used by the Automaton.

bdd now_set
 The conjunction of all Now variables, in their positive form.

bdd next_set
 The conjunction of all Next variables, in their positive form.

bdd nownext_set
 The conjunction of all Now and Next variables, in their positive form.

bdd notnow_set
 The (positive) conjunction of all variables which are not Now variables.

bdd notnext_set
 The (positive) conjunction of all variables which are not Next variables.

bdd var_set
 The (positive) conjunction of all variables which are atomic propositions.

bdd notvar_set
 The (positive) conjunction of all variables which are not atomic propositions.

bdd varandnext_set
 The (positive) conjunction of all Next variables and atomic propositions.

bdd acc_set
 The (positive) conjunction of all variables which are acceptance conditions.

bdd notacc_set
 The (positive) conjunction of all variables which are not acceptance conditions.

bdd negacc_set
 The negative conjunction of all variables which are acceptance conditions.

bdd_dictdict
 The dictionary used by the automata.


Detailed Description

Core data for a TGBA encoded using BDDs.


Constructor & Destructor Documentation

spot::tgba_bdd_core_data::tgba_bdd_core_data bdd_dict dict  ) 
 

Default constructor.

Initially all variable set are empty and the relation is true.

spot::tgba_bdd_core_data::tgba_bdd_core_data const tgba_bdd_core_data copy  ) 
 

Copy constructor.

spot::tgba_bdd_core_data::tgba_bdd_core_data const tgba_bdd_core_data left,
const tgba_bdd_core_data right
 

Merge two tgba_bdd_core_data.

This is used when building a product of two automata.


Member Function Documentation

void spot::tgba_bdd_core_data::declare_acceptance_condition bdd  prom  ) 
 

Update the variable sets to take a new acceptance condition into account.

void spot::tgba_bdd_core_data::declare_atomic_prop bdd  var  ) 
 

Update the variable sets to take a new automic proposition into account.

void spot::tgba_bdd_core_data::declare_now_next bdd  now,
bdd  next
 

Update the variable sets to take a new pair of variables into account.

const tgba_bdd_core_data& spot::tgba_bdd_core_data::operator= const tgba_bdd_core_data copy  ) 
 


Member Data Documentation

bdd spot::tgba_bdd_core_data::acc_set
 

The (positive) conjunction of all variables which are acceptance conditions.

bdd spot::tgba_bdd_core_data::acceptance_conditions
 

encodes the acceptance conditions

a U b, or F b, both imply that b should be verified eventually. We encode this with generalized Büchi acceptating conditions. An acceptance set, called Acc[b], hold all the state that do not promise to verify b eventually. (I.e., all the states that contain b, or do not contain a U b, or F b.)

The spot::succ_iter::current_acceptance_conditions() method will return the Acc[x] variables of the acceptance sets in which a transition is. Actually we never return Acc[x] alone, but Acc[x] and all other acceptance variables negated.

So if there is three acceptance set a, b, and c, and a transition is in set a, we'll return Acc[a]&!Acc[b]&!Acc[c]. If the transition is in both a and b, we'll return (Acc[a]&!Acc[b]&!Acc[c]) | (!Acc[a]&Acc[b]&!Acc[c]).

Accepting conditions are attributed to transitions and are only concerned by atomic propositions (which label the transitions) and Next variables (the destination). Typically, a transition should bear the variable Acc[b] if it doesn't check for `b' and have a destination of the form a U b, or F b.

To summarize, acceptance_conditions contains three kinds of variables:

  • "Next" variables, that encode the destination state,
  • atomic propositions, which are things to verify before going on to the next state,
  • "Acc" variables.

bdd spot::tgba_bdd_core_data::all_acceptance_conditions
 

The set of all acceptance conditions used by the Automaton.

The goal of the emptiness check is to ensure that a strongly connected component walks through each of these acceptiong conditions. I.e., the union of the acceptiong conditions of all transition in the SCC should be equal to the result of this function.

bdd_dict* spot::tgba_bdd_core_data::dict
 

The dictionary used by the automata.

bdd spot::tgba_bdd_core_data::negacc_set
 

The negative conjunction of all variables which are acceptance conditions.

bdd spot::tgba_bdd_core_data::next_set
 

The conjunction of all Next variables, in their positive form.

bdd spot::tgba_bdd_core_data::notacc_set
 

The (positive) conjunction of all variables which are not acceptance conditions.

bdd spot::tgba_bdd_core_data::notnext_set
 

The (positive) conjunction of all variables which are not Next variables.

bdd spot::tgba_bdd_core_data::notnow_set
 

The (positive) conjunction of all variables which are not Now variables.

bdd spot::tgba_bdd_core_data::notvar_set
 

The (positive) conjunction of all variables which are not atomic propositions.

bdd spot::tgba_bdd_core_data::now_set
 

The conjunction of all Now variables, in their positive form.

bdd spot::tgba_bdd_core_data::nownext_set
 

The conjunction of all Now and Next variables, in their positive form.

bdd spot::tgba_bdd_core_data::relation
 

encodes the transition relation of the TGBA.

relation uses three kinds of variables:

  • "Now" variables, that encode the current state
  • "Next" variables, that encode the destination state
  • atomic propositions, which are things to verify before going on to the next state

bdd spot::tgba_bdd_core_data::var_set
 

The (positive) conjunction of all variables which are atomic propositions.

bdd spot::tgba_bdd_core_data::varandnext_set
 

The (positive) conjunction of all Next variables and atomic propositions.


The documentation for this struct was generated from the following file:
Generated on Tue Jun 29 17:01:43 2004 for spot by doxygen 1.3.7