joharasmus / modern-hol-light Goto Github PK
View Code? Open in Web Editor NEWThis project forked from jrh13/hol-light
Modernising the HOL Light theorem prover
License: Other
This project forked from jrh13/hol-light
Modernising the HOL Light theorem prover
License: Other
MODERN HOL LIGHT Modern HOL Light is an experimental rewrite of the HOL Light interactive theorem prover / proof checker. It is based on the same source (kinda, sorta). The current main goal is to get rid of its custom syntax and make it use standard OCaml syntax, though I have more thoughts about where I want to take it. OBS!!! This repo just contains parts of the HOL Light core and is not very usable in itself. This is the root of the Github code repository: https://github.com/joharasmus/modern-hol-light Basic installation instructions are below. The installation currently recommends OCaml 4.14.0. * * * * * * * * INSTALLATION The Objective CAML (OCaml) implementation is a prerequisite for running HOL Light. You will also need camlp5. 1. OCaml + opam: there are packages for many Linux distributions. For example, on a debian derivative like Ubuntu, you just need to do the following: sudo apt install ocaml opam Once installed, run opam init to set up the default opam "switch". You can have multiple switches in opam, one for each version of OCaml. Set up one for OCaml 4.14.0, by opam switch create 4.14.0 and start using it with opam switch set 4.14.0 2. HOL Light dependency packages: The Modern HOL Light system requires the package num: opam install num 3. Frontend (optional): The builtin OCaml front-end is very simple, I prefer to use "utop" which one gets with opam install utop 4. Editor (optionaler): I prefer to use VSCode, which you can download at https://code.visualstudio.com If you choose to use VSCode, install the "OCaml Platform" plugin for better OCaml integration. The plugin requires another opam package: opam install ocaml-lsp-server * * * * * * * * * * Now for HOL Light itself. The instructions below assume a Unix-like environment such as Linux [or WSL (Windows Subsystem for Linux) under Windows], but the steps automated by the Makefile are easy enough to invoke manually. There's more detail on doing that in the Tutorial. (0) You can download the HOL Light sources from the Github site. For example, the following will copy the code from the trunk of the Github repository into a new directory 'modern-hol-light': git clone https://github.com/joharasmus/modern-hol-light The above is the recommended way of getting HOL Light. You should next enter the 'modern-hol-light' directory that has been created: cd ./modern-hol-light (1) Run 'utop'. You should see a prompt. At the prompt '#' you need to enter '#use "hol.ml";;' (the '#' is part of the command, not the prompt) in order to load HOL Light. This should rebuild all the core HOL Light theories, which will output all the core theories to the terminal, and terminate after a few minutes, something like: val search : term list -> (string * thm) list = <fun> - : unit = () File "help.ml" already loaded - : unit = () - : unit = () - : unit = () # HOL Light is now ready for the user to start proving theorems. You can also use the load process in other directories, but you should either set the environment variable HOLLIGHT_DIR to point to the directory containing the HOL source files, or change the first line of "hol.ml" to give that explicitly, from let hol_dir = ref (try Sys.getenv "HOLLIGHT_DIR" with Not_found -> Sys.getcwd());; to, for example let hol_dir = "/home/johnh/modern-hol-light";; or let hol_dir = "/usr/share/modern-hol-light";;
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.