Persistent URL of this record https://hdl.handle.net/1887/3754463
Documents
-
- Download
- Appendices_Bibliography_List of Publications
- open access
-
- Download
- Summary in English
- open access
-
- Download
- Summary in Dutch
- open access
-
- Download
- Curriculum Vitae
- open access
-
- Download
- Propositions
- open access
In Collections
This item can be found in the following collections:
New Foundations for Separation Logic
In this thesis, formal...Show moreThe research presented in this thesis concerns one of the most important questions in software engineering of our time: how can we make sure that software is free from memory safety bugs? Memory safety bugs are the major cause of common vulnerabilities and exposures, and their presence threatens the stability and security of our digital world. This question is so important that it has escalated to the highest level. In a recent White House press release (February 26, 2024), the National Cyber Director of the United States of America calls on the academic community to help solve this hard problem: “addressing [this challenge] is imperative to ensuring we can secure our digital ecosystem long-term and protect the security of our Nation.” The accompanying technical report advises on the use of memory safe programming languages, and prominently mentions formal methods as one way to achieve the highly desired freedom from bugs, including memory safety bugs.
In this thesis, formal methods are studied that are used to analyze software for its correctness, where correctness means that software satisfies its specification and incorrectness means the presence of a bug. The focus is on separation logic, a formal method designed as a scalable technique in ensuring freedom from memory safety bugs. Nowadays, separation logic is a well-established field of research: it has been widely studied academically in the past twenty years, and is successfully applied on an industry-wide scale to ensure memory safety. For example, separation logic is the technique used to prove, with mathematical certainty, that memory safe programming languages (such as Rust and Go) indeed live up to the promise that “they offer a way to eliminate, not just mitigate, entire bug classes.”
In two parts, this thesis presents important scientific contributions that fill a gap in the academic literature. The first part contains the missing completeness theorem for separation logic, that is on par with the fundamental result by Goedel for first-order logic. Completeness is important for any formal method as it shows that the formal method can be adequately used for demonstrating every validity. The second part finally introduces dynamic separation logic that gives an alternative way to analyze memory safety problems, such that now it is possible to prove elementary specifications without needing extra logical techniques. This is important because it ensures ‘backwards compatibility’ with automated reasoning techniques that are optimized for first-order logic.
Show less
- All authors
- Hiep, H.A.
- Supervisor
- Boer, F.S. de
- Co-supervisor
- Gouw, C.P.T. de; Laarman, A.W.
- Committee
- Katoen, J.P.; Pérez, J.A.; Basold, H.; Bongangue, M.M.; Kleijn, H.C.M.; Plaat, A.
- Qualification
- Doctor (dr.)
- Awarding Institution
- Leiden Institute of Advanced Computer Science (LIACS), Faculty of Science, Leiden University
- Date
- 2024-05-23
- Title of host publication
- IPA Dissertation Series
- ISBN (print)
- 9789083182612
- ISBN (electronic)
- 9789083182629
Publication Series
- Name
- 2024-04
Funding
- Sponsorship
- - The research presented in this dissertation was carried out at Centrum Wiskunde & Informatica (CWI), the national research institute for mathematics and computer science in the Netherlands. - The author was partially supported by funding from NGI ASSURE, a fund established by NLnet with financial support from the European Commission’s Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No. 957073.