spot  0.8.3
Public Member Functions | Public Attributes | Private Member Functions
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
[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.
void delete_unaccepting_scc (bdd init)
 Delete SCCs (Strongly Connected Components) from the relation which cannot be accepting.

Public Attributes

bdd relation
 encodes the transition relation of the TGBA.
bdd acceptance_conditions
 encodes the acceptance conditions
bdd acceptance_conditions_support
 The value of bdd_support(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.

Private Member Functions

bdd infinitely_often (bdd s, bdd acc, bdd er)

Detailed Description

Core data for a TGBA encoded using BDDs.


Constructor & Destructor Documentation

Default constructor.

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

Copy constructor.

Merge two tgba_bdd_core_data.

This is used when building a product of two automata.


Member Function Documentation

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

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.

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

bdd spot::tgba_bdd_core_data::infinitely_often ( bdd  s,
bdd  acc,
bdd  er 
) [private]
const tgba_bdd_core_data& spot::tgba_bdd_core_data::operator= ( const tgba_bdd_core_data copy)

Member Data Documentation

The (positive) conjunction of all variables which are 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.

The value of bdd_support(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.

The dictionary used by the automata.

The negative conjunction of all variables which are acceptance conditions.

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

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

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

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

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

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

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

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

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

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


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

Please comment this page and report errors about it on the RefDocComments page.
Generated on Fri Mar 9 2012 13:52:11 for spot by doxygen 1.7.6.1