Commit 5755a531 authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

Fix a long-standing bug in the stronger rule for R and its recent

clone for M.

* src/ltlvisit/contain.cc (reduce_tau03_visitor): Remove
the stronger rules for R and M.  They were wrong.
* src/ltltest/reduccmp.test: Test a simpple counterexample.
parent 1a912089
2010-04-15 Alexandre Duret-Lutz <adl@lrde.epita.fr>
Fix a long-standing bug in the stronger rule for R and its recent
clone for M.
* src/ltlvisit/contain.cc (reduce_tau03_visitor): Remove
the stronger rules for R and M. They were wrong.
* src/ltltest/reduccmp.test: Test a simpple counterexample.
2010-04-15 Alexandre Duret-Lutz <adl@lrde.epita.fr>
More simplifications rules for M.
......
......@@ -143,6 +143,8 @@ for x in ../reduccmp ../reductaustr; do
;;
esac
run 0 $x 'a R (b W G(c))' 'a R (b W G(c))' #not reduced
# Syntactic implication
run 0 $x '(a & b) R (a R c)' '(a & b)R c'
run 0 $x 'a R ((a & b) R c)' '(a & b)R c'
......
......@@ -228,14 +228,8 @@ namespace spot
}
break;
case binop::R:
// if (a R b) => b, then keep b !
if (stronger && lcc->contained(b, bo))
{
a->destroy();
result_ = b;
}
// if b => a, then a R b = b.
else if ((!stronger) && lcc->contained(b, a))
if (lcc->contained(b, a))
{
a->destroy();
result_ = b;
......@@ -252,14 +246,8 @@ namespace spot
}
break;
case binop::M:
// if (a M b) => b, then keep b !
if (stronger && lcc->contained(b, bo))
{
a->destroy();
result_ = b;
}
// if b => a, then a M b = b.
else if ((!stronger) && lcc->contained(b, a))
if (lcc->contained(b, a))
{
a->destroy();
result_ = b;
......
Markdown is supported
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