Classes | |
| class | atomic_prop |
| Atomic propositions. More... | |
| class | binop |
| Binary operator. More... | |
| class | constant |
| A constant (True or False). More... | |
| class | formula |
| An LTL formula. More... | |
| struct | formula_ptr_less_than |
Strict Weak Ordering for const formula*. More... | |
| struct | formula_ptr_hash |
Hash Function for const formula*. More... | |
| class | multop |
| Multi-operand operators. More... | |
| class | ref_formula |
| A reference-counted LTL formula. More... | |
| class | unop |
| Unary operators. More... | |
| struct | visitor |
| Formula visitor that can modify the formula. More... | |
| struct | const_visitor |
| Formula visitor that cannot modify the formula. More... | |
| class | declarative_environment |
| A declarative environment. More... | |
| class | default_environment |
| A laxist environment. More... | |
| class | environment |
| An environment that describes atomic propositions. More... | |
| class | read_only_environment |
| A read only environment. More... | |
| class | clone_visitor |
| Clone a formula. More... | |
| class | language_containment_checker |
| class | unabbreviate_logic_visitor |
| Clone and rewrite a formula to remove most of the abbreviated logical operators. More... | |
| class | postfix_visitor |
| Apply an algorithm on each node of an AST, during a postfix traversal. More... | |
| class | random_ltl |
| Generate random LTL formulae. More... | |
| class | simplify_f_g_visitor |
Replace true U f and false R g by F f and G g. More... | |
| class | unabbreviate_ltl_visitor |
| Clone and rewrite a formula to remove most of the abbreviated LTL and logical operators. More... | |
Typedefs | |
| typedef std::pair< ltlyy::location, std::string > | parse_error |
| A parse diagnostic with its location. | |
| typedef std::list< parse_error > | parse_error_list |
| A list of parser diagnostics, as filled by parse. | |
| typedef std::set< atomic_prop *, formula_ptr_less_than > | atomic_prop_set |
| Set of atomic propositions. | |
Enumerations | |
| enum | reduce_options { Reduce_None = 0, Reduce_Basics = 1, Reduce_Syntactic_Implications = 2, Reduce_Eventuality_And_Universality = 4, Reduce_Containment_Checks = 8, Reduce_Containment_Checks_Stronger = 16, Reduce_All = -1U } |
| Options for spot::ltl::reduce. More... | |
Functions | |
| formula * | parse (const std::string <l_string, parse_error_list &error_list, environment &env=default_environment::instance(), bool debug=false) |
| Build a formula from an LTL string. | |
| bool | format_parse_errors (std::ostream &os, const std::string <l_string, parse_error_list &error_list) |
| Format diagnostics produced by spot::ltl::parse. | |
| atomic_prop_set * | atomic_prop_collect (const formula *f, atomic_prop_set *s=0) |
| Return the set of atomic propositions occurring in a formula. | |
| formula * | basic_reduce (const formula *f) |
| Basic rewritings. | |
| bool | is_GF (const formula *f) |
| Whether a formula starts with GF. | |
| bool | is_FG (const formula *f) |
| Whether a formula starts with FG. | |
| formula * | clone (const formula *f) |
| Clone a formula. | |
| formula * | reduce_tau03 (const formula *f, bool stronger=true) |
| Reduce a formula using language containment relationships. | |
| void | destroy (const formula *f) |
| Destroys a formula. | |
| std::ostream & | dotty (std::ostream &os, const formula *f) |
| Write a formula tree using dot's syntax. | |
| std::ostream & | dump (std::ostream &os, const formula *f) |
| Dump a formula tree. | |
| int | length (const formula *f) |
| Compute the length of a formula. | |
| formula * | unabbreviate_logic (const formula *f) |
| Clone and rewrite a formula to remove most of the abbreviated logical operators. | |
| formula * | negative_normal_form (const formula *f, bool negated=false) |
| Build the negative normal form of f. | |
| formula * | reduce (const formula *f, int opt=Reduce_All) |
| Reduce a formula f. | |
| bool | is_eventual (const formula *f) |
| Check whether a formula is a pure eventuality. | |
| bool | is_universal (const formula *f) |
| Check whether a formula is purely universal. | |
| formula * | simplify_f_g (const formula *f) |
Replace true U f and false R g by F f and G g. | |
| bool | syntactic_implication (const formula *f1, const formula *f2) |
| Syntactic implication. | |
| bool | syntactic_implication_neg (const formula *f1, const formula *f2, bool right) |
| Syntactic implication. | |
| std::ostream & | to_string (const formula *f, std::ostream &os) |
| Output a formula as a (parsable) string. | |
| std::string | to_string (const formula *f) |
| Convert a formula into a (parsable) string. | |
| std::ostream & | to_spin_string (const formula *f, std::ostream &os) |
| Output a formula as a (parsable by Spin) string. | |
| std::string | to_spin_string (const formula *f) |
| Convert a formula into a (parsable by Spin) string. | |
| formula * | unabbreviate_ltl (const formula *f) |
| Clone and rewrite a formula to remove most of the abbreviated LTL and logical operators. | |
| formula* spot::ltl::reduce_tau03 | ( | const formula * | f, | |
| bool | stronger = true | |||
| ) |
Reduce a formula using language containment relationships.
The method is taken from table 4.1 in
///@TechReport{ tauriainen.03.a83,
/// author = {Heikki Tauriainen},
/// title = {On Translating Linear Temporal Logic into Alternating and
/// Nondeterministic Automata},
/// institution = {Helsinki University of Technology, Laboratory for
/// Theoretical Computer Science},
/// address = {Espoo, Finland},
/// month = dec,
/// number = {A83},
/// pages = {132},
/// type = {Research Report},
/// year = {2003},
/// note = {Reprint of Licentiate's thesis}
///}
///
/// (The "dagged" cells in the tables are not handled here.)
///
/// If \a stronger is set, additional rules are used to further
/// reduce some U, R, and X usages.
/// | formula* spot::ltl::unabbreviate_ltl | ( | const formula * | f | ) |
1.5.2