We present a formal derivation of program schemes that are usually called Backtracking programs and Branch-and-Bound programs. The derivation consists of a series of transformation steps, specifically algebraic manipulations, on the initial specification until the desired programs are obtained. The well-known notions of linear recursion and tail recursion are extended, for structures, to elementwise linear recursion and elementwise tail recursion; and a transformation between them is derived too. © 1991.
Fokkinga, M. M. (1991). An exercise in transformational programming: Backtracking and branch-and-bound. Science of Computer Programming, 16(1), 19–48. https://doi.org/10.1016/0167-6423(91)90022-P