spot  1.2.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Public Attributes | List of all members
spot::tgba_bdd_core_data Struct Reference

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

#include <tgba/tgbabddcoredata.hh>

Collaboration diagram for spot::tgba_bdd_core_data:
Collaboration graph

Public Member Functions

 tgba_bdd_core_data (bdd_dict *dict)
 Default constructor. More...
 
 tgba_bdd_core_data (const tgba_bdd_core_data &copy)
 Copy constructor. More...
 
 tgba_bdd_core_data (const tgba_bdd_core_data &left, const tgba_bdd_core_data &right)
 Merge two tgba_bdd_core_data. More...
 
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. More...
 
void declare_atomic_prop (bdd var)
 Update the variable sets to take a new automic proposition into account. More...
 
void declare_acceptance_condition (bdd prom)
 Update the variable sets to take a new acceptance condition into account. More...
 
void delete_unaccepting_scc (bdd init)
 Delete SCCs (Strongly Connected Components) from the relation which cannot be accepting. More...
 

Public Attributes

bdd relation
 encodes the transition relation of the TGBA. More...
 
bdd acceptance_conditions
 encodes the acceptance conditions More...
 
bdd acceptance_conditions_support
 The value of bdd_support(acceptance_conditions) More...
 
bdd all_acceptance_conditions
 The set of all acceptance conditions used by the Automaton. More...
 
bdd now_set
 The conjunction of all Now variables, in their positive form. More...
 
bdd next_set
 The conjunction of all Next variables, in their positive form. More...
 
bdd nownext_set
 The conjunction of all Now and Next variables, in their positive form. More...
 
bdd notnow_set
 The (positive) conjunction of all variables which are not Now variables. More...
 
bdd notnext_set
 The (positive) conjunction of all variables which are not Next variables. More...
 
bdd var_set
 The (positive) conjunction of all variables which are atomic propositions. More...
 
bdd notvar_set
 The (positive) conjunction of all variables which are not atomic propositions. More...
 
bdd varandnext_set
 The (positive) conjunction of all Next variables and atomic propositions. More...
 
bdd acc_set
 The (positive) conjunction of all variables which are acceptance conditions. More...
 
bdd notacc_set
 The (positive) conjunction of all variables which are not acceptance conditions. More...
 
bdd negacc_set
 The negative conjunction of all variables which are acceptance conditions. More...
 
bdd_dictdict
 The dictionary used by the automata. More...
 

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.

void spot::tgba_bdd_core_data::delete_unaccepting_scc ( bdd  init)

Delete SCCs (Strongly Connected Components) from the relation which cannot be accepting.

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]).

Acceptance 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::acceptance_conditions_support

The value of bdd_support(acceptance_conditions)

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:

Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.
Generated on Thu May 15 2014 11:04:11 for spot by doxygen 1.8.4