73/296
\begin{frame}
  \frametitle{Implication of Functional Dependencies}

  \begin{code}{\textwidth}{Cover computation}
    \small
    $
    \begin{array}{ll}
      \emph{Input:}  & \alpha \text{ (set of attributes)} \\
      & \alpha_1 \to \beta_1, \dots, \alpha_n \to
      \beta_n \text{ (set of FDs $\mathcal{F}$)} \\
      \emph{Output:} & \alpha^+ \text{ (the cover of $\alpha$)} \\
    \end{array}
    $
    \begin{algorithmic}
      \STATE $x = \alpha$;
      \WHILE{$x$ did change}
      \FORALL{given FD $\alpha_i \to \beta_i$}
      \IF{$\alpha_i \subseteq x$}
      \STATE $x = x \cup \beta_i$; \quad \text{\textit{(add attributes in $\beta_i$ to $x$)}}
      \ENDIF
      \ENDFOR
      \ENDWHILE
      \STATE \textbf{return} $x$;
    \end{algorithmic}
  \end{code}
\end{frame}