Git Product home page Git Product logo

metacoq_plugins's Introduction

MetaCoq plugins for nested inductive types

This repository contains a partial update of https://github.com/uds-psl/metacoq_plugins to coq 8.16 and metacoq version 1.1.1

The originality of the work is to be credited to the authors of the linked repository above.

For now, only the subterm repository is expected to work

Installation

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

opam install coq-metacoq-pcuic.1.1.1+8.16 coq-metacoq-pcuic

Development setup

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

opam install coq-metacoq-pcuic.1.1.1+8.16 coq-metacoq-pcuic

To compile a subproject with name SUBPROJECT use make -C SUBPROJECT. E.g. use make -C parametricity to compile the parametricity plugin.

Some subprojects may depend on others, for instance the nested induction plugin depends on the parametricity plugin. This means one needs to run make -C parametricity && make -C parametricity install before running make -C nested-induction.

Subterm Relations

Subterm relation generation can be seen in action in subterm/test.v. The main entry point function subterm takes a template-coq program for an inductive (as obtained with <# myInductive #>) and generates a new inductive myInductive_direct_subterm describing the direct subterms of the inductive in the signature of its constructors.

Current limitations:

  • Does not work with non-uniform parameters, with nested-inductive types.
  • Does not deal with occurences of mutual inductive types.

metacoq_plugins's People

Contributors

christ2go avatar kyodralliam avatar neuralcoder3 avatar yforster avatar

Watchers

 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.