{"id":22411612,"url":"https://github.com/groupoid/anders","last_synced_at":"2026-05-01T14:01:11.883Z","repository":{"id":57686737,"uuid":"255530587","full_name":"groupoid/anders","owner":"groupoid","description":"🧊 Модальний гомотопічний верифікатор математики","archived":false,"fork":false,"pushed_at":"2026-04-28T23:33:50.000Z","size":16327,"stargazers_count":23,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-29T00:25:38.703Z","etag":null,"topics":["cubical-type-theory","dependent-types","mltt","proof-assistant","theorem-prover","type-checker","type-system"],"latest_commit_sha":null,"homepage":"https://anders.groupoid.space","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/groupoid.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-04-14T06:39:49.000Z","updated_at":"2026-04-28T23:33:54.000Z","dependencies_parsed_at":"2023-10-05T14:45:53.855Z","dependency_job_id":"f16d0cd8-185e-4984-8e84-c22ca7058bb5","html_url":"https://github.com/groupoid/anders","commit_stats":{"total_commits":194,"total_committers":1,"mean_commits":194.0,"dds":0.0,"last_synced_commit":"cee98958e8ed7d37343eccaae0be424464d7a565"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/groupoid/anders","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupoid%2Fanders","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupoid%2Fanders/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupoid%2Fanders/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupoid%2Fanders/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/groupoid","download_url":"https://codeload.github.com/groupoid/anders/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupoid%2Fanders/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32499691,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cubical-type-theory","dependent-types","mltt","proof-assistant","theorem-prover","type-checker","type-system"],"created_at":"2024-12-05T13:14:30.995Z","updated_at":"2026-05-01T14:01:11.868Z","avatar_url":"https://github.com/groupoid.png","language":"OCaml","funding_links":[],"categories":[],"sub_categories":[],"readme":"🧊 Anders\n=========\n\n[![OPAM](https://img.shields.io/github/v/release/groupoid/anders.svg)](https://opam.ocaml.org/packages/anders/)\n[![Actions](https://github.com/groupoid/anders/workflows/opam/badge.svg)](https://github.com/groupoid/anders/actions)\n\n\u003cimg src=\"https://tonpa.guru/stream/2019/img/Anders%20M%C3%B6rtberg.jpeg\" width=600\u003e\n\nModal Homotopy Type System.\n\n```OCaml\ntype exp =\n| EPre of Z.t | EKan of Z.t | EVar of name | EHole                             (* Cosmos *)\n| ENat | EZero | ESucc of exp | EIndNat of exp * exp * exp  (* Canonical Natural Numbers *)\n| EPi of exp * (name * exp) | ELam of exp * (name * exp) | EApp of exp * exp        (* Π *)\n| ESig of exp * (name * exp) | EPair of tag * exp * exp | EFst of exp | ESnd of exp (* Σ *)\n| EId of exp | ERef of exp | EJ of exp | EField of exp * string       (* Strict Equality *)\n| EEmpty | EIndEmpty of exp                                                         (* 𝟎 *)\n| EUnit | EStar | EIndUnit of exp                                                   (* 𝟏 *)\n| EBool | EFalse | ETrue | EIndBool of exp                                          (* 𝟐 *)\n| EW of exp * (name * exp) | ESup of exp * exp | EIndW of exp * exp * exp           (* W *)\n| EPathP of exp | EPLam of exp | EAppFormula of exp * exp               (* Path Equality *)\n| EI | EDir of dir | EAnd of exp * exp | EOr of exp * exp | ENeg of exp (* CCHM Interval *)\n| ETransp of exp * exp | EHComp of exp * exp * exp * exp               (* Kan Operations *)\n| EPartial of exp | EPartialP of exp * exp | ESystem of exp System.t     (* Partial Funs *)\n| ESub of exp * exp * exp | EInc of exp * exp | EOuc of exp          (* Cubical Subtypes *)\n| EGlue of exp | EGlueElem of exp * exp * exp | EUnglue of exp                (* Glueing *)\n| EIm of exp | EInf of exp | EIndIm of exp * exp | EJoin of exp        (* Infinitesimals *)\n| ECoeq of exp | EIota of exp | EResp of exp | EIndCoeq of exp            (* Coequalizer *)\n| EDisc of exp | EBase of exp | EHub of exp | ESpoke of exp | EIndDisc of exp    (* Disc *)\n```\n\nAnders is a HoTT proof assistant based on:\n  classical MLTT-80 with N, 0, 1, 2, W types;\n  CCHM in CHM flavour as cubical type system with hcomp/trans Kan operations;\n  HTS sctrict equality on pretypes;\n  de Rham stack modality;\n  Disc and Coequalizer primitives.\nWe tend not to touch general recursive higher inductive schemes yet,\ninstead we will try to express as much HIT as possible through W, Coequlizer and HubSpokes Disc\nin the style of HoTT/Coq homotopy library and Three-HIT theorem.\n\nFeatures\n--------\n\n* Homepage: https://anders.groupoid.space/\n* Fibrant MLTT-style N-0-1-2-Π-Σ-W primitives with Uₙ hierarchy in 500 LOC\n* Cofibrant CHM-style I (PathP) primitives with pretypes hierarchy Vₙ in 500 LOC\n* Generalized Transport and Homogeneous Composition core Kan operations\n* Partial Elements\n* Cubical Subtypes\n* Glue types\n* Strict Equality on pretypes\n* Coequalizer\n* Hub Spokes Disc\n* Nat in Kernel for spectral goodness under higher homotopies\n* Infinitesimal Shape Modality (de Rham Stack)\n* Parser in 80 LOC\n* Lexer in 80 LOC\n* Small Kernel in 1000 LOC\n* UTF-8 support including universe levels\n* Lean syntax for ΠΣW\n* Poor man's records as Σ with named accessors to telescope variables\n* 1D syntax with top-level declarations\n* Groupoid Infinity CCHM Homotopy Library: https://anders.groupoid.space/library/\n* Pure basis best suited for academic papers on W-types and verifiable type checking\n\nSetup\n-------------\n\n```shell\n$ opam install anders\n```\n\nSamples\n-------\n\nYou can find some examples in the `share` directory of the Anders package.\n\n```Lean\ndef comp-Path⁻¹ (A : U) (a b : A) (p : Path A a b) :\n  Path (Path A a a) (comp-Path A a b a p (\u003ci\u003e p @ -i)) (\u003c_\u003e a) :=\n\u003ck j\u003e hcomp A (∂ j ∨ k) (λ (i : I), [(j = 0) → a, (j = 1) → p @ -i ∧ -k, (k = 1) → a]) (p @ j ∧ -k)\n\ndef kan (A : U) (a b c d : A) (p : Path A a c) (q : Path A b d) (r : Path A a b) : Path A c d :=\n\u003ci\u003e hcomp A (∂ i) (λ (j : I), [(i = 0) → p @ j, (i = 1) → q @ j]) (r @ i)\n\ndef comp (A : I → U) (r : I) (u : Π (i : I), Partial (A i) r) (u₀ : (A 0)[r ↦ u 0]) : A 1 :=\nhcomp (A 1) r (λ (i : I), [(r = 1) → transp (\u003cj\u003eA (i ∨ j)) i (u i 1=1)]) (transp(\u003ci\u003e A i) 0 (ouc u₀))\n\ndef ghcomp (A : U) (r : I) (u : I → Partial A r) (u₀ : A[r ↦ u 0]) : A :=\nhcomp A (∂ r) (λ (j : I), [(r = 1) → u j 1=1, (r = 0) → ouc u₀]) (ouc u₀)\n\n```\n\n```shell\n$ anders check lib/book.anders\n```\n\nMLTT\n----\n\nType Checker is based on classical MLTT-80 with 0, 1, 2 and W-types.\n\n* \u003ca href=\"https://raw.githubusercontent.com/michaelt/martin-lof/master/pdfs/Bibliopolis-Book-retypeset-1984.pdf\"\u003eIntuitionistic Type Theory\u003c/a\u003e [Martin-Löf]\n\nCCHM\n----\n\nAnders was built by strictly following CCHM publications:\n\n* \u003ca href=\"http://www.cse.chalmers.se/~simonhu/papers/cubicaltt.pdf\"\u003eCTT: a constructive interpretation of the univalence axiom\u003c/a\u003e [Cohen, Coquand, Huber, Mörtberg]\n* \u003ca href=\"https://staff.math.su.se/anders.mortberg/papers/cubicalhits.pdf\"\u003eOn Higher Inductive Types in Cubical Type Theory\u003c/a\u003e [Coquand, Huber, Mörtberg]\n* \u003ca href=\"https://arxiv.org/pdf/1607.04156.pdf\"\u003eCanonicity for Cubical Type Theory\u003c/a\u003e [Huber]\n* \u003ca href=\"http://www.cse.chalmers.se/~simonhu/papers/can.pdf\"\u003eCanonicity and homotopy canonicity for cubical type theory\u003c/a\u003e [Coquand, Huber, Sattler]\n* \u003ca href=\"https://staff.math.su.se/anders.mortberg/papers/cubicalsynthetic.pdf\"\u003eCubical Synthetic Homotopy Theory\u003c/a\u003e [Mörtberg, Pujet]\n* \u003ca href=\"https://staff.math.su.se/anders.mortberg/papers/unifying.pdf\"\u003eUnifying Cubical Models of Univalent Type Theory\u003c/a\u003e [Cavallo, Mörtberg, Swan]\n* \u003ca href=\"https://staff.math.su.se/anders.mortberg/papers/cubicalagda.pdf\"\u003eCubical Agda: A Dependently Typed PL with Univalence and HITs\u003c/a\u003e [Vezzosi, Mörtberg, Abel]\n* \u003ca href=\"https://simhu.github.io/misc/hcomp.pdf\"\u003eA Cubical Type Theory for Higher Inductive Types\u003c/a\u003e [Huber]\n* \u003ca href=\"http://www.cse.chalmers.se/~simonhu/papers/p.pdf\"\u003eGluing for type theory\u003c/a\u003e [Kaposi, Huber, Sattler]\n* \u003ca href=\"https://doi.org/10.1017/S0960129521000311\"\u003eCubical Methods in HoTT/UF\u003c/a\u003e [Mörtberg]\n\nWe tried to bring in as little of ourselves as possible.\n\nHTS\n---\n\nAnders supports classical Homotopy Type System with two identities.\n\n* \u003ca href=\"https://www.math.ias.edu/vladimir/sites/math.ias.edu.vladimir/files/HTS.pdf\"\u003eA simple type system with two identity types\u003c/a\u003e [Voevodsky]\n* \u003ca href=\"https://arxiv.org/pdf/1705.03307.pdf\"\u003eTwo-level type theory and applications\u003c/a\u003e [Annenkov, Capriotti, Kraus, Sattler]\n* \u003ca href=\"https://types21.liacs.nl/download/syntax-for-two-level-type-theory/\"\u003eSyntax for two-level type theory\u003c/a\u003e [Bonacina, Ahrens]\n\nModalities\n----------\n\nInfinitesimal Modality was added for direct support of Synthetic Differential Geometry.\n\n* \u003ca href=\"https://arxiv.org/pdf/1310.7930v1.pdf\"\u003eDifferential cohomology in a cohesive ∞-topos\u003c/a\u003e [Schreiber]\n* \u003ca href=\"https://arxiv.org/pdf/1806.05966.pdf\"\u003eCartan Geometry in Modal Homotopy Type Theory\u003c/a\u003e [Cherubini]\n* \u003ca href=\"https://hott-uf.github.io/2017/abstracts/cohesivett.pdf\"\u003eDifferential Cohesive Type Theory\u003c/a\u003e [Gross, Licata, New, Paykin, Riley, Shulman, Cherubini]\n* \u003ca href=\"https://arxiv.org/abs/1509.07584\"\u003eBrouwer's fixed-point theorem in real-cohesive homotopy type theory\u003c/a\u003e [Shulman]\n\nBenchmarks\n----------\n\nIntel i5-12400 or M4: Compilation in three seconds, full library type checks in one minute with K(G,n)-η.\n\n```\n% dune build\n3.19s user 2.64s system 135% cpu 4.297 total\n```\n\n```\n% dune exec anders profile check library/book.anders\n0.06s user 0.05s system 8% cpu 1.188 total\n```\n\n# Anders: Homotopy Library\n\nAnders is a HoTT proof assistant based on: classical MLTT-80 with Pi, Sigma, Nat, Id, 0, 1, 2, W types;\nCCHM in CHM flavour as cubical type system with hcomp/trans Kan operations;\nHTS sctrict equality on pretypes; de Rham stack modality primitives.\nWe tend not to touch general recursive higher inductive schemes yet,\ninstead we will try to express as much HIT as possible through W,\nCoequlizer and HubSpokes Disc in the style of HoTT/Coq homotopy library and Three-HIT theorem.\n\nHere is given the Anders Homotopy Library.\n\n### Foundations\n\nIn the `foundations` folder presented the MLTT, Modal and Univalent base libraries:\n\n```\nanders.groupoid.space/foundations/\n├── mltt/\n│   ├── bool/\n│   ├── either/\n│   ├── fin/\n│   ├── induction/\n│   ├── list/\n│   ├── maybe/\n│   ├── mltt/\n│   ├── nat/\n│   ├── pi/\n│   ├── sigma/\n│   └── vec/\n├── modal/\n│   └── infinitesimal/\n└── univalent/\n    ├── equiv/\n    ├── extensionality/\n    ├── iso/\n    ├── path/\n    └── prop/\n```\n\n### Mathematics\n\nIn the `mathematics` folder you will find Mathematical Components for HTS:\n\n```\nanders.groupoid.space/mathematics/\n├── algebra/\n│   ├── homology/\n│   └── algebra/\n├── analysis/\n│   ├── real/\n│   └── topology/\n├── categories/\n│   ├── abelian/\n│   ├── category/\n│   ├── functor/\n│   └── groupoid/\n├── geometry/\n│   ├── bundle/\n│   ├── etale/\n│   └── formalDisc/\n├── homotopy/\n│   ├── KGn/\n│   ├── S1/\n│   ├── Sn/\n│   ├── coequalizer/\n│   ├── hubSpokes/\n│   ├── pullback/\n│   ├── pushout/\n│   ├── quotient/\n│   ├── suspension/\n│   └── truncation/\n└── topoi/\n    └── topos/\n```\n\n## Usage\n\nThe main purpose of Anders is doing Homotopy Theory:\n\n```\n$ dune exec anders repl\n\nAnders Proof Assistant version 5.0.0\nCopyright © 2016–2026 Groupoid Infinity.\n\nFor help type ‘:h’.\n\n\u003e\n```\n\nMentions\n--------\n\n* Максим Сохацький. \u003ca href=\"https://www.youtube.com/watch?v=KHDgytozLv4\"\u003eПрезентація кубічного CCHM прувера Anders 0.7.2\u003c/a\u003e. 2021-07-18\n* Максим Сохацький. \u003ca href=\"https://tonpa.guru/stream/2022/2022-01-17%20Anders.htm\"\u003eAnders: верификатор математики\u003c/a\u003e. 2022-01-17\n* Максим Сохацький. \u003ca href=\"https://groupoid.github.io/anders/doc/anders.pdf\"\u003eAnders: Modal Homotopy Type System\u003c/a\u003e. 2022-01-17\n* Максим Сохацький. \u003ca href=\"https://axio.groupoid.space\"\u003eСистема формальних мов Групоїд Інфініті\u003c/a\u003e. 2024-11-26\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgroupoid%2Fanders","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgroupoid%2Fanders","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgroupoid%2Fanders/lists"}