§ Implementing Nelson Oppen

§ Disjoint theories

§ Ensuring Disjointness and Purification

repeat until fixpoint:
      u = gesym()
      Purify[f(..., t, ...)] => Purify[f(..., u, ...)] /\ u = t
x + 2 == y, f(Store(A, x, 3)[y - 2]) != f(y - x + 1)
Functions:  f(v1) != f(v2)
Arrays:     v1 == v3[v4], v3 == Store(x, y, v5)
Arithmetic: x + 2 == y, v2 == y - x + 1, v4 == y - 2, v5 == 2

§ Convex Theory

§ Convex theory w/ Non Trivial Model is Stably Infinite

§ References