{"id":13480682,"url":"https://github.com/coq-community/math-classes","last_synced_at":"2025-03-21T00:10:32.642Z","repository":{"id":1492727,"uuid":"1743368","full_name":"coq-community/math-classes","owner":"coq-community","description":"A library of abstract interfaces for mathematical structures in Coq [maintainer=@spitters,@Lysxia]","archived":false,"fork":false,"pushed_at":"2024-11-03T16:20:04.000Z","size":2999,"stargazers_count":165,"open_issues_count":12,"forks_count":43,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-03-12T17:04:54.684Z","etag":null,"topics":["coq","coq-ci","coq-library","coq-platform","mathematics","typeclasses"],"latest_commit_sha":null,"homepage":"https://math-classes.github.io","language":"Coq","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coq-community.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-05-13T13:18:32.000Z","updated_at":"2025-02-19T21:01:04.000Z","dependencies_parsed_at":"2023-07-06T05:54:55.519Z","dependency_job_id":"c6804b55-4b75-4bca-9922-d0f4f4edf894","html_url":"https://github.com/coq-community/math-classes","commit_stats":{"total_commits":607,"total_committers":40,"mean_commits":15.175,"dds":0.6392092257001647,"last_synced_commit":"5faa2f70590a835eaa392aad9b26174e1a85a61a"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coq-community%2Fmath-classes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coq-community%2Fmath-classes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coq-community%2Fmath-classes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coq-community%2Fmath-classes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coq-community","download_url":"https://codeload.github.com/coq-community/math-classes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244711957,"owners_count":20497417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coq","coq-ci","coq-library","coq-platform","mathematics","typeclasses"],"created_at":"2024-07-31T17:00:43.565Z","updated_at":"2025-03-21T00:10:32.606Z","avatar_url":"https://github.com/coq-community.png","language":"Coq","readme":"\u003c!---\nThis file was generated from `meta.yml`, please do not edit manually.\nFollow the instructions on https://github.com/coq-community/templates to regenerate.\n---\u003e\n# Math Classes\n\n[![Docker CI][docker-action-shield]][docker-action-link]\n[![Contributing][contributing-shield]][contributing-link]\n[![Code of Conduct][conduct-shield]][conduct-link]\n[![Zulip][zulip-shield]][zulip-link]\n[![DOI][doi-shield]][doi-link]\n\n[docker-action-shield]: https://github.com/coq-community/math-classes/actions/workflows/docker-action.yml/badge.svg?branch=master\n[docker-action-link]: https://github.com/coq-community/math-classes/actions/workflows/docker-action.yml\n\n[contributing-shield]: https://img.shields.io/badge/contributions-welcome-%23f7931e.svg\n[contributing-link]: https://github.com/coq-community/manifesto/blob/master/CONTRIBUTING.md\n\n[conduct-shield]: https://img.shields.io/badge/%E2%9D%A4-code%20of%20conduct-%23f15a24.svg\n[conduct-link]: https://github.com/coq-community/manifesto/blob/master/CODE_OF_CONDUCT.md\n\n[zulip-shield]: https://img.shields.io/badge/chat-on%20zulip-%23c1272d.svg\n[zulip-link]: https://coq.zulipchat.com/#narrow/stream/237663-coq-community-devs.20.26.20users\n\n\n[doi-shield]: https://zenodo.org/badge/DOI/10.1017/S0960129511000119.svg\n[doi-link]: https://doi.org/10.1017/S0960129511000119\n\nMath classes is a library of abstract interfaces for mathematical\nstructures, such as:\n\n*  Algebraic hierarchy (groups, rings, fields, …)\n*  Relations, orders, …\n*  Categories, functors, universal algebra, …\n*  Numbers: N, Z, Q, …\n*  Operations, (shift, power, abs, …)\n\nIt is heavily based on Coq’s new type classes in order to provide:\nstructure inference, multiple inheritance/sharing, convenient\nalgebraic manipulation (e.g. rewriting) and idiomatic use of\nnotations.\n\n\n## Meta\n\n- Author(s):\n  - Eelis van der Weegen (initial)\n  - Bas Spitters (initial)\n  - Robbert Krebbers (initial)\n- Coq-community maintainer(s):\n  - Bas Spitters ([**@spitters**](https://github.com/spitters))\n  - Xia Li-yao ([**@Lysxia**](https://github.com/Lysxia))\n- License: [MIT License](LICENSE)\n- Compatible Coq versions: Coq 8.18 or later (use releases for other Coq versions)\n- Additional dependencies:\n  - [BigNums](https://github.com/coq/bignums)\n- Coq namespace: `MathClasses`\n- Related publication(s):\n  - [Type Classes for Mathematics in Type Theory](https://arxiv.org/abs/1102.1323) doi:[10.1017/S0960129511000119](https://doi.org/10.1017/S0960129511000119)\n\n## Building and installation instructions\n\nThe easiest way to install the latest released version of Math Classes\nis via [OPAM](https://opam.ocaml.org/doc/Install.html):\n\n```shell\nopam repo add coq-released https://coq.inria.fr/opam/released\nopam install coq-math-classes\n```\n\nTo instead build and install manually, do:\n\n``` shell\ngit clone https://github.com/coq-community/math-classes.git\ncd math-classes\n./configure.sh\nmake   # or make -j \u003cnumber-of-cores-on-your-machine\u003e\nmake install\n```\n\n\n## Directory structure\n\n### categories/\nProofs that certain structures form categories.\n\n### functors/\n\n### interfaces/\nDefinitions of abstract interfaces/structures.\n\n### implementations/\nDefinitions of concrete data structures and algorithms, and proofs that they are instances of certain structures (i.e. implement certain interfaces).\n\n### misc/\nMiscellaneous things.\n\n### orders/\nTheory about orders on different structures.\n\n### quote/\nPrototype implementation of type class based quoting. To be integrated.\n\n### theory/\nProofs of properties of structures.\n\n### varieties/\nProofs that certain structures are varieties, and translation to/from type classes dedicated to these structures (defined in interfaces/).\n\nThe reason we treat categories and varieties differently from other structures\n(like groups and rings) is that they are like meta-interfaces whose implementations\nare not concrete data structures and algorithms but are themselves abstract structures.\n\nTo be able to distinguish the various arrows, we recommend using a variable width font.\n\n","funding_links":[],"categories":["Coq","Projects","Math"],"sub_categories":["Type Theory and Mathematics"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoq-community%2Fmath-classes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoq-community%2Fmath-classes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoq-community%2Fmath-classes/lists"}