* src/ltlvisit/contain.hh, src/ltlvisit/contain.cc (reduce_tau03):
New function, performing LTL reduction a la tauriainen.03.a83. * src/ltltest/equals.cc, src/ltltest/reduc.cc: Add support for the new reduction. * src/ltltest/reduc.test: Cut the test in half, and additionally test the new reduction. * src/ltltest/reduccmp.test: Run on the new reduction. * src/ltltest/Makefile.am: Adjust. * src/tgbatest/ltl2tgba.cc: Add new options to apply the reduction. * src/tgbatest/spotlbtt.test: Use them.
This commit is contained in:
parent
8cbec95253
commit
d4c9bf2b1e
10 changed files with 444 additions and 76 deletions
|
|
@ -54,6 +54,10 @@ namespace spot
|
|||
|
||||
/// Check whether L(l) is a subset of L(g).
|
||||
bool contained(const formula* l, const formula* g);
|
||||
/// Check whether L(!l) is a subset of L(g).
|
||||
bool neg_contained(const formula* l, const formula* g);
|
||||
/// Check whether L(l) is a subset of L(!g).
|
||||
bool contained_neg(const formula* l, const formula* g);
|
||||
|
||||
/// Check whether L(l) = L(g).
|
||||
bool equal(const formula* l, const formula* g);
|
||||
|
|
@ -70,6 +74,32 @@ namespace spot
|
|||
/* Translation Maps */
|
||||
trans_map translated_;
|
||||
};
|
||||
|
||||
/// \brief Reduce a formula using language containment relationships.
|
||||
///
|
||||
/// The method is taken from table 4.1 in
|
||||
/// \verbatim
|
||||
///@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.
|
||||
/// \endverbatim
|
||||
formula* reduce_tau03(const formula* f, bool stronger = false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue