Computing with infinite data
Whether it be the autopilot in an aircraft, the software used to monitor and control rail traffic, or the sensors that enable autonomous functions in our cars, all depend not only on technology, but on that technology always being correct. “More and more applications require the use of computers, but in many situations, computer programmes can present inaccuracies due, for example, to rounding errors,” says Dieter Spreen, a mathematician at the University of Siegen in Germany. When inaccuracies happen, the result can be unexpected consequences. As a case in point, consider that the very first Ariane 5 rocket failed to launch because of such an inaccuracy. “These inaccuracies are what happens when there is a dissociation between mathematical theory and its implementation in computer programmes,” adds Spreen. Through the support of the EU-funded CID project, the University of Siegen is leading an international effort to develop the tools needed to resolve these inaccuracies. “The project provided an excellent venue in which researchers from distinct but related areas were able to interact in a very productive and welcoming environment,” says Daniel Graça, a researcher at the University of Algarve, one of the project’s partners.
Introducing infinite-precision data
The project brings together 20 partner universities and institutions from across Europe and around the world. Their goal: to develop tools able to formally prove the correct functioning of engineering applications. “Software is usually tested against a variety of possible scenarios,” explains Spreen. “However, doing so does not guarantee that the software is completely safe as vulnerabilities can still exist and have unintended consequences – either due to accidents or malicious behaviour.” To overcome this shortcoming, the project turned to infinite-precision data. “Although this sounds like a physical impossibility, with careful design, one can programme an ordinary computer to behave as if its data structures were actually infinite, even though in reality all data has a finite physical representation,” says Alex Simpson, a researcher at the University of Ljubljana, another of the project’s partners. As Spreen explains, doing so makes sense both practically, as a realistic approach to computing, and theoretically, being justified by rigorous mathematical models. “The use of infinite data structures eliminates the rounding errors that are omnipresent in standard computation models, for example, those based on floating point or double precision numbers,” he says. By computing with infinite data, the project was able to develop programming language support and methods for ensuring the correctness of programmes with infinite data. It further opened the door to mathematical models able to incorporate new applications.
Too complex to solve
The project also looked at different algorithms used within engineering applications. “We wanted to understand which problems are inherently difficult, even impossible, to solve with the help of computers and to learn how these problems differ from easier problems,” notes Spreen. What researchers found is that some problems are so complex that there are simply no simple procedures available. Knowing this is important for software developers as it means they no longer need to spend time searching for alternatives. “We were interested in these questions due to the realisation that dynamical systems are extensively used in many relevant real-world applications, but in many instances, they are too complex to analyse without the use of computers,” concludes Graça. “Being able to gain a deeper understanding about these questions was, for us, an important achievement.”
Keywords
CID, computer, computer programmes, data, computation, engineering applications, technology, mathematical theory, infinite-precision data