aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md125
1 files changed, 52 insertions, 73 deletions
diff --git a/README.md b/README.md
index f82edb2352..e6a52e95e3 100644
--- a/README.md
+++ b/README.md
@@ -1,86 +1,65 @@
-How to write plugins in Coq
-===========================
- # Working environment : merlin, tuareg (open question)
-
- ## OCaml & related tools
+# Coq
- These instructions use [OPAM](http://opam.ocaml.org/doc/Install.html)
+[![pipeline status](https://gitlab.com/coq/coq/badges/master/pipeline.svg)](https://gitlab.com/coq/coq/commits/master)
+[![Travis](https://travis-ci.org/coq/coq.svg?branch=master)](https://travis-ci.org/coq/coq/builds)
+[![Appveyor](https://ci.appveyor.com/api/projects/status/eln43k05pa2vm908/branch/master?svg=true)](https://ci.appveyor.com/project/coq/coq/branch/master)
+[![Gitter](https://badges.gitter.im/coq/coq.svg)](https://gitter.im/coq/coq)
+[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1003420.svg)](https://doi.org/10.5281/zenodo.1003420)
-```shell
-opam init --root=$PWD/CIW2018 --compiler=4.06.0 -j2
-eval `opam config env --root=$PWD/CIW2018`
-opam install camlp5 ocamlfind num # Coq's dependencies
-opam install lablgtk # Coqide's dependencies (optional)
-opam install merlin # prints instructions for vim and emacs
-```
+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.
- ## Coq
+## Installation
+Download the pre-built packages of the [latest release](https://github.com/coq/coq/releases/latest) for Windows and MacOS;
+read the [help page](https://coq.inria.fr/opam/www/using.html) on how to install Coq with OPAM;
+or refer to the [`INSTALL` file](INSTALL) for the procedure to install from source.
-```shell
-git clone git@github.com:coq/coq.git
-cd coq
-./configure -profile devel
-make -j2
-cd ..
-export PATH=$PWD/coq/bin:$PATH
-```
+## Documentation
- ## This tutorial
+The sources of the documentation can be found in directory [`doc`](doc).
+See [`doc/README.md`](/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 Coq
+web site at [coq.inria.fr/documentation](http://coq.inria.fr/documentation).
+See also [Cocorico](https://github.com/coq/coq/wiki) (the Coq wiki),
+and the [Coq FAQ](https://github.com/coq/coq/wiki/The-Coq-FAQ),
+for additional user-contributed documentation.
-```shell
-git clone git@github.com:ybertot/plugin_tutorials.git
-cd plugin_tutorials/tuto0
-make .merlin # run before opening .ml files in your editor
-make # build
-```
-
-
-
- # tuto0 : basics of project organization
- package a ml4 file in a plugin, organize a `Makefile`, `_CoqProject`
- - Example of syntax to add a new toplevel command
- - Example of function call to print a simple message
- - Example of syntax to add a simple tactic
- (that does nothing and prints a message)
- - To use it:
+## Changes
+There is a file named [`CHANGES.md`](CHANGES.md) that explains the differences and the
+incompatibilities since last versions. If you upgrade Coq, please read
+it carefully.
-```bash
- cd tuto0; make
- coqtop -I src -R theories Tuto0
-```
+## The Coq Club
+The Coq Club moderated mailing list is meant to be a standard way
+to discuss questions about the Coq system and related topics. The
+subscription link can be found at [coq.inria.fr/community](http://coq.inria.fr/community).
- In the Coq session type:
-```coq
- Require Import Tuto0.Loader. HelloWorld.
-```
+The topics to be discussed in the club should include:
- # tuto1 : Ocaml to Coq communication
- Explore the memory of Coq, modify it
- - Commands that take arguments: strings, symbols, expressions of the calculus of constructions
- - Commands that interact with type-checking in Coq
- - A command that adds a new definition or theorem
- - A command that uses a name and exploits the existing definitions
- or theorems
- - A command that exploits an existing ongoing proof
- - A command that defines a new tactic
+* technical problems;
+* questions about proof developments;
+* suggestions and questions about the implementation;
+* announcements of proofs;
+* theoretical questions about typed lambda-calculi which are
+ closely related to Coq.
- Compilation and loading must be performed as for `tuto0`.
-
- # tuto2 : Ocaml to Coq communication
- A more step by step introduction to writing commands
- - Explanation of the syntax of entries
- - Adding a new type to and parsing to the available choices
- - Handling commands that store information in user-chosen registers and tables
+## Bugs report
+Please report any bug / feature request in [our issue tracker](https://github.com/coq/coq/issues).
- Compilation and loading must be performed as for `tuto1`.
+To be effective, bug reports should mention the OCaml version used
+to compile and run Coq, the Coq version (`coqtop -v`), the configuration
+used, and include a complete source example leading to the bug.
- # tuto3 : manipulating terms of the calculus of constructions
- Manipulating terms, inside commands and tactics.
- - Obtaining existing values from memory
- - Composing values
- - Verifying types
- - Using these terms in commands
- - Using these terms in tactics
- - Automatic proofs without tactics using type classes and canonical structures
+## Contributing
- compilation and loading must be performed as for `tuto0`.
+Guidelines for contributing to Coq in various ways are listed in the [contributor's guide](CONTRIBUTING.md).
+
+## Supporting Coq
+
+Help the Coq community grow and prosper by becoming a sponsor! The [Coq
+Consortium](https://coq.inria.fr/consortium) can establish sponsorship contracts
+or receive donations. If you want to take an active role in shaping Coq's
+future, you can also become a Consortium member. If you are interested, please
+get in touch!