Notices: This section not yet converted to new layout. Download stats are rolling back out.

This is not the latest version of The Coq proof assistant available.

The Coq proof assistant

8.9.0

Package test results are passing.

Private CDN cached downloads available for licensed customers. Never experience 404 breakages again! Learn more...

This package was approved as a trusted package on 4/26/2019.

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.

Coq implements a program specification and mathematical higher-level language called Gallina that is based on an expressive formal language called the Calculus of Inductive Constructions that itself combines both a higher-order logic and a richly-typed functional programming language. Through a vernacular language of commands, Coq allows:

  • to define functions or predicates, that can be evaluated efficiently;
  • to state mathematical theorems and software specifications;
  • to interactively develop formal proofs of these theorems;
  • to machine-check these proofs by a relatively small certification "kernel";
  • to extract certified programs to languages like Objective Caml, Haskell or Scheme.

As a proof development system, Coq provides interactive proof methods, decision and semi-decision algorithms, and a tactic language for - letting the user define its own proof methods. Connection with external computer algebra system or theorem provers is available.

As a platform for the formalization of mathematics or the development of programs, Coq provides support for high-level notations, implicit contents and various other useful kinds of macros.

To install The Coq proof assistant, run the following command from the command line or from PowerShell:

C:\> choco install coq --version 8.9.0

To upgrade The Coq proof assistant, run the following command from the command line or from PowerShell:

C:\> choco upgrade coq --version 8.9.0

Files

Hide
  • tools\chocolateyInstall.ps1 Show
    $ErrorActionPreference = 'Stop'
    
    $packageArgs = @{
      packageName    = $env:ChocolateyPackageName
      fileType       = 'exe'
      url            = 'https://github.com/coq/coq/releases/download/V8.9.0/coq-8.9.0-installer-windows-i686.exe'
      url64bit       = 'https://github.com/coq/coq/releases/download/V8.9.0/coq-8.9.0-installer-windows-x86_64.exe'
      softwareName   = 'coq*'
      checksum       = 'f09433a6429f3801b10fba227b4f859f7d87f894379cc7266a240af0d8a2e01c'
      checksumType   = 'sha256'
      checksum64     = '26e11e8b14dd870525b229dde169f4f2e2c0fea9ee4704b5358554f553d83918'
      checksumType64 = 'sha256'
      silentArgs     = '/S'
      validExitCodes = @(0)
    }
    
    Install-ChocolateyPackage @packageArgs
    
  • tools\chocolateyUninstall.ps1 Show
    $ErrorActionPreference = 'Stop'
    
    $packageArgs = @{
      packageName    = $env:ChocolateyPackageName
      softwareName   = 'coq*'
      fileType       = 'exe'
      silentArgs     = '/S'
      validExitCodes = @(@(0))
    }
    
    $uninstalled = $false
    
    [array]$key = Get-UninstallRegistryKey @packageArgs
    
    if ($key.Count -eq 1) {
      $key | ForEach-Object {
        $packageArgs['file'] = "$($_.UninstallString)"
    
        Uninstall-ChocolateyPackage @packageArgs
      }
    }
    elseif ($key.Count -eq 0) {
      Write-Warning "$packageName has already been uninstalled by other means."
    }
    elseif ($key.Count -gt 1) {
      Write-Warning "$($key.Count) matches found!"
      Write-Warning "To prevent accidental data loss, no programs will be uninstalled."
      Write-Warning "Please alert the package maintainer that the following keys were matched:"
      $key | ForEach-Object { Write-Warning "- $($_.DisplayName)" }
    }
    

Virus Scan Results

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Dependencies

Package Maintainer(s)

Software Author(s)

  • INRIA

Copyright

Copyright 1999-2016 The Coq development team, INRIA, CNRS, UniversityParis Sud, University Paris 7, Ecole Polytechnique

Tags

Release Notes

Package Changelog

Software Release Notes

Coq version 8.9 contains the result of refinements and stabilization of features and deprecations or removals of deprecated features, cleanups of the internals of the system and API along with a few new features. This release includes many user-visible changes, including deprecations that are documented in CHANGES.md and new features that are documented in the reference manual. Here are the most important changes:

  • Kernel: mutually recursive records are now supported, by Pierre-Marie Pédrot.

  • Notations:

    • Support for autonomous grammars of terms called "custom entries", by Hugo Herbelin.

    • Deprecated notations of the standard library will be removed in the next version of Coq, see the CHANGES.md file for a script to ease porting, by Jason Gross and Jean-Christophe Léchenet.

    • Added the Numeral Notation command for registering decimal numeral notations for custom types, by Daniel de Rauglaudre, Pierre Letouzey and Jason Gross.

  • Tactics: Introduction tactics intro/intros on a goal that is an existential variable now force a refinement of the goal into a dependent product rather than failing, by Hugo Herbelin.

  • Decision procedures: deprecation of tactic romega in favor of lia and removal of fourier, replaced by lra which subsumes it, by Frédéric Besson, Maxime Dénès, Vincent Laporte and Laurent Théry.

  • Proof language: focusing bracket { now supports named goals, e.g. [x]:{ will focus on a goal (existential variable) named x, by Théo Zimmermann.

  • SSReflect: the implementation of delayed clear was simplified by Enrico Tassi: the variables are always renamed using inaccessible names when the clear switch is processed and finally cleared at the end of the intro pattern. In addition to that, the use-and-discard flag {} typical of rewrite rules can now be also applied to views, e.g. => {}/v applies v and then clears v.

  • Vernacular:

    • Experimental support for attributes on commands, by Vincent Laporte, as in #[local] Lemma foo : bar. Tactics and tactic notations now support the deprecated attribute.

    • Removed deprecated commands Arguments Scope and Implicit Arguments in favor of Arguments, with the help of Jasper Hugunin.

    • New flag Uniform Inductive Parameters by Jasper Hugunin to avoid repeating uniform parameters in constructor declarations.

    • New commands Hint Variables and Hint Constants, by Matthieu Sozeau, for controlling the opacity status of variables and constants in hint databases. It is recommended to always use these commands after creating a hint databse with Create HintDb.

    • Multiple sections with the same name are now allowed, by Jasper Hugunin.

  • Library: additions and changes in the VectorDef, Ascii, and String libraries. Syntax notations are now available only when using Import of libraries and not merely Require, by various contributors (source of incompatibility, see CHANGES.md for details).

  • Toplevels: coqtop and coqide can now display diffs between proof steps in color, using the Diffs option, by Jim Fehrle.

  • Documentation: we integrated a large number of fixes to the new Sphinx documentation by various contributors, coordinated by Clément Pit-Claudel and Théo Zimmermann.

  • Tools: removed the gallina utility and the homebrewed Emacs mode.

  • Packaging: as in Coq 8.8.2, the Windows installer now includes many more external packages that can be individually selected for installation, by Michael Soegtrop.

Version 8.9 also comes with a bunch of smaller-scale changes and improvements regarding the different components of the system. Most important ones are documented in the CHANGES.md file.

On the implementation side, the dev/doc/changes.md file documents the numerous changes to the implementation and improvements of interfaces. The file provides guidelines on porting a plugin to the new version and a plugin development tutorial kept in sync with Coq was introduced by Yves Bertot http://github.com/ybertot/plugin_tutorials. The new dev/doc/critical-bugs file documents the known critical bugs of Coq and affected releases.

The efficiency of the whole system has seen improvements thanks to contributions from Gaëtan Gilbert, Pierre-Marie Pédrot, and Maxime Dénès.

Maxime Dénès, Emilio Jesús Gallego Arias, Gaëtan Gilbert, Michael Soegtrop, Théo Zimmermann worked on maintaining and improving the continuous integration system.

The OPAM repository for Coq packages has been maintained by Guillaume Melquiond, Matthieu Sozeau, Enrico Tassi with contributions from many users. A list of packages is available at https://coq.inria.fr/opam/www.

The 54 contributors for this version are Léo Andrès, Rin Arakaki, Benjamin Barenblat, Langston Barrett, Siddharth Bhat, Martin Bodin, Simon Boulier, Timothy Bourke, Joachim Breitner, Tej Chajed, Arthur Charguéraud, Pierre Courtieu, Maxime Dénès, Andres Erbsen, Jim Fehrle, Julien Forest, Emilio Jesus Gallego Arias, Gaëtan Gilbert, Matěj Grabovský, Jason Gross, Samuel Gruetter, Armaël Guéneau, Hugo Herbelin, Jasper Hugunin, Ralf Jung, Sam Pablo Kuper, Ambroise Lafont, Leonidas Lampropoulos, Vincent Laporte, Peter LeFanu Lumsdaine, Pierre Letouzey, Jean-Christophe Léchenet, Nick Lewycky, Yishuai Li, Sven M. Hallberg, Assia Mahboubi, Cyprien Mangin, Guillaume Melquiond, Perry E. Metzger, Clément Pit-Claudel, Pierre-Marie Pédrot, Daniel R. Grayson, Kazuhiko Sakaguchi, Michael Soegtrop, Matthieu Sozeau, Paul Steckler, Enrico Tassi, Laurent Théry, Anton Trunov, whitequark, Théo Winterhalter, Zeimer, Beta Ziliani, Théo Zimmermann.

Many power users helped to improve the design of the new features via the issue and pull request system, the Coq development mailing list or the [email protected] mailing list. It would be impossible to mention exhaustively the names of everybody who to some extent influenced the development.

Version 8.9 is the fourth release of Coq developed on a time-based development cycle. Its development spanned 7 months from the release of Coq 8.8. The development moved to a decentralized merging process during this cycle. Guillaume Melquiond was in charge of the release process and is the maintainer of this release. This release is the result of ~2,000 commits and ~500 PRs merged, closing 75+ issues.

The Coq development team welcomed Vincent Laporte, a new Coq engineer working with Maxime Dénès in the Coq consortium.

Version History

Version Downloads Last updated Status
The Coq proof assistant 8.9.0 150 Monday, January 21, 2019 approved
The Coq proof assistant 8.8.2 1856 Thursday, October 25, 2018 approved
The Coq proof assistant 8.8.1 170 Monday, July 9, 2018 approved
The Coq proof assistant 8.8.0 202 Tuesday, April 17, 2018 approved
The Coq proof assistant 8.7.2 213 Saturday, February 17, 2018 approved
The Coq proof assistant 8.7.1 232 Saturday, December 16, 2017 approved
The Coq proof assistant 8.7.0 188 Saturday, October 21, 2017 approved
The Coq proof assistant 8.6.1 252 Wednesday, July 26, 2017 approved
The Coq proof assistant 8.6 256 Friday, June 9, 2017 approved
Show More

Discussion for the The Coq proof assistant Package

Ground rules:

  • This discussion is only about The Coq proof assistant and the The Coq proof assistant package. If you have feedback for Chocolatey, please contact the google group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or The Coq proof assistant, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.

comments powered by Disqus
Chocolatey.org uses cookies to enhance the user experience of the site.
Ok