Combine Boolean formulae in Fusion arguments.

* src/ltlast/multop.cc (multop::instance): Implement
the rewriting.   "a🅱️c[*]:d:e" becomes "{{a&&b}&c[*]}:{d&&e}".
* src/ltlast/multop.hh: Document it.
* src/ltltest/equals.test, src/ltltest/kind.test: Add test cases.
This commit is contained in:
Alexandre Duret-Lutz 2011-02-23 16:24:45 +01:00
parent a2da5184b5
commit 2669df1c96
4 changed files with 46 additions and 4 deletions

View file

@ -50,10 +50,6 @@ run 0 ../equals 'a & a & true' 'a'
run 0 ../equals 'a & false & a' 'false'
run 0 ../equals 'a | false | a' 'a'
run 0 ../equals 'true | a | a' 'true'
run 0 ../equals '{a*}!' '{a*}<>->1'
run 0 ../equals '{a -> b} (c)' '(a->b)->c'
run 0 ../equals '{a & !b}!' 'a & !b'
run 0 ../equals '{a;[*0]}|->!Xb' 'a -> !Xb'
# other formulae which are not
run 1 ../equals 'a' 'b'
@ -144,6 +140,13 @@ run 0 ../equals '{x;x}[]->GX(1)' '1'
run 0 ../equals '{x;x}[]->FF(0)' '{x;x}[]->0'
run 0 ../equals '{x;x}[]->y' '{x;x}|->y'
run 0 ../equals '{x;x}[]->y' '{x;x}(y)'
run 0 ../equals '{a*}!' '{a*}<>->1'
run 0 ../equals '{a -> b} (c)' '(a->b)->c'
run 0 ../equals '{a & !b}!' 'a & !b'
run 0 ../equals '{a;[*0]}|->!Xb' 'a -> !Xb'
run 0 ../equals '{{a;b}:b:c:d*:e:f}!' '{{a;b}:{{b && c } & d[*]}:{e && f}}!'
run 0 ../equals '{a:b:c}|->!Xb' '(a&b&c) -> !Xb'
run 0 ../equals '{a:b:c*}|->!Xb' '{(a&&b)&c*}|-> !Xb'
run 0 ../equals '{a[*0]}' '{[*0]}'
run 0 ../equals '{a[*..]}' '{a[*]}'