Discussion on the standard library of Coq

See also StandardLibrary for older discussion (should these pages be merged?)

Organisational aspects

Overall consistency and maintenance

Possible solution: A more modular approach of libraries with a small core of standard library maintained by the Coq development team and a second distinct distributed archive of libraries with a coordinated maintenance so as, not to necessarily guarantee a strict overall consistent design, but to at least guarantee correct compilation dependencies (see the MathWiki project). The responsibility of the maintenance of the consistency of each individual component of this second archive would be distributed.

From the StandardLibrary page:

Compatibility issues

Lack of Coq support for features

Documentation and metadata issues

Coqdoc is a rather nice tool for documentation but there is a need for metadatas liable to ease the formal treatment of informations like title, author, table of contents, ...

Specific issues with the libraries of Coq

Arithmetic

General issues about arithmetic

Peano numbers

Binary natural numbers

Binary integers

Rational numbers

Real numbers

Lists

Lists annotated with their length (vectors)

Coq provides a single file with a few results (with comments in French) in the Bool library. The CoLoR contribution provides much more.

Boolean

Strings

* Add a function to interpret C-style strings (using \ for escaping).

* Add a primitive function print : string -> unit (or : forall A, string -> A -> A natively interpreted at evaluation time as a side-effect on the standard output.

Logic

There should be a module for extensional equality for functions (see the axiom of functional extensionality declared in Coq.Program.FunctionalExtensionality).

Sorting

Is this worth to be a distinct library?

Maps and sets (data structures)

Relations and sets

Unexploited content of the support for tactics (ring, ...)

Algebra

Coq sparsely provides definitions of algebraic structures but to which extend is this usable as a standard library? Many approaches to algebra exist (see the various Algebra contributions in the user contribution server of Coq, including C-CoRN).

Libraries not represented in Coq

Libraries on these topics exist:

What about the licence issues?

ReflectionOnStandardLibrary (last edited 17-03-2011 21:33:50 by HugoHerbelin)

Cocorico!WikiLicense