Coq is a formal proof management system. 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. Typical applications include the certification of properties of programming languages (e.g. the CompCert compiler certification project, or the Bedrock verified low-level programming library), the formalization of mathematics (e.g. the full formalization of the Feit-Thompson theorem or homotopy type theory) and teaching.

You can download the current stable version, Coq 8.5pl3, released in October 2016. Since version 8.5, Coq features among other things asynchronous edition of documents under CoqIDE, universe polymorphism, primitive projections, new extensions of the proof engine and a new reduction procedure by compilation to native code.

The upcoming version, Coq 8.6beta1, released in November 2016, is also available for testing. Try out its faster universe checker, asynchronous error processing, Ltac and proof search improvements, its generalized intro patterns, new warning system, patterns in abstractions, new subterm selection algorithm, and its Ltac profiler!

The reference documentation for Coq are the Reference Manual and the documentation of the Standard Library. Other useful documents (tutorials, faq, ...) are available from the documentation page.

There is a strong and active community of users working with Coq. They are contributing formal developments, extensions of Coq (see Coq Package Index) , and tools based on Coq (see Related Tools).