{ "access": { "embargo": { "active": false, "reason": null }, "files": "public", "record": "public", "status": "open" }, "created": "2022-01-19T13:52:44.193991+00:00", "custom_fields": {}, "deletion_status": { "is_deleted": false, "status": "P" }, "files": { "count": 1, "enabled": true, "entries": { "mattam82/Coq-Equations-v1.3-8.15.zip": { "checksum": "md5:519bd688fa31e1eefe18342585b3d8e7", "ext": "zip", "id": "10407533-bb03-4aa3-983e-2e78b061b5d3", "key": "mattam82/Coq-Equations-v1.3-8.15.zip", "metadata": null, "mimetype": "application/zip", "size": 1230505 } }, "order": [], "total_bytes": 1230505 }, "id": "5878837", "is_draft": false, "is_published": true, "links": { "access": "https://zenodo.org/api/records/5878837/access", "access_links": "https://zenodo.org/api/records/5878837/access/links", "access_request": "https://zenodo.org/api/records/5878837/access/request", "access_users": "https://zenodo.org/api/records/5878837/access/users", "archive": "https://zenodo.org/api/records/5878837/files-archive", "archive_media": "https://zenodo.org/api/records/5878837/media-files-archive", "communities": "https://zenodo.org/api/records/5878837/communities", "communities-suggestions": "https://zenodo.org/api/records/5878837/communities-suggestions", "doi": "https://doi.org/10.5281/zenodo.5878837", "draft": "https://zenodo.org/api/records/5878837/draft", "files": "https://zenodo.org/api/records/5878837/files", "latest": "https://zenodo.org/api/records/5878837/versions/latest", "latest_html": "https://zenodo.org/records/5878837/latest", "media_files": "https://zenodo.org/api/records/5878837/media-files", "parent": "https://zenodo.org/api/records/1117296", "parent_doi": "https://zenodo.org/doi/10.5281/zenodo.1117296", "parent_html": "https://zenodo.org/records/1117296", "requests": "https://zenodo.org/api/records/5878837/requests", "reserve_doi": "https://zenodo.org/api/records/5878837/draft/pids/doi", "self": "https://zenodo.org/api/records/5878837", "self_doi": "https://zenodo.org/doi/10.5281/zenodo.5878837", "self_html": "https://zenodo.org/records/5878837", "self_iiif_manifest": "https://zenodo.org/api/iiif/record:5878837/manifest", "self_iiif_sequence": "https://zenodo.org/api/iiif/record:5878837/sequence/default", "versions": "https://zenodo.org/api/records/5878837/versions" }, "media_files": { "count": 0, "enabled": false, "entries": {}, "order": [], "total_bytes": 0 }, "metadata": { "creators": [ { "affiliations": [ { "name": "Inria" } ], "person_or_org": { "family_name": "Matthieu Sozeau", "name": "Matthieu Sozeau", "type": "personal" } }, { "person_or_org": { "family_name": "Pierre-Marie P\u00e9drot", "name": "Pierre-Marie P\u00e9drot", "type": "personal" } }, { "person_or_org": { "family_name": "Cyprien Mangin", "name": "Cyprien Mangin", "type": "personal" } }, { "affiliations": [ { "name": "Inria" } ], "person_or_org": { "family_name": "Ga\u00ebtan Gilbert", "name": "Ga\u00ebtan Gilbert", "type": "personal" } }, { "person_or_org": { "family_name": "Emilio Jes\u00fas Gallego Arias", "name": "Emilio Jes\u00fas Gallego Arias", "type": "personal" } }, { "person_or_org": { "family_name": "Hugo Herbelin", "name": "Hugo Herbelin", "type": "personal" } }, { "person_or_org": { "family_name": "Maxime D\u00e9n\u00e8s", "name": "Maxime D\u00e9n\u00e8s", "type": "personal" } }, { "person_or_org": { "family_name": "Robin Green", "name": "Robin Green", "type": "personal" } }, { "affiliations": [ { "name": "@coq @math-comp @LPCIC" } ], "person_or_org": { "family_name": "Enrico Tassi", "name": "Enrico Tassi", "type": "personal" } }, { "affiliations": [ { "name": "foobar.land" } ], "person_or_org": { "family_name": "Guillaume Claret", "name": "Guillaume Claret", "type": "personal" } }, { "affiliations": [ { "name": "IIIT Hyderabad" } ], "person_or_org": { "family_name": "Siddharth", "name": "Siddharth", "type": "personal" } }, { "affiliations": [ { "name": "@Zilliqa" } ], "person_or_org": { "family_name": "Anton Trunov", "name": "Anton Trunov", "type": "personal" } }, { "person_or_org": { "family_name": "Jim Fehrle", "name": "Jim Fehrle", "type": "personal" } }, { "affiliations": [ { "name": "@dfinity-lab" } ], "person_or_org": { "family_name": "Joachim Breitner", "name": "Joachim Breitner", "type": "personal" } }, { "person_or_org": { "family_name": "Antonio Nikishaev", "name": "Antonio Nikishaev", "type": "personal" } }, { "person_or_org": { "family_name": "SimonBoulier", "name": "SimonBoulier", "type": "personal" } }, { "person_or_org": { "family_name": "S\u00f8ren N\u00f8rb\u00e6k", "name": "S\u00f8ren N\u00f8rb\u00e6k", "type": "personal" } }, { "affiliations": [ { "name": "@Inria / Universit\u00e9 de Paris" } ], "person_or_org": { "family_name": "Th\u00e9o Zimmermann", "name": "Th\u00e9o Zimmermann", "type": "personal" } }, { "person_or_org": { "family_name": "Vincent Laporte", "name": "Vincent Laporte", "type": "personal" } }, { "affiliations": [ { "name": "Inria" } ], "person_or_org": { "family_name": "Yves Bertot", "name": "Yves Bertot", "type": "personal" } } ], "description": "Equations 1.3\n
This is a new major release of Equations, working with Coq 8.15. This version adds an improved syntax (less ;
-separation), integration with the Coq-HoTT library and numerous bug fixes. See the reference manual for details.
This version introduces minor breaking changes along with the following features:
\nEnhancements of pattern interpretation
\nNo explicit shadowing of pattern variables is allowed anymore. This fixes numerous bugs where \ngenerated implicit names introduced by the elaboration of patterns could shadow user-given names, \nleading to incorrect names in right-hand sides and confusing environments.
\nImproved syntax for \"concise\" clauses separated by |
, at top-level or inside with
subprograms. \nWe no longer require to separate them by ;
. For example, the following definition is now accepted:
Equations foo : nat -> nat := \n | 0 => 1\n | S n => S (foo n).\n
\nThe old syntax is however still supported for backwards compatibility.
\n,
in addition to |
, as in:Equations trans {A} {x y z : A} (e : x = y) (e' : y = z) : x = z := | 1, 1 => 1.\n
\nRequire Import Equations.Equations.
does not work anymore.\nOne has to use Require Import Equations.Prop.Equations
to load the plugin's default instance where equality is in Prop
. From Equations Require Import Equations
is unaffected.Require Import Equations.HoTT.All
to use the HoTT variant of the library compatible with the Coq HoTT library\nThe plugin then reuses the definition of paths
from the HoTT library and all its constructions are universe polymorphic. As for the HoTT library alone, coq must be passed the arguments -noinit -indices-matter
to use the library and plugin. The coq-equations
opam package depends optionally on coq-hott
, so if coq-hott
is installed before it, coq-equations
will automatically install the HoTT
library variant in addition to the standard one. This variant of Equations allows to write very concise dependent pattern-matchings on equality: Require Import Equations.HoTT.All.\nEquations sym {A} {x y : A} (e : x = y) : y = x := | 1 => 1.\n
\n#[tactic=tac]
to set locally the default tactic to solve remaining holes. \nThe goals on which the tactic applies are now always of the form \u0393 |- \u03c4
where \u0393 is the context where the hole was introduced and \u03c4 the expected type, even when using the Obligation
machinery to solve them, resulting in a possible incompatibility if the obligation tactic treated the context differently than the conclusion. By default, the program_simpl
tactic performs a simpl
call before introducing the hypotheses, so you might need to add a simpl in *
to your tactics.#[derive(equations=yes,no, eliminator=yes|no)]
can be used in place of the (noeqns, noind)
flags which are deprecated.Qed
or Defined
(similarly to Coq's #[refine] Instance
command).funelim
applied to a partial application failingSProp