English

Reimplementing Mizar in Rust

Programming Languages 2024-12-25 v2

Abstract

This paper describes a new open-source proof processing tool, mizar-rs, a wholesale reimplementation of core parts of the Mizar proof system, written in Rust. In particular, the "checker" and "analyzer" of Mizar are implemented, which together form the trusted core of Mizar. This is to our knowledge the first and only external implementation of these components. Thanks to the loose coupling of Mizar's passes, it is possible to use the checker as a drop-in replacement for the original, and we have used this to verify the entire MML in 11.8 minutes on 8 cores, a 4.8x speedup over the original Pascal implementation. Since Mizar is not designed to have a small trusted core, checking Mizar proofs entails following Mizar closely, so our ability to detect bugs is limited. Nevertheless, we were able to find multiple memory errors, four soundness bugs in the original (which were not being exploited in MML), in addition to one non-critical bug which was being exploited in 46 different MML articles. We hope to use this checker as a base for proof export tooling, as well as revitalizing development of the language.

Keywords

Cite

@article{arxiv.2304.08391,
  title  = {Reimplementing Mizar in Rust},
  author = {Mario Carneiro},
  journal= {arXiv preprint arXiv:2304.08391},
  year   = {2024}
}

Comments

25 pages, submitted to JAR special issue 2024

R2 v1 2026-06-28T10:08:34.973Z