\item \self Explain for what the \textit{Congruence Closure} algorithm is used. What are the inputs and outputs of the algorithm? What does the algorithm compute? Explain the individual steps of the algorithm.