Check that reductions are legitimates with containment.

* src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh
(are_equivalent): Export this function from the cache.
* src/ltltest/reduc.cc, src/ltltest/equals.cc: Use
are_equivalent() to check that the reductions are legitimate.
This commit is contained in:
Alexandre Duret-Lutz 2011-10-30 18:28:47 +01:00
parent cd9369c186
commit 7f7627bf22
4 changed files with 100 additions and 55 deletions

View file

@ -70,7 +70,8 @@ namespace spot
ltl_simplifier(ltl_simplifier_options& opt);
~ltl_simplifier();
/// Simplify the formula \a f (using options supplied to the constructor).
/// Simplify the formula \a f (using options supplied to the
/// constructor).
formula* simplify(const formula* f);
/// Build the negative normal form of formula \a f.
@ -108,7 +109,15 @@ namespace spot
/// If \a right is true, this method returns whether
/// \a f implies !\a g. If \a right is false, this returns
/// whether !\a g implies \a g.
bool syntactic_implication_neg(const formula* f, const formula* g, bool right);
bool syntactic_implication_neg(const formula* f, const formula* g,
bool right);
/// \brief check whether two formulae are equivalent.
///
/// This costly check performs up to four translations,
/// two products, and two emptiness checks.
bool are_equivalent(const formula* f, const formula* g);
private:
ltl_simplifier_cache* cache_;