Add support for W (weak until) and M (strong release) operators.
* src/ltlast/binop.cc, src/ltlast/binop.cc: Add support for these new operators. * src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll: Parse them. * src/ltltest/reduccmp.test: Add new tests for W and M. * src/ltlvisit/basicreduce.cc, src/ltlvisit/contain.cc, src/ltlvisit/lunabbrev.cc, src/ltlvisit/nenoform.cc, src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh, src/ltlvisit/reduce.cc, src/ltlvisite/simpfg.cc, src/ltlvisit/simpfg.hh, src/ltlvisit/syntimpl.cc, src/ltlvisit/tostring.cc, src/tgba/formula2bdd.cc, src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc: Add support for W and M. * src/tgbatest/ltl2neverclaim.test: Test never claim output using LBTT, this is more thorough. Also we cannot use -N any more in the spotlbtt.test. * src/tgbatests/ltl2tgba.cc: Define M and W for ELTL. * src/tgbatest/ltl2neverclaim.test: Test W and M, and use -DS instead of -N, because lbtt-translate does not want to translate these operators for tools that masquerade as Spin.
This commit is contained in:
parent
35a57c6dff
commit
0fc0ea3166
25 changed files with 584 additions and 123 deletions
|
|
@ -40,16 +40,26 @@ for x in ../reduccmp ../reductaustr; do
|
|||
# Syntactic reduction
|
||||
run 0 $x 'a & (!b R !a)' 'false'
|
||||
run 0 $x '(!b R !a) & a' 'false'
|
||||
|
||||
run 0 $x 'a & (!b R !a) & c' 'false'
|
||||
run 0 $x 'c & (!b R !a) & a' 'false'
|
||||
|
||||
run 0 $x 'a & (!b M !a)' 'false'
|
||||
run 0 $x '(!b M !a) & a' 'false'
|
||||
run 0 $x 'a & (!b M !a) & c' 'false'
|
||||
run 0 $x 'c & (!b M !a) & a' 'false'
|
||||
|
||||
run 0 $x 'a & (b U a)' 'a'
|
||||
run 0 $x '(b U a) & a' 'a'
|
||||
run 0 $x 'a | (b U a)' '(b U a)'
|
||||
run 0 $x '(b U a) | a' '(b U a)'
|
||||
run 0 $x 'a U (b U a)' '(b U a)'
|
||||
|
||||
run 0 $x 'a & (b W a)' 'a'
|
||||
run 0 $x '(b W a) & a' 'a'
|
||||
run 0 $x 'a | (b W a)' '(b W a)'
|
||||
run 0 $x '(b W a) | a' '(b W a)'
|
||||
run 0 $x 'a W (b W a)' '(b W a)'
|
||||
|
||||
run 0 $x 'a & (b U a) & a' 'a'
|
||||
run 0 $x 'a & (b U a) & a' 'a'
|
||||
run 0 $x 'a | (b U a) | a' '(b U a)'
|
||||
|
|
@ -101,6 +111,9 @@ for x in ../reduccmp ../reductaustr; do
|
|||
# reason as above.
|
||||
run 0 $x 'F(a & GFb & c)' 'F(a & GFb & c)'
|
||||
run 0 $x 'G(a | GFb | c)' 'G(a | c) | GFb'
|
||||
|
||||
run 0 $x 'Gb W a' 'Gb|a'
|
||||
run 0 $x 'Fb M Fa' 'Fa & Fb'
|
||||
;;
|
||||
esac
|
||||
|
||||
|
|
@ -113,5 +126,4 @@ for x in ../reduccmp ../reductaustr; do
|
|||
run 0 $x 'GFGa' 'FGa'
|
||||
run 0 $x 'b R Ga' 'Ga'
|
||||
run 0 $x 'b R FGa' 'FGa'
|
||||
|
||||
done
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue