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

@ -70,17 +70,19 @@ run 0 ../equals 'a & b ^ c | d' 'd | c ^ b & a'
run 0 ../equals 'FFG__GFF' 'F(F(G("__GFF")))'
# Trivial simplifications
run 0 ../equals '0*' '#e'
run 0 ../equals '#e*' '#e'
run 0 ../equals 'Exp**' 'Exp*'
run 0 ../equals '{0*}<>->a' '{#e}<>->a'
run 0 ../equals '{#e*}<>->a' '{#e}<>->a'
run 0 ../equals '{Exp**}<>->a' '{Exp*}<>->a'
run 0 ../equals 'FF(Exp)' 'F(Exp)'
run 0 ../equals 'GG(Exp)' 'G(Exp)'
run 0 ../equals 'F(0)' '0'
run 0 ../equals 'G(0)' '0'
run 0 ../equals 'F(1)' '1'
run 0 ../equals 'G(1)' '1'
run 0 ../equals 'F(#e)' '1'
run 0 ../equals 'G(#e)' '1'
run 0 ../equals 'F({#e}<>->1)' 'F({#e}<>->1)'
run 0 ../equals 'G({#e}<>->1)' 'G({#e}<>->1)'
run 0 ../equals 'F({1}<>->1)' '1'
run 0 ../equals 'G({1}<>->1)' '1'
run 0 ../equals '!1' '0'
run 0 ../equals '!0' '1'
run 0 ../equals '!!Exp' 'Exp'
@ -105,12 +107,16 @@ run 0 ../equals GGx Gx
run 0 ../equals GGGGGx Gx
run 0 ../equals '!!x' x
run 0 ../equals '!!!!!x' '!x'
run 0 ../equals '#e;x' x
run 0 ../equals 'x;#e' x
run 0 ../equals '#e;x;#e;#e' x
run 0 ../equals '#e;x;#e;x;#e' 'x;x'
run 0 ../equals 'x;x;x;#e;x;x' 'x;x;x;x;x'
run 0 ../equals 'x;0;x;x;x' '0'
run 0 ../equals '0*' '#e'
run 0 ../equals '#e*' '#e'
run 0 ../equals 'x;x;FF(0)' '0'
run 0 ../equals '{#e;x}<>->1' '{x}<>->1'
run 0 ../equals '{x;#e}<>->1' '{x}<>-> 1'
run 0 ../equals '{#e;x;#e;#e}<>->1' '{x}<>->1'
run 0 ../equals '{#e;x;#e;x;#e}<>->1' '{x;x}<>->1'
run 0 ../equals '{x;x;x;#e;x;x}<>->1' '{x;x;x;x;x}<>->1'
run 0 ../equals '{x;0;x;x;x}<>->1' '0'
run 0 ../equals '{x;0;x;x;x}[]->1' '1'
run 0 ../equals '{0*;1}<>->x' 'x'
run 0 ../equals '{#e*;1}<>->x' 'x'
run 0 ../equals '{x;x}<>->FF(0)' '0'
run 0 ../equals '{x;x}<>->GX(1)' '{x;x}<>->1'
run 0 ../equals '{x;x}[]->GX(1)' '1'
run 0 ../equals '{x;x}[]->FF(0)' '{x;x}[]->0'