Code Monkey home page Code Monkey logo

coq-mmaps's People

Contributors

andrew-appel avatar letouzey avatar palmskog avatar xavierleroy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

coq-mmaps's Issues

Doesn't build with Coq 8.14.1, 8.13.2, 8.12.2, nor 8.11.2

I'd love to use these maps in an experiment of mine, but it doesn't compile with recent enough versions of Coq:

File "./Facts.v", line 1752, characters 2-6:
Error:  (in proof not_empty_has_binding): Attempt to save an incomplete proof

With 8.11.2 I get

File "./Facts.v", line 1829, characters 34-55:
Error: No product even after head-reduction.

Are there plans to modernize this library?

Port to 8.17 and beyond

The project is currently lacking locality annotations, like the following:

#[export] Instance Equal_equiv {elt} : Equivalence (@Equal elt).

This prevents compatibility with current Coq master. One will have to go through and annotate every Instance/Hint.

Release for Coq 8.16

Even though the project is WIP, we may want to do a release/tag on GitHub, so that we can have an opam package for regular users as part of the released Coq opam repo. Is that OK with you @letouzey? And should we use a "regular" version number 1.0 or something that better signals WIP status?

Additional MMaps implementations using efficient trees

The paper Efficient Extensional Binary Trees by Appel and Leroy and its accompanying Coq sources describe the following efficient trees which could implement the MMaps interface:

  • binary tries, using a canonical first-order representation; another minimalistic implementation here
  • binary Patricia trees from section 12.3 of Functional algorithms, verified! by T. Nipkow et al. Not extensional.
  • trie data structure with sparse, 256-degree nodes that branch on the next character of the string.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.