There is a newer version of this record available.

Software Open Access

mattam82/Coq-Equations: Equations 1.3beta1 for Coq 8.13

Matthieu Sozeau; Pierre-Marie Pédrot; Cyprien Mangin; Emilio Jesús Gallego Arias; Gaëtan Gilbert; Maxime Dénès; Robin Green; Hugo Herbelin; Enrico Tassi; Guillaume Claret; Siddharth; Anton Trunov; Joachim Breitner; Antonio Nikishaev; Jim Fehrle; SimonBoulier; Søren Nørbæk; Théo Zimmermann; Vincent Laporte; Yves Bertot


Citation Style Language JSON Export

{
  "publisher": "Zenodo", 
  "DOI": "10.5281/zenodo.4739438", 
  "title": "mattam82/Coq-Equations: Equations 1.3beta1 for Coq 8.13", 
  "issued": {
    "date-parts": [
      [
        2021, 
        5, 
        5
      ]
    ]
  }, 
  "abstract": "Equations 1.3\n<p>This is a new major release of Equations, working with Coq 8.13, 8.12 and 8.11. This version adds an improved syntax (less <code>;</code>-separation), integration with the Coq-HoTT library (for Coq 8.13 only) and numerous bug fixes. It introduces minor breaking changes along with the following features:</p>\n<ul>\n<li><p>Improved syntax for \"concise\" clauses separated by <code>|</code>, at top-level or inside <code>with</code> subprograms. \nWe no longer require to separated them by <code>;</code>. For example, the following definition is now accepted:</p>\n<pre><code class=\"lang-coq\">Equations foo : nat -&gt; nat := \n  | 0 =&gt; 1\n  | S n =&gt; S (foo n).\n</code></pre>\n<p>The old syntax is however still supported for backwards compatibility.</p>\n</li>\n<li><p><code>Require Import Equations.Equations.</code> does not work anymore.\nOne has to use <code>Require Import Equations.Prop.Equations</code> to load the plugin's default instance where equality is in <code>Prop</code>. <code>From Equations Require Import Equations</code> is unaffected.</p>\n</li>\n<li>Use <code>Require Import Equations.HoTT.All</code> to use the HoTT variant of the library compatible with the <a href=\"https://github.com/HoTT/HoTT\">Coq HoTT</a> library\nThe plugin then reuses the definition of <code>paths</code> from the HoTT library and all its constructions are universe polymorphic. As for the HoTT library alone, coq must be passed the arguments <code>-noinit -indices-matter</code> to use the library and plugin. The <code>coq-equations</code> opam package depends optionally on <code>coq-hott</code>, so if <code>coq-hott</code> is installed before it, <code>coq-equations</code> will automatically install the <code>HoTT</code> library variant in addition to the standard one.</li>\n<li>New attribute <code>#[tactic=tac]</code> to set locally the default tactic to solve remaining holes. \nThe goals on which the tactic applies are now always of the form <code>\u0393 |- \u03c4</code> where \u0393 is the context where the hole was introduced and \u03c4 the expected type, <em>even</em> when using the <code>Obligation</code> machinery to solve them, resulting in a possible incompatibility if the obligation tactic treated the context differently than the conclusion. By default, the <code>program_simpl</code> tactic performs a <code>simpl</code> call before introducing the hypotheses, so you might need to add a <code>simpl in *</code> to your tactics.</li>\n<li>New attributes <code>#[derive(equations=yes,no, eliminator=yes|no)]</code> can be used in place of the <code>(noeqns, noind)</code> flags which are deprecated.</li>\n</ul>\nFixed in this version:\n<p>\u2217 #329: improved strengthening avoiding to abstract over recursive definitions which would not pass the guardness checker. This can simplify the produced terms, avoiding unnecessary \"commutative cuts\".\n\u2217 #321: warn rather than error when using Equations? and no subgoals are left. This will leave a proof state with no subgoals, that must be closed using a <code>Qed</code> or <code>Defined</code> (similarly to Coq's <code>#[refine] Instance</code> command).\n\u2217 #372, #194: <code>funelim</code> applied to a partial application failing\n\u2217 #354: support for building values in <code>SProp</code>\n\u2217 #353: name capture problem in presence of modules\n\u2217 #335: provide an alias Equations Derive to not conflict with QuickChick's Derive\n\u2217 #325: properly inline all Equations helper constants during Extraction</p>", 
  "author": [
    {
      "family": "Matthieu Sozeau"
    }, 
    {
      "family": "Pierre-Marie P\u00e9drot"
    }, 
    {
      "family": "Cyprien Mangin"
    }, 
    {
      "family": "Emilio Jes\u00fas Gallego Arias"
    }, 
    {
      "family": "Ga\u00ebtan Gilbert"
    }, 
    {
      "family": "Maxime D\u00e9n\u00e8s"
    }, 
    {
      "family": "Robin Green"
    }, 
    {
      "family": "Hugo Herbelin"
    }, 
    {
      "family": "Enrico Tassi"
    }, 
    {
      "family": "Guillaume Claret"
    }, 
    {
      "family": "Siddharth"
    }, 
    {
      "family": "Anton Trunov"
    }, 
    {
      "family": "Joachim Breitner"
    }, 
    {
      "family": "Antonio Nikishaev"
    }, 
    {
      "family": "Jim Fehrle"
    }, 
    {
      "family": "SimonBoulier"
    }, 
    {
      "family": "S\u00f8ren N\u00f8rb\u00e6k"
    }, 
    {
      "family": "Th\u00e9o Zimmermann"
    }, 
    {
      "family": "Vincent Laporte"
    }, 
    {
      "family": "Yves Bertot"
    }
  ], 
  "version": "v1.3-8.13beta", 
  "type": "article", 
  "id": "4739438"
}
349
49
views
downloads
All versions This version
Views 3495
Downloads 493
Data volume 64.4 MB3.7 MB
Unique views 3015
Unique downloads 272

Share

Cite as