\begin{slide}{Relationen}

\begin{verbatim}
relation :: ( Ix a, Ix b )
  => ((a,b),(a,b)) -> SAT ( Relation a b )
instance (Ix a, Ix b) => 
  Decode ( Relation a b ) ( Array (a,b) Bool ) 
product :: ..=> Relation a b -> Relation b c 
  -> SAT ( Relation a c )
implies :: ..=> Relation a b -> Relation a b
  -> SAT Boolean
\end{verbatim}
Anwendungen:
\begin{verbatim}
transitive r = do
    r2 <- product r r ; implies r2 r
\end{verbatim}
Übung: eine schwach zusammenhängende Relation; \\
eine s.z. Halbordnung, die keine totale Ordnung ist.

\end{slide}

