The verifier project
Write your own Metamath verifier, in a language of your choice, and have it marked against a test suite the course provides. Set in week 5, due at the end of week 12; full details to follow.
Due: 28 May 2027 · Weight: 50%
The brief#
Write a program that checks Metamath proofs.
By week 5 you will have used three verifiers and read the part of the specification that says what they do. The project is to write your own.
Any language except C, C++, Rust, Java and Python. set.mm’s verifiers page lists the five programs that check every change to it, and they are written in exactly those five; yours goes somewhere new. You may read any source you like, including those five.
What you submit#
A repository with the code, a way to run it on a database from the command line, and a short report on how you tested it. The exact form is settled when the project is set in week 5.
How it is marked#
Against a test suite the course provides: a set of databases, each with the verdict a correct verifier gives. The core of the suite is what full marks need. Bonus marks, capped at the project’s maximum, go to features beyond the core; the likely candidates are the compressed proof format and file inclusion, both in the specification, distinct-variable conditions, and definition checking. Full details to follow. The week 8 lab is a check-in, with a suggested rate of progress: which tests a verifier on track should pass by then.
The spec
The brief poses the problem and leaves room for a response. The spec is the fixed part: what a marker checks. Some lines can be checked mechanically; the rest call for judgement.
- a verifier written by you, in a language other than C, C++, Rust, Java or Python, that reads a Metamath database and reports whether every proof in it is correct
- it passes the core tests of the suite the course provides
- it is shown running at the week 8 lab check-in, against the tests the check-in names
- a short report on how you tested it
How it is marked
Marked against a test suite the course provides, with bonus marks for features beyond the core. The suite and the marking scheme are published when the project is set in week 5.