Péter is a PhD candidate at Eötvös Loránd University, Budapest, with a strong interest in functional programming and software verification. He joined the High-Assurance Refactoring Project in 2019, focusing on reasoning about the meaning-preservation of refactorings in Erlang programs. His most significant achievement is an open-source formalisation of Core Erlang using the Coq/Rocq proof management system. Currently, he is developing formally based tools for the Erlang ecosystem.
Ensuring program correctness (particularly in concurrent systems) is a complex challenge. Subtle bugs often arise from unexpected interactions or code changes and may go undetected until they cause failures in production. Formal methods help address these challenges by providing mathematically precise definitions and proofs of program behaviour. This talk focuses on Core Erlang, an intermediate language used within the Erlang compiler, and its precise implementation using the Coq/Rocq proof management system.
We explore practical tools built on this foundation, such as verifying program correctness and ensuring that refactorings and optimisations preserve behaviour without relying on testing. We also present a formally based interpreter for Erlang that validates our definitions against the behaviour of Erlang/OTP. Beyond serving as a reference implementation, our interpreter also enables systematic exploration of possible schedulings in concurrent programs, aiding developers in code comprehension. Our formal model also supports a long-term goal: developing a verified Erlang compiler free from miscompilation issues.
Key Takeaways:
Target Audience: