Open arpie-steele opened 2 weeks ago
write_stmt_use in axiom_use.rs hates uncompressed proofs
Yes. What is the motivation for supporting uncompressed proofs in axiom_use?
write_stmt_use in axiom_use.rs hates uncompressed proofs
Yes. What is the motivation for supporting uncompressed proofs in axiom_use?
The promise in metamath-rs/README.md that the library "supports all Metamath proof formats. In particular, Metamath-knife adds support for all Metamath proof formats (uncompressed, compressed, package, or explicit.
The suggestion is not enough to support all proof formats. But my question remains: why do you need this? Is it just a feeling of incompleteness?
Short story, yes. Specifically, the published 3.8 library seems incomplete with respect to its advertised functionality.
I was going to re-implement a tool which generalizes condensed detachment (letting any statement with essential hypotheses fill in for ax-mp) and I wanted to use set.mm/miu.mm (featured in the Metamath book, Appendix D) as a test case, which famously has an uncompressed proof so that one might follow along with its use of a syntax axiom (we
) which renders sequences of 0 tokens as legal wff
s.
I thought condensed detachment might make.for a nice playground was was planning to build on the metamath-rs library and eventually implement a browser-based workspace. That line I quoted above showed up on "crates.io" which is why I started looking into not writing all the database-handling code myself.
So I was still exploring the code to decide if I want to use it as-is or as some sort of hard-to-maintain fork when the metamath-knife crashed in the code common to --stmt-use or -X when I tried those with miu.mm. (Also -E doesn't seem to represent we
in its diagram, but I'm not sure if that is a known issue, still under development, or working as designed. The non-syntax axioms from miu.mm get left as unconnected nodes, which I suspect is because their labels begin with neither ax- nor df-)
This is two problems: the loop statement runs out-of-bounds and always starts with i = 1 . The canonical test is set.mm/miu.mm which has both zero-length wffs and a single uncompressed proof at the end of the file where out-of-bounds errors hit the EOF.
If you had code like:
Then you could replace this code which assumes compressed proofs:
with: