Learning-Aided Program Synthesis And Verification