For twenty years, there has been a method to prove there are no bugs in such pointer programs: separation logic. It’s a fundamental field with many practical applications. Hiep explains: ‘If you’re a printer manufacturer and you want Microsoft to automatically recognise your printers, you first need to prove that the printer’s software is no threat to their operating system. This is done using separation logic. Facebook also makes extensive use of it. Thousands of programmers are employed there, using AI to continuously analyse for errors in the software. And how does that AI work? With separation logic.’
A gaping hole not everyone wants to hear about
Separation logic is thus a way to find errors in computer programs. But Hiep’s research goes one level higher, as he explains: ‘It focuses on finding errors in that proof system, in the separation logic itself.’ It’s not that the current system is incorrect. ‘That is, if you prove a formula, then it is indeed true. Only I discovered that there are also true formulas that you couldn’t prove with this logic. So you have an incomplete proof system that is correct but cannot prove everything true.’
You could call it a gaping hole in the proof system. And not everyone was happy to hear that. Hiep explains: ‘If you've been working in this research area for a long time, or if your company has invested millions in it, it’s not pleasant when a PhD student comes along and says it doesn’t add up. It took quite a bit of effort to get my articles published. But I succeeded.’