\documentclass{article}
\input{../../lib.sty}

\title{\texttt{CompositionMeasure for RenyiDivergence}}
\author{Michael Shoemate}
\date{}

\begin{document}

\maketitle

\contrib
Proves soundness of the implementation of \rustdoc{combinators/sequential_composition/trait}{CompositionMeasure} 
for \texttt{RenyiDivergence} in \asOfCommit{mod.rs}{f5bb719}.

\section{Hoare Triple}
\subsection*{Precondition}
\subsubsection*{Compiler-Verified}
Types matching pseudocode.


\subsubsection*{Caller-Verified}
None

\subsection*{Pseudocode}
\lstinputlisting[language=Python,firstline=2,escapechar=|]{./pseudocode/CompositionMeasure_for_RenyiDivergence.py}

\subsection*{Postcondition}
\begin{theorem}
  \texttt{composability} returns \texttt{Ok(out)} if the composition of a vector of privacy parameters \texttt{d\_mids} 
  is bounded above by \texttt{self.compose(d\_mids)} under \texttt{adaptivity} adaptivity and \texttt{out}-composability.
  Otherwise returns an error.
\end{theorem}

\begin{proof}
  The new curve constructed on line \ref{line:curve} composes all epsilon parameters at a given fixed \texttt{alpha}.
  By the postcondition of \rustdoc{traits/trait}{InfAdd} we have that for any choice of \texttt{alpha}, $\sum_i \texttt{d\_mid}_i(\texttt{alpha}) \le \texttt{compose(d\_mids)}(\alpha)$.

  \begin{center}
    \begin{tabular}{ r | l l }
      Adaptivity & Sequential & Concurrent \\ 
      \hline
      Non-Adaptive & Proposition~1\cite{mironov2017renyi} & Theorem~2\cite{lyu2022interactive} \\  
      Adaptive & - & - \\
      Fully-Adaptive & Theorem~4.3\cite{feldman2022individual} & Theorem~1.22\cite{vadhan2021concurrent}
    \end{tabular}

    This table is reflected in the implementation of \texttt{composability} on line~\ref{line:composability}.
  \end{center}
  
\end{proof}

\bibliographystyle{alpha}
\bibliography{ref}

\end{document}