spot  1.99.2
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Classes | Functions
Rewriting LTL formulae

Classes

class  spot::ltl::ltl_simplifier
 Rewrite or simplify f in various ways. 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 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

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 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 Fri Jul 17 2015 23:40:21 for spot by doxygen 1.8.8