Logic-Based Program Synthesis And Transformation by