Given A 2 STRUCT[s] and a formula f in some logic with iteration, we can compute f in two steps:
First, compute a canonical structure Ck(A) = A/Όk over s
s = <, U, U1,
, Up, S1,
, Sk, P1,
, Pt
Where: < is order on types, Ui(a1,
, ak) iff Ri(a1,
, am) (for m · k); the others will be explained
Second, compute some modified formula f0 on Ck(A)