Coq is a proof assistant for teaching and formalizing mathematics and software engineering. It is an interactive theorem prover, meaning that it allows users to construct formal proofs, and then check and verify those proofs. Coq comes with a powerful set of logical primitives, allowing users to express statements in a formal language, and then prove them with the help of the Coq system. The Coq system is built on top of a type theory and is designed to help users develop, verify, and maintain formal proofs. Coq can also be used as a programming language, and is capable of expressing functional programs, as well as reasoning about their correctness and properties. Coq is also used in computer science and software engineering, as a tool to verify the correctness of code.
Its logic is weaker (simple HOL type), but its tooling is much more developed: Prover IDE, integration of automated reasoning systems through Sledgehammer, many complementary tools, large archive of formal proofs