tl: formul\ae -> formulas
* doc/tl/tl.tex: Use "formulas" everywhere in this file.
This commit is contained in:
parent
731561cdac
commit
eebbcac281
1 changed files with 33 additions and 32 deletions
|
|
@ -86,6 +86,7 @@
|
||||||
\newcommand{\0}{\texttt{0}}
|
\newcommand{\0}{\texttt{0}}
|
||||||
\newcommand{\1}{\texttt{1}}
|
\newcommand{\1}{\texttt{1}}
|
||||||
\newcommand{\STAR}[1]{\texttt{[*#1]}}
|
\newcommand{\STAR}[1]{\texttt{[*#1]}}
|
||||||
|
\newcommand{\FSTAR}[1]{\texttt{[:*#1]}}
|
||||||
\newcommand{\STARALT}{\texttt{*}}
|
\newcommand{\STARALT}{\texttt{*}}
|
||||||
\newcommand{\STARBIN}{\mathbin{\texttt{*}}}
|
\newcommand{\STARBIN}{\mathbin{\texttt{*}}}
|
||||||
\newcommand{\EQUAL}[1]{\texttt{[=#1]}}
|
\newcommand{\EQUAL}[1]{\texttt{[=#1]}}
|
||||||
|
|
@ -169,7 +170,7 @@
|
||||||
\newcommand\msamp[1]{#1}
|
\newcommand\msamp[1]{#1}
|
||||||
|
|
||||||
|
|
||||||
\def\manualtitle{Spot's Temporal Logic Formul\ae}
|
\def\manualtitle{Spot's Temporal Logic Formulas}
|
||||||
|
|
||||||
%% ---------- %%
|
%% ---------- %%
|
||||||
%% Document. %%
|
%% Document. %%
|
||||||
|
|
@ -226,7 +227,7 @@ starting at letter $\sigma(i)$.
|
||||||
|
|
||||||
\section{Usage in Model Checking}
|
\section{Usage in Model Checking}
|
||||||
|
|
||||||
The temporal formul\ae{} described in this document, should be
|
The temporal formulas described in this document, should be
|
||||||
interpreted on behaviors (or executions, or scenarios) of the system
|
interpreted on behaviors (or executions, or scenarios) of the system
|
||||||
to verify. In model checking we want to ensure that a formula (the
|
to verify. In model checking we want to ensure that a formula (the
|
||||||
property to verify) holds on all possible behaviors of the system.
|
property to verify) holds on all possible behaviors of the system.
|
||||||
|
|
@ -304,7 +305,7 @@ reserved keyword, or one that starts with a digit, is to use double quotes.
|
||||||
|
|
||||||
The reason we deal with leading \samp{F}, \samp{G}, and \samp{X}
|
The reason we deal with leading \samp{F}, \samp{G}, and \samp{X}
|
||||||
specifically in rule~\ref{rule:ap2} is that these are unary LTL
|
specifically in rule~\ref{rule:ap2} is that these are unary LTL
|
||||||
operators and we want to be able to write compact formul\ae{} like
|
operators and we want to be able to write compact formulas like
|
||||||
\samp{GFa} instead of the equivalent \samp{G(F(a))} or
|
\samp{GFa} instead of the equivalent \samp{G(F(a))} or
|
||||||
\samp{G~F~a}. If you want to name an atomic proposition \samp{GFa},
|
\samp{G~F~a}. If you want to name an atomic proposition \samp{GFa},
|
||||||
you will have to quote it as \samp{"GFa"}.
|
you will have to quote it as \samp{"GFa"}.
|
||||||
|
|
@ -320,7 +321,7 @@ applied to \samp{1}). On the other hand, having numbered versions of
|
||||||
a variable is pretty common, so it makes sense to favor this
|
a variable is pretty common, so it makes sense to favor this
|
||||||
interpretation.
|
interpretation.
|
||||||
|
|
||||||
If you are typing in formul\ae{} by hand, we suggest you name all your
|
If you are typing in formulas by hand, we suggest you name all your
|
||||||
atomic propositions in lower case, to avoid clashes with the uppercase
|
atomic propositions in lower case, to avoid clashes with the uppercase
|
||||||
operators.
|
operators.
|
||||||
|
|
||||||
|
|
@ -357,9 +358,9 @@ For any atomic proposition $a$, we have
|
||||||
In other words $a$ holds if and only if it is true in the first
|
In other words $a$ holds if and only if it is true in the first
|
||||||
configuration of $\sigma$.
|
configuration of $\sigma$.
|
||||||
|
|
||||||
\section{Boolean Operators (for Temporal Formul\ae{})}\label{sec:boolops}
|
\section{Boolean Operators (for Temporal Formulas)}\label{sec:boolops}
|
||||||
|
|
||||||
Two temporal formul\ae{} $f$ and $g$ can be combined using the
|
Two temporal formulas $f$ and $g$ can be combined using the
|
||||||
following Boolean operators:
|
following Boolean operators:
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
|
|
@ -377,14 +378,14 @@ following Boolean operators:
|
||||||
\end{center}
|
\end{center}
|
||||||
\footnotetext{The $\STARALT$-form of the conjunction operator
|
\footnotetext{The $\STARALT$-form of the conjunction operator
|
||||||
(allowing better compatibility with Wring and VIS) may only used in
|
(allowing better compatibility with Wring and VIS) may only used in
|
||||||
temporal formul\ae. Boolean expressions that occur inside SERE (see
|
temporal formulas. Boolean expressions that occur inside SERE (see
|
||||||
Section~\ref{sec:sere}) may not use this form because the $\STARALT$
|
Section~\ref{sec:sere}) may not use this form because the $\STARALT$
|
||||||
symbol is used as the Kleen star.}
|
symbol is used as the Kleen star.}
|
||||||
|
|
||||||
Additionally, an atomic proposition $a$ can be negated using the
|
Additionally, an atomic proposition $a$ can be negated using the
|
||||||
syntax \samp{$a$=0}, which is equivalent to \samp{$\NOT a$}. Also
|
syntax \samp{$a$=0}, which is equivalent to \samp{$\NOT a$}. Also
|
||||||
\samp{$a$=1} is equivalent to just \samp{a}. These two syntaxes help
|
\samp{$a$=1} is equivalent to just \samp{a}. These two syntaxes help
|
||||||
us read formul\ae{} written using Wring's syntax.
|
us read formulas written using Wring's syntax.
|
||||||
|
|
||||||
When using UTF-8 input, a \samp{=0} that follow a single-letter atomic
|
When using UTF-8 input, a \samp{=0} that follow a single-letter atomic
|
||||||
proposition may be replaced by a combining overline \uni{0305} or a
|
proposition may be replaced by a combining overline \uni{0305} or a
|
||||||
|
|
@ -477,7 +478,7 @@ using the following rewritings:
|
||||||
|
|
||||||
\section{Temporal Operators}\label{sec:ltlops}
|
\section{Temporal Operators}\label{sec:ltlops}
|
||||||
|
|
||||||
Given two temporal formul\ae{} $f$, and $g$, the following
|
Given two temporal formulas $f$, and $g$, the following
|
||||||
temporal operators can be used to construct another temporal formula.
|
temporal operators can be used to construct another temporal formula.
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
|
|
@ -662,7 +663,7 @@ $a$ is an atomic proposition.
|
||||||
Notes:
|
Notes:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item The semantics of $\ANDALT$ and $\AND$ coincide if both
|
\item The semantics of $\ANDALT$ and $\AND$ coincide if both
|
||||||
operands are Boolean formul\ae.
|
operands are Boolean formulas.
|
||||||
\item The SERE $f\FUSION g$ will never hold on $\eword$,
|
\item The SERE $f\FUSION g$ will never hold on $\eword$,
|
||||||
regardless of the value of $f$ and $g$. For instance
|
regardless of the value of $f$ and $g$. For instance
|
||||||
$a\STAR{}\FUSION b\STAR{}$ is actually equivalent to
|
$a\STAR{}\FUSION b\STAR{}$ is actually equivalent to
|
||||||
|
|
@ -710,7 +711,7 @@ it for output. $b$ must be a Boolean formula.
|
||||||
|
|
||||||
The following identities also hold if $j$ or $l$ are missing (assuming
|
The following identities also hold if $j$ or $l$ are missing (assuming
|
||||||
they are then equal to $\infty$). $f$ can be any SERE, while $b$,
|
they are then equal to $\infty$). $f$ can be any SERE, while $b$,
|
||||||
$b_1$, $b_2$ are assumed to be Boolean formul\ae.
|
$b_1$, $b_2$ are assumed to be Boolean formulas.
|
||||||
|
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
\0\STAR{0..\mvar{j}} &\equiv \eword &
|
\0\STAR{0..\mvar{j}} &\equiv \eword &
|
||||||
|
|
@ -1022,22 +1023,22 @@ instance using the following methods:
|
||||||
\newfootnotetext{1}{\url{http://www.tcs.hut.fi/Software/maria/tools/lbt/}}
|
\newfootnotetext{1}{\url{http://www.tcs.hut.fi/Software/maria/tools/lbt/}}
|
||||||
|
|
||||||
|
|
||||||
\section{Pure Eventualities and Purely Universal Formul\ae{}}
|
\section{Pure Eventualities and Purely Universal Formulas}
|
||||||
\label{sec:eventuniv}
|
\label{sec:eventuniv}
|
||||||
|
|
||||||
These two syntactic classes of formul\ae{} were introduced
|
These two syntactic classes of formulas were introduced
|
||||||
by~\citet{etessami.00.concur} to simplify LTL formul\ae{}. We shall
|
by~\citet{etessami.00.concur} to simplify LTL formulas. We shall
|
||||||
present the associated simplification rules in
|
present the associated simplification rules in
|
||||||
Section~\ref{sec:eventunivrew}, for now we only define these two
|
Section~\ref{sec:eventunivrew}, for now we only define these two
|
||||||
classes.
|
classes.
|
||||||
|
|
||||||
Pure eventual formul\ae{} describe properties that are left-append
|
Pure eventual formulas describe properties that are left-append
|
||||||
closed, i.e., any accepted (infinite) sequence can be prefixed by a
|
closed, i.e., any accepted (infinite) sequence can be prefixed by a
|
||||||
finite sequence and remain accepted. From an LTL standpoint, if
|
finite sequence and remain accepted. From an LTL standpoint, if
|
||||||
$\varphi$ is a left-append closed formula, then $\F\varphi \equiv
|
$\varphi$ is a left-append closed formula, then $\F\varphi \equiv
|
||||||
\varphi$.
|
\varphi$.
|
||||||
|
|
||||||
Purely universal formul\ae{} describe properties that are
|
Purely universal formulas describe properties that are
|
||||||
suffix-closed, i.e., if you remove any finite prefix of an accepted
|
suffix-closed, i.e., if you remove any finite prefix of an accepted
|
||||||
(infinite) sequence, it remains accepted. From an LTL standpoint if
|
(infinite) sequence, it remains accepted. From an LTL standpoint if
|
||||||
$\varphi$ is a suffix-closed formula, then $\G\varphi \equiv \varphi$.
|
$\varphi$ is a suffix-closed formula, then $\G\varphi \equiv \varphi$.
|
||||||
|
|
@ -1086,10 +1087,10 @@ rules:
|
||||||
\begin{captionbeside}{
|
\begin{captionbeside}{
|
||||||
The temporal hierarchy of \citet{manna.87.podc} with their
|
The temporal hierarchy of \citet{manna.87.podc} with their
|
||||||
associated classes of automata~\citep{cerna.03.mfcs}. The
|
associated classes of automata~\citep{cerna.03.mfcs}. The
|
||||||
formul\ae{} associated to each class are more than canonical
|
formulas associated to each class are more than canonical
|
||||||
examples: they show the normal forms under which any LTL formula
|
examples: they show the normal forms under which any LTL formula
|
||||||
of the class can be rewritten, assuming that $p,p_i,q,q_i$ denote
|
of the class can be rewritten, assuming that $p,p_i,q,q_i$ denote
|
||||||
subformul\ae{} involving only Boolean operators, $\X$, and past
|
subformulas involving only Boolean operators, $\X$, and past
|
||||||
temporal operators (Spot does not support the
|
temporal operators (Spot does not support the
|
||||||
latter). \label{fig:hierarchy}}[o]
|
latter). \label{fig:hierarchy}}[o]
|
||||||
\centering
|
\centering
|
||||||
|
|
@ -1149,7 +1150,7 @@ The symbols $\varphi_G$, $\varphi_S$, $\varphi_O$, $\varphi_P$,
|
||||||
$\varphi_R$ denote any formula belonging respectively to the
|
$\varphi_R$ denote any formula belonging respectively to the
|
||||||
Guarantee, Safety, Obligation, Persistence, or Recurrence classes.
|
Guarantee, Safety, Obligation, Persistence, or Recurrence classes.
|
||||||
$\varphi_F$ denotes a finite LTL formula (the unnamed class at the
|
$\varphi_F$ denotes a finite LTL formula (the unnamed class at the
|
||||||
intersection of Safety and Guarantee formul\ae{} on
|
intersection of Safety and Guarantee formulas on
|
||||||
Fig.~\ref{fig:hierarchy}). $v$ denotes any variable, $r$ any SERE,
|
Fig.~\ref{fig:hierarchy}). $v$ denotes any variable, $r$ any SERE,
|
||||||
$r_F$ any bounded SERE (no loops), and $r_I$ any unbounded SERE.
|
$r_F$ any bounded SERE (no loops), and $r_I$ any unbounded SERE.
|
||||||
|
|
||||||
|
|
@ -1217,10 +1218,10 @@ equivalent to $\G q\OR \G r$. Such a formula is usually said
|
||||||
The LTL rewritings described in this section are all implemented in
|
The LTL rewritings described in this section are all implemented in
|
||||||
the `\verb|ltl_simplifier|' class defined 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 formul\ae{} 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
|
||||||
your instance of `\verb|ltl_simplifier|' as much as possible. If you
|
your instance of `\verb|ltl_simplifier|' as much as possible. If you
|
||||||
write an algorithm that will simplify LTL formul\ae{}, we suggest you
|
write an algorithm that will simplify LTL formulas, we suggest you
|
||||||
accept an optional `\verb|ltl_simplifier|' argument, so that you can
|
accept an optional `\verb|ltl_simplifier|' argument, so that you can
|
||||||
benefit from an existing instance.
|
benefit from an existing instance.
|
||||||
|
|
||||||
|
|
@ -1278,7 +1279,7 @@ Section~\ref{sec:unabbbool}. Therefore it is never necessary to apply
|
||||||
`\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
|
||||||
recursive rewritings are not applied to Boolean subformul\ae{}. For
|
recursive rewritings are not applied to Boolean subformulas. For
|
||||||
instance calling `\verb|ltl_simplifier::negative_normal_form|` on
|
instance calling `\verb|ltl_simplifier::negative_normal_form|` on
|
||||||
$\NOT\F\G(a \XOR b)$ will produce $\G\F(((\NOT a)\AND(\NOT
|
$\NOT\F\G(a \XOR b)$ will produce $\G\F(((\NOT a)\AND(\NOT
|
||||||
b))\OR(a\AND b))$ if `\verb|nenoform_stop_on_boolean|' is unset, while
|
b))\OR(a\AND b))$ if `\verb|nenoform_stop_on_boolean|' is unset, while
|
||||||
|
|
@ -1296,10 +1297,10 @@ The goals in most of these simplification are to:
|
||||||
\item remove useless terms and operator.
|
\item remove useless terms and operator.
|
||||||
\item move the $\X$ operators to the front of the formula (e.g., $\X\G
|
\item move the $\X$ operators to the front of the formula (e.g., $\X\G
|
||||||
f$ is better than the equivalent $\G\X f$). This is because LTL
|
f$ is better than the equivalent $\G\X f$). This is because LTL
|
||||||
translators will usually want to rewrite LTL formul\ae{} in
|
translators will usually want to rewrite LTL formulas in
|
||||||
a kind of disjunctive form: $\displaystyle\bigvee_i
|
a kind of disjunctive form: $\displaystyle\bigvee_i
|
||||||
\left(\beta_i\land\X\psi_i\right)$ where $\beta_i$s are Boolean
|
\left(\beta_i\land\X\psi_i\right)$ where $\beta_i$s are Boolean
|
||||||
formul\ae{} and $\psi_i$s are LTL formul\ae{}. Moving $\X$ to the
|
formulas and $\psi_i$s are LTL formulas. Moving $\X$ to the
|
||||||
front therefore simplifies the translation.
|
front therefore simplifies the translation.
|
||||||
\item move the $\F$ operators to the front of the formula (e.g., $\F(f
|
\item move the $\F$ operators to the front of the formula (e.g., $\F(f
|
||||||
\OR g)$ is better than the equivalent $(\F f)\OR (\F g)$), but not
|
\OR g)$ is better than the equivalent $(\F f)\OR (\F g)$), but not
|
||||||
|
|
@ -1417,7 +1418,7 @@ The following more complicated rules are generalizations of $f\AND
|
||||||
f\OR \X(\F(f)\OR h\ldots) &\equiv \F(f) \OR \X(h\ldots)
|
f\OR \X(\F(f)\OR h\ldots) &\equiv \F(f) \OR \X(h\ldots)
|
||||||
\end{align*}
|
\end{align*}
|
||||||
The latter rule for $f\OR \X(\F(f)\OR h\ldots)$ is only applied if all
|
The latter rule for $f\OR \X(\F(f)\OR h\ldots)$ is only applied if all
|
||||||
$\F$-formul\ae{} can be removed from the argument of $\X$ with the
|
$\F$-formulas can be removed from the argument of $\X$ with the
|
||||||
rewriting. For instance $a \OR b \OR c\OR \X(\F(a\OR b)\OR \F(c)\OR \G d)$
|
rewriting. For instance $a \OR b \OR c\OR \X(\F(a\OR b)\OR \F(c)\OR \G d)$
|
||||||
will be rewritten to $\F(a \OR b \OR c) \OR \X\G d$ but
|
will be rewritten to $\F(a \OR b \OR c) \OR \X\G d$ but
|
||||||
$b \OR c\OR \X(\F(a\OR b)\OR \F(c)\OR \G d)$ will only become
|
$b \OR c\OR \X(\F(a\OR b)\OR \F(c)\OR \G d)$ will only become
|
||||||
|
|
@ -1467,7 +1468,7 @@ SERE.
|
||||||
\sere{b_1\FUSION r_1}\AND \sere{b_2\FUSION r_2} &\equiv \sere{b_1\ANDALT b_2}\FUSION\sere{r_1\AND r_2} \mathrlap{\quad\text{if~}\varepsilon\nVDash r_1\land\varepsilon\nVDash r_2}\\
|
\sere{b_1\FUSION r_1}\AND \sere{b_2\FUSION r_2} &\equiv \sere{b_1\ANDALT b_2}\FUSION\sere{r_1\AND r_2} \mathrlap{\quad\text{if~}\varepsilon\nVDash r_1\land\varepsilon\nVDash r_2}\\
|
||||||
\end{align*}
|
\end{align*}
|
||||||
|
|
||||||
Starred subformul\ae{} are rewritten in Star Normal
|
Starred subformulas are rewritten in Star Normal
|
||||||
Form~\cite{bruggeman.96.tcs} with:
|
Form~\cite{bruggeman.96.tcs} with:
|
||||||
\[r\STAR{} \equiv r^\circ\STAR{} \]
|
\[r\STAR{} \equiv r^\circ\STAR{} \]
|
||||||
where $r^\circ$ is recursively defined as follows:
|
where $r^\circ$ is recursively defined as follows:
|
||||||
|
|
@ -1581,14 +1582,14 @@ Here are basic the rewritings for the weak closure and its negation:
|
||||||
\nsere{r_1\OR r_2}&\equiV\nsere{r_1}\AND\nsere{r_2}
|
\nsere{r_1\OR r_2}&\equiV\nsere{r_1}\AND\nsere{r_2}
|
||||||
\end{align*}
|
\end{align*}
|
||||||
|
|
||||||
\subsection{Simplifications for Eventual and Universal Formul\ae}
|
\subsection{Simplifications for Eventual and Universal Formulas}
|
||||||
\label{sec:eventunivrew}
|
\label{sec:eventunivrew}
|
||||||
|
|
||||||
The class of \textit{pure eventuality} and \textit{purely universal}
|
The class of \textit{pure eventuality} and \textit{purely universal}
|
||||||
formul\ae{} are described in section~\ref{sec:eventuniv}.
|
formulas are described in section~\ref{sec:eventuniv}.
|
||||||
|
|
||||||
In the following rewritings, we use the following
|
In the following rewritings, we use the following
|
||||||
notation to distinguish the class of subformul\ae:
|
notation to distinguish the class of subformulas:
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{tabular}{rl}
|
\begin{tabular}{rl}
|
||||||
|
|
@ -1747,7 +1748,7 @@ only familiar with some of the operators.
|
||||||
\end{align*}}
|
\end{align*}}
|
||||||
|
|
||||||
These equivalences make it possible to build artificially complex
|
These equivalences make it possible to build artificially complex
|
||||||
formul\ae{}. For instance by applying the above rules to successively
|
formulas. For instance by applying the above rules to successively
|
||||||
rewrite $\U\to\M\to\R\to\U$ we get
|
rewrite $\U\to\M\to\R\to\U$ we get
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
f\U g &\equiv ((\X g)\M f)\OR g \\
|
f\U g &\equiv ((\X g)\M f)\OR g \\
|
||||||
|
|
@ -1772,7 +1773,7 @@ Syntactic implications are used for the rewriting of
|
||||||
Section~\ref{sec:syntimpl}. The rules presented bellow extend those
|
Section~\ref{sec:syntimpl}. The rules presented bellow extend those
|
||||||
first presented by~\citet{somenzi.00.cav}.
|
first presented by~\citet{somenzi.00.cav}.
|
||||||
|
|
||||||
A few words about implication first. For two PSL formul\ae{} $f$ and
|
A few words about implication first. For two PSL formulas $f$ and
|
||||||
$g$, we say that $f\implies g$ if $\forall\sigma,\,(\sigma\vDash
|
$g$, we say that $f\implies g$ if $\forall\sigma,\,(\sigma\vDash
|
||||||
f)\implies(\sigma\vDash g)$. For two SERE $f$ and
|
f)\implies(\sigma\vDash g)$. For two SERE $f$ and
|
||||||
$g$, we say that $f\implies g$ if $\forall\pi,\,(\pi\VDash
|
$g$, we say that $f\implies g$ if $\forall\pi,\,(\pi\VDash
|
||||||
|
|
@ -1800,7 +1801,7 @@ conclusion by chaining two rules: ``$\F f \simp \underbrace{\F
|
||||||
``$f \simp \F g$ \textit{if} $f\simp g$''.
|
``$f \simp \F g$ \textit{if} $f\simp g$''.
|
||||||
|
|
||||||
The rules from table~\ref{tab:syntimpl} should be completed by the
|
The rules from table~\ref{tab:syntimpl} should be completed by the
|
||||||
following cases, where $f_b$ and $g_b$ denote Boolean formul\ae{}:
|
following cases, where $f_b$ and $g_b$ denote Boolean formulas:
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{tabular}{rl}
|
\begin{tabular}{rl}
|
||||||
we have & if \\
|
we have & if \\
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue