Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Coq
  3. MetaCoq

MetaCoq

MITRocq Proverv1.5.1-9.2

A project formalizing the Rocq proof assistant in Rocq itself, providing tools for metaprogramming and developing certified plugins.

Visit WebsiteGitHubGitHub
557 stars100 forks0 contributors

What is MetaCoq?

MetaRocq is a metaprogramming framework for the Rocq proof assistant that formalizes Rocq's own implementation within Rocq. It provides tools for quoting, manipulating, and verifying Rocq terms, enabling the development of certified plugins and transformations. The project solves the problem of building reliable, verified metaprogramming tools directly inside the proof assistant.

Target Audience

Researchers and developers working with the Rocq proof assistant who need to create verified plugins, compilers, or tactics, or who are interested in formalizing metatheory and extraction procedures.

Value Proposition

Developers choose MetaRocq because it offers a fully verified foundation for metaprogramming in Rocq, with certified type checkers, erasure procedures, and a formalized calculus, ensuring correctness and reliability for advanced tooling.

Overview

Metaprogramming, verified meta-theory and implementation of Rocq in Rocq

Use Cases

Best For

  • Developing certified plugins or tactics for the Rocq proof assistant
  • Formalizing the metatheory of Rocq's type system (PCUIC)
  • Building verified extraction or compilation pipelines from Coq
  • Creating translations or transformations on Coq terms with correctness proofs
  • Research in type theory and proof assistant implementation
  • Teaching advanced metaprogramming concepts in dependent type theory

Not Ideal For

  • Developers needing quick, unverified Coq scripts or macros without formal correctness proofs
  • Projects that rely solely on Coq's standard extraction or existing plugins without modification
  • Teams with limited familiarity with Coq's internal type system (PCUIC) or formal verification techniques
  • Applications where minimal setup and immediate usability are prioritized over certified correctness

Pros & Cons

Pros

Verified Metaprogramming Foundation

Formalizes Coq's calculus (PCUIC) with proven metatheoretical properties like confluence and subject reduction, providing a solid basis for building correct tools.

Certified Type Checking and Erasure

Includes a fuel-free, verified type checker and erasure procedure extracted for use within Coq, ensuring reliability for plugin development and extraction pipelines.

Comprehensive Quoting and Manipulation

Template-Rocq offers quoting of Coq terms into an inductive syntax tree and a monad for environment handling, simplifying complex metaprogramming tasks.

Strong Research and Development Backing

Backed by multiple academic papers and a large team, with a mature codebase (~300k LoC) indicating robustness and ongoing innovation.

Cons

Partial Feature Coverage

Template-Rocq does not cover eta-expansion and template polymorphism, limiting support for some advanced Coq constructs as admitted in the README.

Steep Learning and Setup Complexity

Requires deep understanding of Coq internals and non-trivial installation, with documentation geared towards researchers rather than practical developers.

Performance Trade-offs

The verified type checker and erasure may have overhead compared to Coq's native implementations, as hinted by the time comparison command in Safe Checker.

Frequently Asked Questions

Quick Stats

Stars557
Forks100
Contributors0
Open Issues65
Last commit8 days ago
CreatedSince 2017

Tags

#metaprogramming#coq#certified-software#coq-formalization#rocq#plugin-development#type-theory#extraction#formal-verification

Built With

R
Rocq
O
OCaml

Links & Resources

Website

Included in

Coq380
Auto-fetched 1 day ago

Related Projects

QuickChickQuickChick

Randomized Property-Based Testing Plugin for Coq

Stars292
Forks51
Last commit4 days ago
CoqHammerCoqHammer

CoqHammer: An Automated Reasoning Hammer Tool for Rocq - Proof Automation for Dependent Type Theory

Stars249
Forks39
Last commit1 month ago
EquationsEquations

A function definition package for Rocq

Stars236
Forks58
Last commit8 days ago
Coq-ElpiCoq-Elpi

Rocq plugin embedding Elpi

Stars194
Forks79
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub