All Projects β†’ groupoid β†’ anders

groupoid / anders

Licence: other
🧊 Модальний Π“ΠΎΠΌΠΎΡ‚ΠΎΠΏΡ–Ρ‡Π½ΠΈΠΉ ΠŸΡ€ΡƒΠ²Π΅Ρ€

Programming Languages

Pug
443 projects
ocaml
1615 projects

Projects that are alternatives of or similar to anders

cicada
Cicada Language
Stars: ✭ 9 (+80%)
Mutual labels:  type-system, theorem-prover
pyrser
A PEG Parsing Tool
Stars: ✭ 32 (+540%)
Mutual labels:  type-system, type-checker
Typology
Swift type checking and semantic analysis for developer tools
Stars: ✭ 68 (+1260%)
Mutual labels:  type-system, type-checker
Grakn
TypeDB: a strongly-typed database
Stars: ✭ 2,947 (+58840%)
Mutual labels:  type-system
pyprover
Resolution theorem proving for predicate logic in pure Python.
Stars: ✭ 71 (+1320%)
Mutual labels:  theorem-prover
typist-json
A simple runtime JSON type checker.
Stars: ✭ 25 (+400%)
Mutual labels:  type-checker
yants
Yet Another Nix Type System | Source has moved to https://git.tazj.in/tree/nix/yants
Stars: ✭ 35 (+600%)
Mutual labels:  type-system
Type Challenges
Collection of TypeScript type challenges with online judge
Stars: ✭ 10,812 (+216140%)
Mutual labels:  type-system
WangsAlgorithm
A classical propositional theorem prover in Haskell, using Wang's Algorithm.
Stars: ✭ 34 (+580%)
Mutual labels:  theorem-prover
plt-research
A collection of PLT researching
Stars: ✭ 29 (+480%)
Mutual labels:  type-system
ostrich
An SMT Solver for string constraints
Stars: ✭ 18 (+260%)
Mutual labels:  theorem-prover
kanji
A strongly typed GraphQL API framework
Stars: ✭ 12 (+140%)
Mutual labels:  type-system
Truth
A Domain Representation Language
Stars: ✭ 23 (+360%)
Mutual labels:  type-system
type-operators-rs
A macro for defining type operators in Rust.
Stars: ✭ 56 (+1020%)
Mutual labels:  type-system
f-omega-mu
Fωμ type checker and compiler
Stars: ✭ 46 (+820%)
Mutual labels:  type-system
tt-in-cubical
Type Theory in Type Theory using Cubical Agda
Stars: ✭ 12 (+140%)
Mutual labels:  cubical-type-theory
Reading
A list of computer-science readings I recommend
Stars: ✭ 1,919 (+38280%)
Mutual labels:  type-system
awesome-rust-formalized-reasoning
An exhaustive list of all Rust resources regarding automated or semi-automated formalization efforts in any area, constructive mathematics, formal algorithms, and program verification.
Stars: ✭ 185 (+3600%)
Mutual labels:  theorem-prover
groupoid.space
🧊 Інститут Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΡ— ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ
Stars: ✭ 35 (+600%)
Mutual labels:  mltt
cubical-categories
Category theory formalized in cubical agda
Stars: ✭ 20 (+300%)
Mutual labels:  cubical-type-theory

🧊 Anders

OPAM Actions

Modal Homotopy Type System.

type exp =
  | EPre of Z.t | EKan of Z.t | EVar of name | EHole                                 (* cosmos *)
  | EPi of exp * (name * exp) | ELam of exp * (name * exp) | EApp of exp * exp           (* pi *)
  | ESig of exp * (name * exp) | EPair of tag * exp * exp | EFst of exp | ESnd of exp (* sigma *)
  | EId of exp | ERef of exp | EJ of exp | EField of exp * string           (* strict equality *)
  | EPathP of exp | EPLam of exp | EAppFormula of exp * exp                   (* path equality *)
  | EI | EDir of dir | EAnd of exp * exp | EOr of exp * exp | ENeg of exp     (* CCHM interval *)
  | ETransp of exp * exp | EHComp of exp * exp * exp * exp                   (* Kan operations *)
  | EPartial of exp | EPartialP of exp * exp | ESystem of exp System.t    (* partial functions *)
  | ESub of exp * exp * exp | EInc of exp * exp | EOuc of exp              (* cubical subtypes *)
  | EGlue of exp | EGlueElem of exp * exp * exp | EUnglue of exp                    (* glueing *)
  | EEmpty | EIndEmpty of exp                                                             (* 𝟎 *)
  | EUnit | EStar | EIndUnit of exp                                                       (* 𝟏 *)
  | EBool | EFalse | ETrue | EIndBool of exp                                              (* 𝟐 *)
  | EW of exp * (name * exp) | ESup of exp * exp | EIndW of exp * exp * exp               (* W *)
  | EIm of exp | EInf of exp | EIndIm of exp * exp | EJoin of exp    (* Infinitesimal Modality *)
  | ECoeq of exp | EIota of exp | EResp of exp | EIndCoeq of exp                (* Coequalizer *)
  | EDisc of exp | EBase of exp | EHub of exp | ESpoke of exp | EIndDisc of exp        (* Disc *)

Anders is a HoTT proof assistant based on: classical MLTT-80 with 0, 1, 2, W types; CCHM in CHM flavour as cubical type system with hcomp/trans Kan operations; HTS sctrict equality on pretypes; de Rham stack modality primitives. We tend not to touch general recursive higher inductive schemes yet, instead we will try to express as much HIT as possible through W, Coequlizer and HubSpokes Disc in the style of HoTT/Coq homotopy library and Three-HIT theorem.

Features

  • Homepage: https://anders.groupoid.space/
  • Fibrant MLTT-style 0-1-2-Ξ -Ξ£-W primitives with Uβ‚™ hierarchy in 500 LOC
  • Cofibrant CHM-style I primitives with pretypes hierarchy Vβ‚™ in 500 LOC
  • Generalized Transport and Homogeneous Composition core Kan operations
  • Partial Elements
  • Cubical Subtypes
  • Glue types
  • Strict Equality on pretypes
  • Coequalizer
  • Hub Spokes Disc
  • Infinitesimal Shape Modality (de Rham Stack)
  • Parser in 80 LOC
  • Lexer in 80 LOC
  • UTF-8 support including universe levels
  • Lean syntax for Ξ Ξ£W
  • Poor man's records as Ξ£ with named accessors to telescope variables
  • 1D syntax with top-level declarations
  • Groupoid Infinity CCHM Homotopy Library: https://anders.groupoid.space/lib/
  • Best suited for academic papers and fast type checking

Setup

$ opam install anders

Samples

You can find some examples in the share directory of the Anders package.

def comp-Path⁻¹ (A : U) (a b : A) (p : Path A a b) :
  Path (Path A a a) (comp-Path A a b a p (<i> p @ -i)) (<_> a) :=
<k j> hcomp A (βˆ‚ j ∨ k) (Ξ» (i : I), [(j = 0) β†’ a, (j = 1) β†’ p @ -i ∧ -k, (k = 1) β†’ a]) (p @ j ∧ -k)

def 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 :=
<i> hcomp A (βˆ‚ i) (Ξ» (j : I), [(i = 0) β†’ p @ j, (i = 1) β†’ q @ j]) (r @ i)

def comp (A : I β†’ U) (r : I) (u : Ξ  (i : I), Partial (A i) r) (uβ‚€ : (A 0)[r ↦ u 0]) : A 1 :=
hcomp (A 1) r (Ξ» (i : I), [(r = 1) β†’ transp (<j>A (i ∨ j)) i (u i 1=1)]) (transp(<i> A i) 0 (ouc uβ‚€))

def ghcomp (A : U) (r : I) (u : I β†’ Partial A r) (uβ‚€ : A[r ↦ u 0]) : A :=
hcomp A (βˆ‚ r) (Ξ» (j : I), [(r = 1) β†’ u j 1=1, (r = 0) β†’ ouc uβ‚€]) (ouc uβ‚€)
$ anders check library/book.anders

MLTT

Type Checker is based on classical MLTT-80 with 0, 1, 2 and W-types.

CCHM

Anders was built by strictly following CCHM publications:

We tried to bring in as little of ourselves as possible.

HTS

Anders supports classical Homotopy Type System with two identities.

Modalities

Infinitesimal Modality was added for direct support of Synthetic Differential Geometry.

Benchmarks

Intel i7-8700.

$ time dune build

real    0m1.456s
user    0m2.794s
sys     0m0.564s
$ time dune exec anders check library/book.anders

real    0m0.468s
user    0m0.051s
sys     0m0.032s

Anders: Homotopy Library

Anders is a HoTT proof assistant based on: classical MLTT-80 with 0, 1, 2, W types; CCHM in CHM flavour as cubical type system with hcomp/trans Kan operations; HTS sctrict equality on pretypes; de Rham stack modality primitives. We tend not to touch general recursive higher inductive schemes yet, instead we will try to express as much HIT as possible through W, Coequlizer and HubSpokes Disc in the style of HoTT/Coq homotopy library and Three-HIT theorem.

Here is given the Anders Homotopy Library.

Foundations

In the foundations folder presented the MLTT, Modal and Univalent base libraries:

anders.groupoid.space/foundations/
β”œβ”€β”€ mltt/
β”‚   β”œβ”€β”€ bool/
β”‚   β”œβ”€β”€ either/
β”‚   β”œβ”€β”€ fin/
β”‚   β”œβ”€β”€ induction/
β”‚   β”œβ”€β”€ list/
β”‚   β”œβ”€β”€ maybe/
β”‚   β”œβ”€β”€ mltt/
β”‚   β”œβ”€β”€ nat/
β”‚   β”œβ”€β”€ pi/
β”‚   β”œβ”€β”€ sigma/
β”‚   └── vec/
β”œβ”€β”€ modal/
β”‚   └── infinitesimal/
└── univalent/
    β”œβ”€β”€ equiv/
    β”œβ”€β”€ extensionality/
    β”œβ”€β”€ iso/
    β”œβ”€β”€ path/
    └── prop/

Mathematics

In the mathematics folder you will find Mathematical Components for HTS:

anders.groupoid.space/mathematics/
β”œβ”€β”€ algebra/
β”‚   β”œβ”€β”€ homology/
β”‚   └── algebra/
β”œβ”€β”€ analysis/
β”‚   └── real/
β”œβ”€β”€ categories/
β”‚   β”œβ”€β”€ abelian/
β”‚   β”œβ”€β”€ category/
β”‚   β”œβ”€β”€ functor/
β”‚   └── groupoid/
β”œβ”€β”€ geometry/
β”‚   β”œβ”€β”€ bundle/
β”‚   β”œβ”€β”€ etale/
β”‚   └── formalDisc/
β”œβ”€β”€ homotopy/
β”‚   β”œβ”€β”€ KGn/
β”‚   β”œβ”€β”€ S1/
β”‚   β”œβ”€β”€ Sn/
β”‚   β”œβ”€β”€ coequalizer/
β”‚   β”œβ”€β”€ hubSpokes/
β”‚   β”œβ”€β”€ pullback/
β”‚   β”œβ”€β”€ pushout/
β”‚   β”œβ”€β”€ quotient/
β”‚   β”œβ”€β”€ suspension/
β”‚   └── truncation/
└── topoi/
    └── topos/

Usage

The main purpose of Anders is doing Homotopy Theory:

$ dune exec anders repl

Anders Proof Assistant version 1.4.0
Copyright Β© 2021–2022 Groupoid Infinity.

For help type β€˜:h’.

>

Mentions

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].