Giter Site home page Giter Site logo

solomon-b / cooltt Goto Github PK

View Code? Open in Web Editor NEW

This project forked from redprl/cooltt

0.0 1.0 0.0 1.29 MB

๐Ÿ˜ŽTT

Home Page: http://www.redprl.org/

License: Apache License 2.0

Shell 0.06% Emacs Lisp 2.04% OCaml 96.01% Nix 0.23% Makefile 0.25% Vim Script 1.41%

cooltt's Introduction

cooltt

A cool implementation of normalization by evaluation (NbE) & elaboration for Cartesian cubical type theory.

For examples, see the test/ directory.

This implementation is forked from blott, the implementation artifact of Implementing a Modal Dependent Type Theory by Gratzer, Sterling, and Birkedal. Code has been incorporated from redtt, implemented by Sterling and Favonia.

A small collection of example programs is contained in the test/ directory. See test/README.md for a brief description of each program's purpose.

Building

cooltt has been built with OCaml 5.0 with opam 2.0.8.

With OPAM

If you are running an older version of OCaml, try executing the following command:

$ opam switch create 5.0.0

Once these dependencies are installed cooltt can be built with the following set of commands.

$ opam update
$ opam pin add -y cooltt .              # first time
$ opam upgrade                          # after packages change

After this, the executable cooltt should be available. The makefile can be used to rebuild the package for small tests. Locally, cooltt is built with dune; running the above commands will also install dune. Once dune is available the executable can be locally changed and run with the following:

$ make upgrade-pins                     # update and upgrade dependencies in active development
$ dune exec cooltt                      # from the `cooltt` top-level directory

With Nix

First, you'll need the Nix package manager, and then you'll need to install or enable flakes.

Then, cooltt can be built with the command

nix build --impure

to put a binary cooltt in result/bin/cooltt. This is good for if you just want to build and play around with cooltt.

If you're working on cooltt, you can enter a development shell with an OCaml compiler, dune, and other tools with

nix develop --impure

and then build as in the with OPAM section above.

Acknowledgments

This research was supported by the Air Force Office of Scientific Research under MURI grants FA9550-15-1-0053, FA9550-19-1-0216, and FA9550-21-1-0009. Any opinions, findings and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of any sponsoring institution, government or any other entity.

cooltt's People

Contributors

jonsterling avatar jozefg avatar favonia avatar totbwf avatar cangiuli avatar mmcqd avatar ecavallo avatar ivoysey avatar clayrat avatar ralsei avatar ejgallego avatar entropyfails avatar

Watchers

 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.