Program Synthesis with Lightweight Abstractions