Trivially reduce [*];f to [*] if f accepts the empty word.

* src/ltlast/multop.cc (instance): Implement the reduction.
* src/ltlast/multop.hh, doc/tl/tl.tex: Document it.
* src/ltltest/equals.test: Test it.
This commit is contained in:
Alexandre Duret-Lutz 2012-04-24 18:36:20 +02:00
parent e06b3b7974
commit 4a775a17a3
4 changed files with 47 additions and 5 deletions

View file

@ -162,6 +162,8 @@ run 0 ../equals '{c*:1:{a;b}:1}!' '{c*:{a;b}}!'
run 1 ../equals '{(a;!a)*:(a;!a)*:b}!' '{(a;!a)*:b}!'
# make sure 1:a* is not reduced to a*.
run 1 ../equals '{(1:a*);b}!' '{a*;b}!'
run 0 ../equals '{z;a*;b*;*;c;d;*;b*;e;a*;*;b*}' '{z;[*];c;d;[*];e;[*]}'
run 0 ../equals '{((a;b)|[*0]);[*];c}!' '{[*];c}!'
run 0 ../equals '{a[*0]}' '{[*0]}'
run 0 ../equals '{a[*..]}' '{a[*]}'