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


DataCite XML Export

<?xml version='1.0' encoding='utf-8'?>
<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4.1/metadata.xsd">
  <identifier identifierType="DOI">10.5281/zenodo.4739438</identifier>
  <creators>
    <creator>
      <creatorName>Matthieu Sozeau</creatorName>
      <affiliation>Inria</affiliation>
    </creator>
    <creator>
      <creatorName>Pierre-Marie Pédrot</creatorName>
    </creator>
    <creator>
      <creatorName>Cyprien Mangin</creatorName>
    </creator>
    <creator>
      <creatorName>Emilio Jesús Gallego Arias</creatorName>
    </creator>
    <creator>
      <creatorName>Gaëtan Gilbert</creatorName>
      <affiliation>Inria</affiliation>
    </creator>
    <creator>
      <creatorName>Maxime Dénès</creatorName>
    </creator>
    <creator>
      <creatorName>Robin Green</creatorName>
    </creator>
    <creator>
      <creatorName>Hugo Herbelin</creatorName>
    </creator>
    <creator>
      <creatorName>Enrico Tassi</creatorName>
      <affiliation>@coq @math-comp @LPCIC</affiliation>
    </creator>
    <creator>
      <creatorName>Guillaume Claret</creatorName>
    </creator>
    <creator>
      <creatorName>Siddharth</creatorName>
      <affiliation>IIIT Hyderabad</affiliation>
    </creator>
    <creator>
      <creatorName>Anton Trunov</creatorName>
      <affiliation>@Zilliqa</affiliation>
    </creator>
    <creator>
      <creatorName>Joachim Breitner</creatorName>
      <affiliation>@dfinity-lab</affiliation>
    </creator>
    <creator>
      <creatorName>Antonio Nikishaev</creatorName>
    </creator>
    <creator>
      <creatorName>Jim Fehrle</creatorName>
    </creator>
    <creator>
      <creatorName>SimonBoulier</creatorName>
    </creator>
    <creator>
      <creatorName>Søren Nørbæk</creatorName>
    </creator>
    <creator>
      <creatorName>Théo Zimmermann</creatorName>
      <affiliation>@Inria / Université de Paris</affiliation>
    </creator>
    <creator>
      <creatorName>Vincent Laporte</creatorName>
    </creator>
    <creator>
      <creatorName>Yves Bertot</creatorName>
      <affiliation>Inria</affiliation>
    </creator>
  </creators>
  <titles>
    <title>mattam82/Coq-Equations: Equations 1.3beta1 for Coq 8.13</title>
  </titles>
  <publisher>Zenodo</publisher>
  <publicationYear>2021</publicationYear>
  <dates>
    <date dateType="Issued">2021-05-05</date>
  </dates>
  <resourceType resourceTypeGeneral="Software"/>
  <alternateIdentifiers>
    <alternateIdentifier alternateIdentifierType="url">https://zenodo.org/record/4739438</alternateIdentifier>
  </alternateIdentifiers>
  <relatedIdentifiers>
    <relatedIdentifier relatedIdentifierType="URL" relationType="IsSupplementTo">https://github.com/mattam82/Coq-Equations/tree/v1.3-8.13beta</relatedIdentifier>
    <relatedIdentifier relatedIdentifierType="DOI" relationType="IsVersionOf">10.5281/zenodo.1117296</relatedIdentifier>
  </relatedIdentifiers>
  <version>v1.3-8.13beta</version>
  <rightsList>
    <rights rightsURI="info:eu-repo/semantics/openAccess">Open Access</rights>
  </rightsList>
  <descriptions>
    <description descriptionType="Abstract">Equations 1.3
&lt;p&gt;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 &lt;code&gt;;&lt;/code&gt;-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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Improved syntax for "concise" clauses separated by &lt;code&gt;|&lt;/code&gt;, at top-level or inside &lt;code&gt;with&lt;/code&gt; subprograms. 
We no longer require to separated them by &lt;code&gt;;&lt;/code&gt;. For example, the following definition is now accepted:&lt;/p&gt;
&lt;pre&gt;&lt;code class="lang-coq"&gt;Equations foo : nat -&amp;gt; nat := 
  | 0 =&amp;gt; 1
  | S n =&amp;gt; S (foo n).
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The old syntax is however still supported for backwards compatibility.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;Require Import Equations.Equations.&lt;/code&gt; does not work anymore.
One has to use &lt;code&gt;Require Import Equations.Prop.Equations&lt;/code&gt; to load the plugin's default instance where equality is in &lt;code&gt;Prop&lt;/code&gt;. &lt;code&gt;From Equations Require Import Equations&lt;/code&gt; is unaffected.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;Require Import Equations.HoTT.All&lt;/code&gt; to use the HoTT variant of the library compatible with the &lt;a href="https://github.com/HoTT/HoTT"&gt;Coq HoTT&lt;/a&gt; library
The plugin then reuses the definition of &lt;code&gt;paths&lt;/code&gt; from the HoTT library and all its constructions are universe polymorphic. As for the HoTT library alone, coq must be passed the arguments &lt;code&gt;-noinit -indices-matter&lt;/code&gt; to use the library and plugin. The &lt;code&gt;coq-equations&lt;/code&gt; opam package depends optionally on &lt;code&gt;coq-hott&lt;/code&gt;, so if &lt;code&gt;coq-hott&lt;/code&gt; is installed before it, &lt;code&gt;coq-equations&lt;/code&gt; will automatically install the &lt;code&gt;HoTT&lt;/code&gt; library variant in addition to the standard one.&lt;/li&gt;
&lt;li&gt;New attribute &lt;code&gt;#[tactic=tac]&lt;/code&gt; to set locally the default tactic to solve remaining holes. 
The goals on which the tactic applies are now always of the form &lt;code&gt;Γ |- τ&lt;/code&gt; where Γ is the context where the hole was introduced and τ the expected type, &lt;em&gt;even&lt;/em&gt; when using the &lt;code&gt;Obligation&lt;/code&gt; machinery to solve them, resulting in a possible incompatibility if the obligation tactic treated the context differently than the conclusion. By default, the &lt;code&gt;program_simpl&lt;/code&gt; tactic performs a &lt;code&gt;simpl&lt;/code&gt; call before introducing the hypotheses, so you might need to add a &lt;code&gt;simpl in *&lt;/code&gt; to your tactics.&lt;/li&gt;
&lt;li&gt;New attributes &lt;code&gt;#[derive(equations=yes,no, eliminator=yes|no)]&lt;/code&gt; can be used in place of the &lt;code&gt;(noeqns, noind)&lt;/code&gt; flags which are deprecated.&lt;/li&gt;
&lt;/ul&gt;
Fixed in this version:
&lt;p&gt;∗ #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".
∗ #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 &lt;code&gt;Qed&lt;/code&gt; or &lt;code&gt;Defined&lt;/code&gt; (similarly to Coq's &lt;code&gt;#[refine] Instance&lt;/code&gt; command).
∗ #372, #194: &lt;code&gt;funelim&lt;/code&gt; applied to a partial application failing
∗ #354: support for building values in &lt;code&gt;SProp&lt;/code&gt;
∗ #353: name capture problem in presence of modules
∗ #335: provide an alias Equations Derive to not conflict with QuickChick's Derive
∗ #325: properly inline all Equations helper constants during Extraction&lt;/p&gt;</description>
  </descriptions>
</resource>
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