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:
parent
9aebb80e08
commit
fc7c2943de
5 changed files with 42 additions and 26 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue