“…first homomorphism theorem). The literature on divide-and-conquer synthesis can be divided into two categories based on the class of input computations targeted: (1) those with list homomorphisms as input, with the aim of synthesizing efficient map-reduce [7] programs [1,14,21,23], (2) those that go beyond list homomorphisms [8,9,11,15,19,22], and target code with more dependencies. In category (2), the techniques in [8,9,11] synthesize list homomorphisms through some variation of lifting, the approach in [22] uses symbolic execution at runtime and to identify and defer dependencies, and Bellmania [15] targets input programs in the style of dynamic programming and orchestrates an efficient execution schedule to accommodate the dependencies.…”