Choreographies and Cost Semantics for Reliable Communicating Systems
Doctoral thesis, 2023
Unfortunately, the complexity of their interactions makes
them particularly prone to failures such as deadlocked states
caused by misbehaving components, or memory exhaustion due to a surge
in message traffic (malicious or not).
These vulnerabilities constitute a real risk to users, with
consequences ranging from minor inconveniences to the possibility of
loss of life and capital.
This thesis presents results that aim to increase the reliability of communicating systems.
First, we implement a choreography language that can, by construction, only describe deadlock-free systems.
Second, we develop a cost semantics to prove programs free of out-of-memory errors.
Lastly, we improve both results by using novel semantic approaches that strengthen key theorems and facilitate further proof development.
All of these results are formalized in the HOL4 theorem prover and integrated with the CakeML verified stack.
Author
Alejandro Gómez Londoño
Chalmers, Computer Science and Engineering (Chalmers), Formal methods
Kalas: A Verified, End-To-End Compiler for a Choreographic Language
Leibniz International Proceedings in Informatics, LIPIcs,;Vol. 237(2022)
Paper in proceeding
Dancing in a forest of interactions: An interaction tree-based semantics for choreographies
Do you have space for dessert? a verified space cost semantics for CakeML programs
Proceedings of the ACM on Programming Languages,;Vol. 4(2020)
Journal article
A flat reachability-based measure for CakeML's cost semantics
ACM International Conference Proceeding Series,;(2021)p. 1-9
Paper in proceeding
From personal communication and social media platforms to critical infrastructures like transportation networks, financial systems, and healthcare services, our reliance on communication systems is pervasive. The ability to transmit information swiftly and efficiently has revolutionized how we work, socialize, access information, and conduct business. However, these systems' intricate nature and widespread usage make them vulnerable to failures that can disrupt our daily routines and pose significant risks to individuals, organizations, and society.
One of the most prevalent problems encountered in communication systems is deadlock states, where all or some parts of the system become incapable of communicating with each other. Deadlock states can be caused by malfunctioning components, a mismatch in communications, or out-of-memory errors due to excessive message traffic, intentional or unintentional. These vulnerabilities pose a tangible threat to users, ranging from minor inconveniences to potential risks to life and financial assets.
This thesis aims to improve the reliability of communication systems by presenting results that prevent the occurrence of deadlock states. First, we develop a programming language which, by construction, guarantees the absence of communication mismatches. Therefore, component interactions can only be constructed in such a way that prevents deadlock situations from arising. Second, we create a proof framework to verify the absence of out-of-memory errors in programs, ensuring system stability. Finally, we extend these results to improve their ease of use, fomenting their adoption and further development.
All results have been mechanically formalized within the HOL4 theorem prover and utilize the CakeML verified stack to validate our approach.
Pålitlig mjukvara via programmering och kompilering i logik
Swedish Foundation for Strategic Research (SSF) (FFL15-0191), 2017-01-01 -- 2021-12-31.
Subject Categories
Computer Science
ISBN
978-91-7905-872-2
Doktorsavhandlingar vid Chalmers tekniska högskola. Ny serie: 5338
Publisher
Chalmers
EDIT Room EA
Opponent: Marco Carbone, Associate Professor at the Computer Science Department, IT University of Copenhagen, Denmark