Michael Färber
Michael Färber
I have now implemented faster precedence parsing in 012c9c5, which makes your example (fail to) parse after only 0.009 seconds (instead of 27 seconds before).
See #50.
By the way, the current approach of `serde_json` to encode arbitrary-precision numbers has another downside: When we read a JSON value `{"$serde_json::private::Number": "1.0"}`, it gets (incorrectly) mapped to the number...
The problem is that e.g. Isabelle works by treating every `imports` like Coq's `Require Export`. That means that in any Isabelle theory `T`, we can access not only the symbols...
Yet another example: ~~~ symbol const Type : TYPE symbol injective eta : Type ⇒ TYPE symbol o : Type symbol const neg : eta o ⇒ eta o type...
One extreme case of guiding error messages: Not necessarily what would be appropriate for Lambdapi, I agree, but the intention is interesting, I believe.
Some more inspiration from the Elm land:
How about making parse_file return a [Seq](https://caml.inria.fr/pub/docs/manual-ocaml/libref/Seq.html) instead of a list? I've used this technique in the past, and it yielded very good results performance-wise.
Certainly, @fblanqui. Here is the output for [HOL.Groups](http://cl-informatik.uibk.ac.at/users/mfaerber/dk_hol_groups.lp.bz2), which Dedukti is able to parse on my machine (typechecking fails still ATM), and here is the output for [HOL.Hilbert_Choice](http://cl-informatik.uibk.ac.at/users/mfaerber/dk_hol_hilbert_choice.lp.bz2), on which...
A rough estimation (number of lines / 3) gives that the larger file (for HOL.Hilbert_Choice) contains about 35,000 commands.