A library of Coq definitions, theorems, and tactics for use in other Coq developments.
coq-ext-lib is a library of Coq definitions, theorems, and tactics designed to be used in other Coq developments. It provides a collection of reusable theories and plugins that help formal verification projects by offering foundational components and utilities. The library aims to streamline proof construction and enhance productivity in Coq-based work.
Coq developers and researchers working on formal verification, theorem proving, or formal methods projects who need reusable libraries and plugins. It is particularly useful for those building complex proofs or developing Coq-based tools.
Developers choose coq-ext-lib for its modular, type-class-based design and adherence to modern Coq features, which promote code reuse and reduce boilerplate. Its community-driven maintenance and compatibility with recent Coq versions ensure reliability and ongoing support.
A library of Coq definitions, theorems, and tactics. [maintainers=@gmalecha,@liyishuai]
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Theories are structured into modules that can be imported selectively, preventing namespace clashes and promoting code reuse in large developments.
Built around type classes for flexible abstraction and proof automation, which enhances maintainability and reduces boilerplate in formal proofs.
Embracing features like universe polymorphism and primitive projections ensures compatibility with recent Coq versions and advanced proof techniques.
Notations are hidden within modules and require explicit opening, minimizing precedence conflicts and improving code clarity.
As noted in the README's Ideas section, opening multiple modules can still cause notation clashes, requiring manual intervention to manage precedence.
Installation relies on OPAM or manual building with make commands, which can be challenging for users less familiar with the Coq ecosystem or Unix-like systems.
The library lacks comprehensive tutorials or examples, making initial adoption slower for developers new to its modular design and type-class approach.