Program synthesis using conflict-driven learning | Synapse