All Projects → coq-community → Coq Ext Lib

coq-community / Coq Ext Lib

Licence: other
A library of Coq definitions, theorems, and tactics. [[email protected],@liyishuai]

Projects that are alternatives of or similar to Coq Ext Lib

Arare
Lightweight curried functional programming library
Stars: ✭ 127 (+24.51%)
Mutual labels:  programming, library
Permissionsswiftui
A SwiftUI package to beautifully display and handle permissions.
Stars: ✭ 220 (+115.69%)
Mutual labels:  programming, library
Observable
The easiest way to observe values in Swift.
Stars: ✭ 346 (+239.22%)
Mutual labels:  programming, library
Daily Programming Challenges
Daily Programming Challenges
Stars: ✭ 98 (-3.92%)
Mutual labels:  programming
Geotic
Entity Component System library for javascript
Stars: ✭ 97 (-4.9%)
Mutual labels:  library
Gl Catmull Clark
A javascript implementation of the Catmull-Clark subdivision surface algorithm
Stars: ✭ 100 (-1.96%)
Mutual labels:  library
Protobuf
Python implementation of Protocol Buffers data types with dataclasses support
Stars: ✭ 101 (-0.98%)
Mutual labels:  library
Npclib
(Minecraft) NPCLib – Basic non-player character library.
Stars: ✭ 98 (-3.92%)
Mutual labels:  library
Gifdec
small C GIF decoder
Stars: ✭ 100 (-1.96%)
Mutual labels:  library
Peacoq
PeaCoq is a pretty Coq, isn't it?
Stars: ✭ 99 (-2.94%)
Mutual labels:  coq
React Native Create Library
📓 Command line tool to create a React Native library with a single command
Stars: ✭ 1,362 (+1235.29%)
Mutual labels:  library
Colored
🎨 Mirror of colored library repository
Stars: ✭ 98 (-3.92%)
Mutual labels:  library
Timeline Chart View
An android view to represent data over a timeline.
Stars: ✭ 100 (-1.96%)
Mutual labels:  library
React Markdown
Markdown editor (input) based on React
Stars: ✭ 98 (-3.92%)
Mutual labels:  library
Utopian.io
Utopian.io Frontend - Utopian wants to reward open-source contributors!
Stars: ✭ 101 (-0.98%)
Mutual labels:  programming
Predicateflow
Write amazing, strong-typed and easy-to-read NSPredicate.
Stars: ✭ 98 (-3.92%)
Mutual labels:  library
Ahk Rare
My collection of rare and maybe very useful functions
Stars: ✭ 101 (-0.98%)
Mutual labels:  library
Digitalkeyboard
手动实现简单的身份证数字键盘
Stars: ✭ 99 (-2.94%)
Mutual labels:  library
Awesome Courses
😏 📄 An awesome list of educational websites, YouTube playlists, channels and books about programming
Stars: ✭ 99 (-2.94%)
Mutual labels:  programming
Eventsource
The Hoa\Eventsource library.
Stars: ✭ 99 (-2.94%)
Mutual labels:  library

coq-ext-lib

CircleCI Contributing Code of Conduct Zulip

A collection of theories and plugins that may be useful in other Coq developments.

Meta

  • Author(s):
    • Gregory Malecha (initial)
  • Coq-community maintainer(s):
  • License: BSD 2-Clause FreeBSD License
  • Compatible Coq versions: Coq 8.8 or later
  • Additional dependencies: none
  • Coq namespace: ExtLib
  • Related publication(s): none

Building and installation instructions

The easiest way to install the latest released version of coq-ext-lib is via OPAM:

opam repo add coq-released https://coq.inria.fr/opam/released
opam install coq-ext-lib

To instead build and install manually, do:

git clone --recurse-submodules https://github.com/coq-community/coq-ext-lib.git
cd coq-ext-lib
make theories  # or make -j <number-of-cores-on-your-machine> theories
make install

Ideas

  • Embrace new features, e.g. universe polymorphism, primitive projections, etc.
  • Use modules for controlling namespaces.
  • Use first-class abstractions where appropriate, e.g. type classes, canonical structures, etc.
    • The library is mostly built around type clases
  • Notations should be hidden by modules that are explicitly opened.
    • This avoids clashes between precedence.
    • TB: Actually, this does not completely avoid clashes, if we have to open two modules at the same time (for instance, I often need to open Equality, to get dependent destruction, which conflicts with the rest of my development)
    • TB: I like the idea of having to prefix operations by the name of the module (e.g., DList.fold, DList.map, DList.T), and yet to benefit from the support of notations, without opening this module. I implement that by having a module DList that contains the operations, inside the file DList. The notations live in the file DList, and I do Require Import DList everywhere...
  • Avoid the use of the 'core' hint database.
  • Avoid the use of dependent functions, e.g. dependendent decidable equality, in favor of their boolen counter-parts. Use type-classes to expose the proofs.

File Structure

  • theories/
    • Base directory to the provided theories
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].