There is a huge field of study dedicated to automated theorem proving. Is there any similar research dedicated to automated algorithm design? And is there any form of "duality" between these two processes (automated theorem proving vs automated algorithm design)?