There are a few fundamental problems at the intersection of Mathematics and Computer Science which we have been trying to solve since the 1950s, during the dawn of computing. These fundamental problems relate with showing that computers are uncapable of solving certain tasks efficiently.
So, for example, if you never heard about these things, it might surprise you to know that cryptography, which we use every day to communicate securely on the internet, is believed to be secure, but we are not at all certain that it actually is. We would like to show, then, that the cryptographic systems we use are secure. By "show", we mean "prove mathematically", i.e. give a logically sound, irrefutable argument showing that no algorithm, no matter how smart, can efficiently decypher encrypted communication.
However, we have been trying to show such impossibility results for many decades, and have systematically failed at doing so. We have failed even at proving much simpler variants of such impossibility results, which in the area we call "lower bounds". The difficulty appears to be that there is a self-referential flavor to the statements we want to prove. In some sense (which can be precisely defined), proving that an algorithm cannot do something, i.e. proving lower bounds, is a task similar to breaking a cryptographic protocol. So there is an apparent contradiction in the task of proving that an algorithm cannot break cryptographic protocols.
It is still very unclear, however, to what extent this contradiction is real or apparent. The goal of this project is to understand this better. There is a number of research directions which relate lower bounds to "automatic programming", which one could call the task of, when given the specification of a computational problem, to obtain an efficient algorithm for solving it.
It turns out that if "automatic programming" is easy enough, it should be possible to prove the kind of impossibility results which we want to prove. And if "automatic programming" is hard enough, secure cryptography is possible. The goal of the project is to study and understand the difficulty of "automatic programming" in several different settings.