Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

initial commit for the metadata CEP #80

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions text/000-metadata.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
- Title: Adding MetaData to Coq

- Drivers: @CohenCyril @palmskog @gares @TDiazT @pi8027 @ejgallego @SkySkimmer

----

# Summary

The purpose is to add several kind of metadata, attached to constants,
modules, files, etc.


# Motivation

This metadata should be usable and used to enhance search,
documentation generation, and build database for Coq libraries.


# Detailed design

## For search

- adding docstrings (that search can grep inside)
```coq
#[docstring="foo is a dummy lemma"]
Lemma foo : True. by []. Qed.
```
- aliasing of statements so that search can find a statement which is
convertible but not syntactically equal.
```coq
#[alias="forall x y, x * y = y * x"]
Lemma mulrC : commutative mul. ...

Search (_ * _ = _ * _). (* mulrC appears *)
```
or
```coq
#[alias(unfold="commutative")]
Lemma mulrC : commutative mul. ...
```
and we could have several aliases (`#[alias=..., alias=..., ...]`).
- Give a name from the litterature (searchable again)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Give a name from the litterature (searchable again)
- Give a name from the literature (searchable again)

```coq
#[name="Abel-Ruffini Theorem", name="Abel's Theorem"]
Lemma unsolvable_quintic : ...
```
- Have a way to refer to a bibliography from a definition or its proof
E.g via a `#[ref="name"]` attribute with a bibtex (for example),
shared accross one or several projects.

# Drawbacks

TODO

# Alternatives

TODO

# Unresolved questions

Where to store this?
TODO