Software Open Access
Matthieu Sozeau; Pierre-Marie Pédrot; Cyprien Mangin; Emilio Jesús Gallego Arias; Gaëtan Gilbert; Hugo Herbelin; Maxime Dénès; Robin Green; Guillaume Claret; Enrico Tassi; Siddharth; Anton Trunov; Jim Fehrle; Joachim Breitner; Antonio Nikishaev; SimonBoulier; Søren Nørbæk; Théo Zimmermann; Vincent Laporte; Yves Bertot
<?xml version='1.0' encoding='UTF-8'?> <record xmlns="http://www.loc.gov/MARC21/slim"> <leader>00000nmm##2200000uu#4500</leader> <controlfield tag="005">20230109105344.0</controlfield> <controlfield tag="001">5529713</controlfield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="a">Pierre-Marie Pédrot</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="a">Cyprien Mangin</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="a">Emilio Jesús Gallego Arias</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="u">Inria</subfield> <subfield code="a">Gaëtan Gilbert</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="a">Hugo Herbelin</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="a">Maxime Dénès</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="a">Robin Green</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="u">foobar.land</subfield> <subfield code="a">Guillaume Claret</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="u">@coq @math-comp @LPCIC</subfield> <subfield code="a">Enrico Tassi</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="u">IIIT Hyderabad</subfield> <subfield code="a">Siddharth</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="u">@Zilliqa</subfield> <subfield code="a">Anton Trunov</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="a">Jim Fehrle</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="u">@dfinity-lab</subfield> <subfield code="a">Joachim Breitner</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="a">Antonio Nikishaev</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="a">SimonBoulier</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="a">Søren Nørbæk</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="u">@Inria / Université de Paris</subfield> <subfield code="a">Théo Zimmermann</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="a">Vincent Laporte</subfield> </datafield> <datafield tag="700" ind1=" " ind2=" "> <subfield code="u">Inria</subfield> <subfield code="a">Yves Bertot</subfield> </datafield> <datafield tag="856" ind1="4" ind2=" "> <subfield code="s">1231315</subfield> <subfield code="z">md5:9e144619514043e57556c9b4c0f770ab</subfield> <subfield code="u">https://zenodo.org/record/5529713/files/mattam82/Coq-Equations-v1.3-8.14.zip</subfield> </datafield> <datafield tag="542" ind1=" " ind2=" "> <subfield code="l">open</subfield> </datafield> <datafield tag="260" ind1=" " ind2=" "> <subfield code="c">2021-09-27</subfield> </datafield> <datafield tag="909" ind1="C" ind2="O"> <subfield code="p">software</subfield> <subfield code="o">oai:zenodo.org:5529713</subfield> </datafield> <datafield tag="100" ind1=" " ind2=" "> <subfield code="u">Inria</subfield> <subfield code="a">Matthieu Sozeau</subfield> </datafield> <datafield tag="245" ind1=" " ind2=" "> <subfield code="a">mattam82/Coq-Equations: Equations 1.3 for Coq 8.14</subfield> </datafield> <datafield tag="540" ind1=" " ind2=" "> <subfield code="a">Other (Open)</subfield> </datafield> <datafield tag="650" ind1="1" ind2="7"> <subfield code="a">cc-by</subfield> <subfield code="2">opendefinition.org</subfield> </datafield> <datafield tag="520" ind1=" " ind2=" "> <subfield code="a">Equations 1.3 <p>This is a new major release of Equations, working with Coq 8.14. This version adds an improved syntax (less <code>;</code>-separation), integration with the Coq-HoTT library and numerous bug fixes. See the <a href="https://github.com/mattam82/Coq-Equations/raw/v1.3-8.14/doc/equations.pdf">reference manual</a> for details.</p> <p>This version introduces minor breaking changes along with the following features:</p> <ul> <li><p>Enhancements of pattern interpretation</p> <p>No explicit shadowing of pattern variables is allowed anymore. This fixes numerous bugs where generated implicit names introduced by the elaboration of patterns could shadow user-given names, leading to incorrect names in right-hand sides and confusing environments.</p> </li> <li><p>Improved syntax for "concise" clauses separated by <code>|</code>, at top-level or inside <code>with</code> subprograms. We no longer require to separate them by <code>;</code>. For example, the following definition is now accepted:</p> <pre><code class="lang-coq">Equations foo : nat -&gt; nat := | 0 =&gt; 1 | S n =&gt; S (foo n). </code></pre> <p>The old syntax is however still supported for backwards compatibility.</p> </li> <li>Multiple patterns can be separated by <code>,</code> in addition to <code>|</code>, as in:<pre><code class="lang-coq">Equations trans {A} {x y z : A} (e : x = y) (e&#39; : y = z) : x = z := | 1, 1 =&gt; 1. </code></pre> </li> <li><code>Require Import Equations.Equations.</code> does not work anymore. One 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.</li> <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 The 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. This variant of Equations allows to write very concise dependent pattern-matchings on equality: <pre><code class="lang-coq">Require Import Equations.HoTT.All. Equations sym {A} {x y : A} (e : x = y) : y = x := | 1 =&gt; 1. </code></pre> </li> <li>New attribute <code>#[tactic=tac]</code> to set locally the default tactic to solve remaining holes. The goals on which the tactic applies are now always of the form <code>Γ |- τ</code> where Γ is the context where the hole was introduced and τ 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> <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> </ul> Fixed in v1.3beta2: <ul> <li>Fix #399: allow simplification in indices when splitting a variable, to expose the head of the index.</li> <li>Fix #389: error derving EqDec in HoTT variant.</li> <li>Allow universe binder annotations @{} on Equations definitions.</li> <li>Fix "struct" parsing issue that required a reset of Coq sometimes</li> <li>POTENTIAL SOURCE OF INCOMPATIBILITY: Pattern enhancements: no explicit shadowing of pattern variables is allowed anymore. Fix numerous bugs where generated implicit names introduced by the elaboration of patterns could shadow user-given names, leading to incorrect names in right-hand sides.</li> </ul> Fixed in 1.3beta1: <ul> <li>#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".</li> <li>#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).</li> <li>#372, #194: <code>funelim</code> applied to a partial application failing</li> <li>#354: support for building values in <code>SProp</code></li> <li>#353: name capture problem in presence of modules</li> <li>#335: provide an alias Equations Derive to not conflict with QuickChick's Derive</li> <li>#325: properly inline all Equations helper constants during Extraction</li> </ul></subfield> </datafield> <datafield tag="773" ind1=" " ind2=" "> <subfield code="n">url</subfield> <subfield code="i">isSupplementTo</subfield> <subfield code="a">https://github.com/mattam82/Coq-Equations/tree/v1.3-8.14</subfield> </datafield> <datafield tag="773" ind1=" " ind2=" "> <subfield code="n">doi</subfield> <subfield code="i">isVersionOf</subfield> <subfield code="a">10.5281/zenodo.1117296</subfield> </datafield> <datafield tag="024" ind1=" " ind2=" "> <subfield code="a">10.5281/zenodo.5529713</subfield> <subfield code="2">doi</subfield> </datafield> <datafield tag="980" ind1=" " ind2=" "> <subfield code="a">software</subfield> </datafield> </record>
All versions | This version | |
---|---|---|
Views | 776 | 35 |
Downloads | 54 | 0 |
Data volume | 70.6 MB | 0 Bytes |
Unique views | 700 | 35 |
Unique downloads | 32 | 0 |