\documentclass{article}
\usepackage{mathpartir}
\begin{document}
  \begin{figure}
  \begin{mathpar}
  \begin{array}{rclll}
    \delta_c \O          & = & \O                                     &   &             \\
    \delta_c \varepsilon & = & \O                                     &   &             \\
    \delta_c a           & = & \{\varepsilon\}                        & , & if \ a == c \\
                         & | & \O                                     & , & otherwise   \\
    \delta_c (r_1;r_2)   & = & \{r;r_2 \ | \ r \in \delta_c r_1\} \ \cup
                               \ (\delta_c r_2)
                         & , & if \ \varepsilon \in (\delta_c r_1)                      \\
                         & | & \{r;r_2 \ | \ r \in \delta_c r_1\}     & , & otherwise   \\
    \delta_c (r_1 + r_2) & = & (\delta_c r_1) \ \cup \ (\delta_c r_2) &   &             \\
    \delta_c (r*)        & = & \{r';r \! * \ | \ r' \in \delta_c r\}  &   &             \\
  \end{array}
  \end{mathpar}
  \caption{Antimirov derivatives}
  \label{fig:antimirov}
  \end{figure}

  \begin{figure}[h]
  \begin{mathpar}
  \begin{array}{rcl}
    w \models \varepsilon & \iff & w = nil                       \\
    w \models b           & \iff & (|w|=1) \land (w_0 \models b) \\
    w \models (r_1 ; r_2) & \iff & (w=w_1 \cdot w_2) \land
                                   (w_1 \models r_1) \land
                                   (w_2 \models r_2)             \\
    w \models (r_1 + r_2) & \iff & (w \models r_1) \ \lor \
                                   (w \models r_2)               \\
    w \models r*          & \iff & (w \models \varepsilon) \ \lor \ 
                                   (w=w_1 \cdot w_2) \land
                                   (w_1 \models r) \land
                                   (w_2 \models r*)              \\
  \end{array}
  \end{mathpar}
  \caption{Semantics of regular expression}
  \label{fig:re-semantics}
  \end{figure}

\end{document}
