76/129
\begin{frame}
  \frametitle{Church Pairs}
  
  \begin{block}{}
    Church encoding of pairs: $\mathsf{pair} = \lambda x.\; \lambda y.\;\lambda f.f x y$.
    \pause
    In CL:
    \begin{align*}
      \mathsf{pair} &= [xyf]\; f\;x\;y\\
      \mathsf{fst} &= [p]\; p\; K\\
      \mathsf{snd} &= [p]\; p\; (KI)
    \end{align*}    
  \end{block}
  \pause
  \medskip
  We have:
  \begin{align*}
    \mathsf{pair}\; s\; t
      &\pause= ([xyf]\; f\;x\;y) \; s\; t
      \pause\to^* ([f]\; f\;x\;y) [x \mapsto s,\; y \mapsto t] \pause \approx [f]\;f\;s\;t\\
    \pause
    \mathsf{fst}\; (\mathsf{pair}\; s\; t) 
      &\pause\to^* ([p]\;p\;K) \; ([f]\; f\;s\;t)
      \pause\to^* ([f]\; f\;s\;t) K
      \pause\to^* K\;s\;t
      \pause\to^* s\\
    \pause
    \mathsf{snd}\; (\mathsf{pair}\; s\; t) 
      &\pause\to^* ([p]\;p\;(KI)) \; ([f]\; f\;s\;t)
      \pause\to^* ([f]\; f\;s\;t) (KI)
      \pause\to^* KI\;s\;t
      \pause\to^* t
  \end{align*}
  \pause
  \medskip
  Exercise:\\[-2ex]
  \begin{itemize}
    \item compute \quad $[xyf]\; f\;x\;y$,\quad $[p]\; p\; K$, \quad and \quad $[p]\; p\; (KI)$.
    \item devise an encoding of triples
  \end{itemize}
\end{frame}