
Considering the rules within a module, notice that interdependancies
sometimes exist between some of the relations.  A {\em dependancy graph}
is a directed graph showing the dependancies between relations.  An directed
arc exists in the graph pointing from {\em p} to {\em q} iff relation {\em p}
directly depends on {\em q}, i.e. {\em q} is mentioned in the body of a 
rule defining {\em p}.

A {\em strongly connected component}, or {\em SCC}, is a region of this
graph that is as small as possible such that there are no dependancy
cycles between SCC's.  In other words, an SCC encapsulates all cycles
between rules within itself.  Within an SCC, all the relations, because
of their interdependance on one another, must be solved simultaneously.

The SCC's form a {\em directed acyclic graph}, or dag, and the SCC's
can be evaluated independantly of one another, in a
bottom-up fashion.  Each SCC is evaluated individually using
{\em SemiNaive Evaluation}, which is discussed in the next section.

\noindent
Files to look at:
{\em
\begin{itemize}
\item Scc.h
\item SccInfo.h 
\end{itemize}
}
