GithubHelp home page GithubHelp logo

joharasmus / modern-hol-light Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jrh13/hol-light

0.0 0.0 0.0 28.63 MB

Modernising the HOL Light theorem prover

License: Other

OCaml 99.64% sed 0.36%

modern-hol-light's Introduction

                        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";;

modern-hol-light's People

Contributors

asr avatar binghe avatar blynn avatar hendriktews avatar joharasmus avatar jrh13 avatar monadius avatar petrospapapa avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.