Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/digama0/mm-hammer
A tool for automatically proving Metamath theorems using ATPs
https://github.com/digama0/mm-hammer
Last synced: 2 months ago
JSON representation
A tool for automatically proving Metamath theorems using ATPs
- Host: GitHub
- URL: https://github.com/digama0/mm-hammer
- Owner: digama0
- Created: 2023-02-21T14:55:53.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-23T15:55:42.000Z (almost 2 years ago)
- Last Synced: 2024-05-22T21:32:48.321Z (8 months ago)
- Language: Rust
- Size: 40 KB
- Stars: 6
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-rust-formalized-reasoning - Metamath hammer - tool for automatically proving Metamath theorems using ATPs. (Projects / Libraries)
README
# Metamath hammer
This is a tool for running Vampire and Prover9 on metamath problems,
and reconstructing them into a valid metamath proof that can be copied
into the .mm file.To get started, you will need Rust (https://rustup.rs) and [SBCL](https://www.sbcl.org/)
(`sudo apt install sbcl` on Debian). Then run make.sh:```shell
$ ./make.sh
...
Testing mm-hammer with premise selection on a simple chainy problem
hllatd
Learning done; awaiting your features ...
0.83user 0.05system 0:00.89elapsed 100%CPU (0avgtext+0avgdata 332728maxresident)k
0inputs+32outputs (0major+84877minor)pagefaults 0swaps
( chlt wcel clat hllat syl ) ABDEZBFEZCBGH $.Done! If you see something like
( chlt wcel clat hllat syl ) ABDEZBFEZCBGH $.
above then it's working.To run the hammer, use
cargo run --release build/set.mm + NEW.mm mythm
where NEW.mm is a file to be appended to set.mm which has a
'mythm $p' theorem in it (the proof is ignored and can be '?').
```The install script does a test run at the end, which you can see above.
You can run it yourself with:
```shell
$ cargo run --release build/set.mm + example/hlopdNEW.mm hlopdNEW 2> /dev/null
( chlt wcel cops hlop syl ) ABDEZBFEZCBGH $.
```
Here `hlopdNEW.mm` contains just a theorem statement:
```
${
hlopdNEW.1 $e |- ( ph -> K e. HL ) $.
$( Deduction version of ~ hlop .
(Contributed by Prover9, 23-Feb-2023.) $)
hlopdNEW $p |- ( ph -> K e. OP ) $=
? $.
$}
```
The program spits out a proof block that you can paste in to replace the
`?` here.