Oracle guided program synthesis. The user creates counterfactuals to the program output and the system tries to change its process to correctly process them.