tl: reorganize section 5
* doc/tl/tl.tex: Here.
This commit is contained in:
parent
ce9b2369ed
commit
47824bead6
1 changed files with 38 additions and 30 deletions
|
|
@ -1248,8 +1248,39 @@ equivalent to $\G q\OR \G r$. Such a formula is usually said
|
||||||
|
|
||||||
\chapter{Rewritings}
|
\chapter{Rewritings}
|
||||||
|
|
||||||
The LTL rewritings described in this section are all implemented in
|
\section{Unabbreviations}\label{sec:unabbrev}
|
||||||
the `\verb|ltl_simplifier|' class defined in
|
|
||||||
|
The `\verb=unabbreviate()=' function can apply the following rewriting
|
||||||
|
rules when passed a string denoting the list of rules to apply. For
|
||||||
|
instance passing the string \texttt{"\^{}ei"} will rewrite all
|
||||||
|
occurrences of $\XOR$, $\EQUIV$ and $\IMPLIES$.
|
||||||
|
|
||||||
|
\[
|
||||||
|
\begin{array}{l@{\qquad}r@{\;}c@{\;}l}
|
||||||
|
``\texttt{i}" & f\IMPLIES g &\equiv& (\NOT f)\OR g\\
|
||||||
|
``\texttt{e}" & f\EQUIV g &\equiv& (f\AND g)\OR ((\NOT g)\AND(\NOT f))\\
|
||||||
|
``\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)
|
||||||
|
\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}.
|
||||||
|
|
||||||
|
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
|
||||||
|
you plan to abbreviate many formulas sharing identical subformulas.
|
||||||
|
|
||||||
|
\section{LTL simplifier}
|
||||||
|
|
||||||
|
The LTL rewritings described in the next three sections are all
|
||||||
|
implemented in the `\verb|ltl_simplifier|' class defined in
|
||||||
\texttt{spot/ltlvisit/simplify.hh}. This class implements several
|
\texttt{spot/ltlvisit/simplify.hh}. This class implements several
|
||||||
caches in order to quickly rewrite formulas that have already been
|
caches in order to quickly rewrite formulas that have already been
|
||||||
rewritten previously. For this reason, it is suggested that you reuse
|
rewritten previously. For this reason, it is suggested that you reuse
|
||||||
|
|
@ -1305,10 +1336,11 @@ $\NOT$ operator.
|
||||||
\NOT(f \IMPLIES g) & \equiv f \AND \NOT g
|
\NOT(f \IMPLIES g) & \equiv f \AND \NOT g
|
||||||
\end{align*}
|
\end{align*}
|
||||||
|
|
||||||
Note that the above rules include those from
|
Note that the above rules include the ``unabbreviation'' of operators
|
||||||
`\verb=unabbreviate_logic_visitor=` described in
|
``$\EQUIV$'', ``$\IMPLIES$'', and ``$\XOR$'', correspondings to the
|
||||||
Section~\ref{sec:unabbbool}. Therefore it is never necessary to apply
|
rules \texttt{"ei\^"} of function `\verb=unabbreviate()= as described
|
||||||
`\verb=unabbreviate_logic_visitor=` before or after
|
in Section~\ref{sec:unabbrev}. Therefore it is never necessary to
|
||||||
|
apply these abbreviations before or after
|
||||||
`\verb|ltl_simplifier::negative_normal_form|`.
|
`\verb|ltl_simplifier::negative_normal_form|`.
|
||||||
|
|
||||||
If the option `\verb|nenoform_stop_on_boolean|' is set, the above
|
If the option `\verb|nenoform_stop_on_boolean|' is set, the above
|
||||||
|
|
@ -1319,30 +1351,6 @@ b))\OR(a\AND b))$ if `\verb|nenoform_stop_on_boolean|' is unset, while
|
||||||
it will produce $\G\F(\NOT(a \XOR b))$ if
|
it will produce $\G\F(\NOT(a \XOR b))$ if
|
||||||
`\verb|nenoform_stop_on_boolean|' is set.
|
`\verb|nenoform_stop_on_boolean|' is set.
|
||||||
|
|
||||||
\section{Unabbreviations}
|
|
||||||
|
|
||||||
The `\verb=unabbreviate()=' function can apply the following rewriting
|
|
||||||
rules when passed a string denoting the list of rules to apply. For
|
|
||||||
instance passing the string \texttt{"\^{}ei"} will rewrite all
|
|
||||||
occurrences of $\XOR$, $\EQUIV$ and $\IMPLIES$.
|
|
||||||
|
|
||||||
\[
|
|
||||||
\begin{array}{lrcl}
|
|
||||||
``\texttt{i}" & f\IMPLIES g &\equiv& (\NOT f)\OR g\\
|
|
||||||
``\texttt{e}" & f\EQUIV g &\equiv& (f\AND g)\OR ((\NOT g)\AND(\NOT f))\\
|
|
||||||
``\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)
|
|
||||||
\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}.
|
|
||||||
|
|
||||||
\section{Simplifications}
|
\section{Simplifications}
|
||||||
|
|
||||||
The `\verb|ltl_simplifier::simplify|' method performs several kinds of
|
The `\verb|ltl_simplifier::simplify|' method performs several kinds of
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue