HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
rocq-prover
rocq
OCaml2014–2026
rocq-prover / rocq

rocq

The Rocq Prover is an interactive theorem prover, or proof assistant. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs.

34Distinct people
44Mentions
1Explicit recommenders
5.7KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The Rocq Prover is an interactive theorem prover, or proof assistant. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

I recently learned about some limitations in both Coq and Lean theorem prover after watching the video by Kevin Buzzard on formalization of math in Lean. He did some claims…

xvilka used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year44 dated mentions

Observed mentions: 2014-09-07 23:44:29 UTC to 2026-09-05 14:42:29 UTC.

0510152014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 8 mentions; 2 submissions, 6 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 13 mentions; 1 submissions, 12 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC101
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC000
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC101
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC202
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC826
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC514
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC13112
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC404
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC606
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
The Rocq Prover The Rocq Prover is an interactive theorem prover, or proof assistant. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs. Installation Please see https://rocq-prover.org/install. Information on how to build and install from sources can be found in INSTALL.md. Documentation The sources of the documentation can be found in directory doc. See doc/README.md to learn more about the documentation, in particular how to build it. The documentation of the last released version is available on the Rocq web site at rocq-prover.org/docs. See also the Rocq wiki, and the Rocq FAQ, for additional user-contributed documentation. The documentation of the master branch is continuously deployed. See: Reference Manual (master) Documentation of the standard library (master) Documentation of the ML API (master) Changes The Recent changes chapter of the reference manual explains the differences and the incompatibilities of each new version of the Rocq Prover. If you upgrade Rocq, please read it carefully as it contains important advice on how to approach some problems you may encounter. Questions and discussion We have a number of channels to reach the user community and the development team: Our Zulip chat, for casual and high traffic discussions. Our Discourse forum, for more structured and easily browsable discussions and Q&A. See also rocq-prover.org/community, which lists several other active platforms. Bug reports Please report any bug / feature request in our issue tracker. To be effective, bug reports should mention the OCaml version used to compile and run Rocq, the Rocq version (coqtop -v or rocq -v), the configuration used, and include a complete source example leading to the bug. Contributing to Rocq Guidelines for contributing to Rocq in various ways are listed in the contributor's guide. Information about release plans is at https://github.com/rocq-prover/rocq/wiki/Release-Plan Supporting Rocq Help the Rocq community grow and prosper by becoming a sponsor! The Rocq Consortium can establish sponsorship contracts or receive donations. If you want to take an active role in shaping Rocq's future, you can also become a Consortium member. If you are interested, please get in touch!
Read the full README on GitHub

What Hacker News says

44 sources
Great article, two minor nitpicks: > To avoid Russell's Paradox, there isn't a type of all types. Instead, we have universes. This is an oversimplification, and Lean-specific (to be fair, the author claims to explore these concept in Lean). Girard's paradox comes from unrestricted impredicativity. To maintain consistency one needs to control impredicativity, type universes are a possible, very straightforward choice, but it is not the only choice. Some theorem provers, such as Cedille, do not use type universes, and even have `Type : Type` while still being consistent. See Stump, Aaron: “The Calculus of Dependent Lambda Eliminations.” Journal of Functional Programming 27 (2017): e14. DOI:10.1017/S0956796817000053[0] Additionally: > The famous Curry-Howard correspondence states [...] Propositions are types in Prop [...] Curry-Howard doesn'
Read the rest
t say anything about Prop, Prop vs. Type is just a distinction done in some particular type theories for pragmatic reasons, or because it simplifies classical (as opposed to intuitionistic) reasoning. In fact the reason why Prop vs. Type is a distinction done by many theorem provers leads Lawrence Paulson[1] to claim that modern theorem provers don't really use Curry-Howard[2], at least as Curry-Howard was originally defined. I disagree, because elements of Prop are still types, but please understand that this is a departure from original Curry-Howard. Moreover: > The famous Curry-Howard correspondence states [...] True propositions have exactly one term [...] As explained above, this is not the case for the "original" Curry-Howard, and it is just a choice in Lean, which is a type theory with proof irrelevance. There are different type theories without proof irrelevance (such as Adga by default without a recent extension), and Curry-Howard certainly still applies to them. In fact even in Rocq (Coq), which still has Prop vs. Set, proof irrelevance has to be assumed explicitly[3]. (Rocq also has SProp[4] for proof irrelevant propositions. nLab has more information about propositions as types[5] vs. propositions as some types[6]. [0] https://doi.org/10.1017/S0956796817000053 [1] https://www.cl.cam.ac.uk/~lp15/ [2] https://lawrencecpaulson.github.io/2023/08/23/Propositions_a... [3] https://github.com/rocq-prover/rocq/wiki/The-Logic-of-Coq#wh... [4] https://rocq-prover.org/doc/V8.15.0/refman/addendum/sprop.ht... [5] https://ncatlab.org/nlab/show/propositions+as+types [6] https://ncatlab.org/nlab/show/propositions+as+some+types
In Types of Types: Common to Exotic
Yes, unfortunately, Lean is harder to search for than some other programming languages. Although it seems workable: both DuckDuckGo and Google return Lean-related top results for me for "lean induction" and "lean match expression," for example. > And of course Coq is phallic both in English and the original French. Is it phallic in French too? I am not a French speaker. According to the French Wiktionary, "coq" means rooster, male chicken, cooked rooster, male partridge, a self-important person, a rooster on top of a church bell tower, a loose coin, a tool used for ironing, a kind of fish, a part used in watchmaking, or a cook working on a ship.[1] None of these sound phallic to me. I have not seen evidence that this was intended as an English pun. Rather, it seems to have been a double pun in French, for the calculus of constructions (Co
Read the rest
C) which Coq is based on, and Thierry Coquand who developed CoC.[2] So I just assume that it wasn't meant to be phallic and remind myself that some people speak French and they name their software French names. [1] https://fr.wiktionary.org/w/index.php?title=coq&oldid=325194... [2] https://github.com/coq/coq/wiki/Alternative-names
In Lean, Coq and other proof assistants: Visualising proofs as trees
To be ruthlessly, uselessly pedantic - after all, we're mathematicians - there's reasonable definitions of "academic" where logical unsoundness is still academic if it never interfered with the reasoning behind any proofs of interest ;) But: so long as we're accepting that unsoundness in your checker or its underlying theory are intrinsically deal breakers, there's definitely a long history of this, perhaps somewhat more relevant than the HM example, since no proof checkers of note, AFAIK, have incorporated mutation into their type theory. For one thing, the implementation can very easily have bugs. Coq itself certainly has had soundness bugs occasionally [0]. I'm sure Agda, Lean, Idris, etc. have too, but I've followed them less closely. But even the underlying mathematics have been tricky. Girard's Paradox broke Martin-Löf's type theory
Read the rest
, which is why in these dependently typed proof assistants you have to deal with the bizarre "Tower of Universes"; and Girard's Paradox is an analogue of Russell's Paradox which broke more naive set theories. And then Russell himself and his system of universal mathematics was very famously struck down by Gödel. But we've definitely gotten it right this time... [0] https://github.com/coq/coq/issues/4294
In Mathematical proof is a social compact
Fun fact: even theorem provers have counterexamples - Breaking Badfny: https://www.reddit.com/r/Coq/comments/x4d31y/breaking_badfny... - Falso (Coq): https://github.com/clarus/falso - Coq critical bugs (some of these mention potential ways to prove false): https://github.com/coq/coq/blob/master/dev/doc/critical-bugs (You can also get the theorem prover itself to hang or crash; if you work with theorem provers often, you'll even do this unintentionally, many times!)
In Counterexamples in Type Systems: programs that crash, segfault or explode (2021)
Semgrep is the most famous one I could think of offhand: https://github.com/returntocorp/semgrep/blob/v1.2.1/Dockerfi... Hyperkit from the docker/moby folks is another: https://github.com/moby/hyperkit/tree/v0.20210107 And while niche, Coq is not exactly unheard of: https://github.com/coq/coq/tree/V8.16.1 If you weren't already aware, GitHub supports searching by the repo's more prominent language: https://github.com/search?o=desc&q=language%3Aocaml&s=stars&...
In Ask HN: What Is OCaml Used For?
The kernel of a proof assistant is one of the most important components because it represents the foundation of reasoning in that logical system. There's a lot of introductory literature now, such as [0][1][2][3]. > What kind of axiomatic basis is being used in ACL2 and similar systems? ACL2 uses first-order logic and term rewriting, but this significantly hinders proof automation (done by ad-hoc searches). > Or do the different systems have significant differences with how and what they can prove? Yes. First-order logic can only quantify over individual elements of a set, second-order logic can quantify over sets, and so on. Higher-order logic is the foundation of assistants like Isabele/HOL light, which let you use classical reasoning. Alternatively (and better from an engineering standpoint) are assistants based on type theory, such as
Read the rest
Agda, Coq and Lean. Their kernels are just type checkers, which are relatively small programs, so theorem proving in those systems is literally just functional programming with a fancy type system (though exactly how those proofs are constructed is a UX choice). > Do the systems allow explorations in reverse maths, trying to derive stuff with as little axioms as possible? Yes, in Coq you can print out the axioms (on top of the type system) that a result depends on. See [4] for information on Coq's logic and what axioms you can safely add (they are necessary for certain areas of math). [0] (Coq) https://softwarefoundations.cis.upenn.edu/ [1] (Agda) https://plfa.github.io/ [2] (Isabelle) http://concrete-semantics.org/ [3] (Lean) https://www.ma.imperial.ac.uk/~buzzard/xena/natural_number_g... [4] https://github.com/coq/coq/wiki/The-Logic-of-Coq
In The Fundamental Theorem of Algebra in ACL2

Showing the 15 most recent of 44 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.