The documentation is working with the latesest version of Coq Platform, i.e [8.19.2]. It is planned in the future to index the documentation and the Coq Platform's version and to have a dev version of it, so that users can find docmentation working for their version of the Coq and the Platform. It is not the case as of yet, so the documentation it is not guaranteed to work perfectly on other versions of Coq and the Platform, though most of the content should still be working fine.
This project aims to create an online compilation of short and interactive tutorials and how-to guides for Coq and the Coq Platform.
Each core functionality and plugin of Coq and the Coq Platform should have (short) pedagogical tutorials and/or how-to guides demonstrating how to use the functionality, with practical examples. They should further be available online through an interactive interface, most likely using JSCoq. There is now a prototype web interface to check out.
Tutorials and how-to guides serve different purposes and are complementary. Tutorials guide a user during learning in discovering specific aspects of a feature like "Notations in Coq", by going through (simple) predetermined examples, and introducing notions gradually. In contrast, how-to guides are use-case-oriented and guides users through real life problems and their inherent complexity, like "How to define functions by well-founded recursion and reason about them".
For a complete description of the project, you can check out the associated Coq Enhancement Proposal.
[!TIP] To gain useful insights about what documentation should be, we recommend checking out the website diataxis that discusses the different kind of documentations. In particular the difference between tutorials and how-to which are often mistaken.
Such form of documentation is complementary to other kinds of documentation like the reference manual, and has several advantages:
This project will necessarily have to be a collaborative undertaking considering how much work there is to do, and the richness and diversity of our ecosystem. Yet, as the tutorials can mostly be designed independently, by combining the different expertise of the different communities, there is good hope to quickly get to a good documentation, and we welcome contributions.
As a base for work, we have established an informal list of tutorials and how-tos it could be interesting to have. This list is not fixed and will necessarily evolve through discussions with the community and experience, but it should already give an idea of the potential of this project.
We will also soon submit a Coq Enhancement Proposal.
[!NOTE] For more information about project and to participate in disccusions, please checkout on the dedicated Zulip stream. Among others, you can find there information about new tutorials and how-tos, and a wishlist to tell us what you need
There is a lot of work to be done before having a comprehensive documentation for Coq and its Platform, and we welcome contributions.
There are different possible ways to contribute depending on your time and technical skills:
[!IMPORTANT] For more information on how to contribute, please check the Contribution Guidelines.
The Coq Platform Docs (in particular, all the text in tutorials and how-to guides) by The Coq Platform Docs authors are licensed under Creative Commons Attribution 4.0 International.
[!NOTE] Code snippets from tutorials and how-to guides can be reused unencumbered.
See LICENSE.md for details.