spot  1.2.6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Classes | Enumerations | Functions
Rewriting LTL formulae

Classes

class  spot::ltl::ltl_simplifier
 Rewrite or simplify f in various ways. More...
 

Enumerations

enum  spot::ltl::reduce_options {
  spot::ltl::Reduce_None = 0, spot::ltl::Reduce_Basics = 1, spot::ltl::Reduce_Syntactic_Implications = 2, spot::ltl::Reduce_Eventuality_And_Universality = 4,
  spot::ltl::Reduce_Containment_Checks = 8, spot::ltl::Reduce_Containment_Checks_Stronger = 16, spot::ltl::Reduce_All = -1U
}
 Options for spot::ltl::reduce. More...
 

Functions

SPOT_API const formula * spot::ltl::unabbreviate_logic (const formula *f)
 Clone and rewrite a formula to remove most of the abbreviated logical operators. More...
 
const formula * spot::ltl::mark_tools::mark_concat_ops (const formula *f)
 Mark operators NegClosure and EConcat. More...
 
SPOT_API const formula * spot::ltl::negative_normal_form (const formula *f, bool negated=false)
 Build the negative normal form of f. More...
 
SPOT_API SPOT_DEPRECATED const
formula * 
spot::ltl::reduce (const formula *f, int opt=Reduce_All)
 Reduce a formula f. More...
 
SPOT_API const formula * spot::ltl::relabel (const formula *f, relabeling_style style, relabeling_map *m=0)
 Relabel the atomic propositions in a formula. More...
 
SPOT_API const formula * spot::ltl::relabel_bse (const formula *f, relabeling_style style, relabeling_map *m=0)
 Relabel Boolean subexpressions in a formula using atomic propositions. More...
 
SPOT_API const formula * spot::ltl::simplify_f_g (const formula *f)
 Replace true U f and false R g by F f and G g. More...
 
SPOT_API const formula * spot::ltl::unabbreviate_wm (const formula *f)
 Rewrite a formula to remove the W and M operators. More...
 

Detailed Description

Enumeration Type Documentation

Options for spot::ltl::reduce.

Enumerator
Reduce_None 

No reduction.

Reduce_Basics 

Basic reductions.

Reduce_Syntactic_Implications 

Somenzi & Bloem syntactic implication.

Reduce_Eventuality_And_Universality 

Etessami & Holzmann eventuality and universality reductions.

Reduce_Containment_Checks 

Tauriainen containment checks.

Reduce_Containment_Checks_Stronger 

Tauriainen containment checks (stronger version).

Reduce_All 

All reductions.

Function Documentation

const formula* spot::ltl::mark_tools::mark_concat_ops ( const formula f)

Mark operators NegClosure and EConcat.

Parameters
fThe formula to rewrite.
SPOT_API const formula* spot::ltl::negative_normal_form ( const formula *  f,
bool  negated = false 
)

Build the negative normal form of f.

All negations of the formula are pushed in front of the atomic propositions.

Parameters
fThe formula to normalize.
negatedIf true, return the negative normal form of !f

Note that this will not remove abbreviated operators. If you want to remove abbreviations, call spot::ltl::unabbreviate_logic or spot::ltl::unabbreviate_ltl first. (Calling these functions after spot::ltl::negative_normal_form would likely produce a formula which is not in negative normal form.)

SPOT_API SPOT_DEPRECATED const formula* spot::ltl::reduce ( const formula *  f,
int  opt = Reduce_All 
)

Reduce a formula f.

Parameters
fthe formula to reduce
opta conjonction of spot::ltl::reduce_options specifying which optimizations to apply.
Returns
the reduced formula
Deprecated:
Use spot::ltl::ltl_simplifier instead.
SPOT_API const formula* spot::ltl::relabel ( const formula *  f,
relabeling_style  style,
relabeling_map *  m = 0 
)

Relabel the atomic propositions in a formula.

If m is non-null, it is filled with correspondence between the new names (keys) and the old names (values).

SPOT_API const formula* spot::ltl::relabel_bse ( const formula *  f,
relabeling_style  style,
relabeling_map *  m = 0 
)

Relabel Boolean subexpressions in a formula using atomic propositions.

If m is non-null, it is filled with correspondence between the new names (keys) and the old names (values).

SPOT_API const formula* spot::ltl::simplify_f_g ( const formula *  f)

Replace true U f and false R g by F f and G g.

Perform the following rewriting (from left to right):

  • true U a = F a
  • a M true = F a
  • false R a = G a
  • a W false = G a
SPOT_API const formula* spot::ltl::unabbreviate_logic ( const formula *  f)

Clone and rewrite a formula to remove most of the abbreviated logical operators.

This will rewrite binary operators such as binop::Implies, binop::Equals, and binop::Xor, using only unop::Not, multop::Or, and multop::And.

SPOT_API const formula* spot::ltl::unabbreviate_wm ( const formula *  f)

Rewrite a formula to remove the W and M operators.

This is necessary if you want to use the formula with a tool that do not support these operators.

a W b is replaced by b R (b | a), and a M b is replaced by b U (b & a).


Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.
Generated on Sat Dec 6 2014 12:28:44 for spot by doxygen 1.8.4