unabbreviate: enable removal of R
This implies learning alternative rules for G, and W as well, since those would use R. Fixes #103. Suggested by Joachim Klein. * src/ltlvisit/unabbrev.cc, src/ltlvisit/unabbrev.hh: Implement the new rules. * doc/tl/tl.tex: Document the rules. * src/tests/unabbrevwm.test: Test them. * src/bin/ltlfilt.cc, NEWS: Mention that --unabbreviate accepts R.
This commit is contained in:
parent
0b8c418c94
commit
308833788b
6 changed files with 110 additions and 22 deletions
|
|
@ -1262,19 +1262,25 @@ occurrences of $\XOR$, $\EQUIV$ and $\IMPLIES$.
|
|||
``\texttt{\^{}e}" & f\XOR g &\equiv& (f\AND\NOT g)\OR (g\AND\NOT f)\\
|
||||
``\texttt{\^{}}"\text{~without~}``\texttt{e}" & f\XOR g &\equiv& \NOT(f\EQUIV g)\\
|
||||
``\texttt{F}" & \F f&\equiv& \1\U f\\
|
||||
``\texttt{G}" & \G f&\equiv& \0\R f \\
|
||||
``\texttt{W}" & f \W g&\equiv& g \R (g \OR f)\\
|
||||
``\texttt{M}" & f \M g&\equiv& g \U (g \AND f)
|
||||
``\texttt{G}"\text{~without~}``\texttt{R}" & \G f&\equiv& \0\R f \\
|
||||
``\texttt{GR}"\text{~without~}``\texttt{W}" & \G f&\equiv& f \W \0 \\
|
||||
``\texttt{GRW}" & \G f&\equiv& \NOT\F\NOT f \\
|
||||
``\texttt{M}" & f \M g&\equiv& g \U (g \AND f) \\
|
||||
``\texttt{R}"\text{~without~}``\texttt{W}" & f \R g&\equiv& g\W (f \AND g)\\
|
||||
``\texttt{RW}" & f \R g&\equiv& g\U ((f \AND g) \OR \G g) \\
|
||||
``\texttt{W}"\text{~without~}``\texttt{R}" & f \W g&\equiv& g \R (g \OR f)\\
|
||||
``\texttt{WR}" & f \W g&\equiv& f \U (g \OR \G f)\\
|
||||
\end{array}
|
||||
\]
|
||||
|
||||
Among all the possible rewritings (see Appendix~\ref{sec:ltl-equiv})
|
||||
for $\W$ and $\M$, those two were chosen because they are easier to
|
||||
translate in a tableau construction~\cite[Fig.~11]{duret.11.vecos}.
|
||||
the default rules for $\R$, $\W$ and $\M$, those were chosen because
|
||||
they are easier to translate in a tableau
|
||||
construction~\cite[Fig.~11]{duret.11.vecos}.
|
||||
|
||||
Besides the `\verb=unabbreviate()=' function, there is also a class
|
||||
`\verb=unabbreviator()= that implement the same functionality, but
|
||||
maintain a cache of abbreviated subformulas. This is preferable if
|
||||
`\verb=unabbreviator()= that implements the same functionality, but
|
||||
maintains a cache of abbreviated subformulas. This is preferable if
|
||||
you plan to abbreviate many formulas sharing identical subformulas.
|
||||
|
||||
\section{LTL simplifier}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue