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

@ -1347,6 +1347,10 @@ $\OR$):
f \OR ((\X f) \R g) &\equiv g \W f \\
f \AND ((\X f) \U g) &\equiv g \M f &
f \OR ((\X f) \M g) &\equiv g \U f \\
f \AND (g \OR \X(g \R f)) &\equiv g \R f &
f \OR (g \AND \X(g \W f)) &\equiv g \W f \\
f \AND (g \OR \X(g \M f)) &\equiv g \M f &
f \OR (g \AND \X(g \U f)) &\equiv g \U f \\
\end{align*}
The above rules are applied even if more terms are presents in the
operator's arguments. For instance $\F\G(a)\AND \G(b) \AND \F\G(c) \AND