SOFTWARE DEVELOPMENT - THEOREM PROVERS
Software verifying software
Niccolò Veltri: Theorem provers will also be used in schools
Niccolò Veltri, a researcher at the School of Information Technologies of the Tallinn University of Technology, is working on theorem provers as part of the project EXCITE. Specifically, Veltri is developing programs to help analyse, verify and improve existing ones. His work is in many ways still theoretical, although in part it has already found application in software development.
“M
odern societies are relying heavily, and to an ever-increasing extent, on a variety of machines to perform many fundamental tasks,” says Veltri, who studied mathematics at the University of Florence, in addition to postdoctoral research on the topic at the IT University of Copenhagen. “Since we have placed a lot of trust in these ma-
Estonian Centre of Excellence in ICT Research
chines, we always assume that they function correctly. Occasional failures in these systems and machines can lead to both major financial losses and wider problems for society as a whole. For example, important security systems may be attacked, sensitive or personal information may be leaked, and vehicles with technical errors or incorrect programming may be exposed to the public.” The researcher adds that corresponding computer software has been
developed to verify the correctness of most of these useful machines, ensuring their accurate and error-free operation. “Consequently, the systematic formal certification of hardware and software delivered worldwide is extremely important,” he says. “Certification ensures the reliable functioning of these systems, and an ever-increasing number of software developers are moving towards creating software aimed at the verification of software itself.” He adds that Estonian IT companies have also seen the need for high-assurance software and started to make developments in this direction. “This means increasing monetary investments in the departments and working groups that use formal methods to analyse, certify and control their own software products, including the software that is designed to analyse other programs being created,” explains Veltri.
69