Formal Methods

Sep 6, 2025
FM Playground
A online playground for formal methods tools. It is a web application that allows users to run formal methods tools in the browser.
Sep 5, 2025
MLDiff
MLDiff provides a novel approach to comparing learned classifiers by translating them into SMT formulas and systematically analyzing their decision boundaries.
Sep 4, 2025
VS Code Extension for SMT-LIB (Z3)
A Visual Studio Code extension for the SMT Z3 theorem prover. The extension provides a user-friendly interface to run the Z3 solver in the VS Code editor without installing Z3 separately.
Sep 4, 2025
SMT-LIB LSP
A language server for the SMT-LIB language, providing features like syntax highlighting, autocompletion, and error checking for SMT-LIB files in various editors. It is based on Langium workbench and integrates with the Z3 SMT solver.
Sep 4, 2025
Alloy LSP
A language server for the Alloy specification language, providing features like syntax highlighting, autocompletion, and error checking for Alloy files in various editors. It is based on Langium workbench and integrates with the Alloy Analyzer.
Sep 2, 2025
VS Code Extension for Limboole
A Visual Studio Code extension for the Limboole Boolean Satisfiability Solver. It supports syntax highlighting and language server features for Limboole files.
Aug 10, 2025
Jun 10, 2025
Feb 1, 2024
Formal Methods for Software Engineering: A Semester in Review

As another semester comes to a close, it’s time to reflect on the journey through the Formal Methods for Software Engineering course. This semester, we embraced change, introducing new teaching methods and tools to enhance the learning experience. One notable addition was the integration of GitHub Classroom for assignments, a decision that brought about unexpected insights and learning experiences.

GitHub Classroom and Automated Feedback

One notable shift this semester was the adoption of GitHub Classroom for assignments. Initially intended for its auto-grading feature, we found its true value in automated feedback generation. Navigating the limitations of GitHub Classroom and the GitHub workflow proved challenging, especially when interpreting the log files. Nevertheless, this exploration led to a wealth of knowledge on crafting more useful feedback and discreetly implementing Test-driven development (TDD) without revealing solutions. I intend to delve deeper into these technical details in a future post, sharing my learnings and experiences.