Reduce 'a|(b&X(b U a))' to 'b U a', plus three simular rules.

* src/ltlast/multop.hh, src/ltlast/multop.cc (all_but): New method
used to simplify the removal of one element of a multop.
* src/ltlvisit/simplify.cc: Implement the new rewriting rules.
* doc/tl/tl.tex: Document them.
* src/ltltest/reduccmp.test: Test them.
This commit is contained in:
Alexandre Duret-Lutz 2012-02-13 19:14:33 +01:00
parent bb56c26d1c
commit 955fc041ca
5 changed files with 209 additions and 47 deletions

View file

@ -198,6 +198,10 @@ for x in ../reduccmp ../reductaustr; do
run 0 $x 'a & (Xa W b) & (Xa U c)' '(b R a) & (c M a)'
run 0 $x 'a & (Xa W b) & XGa' 'Ga'
run 0 $x 'a & (Xa U b) & XGa' '(b M a) & Ga' # Fb & Ga ?
run 0 $x 'a|(c&b&X((b&c) U a))|d' '((b&c) U a)|d'
run 0 $x 'a|(c&X((b&c) W a)&b)|d' '((b&c) W a)|d'
run 0 $x 'a&(c|b|X((b|c) M a))&d' '((b|c) M a)&d'
run 0 $x 'a&(c|X((b|c) R a)|b)&d' '((b|c) R a)&d'
# Syntactic implication
run 0 $x '(a & b) R (a R c)' '(a & b)R c'