Commit 9633dd6e authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

Speedup syntactic implication by not comparing literals using bdd.

* src/ltlvisit/simplify.cc
(ltl_simplifier_cache::syntactic_implication): If the lhs and rhs are
literals that are not equal, return false immediately.
parent a80a5137
......@@ -4103,6 +4103,18 @@ namespace spot
if (g == constant::true_instance()
|| f == constant::false_instance())
return true;
if (g == constant::false_instance()
|| f == constant::true_instance())
return false;
// Often we compare a literals (an atomic_prop or its negation)
// to another literal. The result is necessarily false. To be
// true, the two literals would have to be equal, be we have
// already checked that.
if (f->is_in_nenoform() && g->is_in_nenoform()
&& (is_atomic_prop(f) || is_unop(f, unop::Not))
&& (is_atomic_prop(g) || is_unop(g, unop::Not)))
return false;
// Cache lookup
{
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment