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:
parent
a2da5184b5
commit
2669df1c96
4 changed files with 46 additions and 4 deletions
|
|
@ -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[*]}'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue