\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{amsmath,amssymb,xspace,ltlfonts}

%% Semantically named commands for LTL operators:
\renewcommand \Box      {\LTLsquare}
\newcommand \Diam       {\LTLdiamond}
\newcommand \Next       {\LTLcircle}
\newcommand \SoFar      {\LTLsquareminus}
\newcommand \Once       {\LTLdiamondminus}
\newcommand \Prev       {\LTLcircleminus}
\newcommand \Before     {\LTLcircletilde}
%% Strict versions:
\newcommand \BoxHat     {\LTLsquarehat}
\newcommand \DiamHat    {\LTLdiamondhat}
\newcommand \SoFarHat   {\LTLsquareminushat}
\newcommand \OnceHat    {\LTLdiamondminushat}
%% Letter-like LTL operators:
\newcommand \Until      {\mathbin{\mathcal{U}\kern-.1em}}
\newcommand \WaitFor    {\mathbin{\mathcal{W}}}
\newcommand \Since      {\mathbin{\mathcal{S}\kern-.08em}}
\newcommand \BackTo     {\mathbin{\mathcal{B}}}
%% Strict versions:
\newcommand \UntilHat   {\mathbin{\LTLhat{\mathcal{U}}\kern-.1em}}
\newcommand \WaitForHat {\mathbin{\LTLhat{\mathcal{W}}}}
\newcommand \SinceHat   {\mathbin{\LTLhat{\mathcal{S}}\kern-.08em}}
\newcommand \BackToHat  {\mathbin{\LTLhat{\mathcal{B}}}}
%% FOL operators:
\newcommand \Not        {\mathopen{\neg}}
\renewcommand \And      {\mathbin{\wedge}}
\newcommand \Or         {\mathbin{\vee}}
\newcommand \Impl       {\mathbin{\rightarrow}}
\newcommand \Iff        {\mathbin{\leftrightarrow}}
\newcommand \A[1]       {{\forall #1 \,}}
\newcommand \E[1]       {{\exists #1 \,}}
\newcommand \Eu[1]      {{\exists! #1 \,}}
\newcommand \nE[1]      {{\nexists #1 \,}}
%% LTL syntactic sugar:
\newcommand \Entail     {\mathrel{\Rightarrow}}
\newcommand \EntIff     {\mathrel{\Leftrightarrow}}
%% Semantics and proof theory symbols:
\renewcommand \models   {\mathrel{\raisebox{-.1em}{$\vDash$}}}
\newcommand \nmodels    {\mathrel{\raisebox{-.1em}{$\nvDash$}}}
\newcommand \derives    {\mathrel{\raisebox{-.1em}{$\vdash$}}}
\newcommand \nderives   {\mathrel{\raisebox{-.1em}{$\nvdash$}}}
\newcommand \smodels    {\models\kern-.5em\models}
%% Other math-mode abbreviations:
\renewcommand \phi      {\varphi}
\newcommand \Jay        {\mathcal{J}}
\newcommand \Cee        {\mathcal{C}}
\newcommand \Ell        {\mathcal{L}}
%% Text-mode commands:
\newcommand \ltl        {\textsc{ltl}\xspace}

\begin{document}

\centerline{\sffamily\Large LTL Fonts Proof Sheet}

\bigskip

\noindent An \ltl formula $\phi$ is defined by the following grammar:
\[
\phi \mathrel{::=}
\begin{array}[t]{@{}l@{}}
p
\mid \Not \phi
\mid \phi \And \phi
\mid \phi \Or \phi
\mid \phi \Impl \phi
\mid \phi \Iff \phi
\mid \A{x} \phi
\mid \E{x} \phi \\
{} \mid \Box \phi
\mid \Diam \phi
\mid \Next \phi
\mid \phi \Until \phi
\mid \phi \WaitFor \phi
\mid \SoFar \phi
\mid \Once \phi
\mid \Prev \phi
\mid \Before \phi
\mid \phi \Since \phi
\mid \phi \BackTo \phi \text{,}
\end{array}
\]
where $p$ is an assertion and $x$ is a variable.

The truth of an \ltl formula $\phi$ at position $n$ of an infinite
sequence $\sigma$ of states is denoted $\sigma, n \models \phi$ and
defined, by induction on the structure of $\phi$, as follows:
\begin{itemize}
\item $\sigma, n \models p$, for $p$ an assertion, if $p$ holds at
  state $\sigma[n]$;
\item $\sigma, n \models \Not \phi$ if $\sigma, n \nmodels \phi$;
\item $\sigma, n \models \phi \And \psi$ if both $\sigma, n \models
  \phi$ and $\sigma, n \models \psi$;
\item $\sigma, n \models \phi \Or \psi$ if either $\sigma, n \models
  \phi$ or $\sigma, n \models \psi$, or both;
\item[] $\vdots$
\item $\sigma, n \models \Box \phi$ if $\sigma, i \models \phi$ for
  all $i \geq n$;
\item $\sigma, n \models \Diam \phi$ if there exists $i \geq n$ such
  that $\sigma, i \models \phi$;
\item $\sigma, n \models \Next \phi$ if $\sigma, (i+1) \models \phi$;
\item $\sigma, n \models \phi \Until \psi$ if there exists $i \geq n$
  such that $\sigma, i \models \psi$ and $\sigma, j \models \phi$ for
  all $j \in [n, j)$;
\item $\sigma, n \models \phi \WaitFor \psi$ if either $\sigma, n
  \models \phi \Until \psi$ or $\sigma, n \models \Box \phi$;
\item $\sigma, n \models \SoFar \phi$ if $\sigma, i \models \phi$ for
  all $i \in [0, n]$;
\item $\sigma, n \models \Diam \phi$ if there exists $i \in [0, n]$
  such that $\sigma, i \models \phi$;
\item $\sigma, n \models \Prev \phi$ if $n > 0$ and $\sigma, (i-1)
  \models \phi$;
\item $\sigma, n \models \Before \phi$ if either $n = 0$ or $\sigma,
  (i-1) \models \phi$;
\item $\sigma, n \models \phi \Since \psi$ if there exists $i \in [0,
  n]$ such that $\sigma, i \models \psi$ and $\sigma, j \models \phi$
  for all $j \in (j, n]$;
\item $\sigma, n \models \phi \BackTo \psi$ if either $\sigma, n
  \models \phi \Since \psi$ or $\sigma, n \models \SoFar \phi$.
\end{itemize}

\noindent The strict versions of the operators are defined as follows:
\begin{align*}
  \BoxHat \phi          &\equiv \Next \Box \phi             &
  \SoFarHat \phi        &\equiv \Before \SoFar \phi         \\
  \DiamHat \phi         &\equiv \Next \Diam \phi            &
  \OnceHat \phi         &\equiv \Prev \Once \phi            \\
  \phi \UntilHat \psi   &\equiv \Next (\phi \Until \psi)    &
  \phi \SinceHat \psi   &\equiv \Prev (\phi \Since \psi)    \\
  \phi \WaitForHat \psi &\equiv \Next (\phi \WaitFor \psi)  &
  \phi \BackToHat \psi  &\equiv \Before (\phi \BackTo \psi)
\end{align*}

\newpage

Some examples:
\begin{align*}
  & p \Impl \Diam q && \Box (p \Impl \Diam q) && \Box \Diam q \\
  & \Diam \Box q && (\Not q) \WaitFor p
  && \Box (p \Impl q \WaitForHat r) \\
  & \Box \E{u} \bigl( x = u \And \Next(x = u+1) \bigr)
  && \A{u} \Box \bigl( x = u \Impl \DiamHat (y = u) \bigr)
  && \E{b.} b \And \Box (b \Iff \Not \Next b) \And \Box (p \Impl b) \\
  & \Box (q \Impl \Once p)
  && p \Entail q_m \WaitFor q_{m-1} \dots q_1 \WaitFor q_0
  && p \Until q \sim \Diam (q \And \SoFarHat p)
\end{align*}

Operator pairs:
\begin{align*}
  & \Box \Box p && \Box \Diam p && \Box \Next p && \Box (p \Until q)
  && \Box (p \WaitFor q) \\
  & \Box \SoFar p && \Box \Once p && \Box \Prev p && \Box \Before p
  && \Box (p \Since q) && \Box (p \BackTo q) \\
%
  & \Diam \Box p && \Diam \Diam p && \Diam \Next p
  && \Diam (p \Until q) && \Diam (p \WaitFor q) \\
  & \Diam \SoFar p && \Diam \Once p && \Diam \Prev p
  && \Diam \Before p && \Diam (p \Since q) && \Diam (p \BackTo q) \\
%
  & \Next \Box p && \Next \Diam p && \Next \Next p
  && \Next (p \Until q) && \Next (p \WaitFor q) \\
  & \Next \SoFar p && \Next \Once p && \Next \Prev p
  && \Next \Before p && \Next (p \Since q) && \Next (p \BackTo q) \\
%
  & \Box p \Until \Box q && \Diam p \Until \Diam q
  && \Next p \Until \Next q && (p \Until q) \Until (r \Until s)
  && (p \WaitFor q) \Until (r \WaitFor s) \\
  & \SoFar p \Until \SoFar q && \Once p \Until \Once q
  && \Prev p \Until \Prev q && \Before p \Until \Before q
  && (p \Since q) \Until (r \Since s)
  && (p \BackTo q) \Until (r \BackTo s) \\
%
  & \Box p \WaitFor \Box q && \Diam p \WaitFor \Diam q
  && \Next p \WaitFor \Next q && (p \Until q) \WaitFor (r \Until s)
  && (p \WaitFor q) \WaitFor (r \WaitFor s) \\
  & \SoFar p \WaitFor \SoFar q && \Once p \WaitFor \Once q
  && \Prev p \WaitFor \Prev q && \Before p \WaitFor \Before q
  && (p \Since q) \WaitFor (r \Since s)
  && (p \BackTo q) \WaitFor (r \BackTo s) \\
%
  & \SoFar \Box p && \SoFar \Diam p && \SoFar \Next p
  && \SoFar (p \Until q) && \SoFar (p \WaitFor q) \\
  & \SoFar \SoFar p && \SoFar \Once p && \SoFar \Prev p
  && \SoFar \Before p && \SoFar (p \Since q)
  && \SoFar (p \BackTo q) \\
%
  & \Once \Box p && \Once \Diam p && \Once \Next p
  && \Once (p \Until q) && \Once (p \WaitFor q) \\
  & \Once \SoFar p && \Once \Once p && \Once \Prev p
  && \Once \Before p && \Once (p \Since q) && \Once (p \BackTo q) \\
%
  & \Prev \Box p && \Prev \Diam p && \Prev \Next p
  && \Prev (p \Until q) && \Prev (p \WaitFor q) \\
  & \Prev \SoFar p && \Prev \Once p && \Prev \Prev p
  && \Prev \Before p && \Prev (p \Since q) && \Prev (p \BackTo q) \\
%
  & \Before \Box p && \Before \Diam p && \Before \Next p
  && \Before (p \Until q) && \Before (p \WaitFor q) \\
  & \Before \SoFar p && \Before \Once p && \Before \Prev p
  && \Before \Before p && \Before (p \Since q)
  && \Before (p \BackTo q) \\
%
  & \Box p \Since \Box q && \Diam p \Since \Diam q
  && \Next p \Since \Next q && (p \Until q) \Since (r \Until s)
  && (p \WaitFor q) \Since (r \WaitFor s) \\
  & \SoFar p \Since \SoFar q && \Once p \Since \Once q
  && \Prev p \Since \Prev q && \Before p \Since \Before q
  && (p \Since q) \Since (r \Since s)
  && (p \BackTo q) \Since (r \BackTo s) \\
%
  & \Box p \BackTo \Box q && \Diam p \BackTo \Diam q
  && \Next p \BackTo \Next q && (p \Until q) \BackTo (r \Until s)
  && (p \WaitFor q) \BackTo (r \WaitFor s) \\
  & \SoFar p \BackTo \SoFar q && \Once p \BackTo \Once q
  && \Prev p \BackTo \Prev q && \Before p \BackTo \Before q
  && (p \Since q) \BackTo (r \Since s)
  && (p \BackTo q) \BackTo (r \BackTo s)
\end{align*}

Upper case versions of the font (right column):
\begin{align*}
  & \Box P \Impl \Next\Diam Q
  && \LTLsquareuc P \Impl \LTLcircleuc \LTLdiamonduc Q \\
  & \Box \E{u} \bigl( x = u \And \Next(x = u+1) \bigr)
  && \LTLsquareuc \E{u} \bigl( x = u \And \Next (x = u+1) \bigr)
\end{align*}


\end{document}
