Program synthesis using abstraction refinement | Synapse