Git Product home page Git Product logo

mirror-core's Introduction

mirror-core

MirrorCore is a library for extensible reflective automation. It includes two main components.

  • Lambda -- a simply typed lambda calculus to use as the reflective core language
  • RTac -- a reflective tactic language modeled on Ltac.

The system is described at a mathematical level in two works:

Bugs

If you find a bug, please report it on github: https://github.com/gmalecha/mirror-core/issues

Install with OPAM

Add the Coq repository:

opam repo add coq-released https://coq.inria.fr/opam/released

and run:

opam install coq-mirror-core

To get the beta versions of Coq, activate the repository:

opam repo add coq-core-dev https://coq.inria.fr/opam/core-dev

Quick Start

This version of MirrorCore builds on Coq 8.5.

(In the following commands 'mirror-core' refers to the root directory of mirror-core)

(If you need to set up dependencies, please see the next section first)

To build the library, run:

mirror-core/ $ make -jN

in the main directory.

You can build the examples by running

mirror-core/examples/ $ make -jN

in the examples directory.

Dependencies

MirrorCore depends on two external libraries.

Both of these can be installed using opam, provided you have added the repository described above.

opam install coq-ext-lib coq-plugin-utils

coq-plugin-utils needs to be installed, you should follow the directions in the README.md in that repository.

coq-ext-lib does not need to be installed.

If you do install it, simply touch coq-ext-lib in the mirror-core folder to prevent pulling a fresh copy.

mirror-core/ $ touch coq-ext-lib

If you already have a copy of coq-ext-lib on your system but it is not installed, you can create a symbolic link to it in the mirror-core directory.

ln -s <path/to/coq-ext-lib> coq-ext-lib

If you do not have a local copy already you can run

mirror-core/ $ make init

which will pull a fresh copy of coq-ext-lib and build it.

In order to build the reification plugin, you must use OCaml 4.01 or later.

mirror-core's People

Contributors

gmalecha avatar jesper-bengtson avatar mmalvarez avatar jasongross avatar

Watchers

James Cloos avatar Ben avatar  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.