-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the metaprl wiki!
The main
branch works with OCaml 4.11 and CamlP5 7.13 for 7.12 lacks cmx
version of some files.
The camlp5-8.00
works with OCaml 4.11 and CamlP5 e0fa35f
for the CamlP-8.00 release has a bug.
Please consider leave a message here if you're interested in contributing/using MetaPRL.
- figure out how to use
omake
. - start work on github source instead of old svn version
- fix macro preprocessor on CamlP5
- custom
ocamldep
already works - generate macro preprocessor executable now works without patching CamlP5
-
libmojave
shall no more be problematic - The shell interface is working now, browsing theory
itt/core
shall not be a problem - fixed parsing negative number, temporarily by handler a special case of
-
application - fixed Ploc filename causes `check' not working
- refiner shows no problem
- solved exported theory file checksum overflow.
- The document generation is working well. Although some styling issue should be fixed.
- fix
Lm_num
hashing issue by replace the bigint implementation by Zarith. - revive ITT tests.
- fixed looping bug in libmojave’s
MakePrintf
- use functions from Zarith in tactics.
- tear apart the repo so the theories go to a separate one.
- fix
NOTHING
handling inpa_macro
. now SIMPLE refiner can be chosen. - refactored spell checker
- fixed
ifthenelseT
- Now comments and summary items are not save in
prla/prlb
files. - base file compression
- port to camlp5-8.00 is almost done.
- added readline completion
- figuring out the various algorithms used for proving.
- http server sometimes
SIGSEGV
, it seems to be caused by random dirty bytes read by the server. This could also belm_ssl.c
not cooperating with GC. - rewrite to more "idiomatic" OCaml code.
- The
Lm_splay_linear_set
has some bug when splay on lazy/offset values. Consider either rewrite it or design a new one. - implement term comments. update
.prla
files accordingly.
- make the first release with CamlP5 8.00 integration.
- improving the browser interface, need someone good at HTTP server programming, web design.
- Find a way to test MathBus connection.
- Improving
mprun
, the OCaml repl, figuring out howShell_p4
work with the toplevel. - Libmojave's
MakePrintf
haven't been used much in MetaPRL, maybe should just consider remove it. - Improving performance of
Lm_rformat
, or replace it with something capable pretty print MetaPRL's stuff. - The
TERMS_std
implementation mismatches theds
version. (SIGSEGV
occurs if the cache files are not cleaned up). Mostly address related issues such asfind_subterm
etc. moved to low priority because majority of proofs are not yet affected. - Print proof terms like Nuprl, that only the changed assumptions are displayed in subgoals. This should be implemented in
Proof_edit
module.
- Add fuzzy matching for
cd
, so one can writeliFor2
forlistFormation2
in the REPL. - Add registry for jumping between recently viewed proof nodes.
- continue to develop LF theory.
- use
ocamlfind
for dependency management. - currently, theories cannot be displayed if they are not sub theories of
Shell
. Try improve this mechanism. Maybe just hide them. - the result byte code toplevel program is about 40MB if whole itt theory is linked, which slows down the startup time, consider load theory modules after toplevel gets started.
- develop computational theories, corecursion, etc from NuPRL.
-
The list type was once a primitive in Nuprl. Later, it was defined using the "Mendler" fixpoint type. Now we define lists as those "co-lists" for which the length (a partially defined function) has a value. Once we show that the list iterator is well formed (see list_ind_wf) then we can use list as an abstract type. This "implementation" shows that we only need induction on
Nat
to build lists, and do not need the power of the Mendler fixpoint or a general inductive construction.
-
- add
definition
resource sounfoldT
foldT
can be used instead of directly callconv
s, and implement NuPRL styleRWW
accordingly. - fix the "derived" rule/rw function.
- soft abstraction, which should be easy with the resource mechanism.
- redesign the code listing, what I want is actually something resembles WEB.
- Port
Coqrewrite
to MetaPRL, design a way to emulate typeclass.
Please don't use flambda
, it is currently incompatible due to cross module optimization not working well with make
style building systems. See https://github.com/ocaml/ocaml/issues/7645
-
main/pcaml.cmx
andmain/reloc.cmx
needs to be copied to camlp5 install dir
Port to 8.00 is almost done. The only extra file needed to copy is odyl/odyl_main
, however this should be fixed soon.
Consider add "hashconsing" to term data structures. Also we might use auto code generation for filter_ocaml
The Ensemble based distributed refiner haven't been used in MetaPRL for a long period. Ensemble has been revived in https://github.com/chetmurthy/ensemble and the latest version works on 4.10.0. (with the --safe-string
thing disabled).
However, MetaPRL uses a very old version of ensemble, so the server program needs to be rewritten.
It might be possible to use Multicore OCaml as a candidate for multiple threads refiner.
OMake was created as the primary building system used by MetaPRL. Recent version (10.0.3) of OMake should work well. Please don't install OMake from OPAM since that one won't find out proper location of preset files, so just build and install from source.
MetaPRL now depends on Zarith, which requires either GMP or MPIR.
Experimental support for compressing theory files.