Simplify {b && r[*]} as {b && r}; likewise for [->] and [=].
* src/ltlvisit/simplify.cc (simplify_visitor): Do it. * src/ltltest/reduccmp.test: Add more tests. * doc/tl/tl.tex: Document it.
This commit is contained in:
parent
e61c01b826
commit
77084747b9
3 changed files with 317 additions and 216 deletions
|
|
@ -1192,6 +1192,7 @@ The goals in most of these simplification are to:
|
|||
These simplifications are enabled with
|
||||
\verb|ltl_simplifier_options::reduce_basics|'.
|
||||
|
||||
\subsubsection{Basic Simplifications for Temporal Operators}
|
||||
|
||||
The following are simplification rules for unary operators (applied
|
||||
from left to right, as usual):
|
||||
|
|
@ -1264,6 +1265,31 @@ in the OR arguments:
|
|||
&\equiv \F(f_1\OR \ldots \OR f_n \OR \G\F(g_1\OR \ldots \OR g_m)) \\
|
||||
\end{align*}
|
||||
|
||||
\subsubsection{Basic Simplifications for SERE Operators}
|
||||
|
||||
% Cite Symbolic computation of PSL.
|
||||
|
||||
The following simplification rules are used for the $n$-ary operators
|
||||
$\ANDALT$, $\AND$, and $\OR$, and are of course commutative.
|
||||
|
||||
\begin{align*}
|
||||
b \ANDALT r\STAR{\mvar{i}..\mvar{j}} &\equiv
|
||||
\begin{cases}
|
||||
b \ANDALT r &\text{if~} i\le 1\le j\\
|
||||
\0 &\text{else}\\
|
||||
\end{cases}\\
|
||||
b \ANDALT r\EQUAL{\mvar{i}..\mvar{j}} &\equiv
|
||||
\begin{cases}
|
||||
b \ANDALT r &\text{if~} i\le 1\le j\\
|
||||
\0 &\text{else}\\
|
||||
\end{cases}\\
|
||||
b \ANDALT r\GOTO{\mvar{i}..\mvar{j}} &\equiv
|
||||
\begin{cases}
|
||||
b \ANDALT r &\text{if~} i\le 1\le j\\
|
||||
\0 &\text{else}\\
|
||||
\end{cases}\\
|
||||
\end{align*}
|
||||
|
||||
\subsection{Simplifications for Eventual and Universal Formul\ae}
|
||||
\label{sec:eventunivrew}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue