Hello, World! ☀️
- 🇸🇰 I come from Slovakia, a tiny country in Europe with delicious food.
- 🇳🇱 I’ve lived in the Netherlands since 2018, when I started my bachelor in Computer Science.
- 👩🎓 In 2024, I started pursuing a PhD with Jesper Cockx at the Programming Languages research group.
- 🧬 My research focuses on the usability of interactive theorem provers such as Agda.
- 🏢 You can usually find me in office 3.E.420 at Building 28 at the TU Delft.
- 💡 I like
- nerdy things: 🧙 (fantasy) books 🎲 board games
- sporty things:🏃♀️ running 🚴 cycling 🏂 snowboarding ⛸️ ice skating
- computer things: 🎅 advent of code 🎮 video games
- unusual things: 🍀 irish dance
- pretty things: 📷 photos
🧪 My Research
[2025] Pinpointing the Learning Obstacles of an Interactive Theorem Prover
ICPC '25Interactive theorem provers (ITPs) are programming languages which allow users to reason about and verify their programs. Although they promise strong correctness guarantees and expressive type annotations which can act as code summaries, they tend to have a steep learning curve and poor usability. Unfortunately, there is only a vague understanding of the underlying causes for these problems within the research community. To pinpoint the exact usability bottlenecks of ITPs, we conducted an online survey among 41 computer science bachelor students, asking them to reflect on the experience of learning to use the Agda ITP and to list the obstacles they faced during the process. Qualitative analysis of the responses revealed confusion among the participants about the role of ITPs within software development processes as well as design choices and tool deficiencies which do not provide an adequate level of support to ITP users. To make ITPs more accessible to new users, we recommend that ITP designers look beyond the language itself and also consider its wider contexts of tooling, developer environments, and larger software development processes.
Pre-Print
[2024] How Novices Perceive Interactive Theorem Provers
ICFP SRC '24Interactive theorem provers (ITPs) are known to have a steep learning curve and poor usability. This hinders their spread into commercial software development, wasting their potential to improve software quality. To understand what makes them inaccessible to novices, we conducted an online survey among bachelor students, asking them to list the obstacles they encountered while learning Agda. Analysis of the results revealed design choices and tool deficiencies which do not provide an adequate level of support to beginner nor advanced users. These observations point to one prominent point of improvement: providing a more accessible and sturdy infrastructure for ITP programmers.
TyDe '24
Extended Abstract TyDe Talk Poster Slides Haskell Interlude
[2023] Bringing Formal Verification into Widespread Programming Language Ecosystems (MSc Thesis)
TU DelftFormal verification is a powerful tool for ensuring program correctness but is often hard to learn to use and has not yet spread into the commercial world. This thesis focuses on finding an easy-to-use solution to make formal verification available in popular programming language ecosystems. We propose a solution where users can write code in an interactive theorem prover and then transpile it into a more popular programming language. We use Agda2HS as a case study to determine what challenges users find in using such a tool, improve selected features, and then conduct a user study to evaluate the usability. We find that detailed documentation, support for commonly-used features in the target programming language, features that facilitate verification, integration of the tool into the target ecosystem, and user studies are necessary for the accessibility of such a tool.
Repository
[2021] Validating Type Checkers Using Property-Based Testing (BSc Thesis)
TU DelftManually testing definitional interpreters and their type checkers is a tedious and error-prone process which can largely benefit from automation. This study evaluates the effectiveness of property-based testing on errors in type checkers. Metrics used include the ability to catch different types of errors as well as the ability to provide a good margin of confidence in the results. We define two languages in Haskell and identify properties which should hold for their type checkers. Using a bottom-up approach to expression generation, we evaluate the effectiveness of property-based testing on test suites of type checkers with various types of errors. The method proves to be effective for both the simple and the complex language and manages to catch all defined error types with at least one property to a sufficient degree of confidence. We conclude that property-based testing is an effective tool to help with manual grading of type checkers for definitional interpreters.
Repository
📷 Pretty Pictures
Cliffs of Moher
County Clare, Ireland
15 July 2023
Edinburgh Castle
Edinburgh, Scotland
27 July 2024
Chata pri Zelenom plese
Vysoké Tatry, Slovakia
21 July 2021
Dunguaire Castle
Kinvarra, Ireland
15 July 2023
Sheep!
Heemskerk, The Netherlands
17 December 2022
Parc Guëll
Barcelona, Spain
01 September 2022
Modern Art
Delft, The Netherlands
03 June 2022
Metro Madness
Lisbon, Portugal
24 July 2019
Ring of Kerry
Waterville Beach, Ireland
17 July 2023
Parliament House
Budapest, Hungary
26 October 2023
Catedral de Sevilla
Seville, Spain
21 July 2019
BalPol
Delft, The Netherlands
28 May 2020
Real Alcázar de Sevilla
Seville, Spain
21 July 2019
Basílica de la Sagrada Família
Barcelona, Spain
31 August 2022
Catedral de la Almudena
Madrid, Spain
27 July 2019
Sunsets & Surfing
Moliets-et-Maa, France
09 August 2021
Giraffe!
Murchison Falls National Park, Uganda
30 December 2019
A Winding Way
Kibale National Park, Uganda
28 December 2019