#theorem-prover #proof #theorem #proving #assistant #verifier

metamath-rs

A library manipulating Metamath databases, including a parallel and incremental verifier for Metamath databases

1 unstable release

0.3.8 Apr 15, 2024

#595 in Math

MIT/Apache

585KB
12K SLoC

Metamath-rs - a library for processing Metamath databases

A what?

Metamath is a language for expressing formal proofs in mathematics. Metamath makes few assumptions on the underlying logic and is simple enough to support a wide variety of tools. See http://us.metamath.org/#faq.

Metamath-rs can rapidly verify these proofs, providing much stronger confidence that the proof is correct. And we do mean rapid: over 28,000 proofs can be proved in less than a second.

Metamath-rs is the library component of the metamath-knife project, which also contains a standalone command-line application.

  • It supports all Metamath proof formats. In particular, Metamath-knife adds support for all Metamath proof formats (uncompressed, compressed, package, or explicit.
  • We take extra steps to prevent errors, e.g., we have a CI pipeline (implemented using GitHub actions).
  • We remove deprecated constructs, e.g., the deprecated try!(...) has been replaced with the easier-to-read "?" construct.
  • We actively work to eliminate compiler warnings. This tends to counter errors, make the code more readable, and improve performance (e.g., by eliminating unnecessary clone() calls).

License

This is licensed under either of

The SPDX license expression for its license is "(MIT OR Apache-2.0)".

Note that this is exactly the same license as smetamath-rs (SMM3), That is intentional, because we want smetamath-rs (SMM3) to be able to re-incorporate whatever we do if they like.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~5–13MB
~150K SLoC