more tests for rational operator simplifications.

* src/ltltest/nenoform.test, src/ltltest/equals.test,
src/ltltest/consterm.test: Update tests for rational ops.
* src/ltltest/consterm.cc: Use parse_ratexp().
* src/ltlast/binop.cc: Fix simplification rules for []-> and
<>->.
This commit is contained in:
Alexandre Duret-Lutz 2010-02-08 12:48:15 +01:00
parent 9aebb80e08
commit fc7c2943de
5 changed files with 42 additions and 26 deletions

View file

@ -258,17 +258,24 @@ namespace spot
case EConcat:
// - 0 <>-> Exp = 0
// - 1 <>-> Exp = Exp
if (first == constant::false_instance())
return second;
// - Exp <>-> 0 = 0
if (first == constant::true_instance())
return second;
if (first == constant::false_instance())
{
second->destroy();
return first;
}
if (second == constant::false_instance())
{
first->destroy();
return second;
}
break;
case UConcat:
// - 0 []-> Exp = 1
// - 1 []-> Exp = Exp
// - Exp []-> 1 = 1
if (first == constant::false_instance())
return constant::true_instance();
if (first == constant::true_instance())
@ -276,6 +283,11 @@ namespace spot
second->destroy();
return first;
}
if (second == constant::true_instance())
{
first->destroy();
return second;
}
break;
}