Stewart, I. (2003). Using program schemes to capture polynomial-time logically on certain classes of structures. LMS Journal of Computation and Mathematics, 6, 40-67