Chipala anticipates several benefits from the widespread use of methodologies and tools for building systems with formal mathematical proofs of correct behavior3. These benefits include:
Increased confidence in software functionality: By providing mathematical guarantees about the software's behavior, users can have more trust in the system's performance and reliability.
Reduced likelihood of bugs and vulnerabilities: The use of formal methods can help create more secure and reliable software, making it less likely to be surprised by bugs or vulnerabilities that could be exploited by attackers.
Improved economic consequences: The reduction in bugs and vulnerabilities can lead to significant cost savings, both in terms of potential losses from security breaches and the resources required for ongoing maintenance and updates.
Enhanced trust in system components: When a system has been proven to function correctly through formal verification, users can have more confidence in the processor, machine code format, and compiler.
Better defense against security problems: By defining operations well and proving their correctness, software becomes less susceptible to injection attacks and better protected against common and important security issues.
Accessibility of proofs: When systems are built alongside their formal mathematical proofs of correct behavior, everyone who relies on the system can access and check these proofs, increasing transparency and trustworthiness3.
In summary, Chipala believes that the widespread use of methodologies and tools for building systems with formal mathematical proofs of correct behavior can lead to more secure, reliable, and cost-effective software, while also improving trust in system components and providing better protection against security threats3.
Chipala acknowledges that there are still some challenges that need to be addressed in the development of provable software systems. One of the main challenges is figuring out how to support the right result and defining what "correct" means for a given system. Additionally, there is a need to develop guidelines for creating provable systems and ensuring that the software is less open to vulnerabilities such as injection attacks. Lastly, there is the ongoing task of refining and improving the methodologies and tools used to build these systems, alongside their formal mathematical proof of correct behavior, to increase confidence in their functionality and security.
Professor Adam Chipala's main objectives in his research on software systems are centered around developing provable software systems that ensure correct functioning and are tied to cryptography and mathematics2. He aims to apply heavier principles to ensure software precision and create systems that are reliable against bugs and vulnerabilities. His research focuses on developing principled methods of developing computer systems where the likelihood of being surprised by bugs is significantly reduced. He is also working on a prototype of an "IoT light bulb" and a Lego garage case study with a cryptographic library and protocol, aiming to prove the correctness of these systems. Ultimately, Chipala is hopeful that these methodologies and tools will be increasingly used to build systems alongside their formal mathematical proofs of correct behavior, making the software less prone to errors and security issues.