~/projects

Projects

Research work first, then the projects I built for university courses. Most of the course repositories are private — I am happy to share any of them on request.

01

Research internship

Aristarchus

A verifier for the Hypatia proof language

Aristarchus is the verifier at the core of Hypatia: a Metamath-style proof checker that validates formal derivations rather than searching for proofs. It reads a Hypatia document, builds its syntax tree from a source whose syntax is context-dependent, and checks it against the rules of the language — returning either a clean pass or a structured tree of diagnostics that mirrors the structure of the source.

It is written in Haskell and uses applicative, error-accumulating validation, so a single run reports as many problems as it can. I work on it as part of a research internship under the supervision of Prof. Fabio Mogavero, and it is the subject of my Bachelor’s thesis.

Validator/Types.hs haskell
-- Errors accumulate instead of short-circuiting:
-- one run reports every problem, not just the first.
data Result e a
  = Failure [e]
  | Success a

instance Applicative (Result e) where
  pure = Success
  Success f  <*> Success x  = Success (f x)
  Failure e1 <*> Failure e2 = Failure (e1 ++ e2)
  Failure e1 <*> Success _  = Failure e1
  Success _  <*> Failure e2 = Failure e2

02

Web Technologies course

Road2Unina

A full-stack Wikipedia race

A wiki game: you start from a random Wikipedia article and have to reach the page of the University of Naples Federico II — or a target of your choice — following links only, in as few clicks as possible.

The front end is an Angular application built on standalone components and signals; the back end is a REST API in Express and TypeScript, with accounts and a leaderboard persisted through Sequelize. The whole flow is covered by end-to-end tests with Playwright.

03

Software Engineering course

BugBoard

An issue tracker for small teams

An issue tracker designed for small teams: a REST back end in Spring Boot backed by PostgreSQL, and a JavaFX desktop client that talks to it. The project follows a layered architecture and was carried through the full software-engineering process — requirements, design diagrams, implementation and documentation.

04

Operating Systems Lab

Forza 4 online

Multiplayer Connect Four over TCP

Multiplayer Connect Four, built from the socket up. The server is written in C: plain TCP sockets, one pthread per client, a lobby to create and join games, and a small text protocol documented alongside the code. The client is a Java Swing application, and the whole system starts with a single docker compose up.

05

Research

Bachelor’s thesis

University of Naples Federico II AristarchusDesign and Implementation of a Verifier for the Sunya Dialect of Hypatia Roberto Fiorino Academic Year 2025–2026

Bachelor's thesis in Computer Science

Aristarchus: Design and Implementation of a Verifier for the Sunya Dialect of Hypatia

University
University of Naples Federico II
Status
Defended, September 2026
Length
116 pages

Interactive theorem provers entrust the correctness of proofs to a verification kernel, which is itself a program and can itself be wrong — as a recent soundness bug in the Lean 4 kernel showed. Hypatia responds by making explicit the path from the text a user writes to the object the system actually checks, through a hierarchy of dialects linked by translations towards the level below.

The thesis covers Aristarchus, the component responsible for verification, for the Sunya dialect alone and in the Unica mode where every construct admits a single interpretation: a two-phase verifier written in Haskell that first builds a syntax tree from a source whose syntax is context-dependent, then traverses it to check the vocabulary, the phrase and schema declarations, the proof steps and the dependencies between them — cycles and conjectural results included — ending in a verdict with its diagnostics.

Read the thesis PDF · 116 pp.