“…To compute the symbolic successors of a pattern, say t ∧ φ , with respect to a rule, say t 1 ∧ φ 1 ⇒ t 2 ∧ φ 2 , we need to unify the patterns t ∧ φ and t 1 ∧ φ 1 . Because unification can be expressed as a conjunction in ML [2,20], we can say that only the states matched by (t ∧ φ ) ∧ (t 1 ∧ φ 1 ) ≡ (t ∧ t 1 ) ∧ (φ ∧ φ 1 ) transit to states matched by t 2 ∧ φ 2 . Expressing unification as a conjunction (t ∧ t 1 ) is a nice feature of ML, but, in practice, unification algorithms are still needed to compute the general unifying substitution since it is used in symbolic successor patterns.…”