|
spot
1.2.6
|
Rewrite or simplify f in various ways. More...
#include <ltlvisit/simplify.hh>

Public Member Functions | |
| ltl_simplifier (bdd_dict *dict=0) | |
| ltl_simplifier (const ltl_simplifier_options &opt, bdd_dict *dict=0) | |
| const formula * | simplify (const formula *f) |
| const formula * | negative_normal_form (const formula *f, bool negated=false) |
| bool | syntactic_implication (const formula *f, const formula *g) |
| Syntactic implication. More... | |
| bool | syntactic_implication_neg (const formula *f, const formula *g, bool right) |
| Syntactic implication with one negated argument. More... | |
| bool | are_equivalent (const formula *f, const formula *g) |
| check whether two formulae are equivalent. More... | |
| bool | implication (const formula *f, const formula *g) |
| Check whether f implies g. More... | |
| bdd | as_bdd (const formula *f) |
| Convert a Boolean formula as a BDD. More... | |
| void | clear_as_bdd_cache () |
| Clear the as_bdd() cache. More... | |
| bdd_dict * | get_dict () const |
| Return the bdd_dict used. More... | |
| const formula * | star_normal_form (const formula *f) |
| Cached version of spot::ltl::star_normal_form(). More... | |
| const formula * | boolean_to_isop (const formula *f) |
| Rewrite a Boolean formula f into as an irredundant sum of product. More... | |
| void | print_stats (std::ostream &os) const |
| Dump statistics about the caches. More... | |
Rewrite or simplify f in various ways.
check whether two formulae are equivalent.
This costly check performs up to four translations, two products, and two emptiness checks.
| bdd spot::ltl::ltl_simplifier::as_bdd | ( | const formula * | f) |
Convert a Boolean formula as a BDD.
If you plan to use this method, be sure to pass a bdd_dict to the constructor.
Rewrite a Boolean formula f into as an irredundant sum of product.
This uses a cache, so it is OK to call this with identical arguments.
| void spot::ltl::ltl_simplifier::clear_as_bdd_cache | ( | ) |
Clear the as_bdd() cache.
Calling this function is recommended before running other algorithms that create BDD variables in a more natural order. For instance ltl_to_tgba_fm() will usually be more efficient if the BDD variables for atomic propositions have not been ordered before hand.
This also clears the language containment cache.
Check whether f implies g.
This operation is costlier than syntactic_implication() because it requires two translation, one product and one emptiness check.
| const formula* spot::ltl::ltl_simplifier::negative_normal_form | ( | const formula * | f, |
| bool | negated = false |
||
| ) |
Build the negative normal form of formula f. All negations of the formula are pushed in front of the atomic propositions. Operators <=>, =>, xor are all removed (calling spot::ltl::unabbreviate_ltl is not needed).
| f | The formula to normalize. |
| negated | If true, return the negative normal form of !f |
| void spot::ltl::ltl_simplifier::print_stats | ( | std::ostream & | os) | const |
Dump statistics about the caches.
Simplify the formula f (using options supplied to the constructor).
Cached version of spot::ltl::star_normal_form().
Syntactic implication.
Returns whether f syntactically implies g.
This is adapted from
@InProceedings{ somenzi.00.cav,
author = {Fabio Somenzi and Roderick Bloem},
title = {Efficient {B\"u}chi Automata for {LTL} Formulae},
booktitle = {Proceedings of the 12th International Conference on
Computer Aided Verification (CAV'00)},
pages = {247--263},
year = {2000},
volume = {1855},
series = {Lecture Notes in Computer Science},
publisher = {Springer-Verlag}
}
| bool spot::ltl::ltl_simplifier::syntactic_implication_neg | ( | const formula * | f, |
| const formula * | g, | ||
| bool | right | ||
| ) |
Syntactic implication with one negated argument.
If right is true, this method returns whether f implies !g. If right is false, this returns whether !f implies g.
1.8.4