Add the (very unfinished) rpylean.#6
Conversation
|
I had a look at the build failure and pushed to |
373f96b to
ac9628d
Compare
|
Ah thanks, I had just done the same :) |
a411356 to
630242b
Compare
|
OK I think we now pass all the tests, even though there's still plenty missing: which probably means it's time to try and help write a few more tests as soon as I figure out what we're missing next. |
|
I think the next step in the tutorial is inductive types, right? Or do you mean more tests for the fragment without inductive types first? |
|
Depending on what precisely you think the sequence should be -- for example, I know that rpylean does not do anything at all with mutual definitions and theorems (we just check the first one and ignore all the rest of them). I would think that should go later but the way the new export format is laid out (which overall is clearly a big improvement as I got to delete lots of code) one needs to confront mutual defs, theorems and inductives immediately in the parser at least, because everything is represented as an array, including non-mutual versions of things. But yeah I suspect some inductive type tests would be great to have next! |
|
There are no mutual definitions! (As long as you only care about the safe subset and decline any unsafe definitions, which I think is totally fine for a checker) The parser format is a but unfortunate in that respect, see discussion at leanprover/lean4export#14 (review) If you only care about safe declarations then it's ok to flatten these arrays during parsing. |
c38b5e2 to
02ee643
Compare
|
BTW, on this branch I have been busy writing more and more tests (inductives, projections): That branch is using the 3.1.0 export format. Feel free to include that branch in your work here, and let me know if you found these tests useful or if you found something to be missing. |
b848008 to
c5798cd
Compare
|
Going to take this out of draft now that 3.1.0 is on master, not because rpylean is done :) but I think at least now it's runnable here -- the tests you're adding are super helpful! I'll try to leave further comments on anything specific in them when I get more time to actually try to get them to pass, but yeah thanks for all of the efforts here it's making it a lot easier to write one! |
|
Does that mean you want this to be merged as is? Or sit here? (Maybe update the PR description accordingly) |
|
Updated the description. What I meant was I think it can be merged now and then I can come back with more PRs to update its version later if you're happy to have it shown as failing a portion of the tests, I know there are other "not totally real" checkers shown (like always-reject) so at least we pass some :) |
It still fails some quite basic tests but if you're ok with that being shown as-is (and it motivating us to keep going to get them passing) I think it's functionally ready to be added.