Skip to content

Latest commit

 

History

History
41 lines (32 loc) · 1.15 KB

features.markdown

File metadata and controls

41 lines (32 loc) · 1.15 KB
layout title
default
About

Math-Classes is a library of abstract interfaces for mathematical structures, such as

  • Algebraic hierarchy (groups, rings, fields, ...)
  • Relations, orders, ...
  • Categories, functors, universal algebra, ...
  • Numbers: ℕ, ℤ, ℚ, ...
  • Operations, ...

It's heavily based on Coq's new TypeClasses.

in order to archieve:

  • elegant and mathematically sound abstract interfaces for algebraic and numeric structures up to and including rationals (with practical use of universal algebra and category theory);
  • a very flexible purely predicate-based representation of algebraic structures that makes sharing, multiple inheritance, and derived inheritance, all trivial;
  • clean expression terms that neither refer to proofs nor require deeply nested record projections;
  • fluent rewriting;
  • easy and flexible replacement and specialization of data representations and operations with more efficient versions;
  • ordinary mathematical notation and overloaded names not reliant on Coq's notation scopes.

More information can be found here:

  • Presentation
  • Paper

You can find the latest code on github