https://github.com/groupoid/dan
š§ Š”ŃŠ¼ŠæŠ»ŃŃŃŠ°Š»Ńна ŃŠµŠ¾ŃŃŃ ŃŠøŠæŃв
https://github.com/groupoid/dan
Last synced: 10 months ago
JSON representation
š§ Š”ŃŠ¼ŠæŠ»ŃŃŃŠ°Š»Ńна ŃŠµŠ¾ŃŃŃ ŃŠøŠæŃв
- Host: GitHub
- URL: https://github.com/groupoid/dan
- Owner: groupoid
- Created: 2025-02-22T13:46:11.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-02-22T13:53:47.000Z (11 months ago)
- Last Synced: 2025-02-22T14:36:50.026Z (11 months ago)
- Language: OCaml
- Homepage: http://dan.groupoid.space/
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Dan Kan: Simplicial HoTT
========================
Groupoid Infinity Simplicial HoTT Computer Algebra System is a pure algebraŃc implementation
with explicit syntaxt for fastest type checking. It supports following extensions: `Chain`,
`Cochain`, `Simplex`, `Simplicial`, `Category`, `Monoid`, `Group`, `Ring`.
Simplicial HoTT is a Rezk/GAP replacement incorporated into CCHM/CHM/HTS Agda-like Anders/Dan
with Kan, Rezk and Segal simplicial modes for computable ā-categories.

## Abstract
We present a domain-specific language (DSL), the extension to Cubical Homotopy Type Theory (CCHM) for simplicial structures,
designed as a fast type checker with a focus on algebraic purity. Built on the Cohen-Coquand-Huber-Mƶrtberg (CCHM)
framework, our DSL employs a Lean/Anders-like sequent syntax `Š (context) ⢠k (vā, ..., vā | fā, ..., fā | ... )` to define
k-dimensional `0, ..., n, ā` simplices via explicit contexts, vertex lists, and face relations, eschewing geometric coherence terms
in favor of compositional constraints (e.g., `f = g ā h`). The semantics, formalized as inference rules in a Martin-Lƶf
Type Theory MLTT-like setting, include Formation, Introduction, Elimination, Composition, Computational, and
Uniqueness rules, ensuring a lightweight, deterministic computational model with linear-time type checking (O(k + m + n),
where k is vertices, m is faces, and n is relations). Inspired by opetopic purity, our system avoids cubical
path-filling (e.g., `PathP`), aligning with syntactic approaches to higher structures while retaining CCHMās
type-theoretic foundation. Compared to opetopic sequent calculi and the Rzk prover, our DSL balances algebraic
simplicity with practical efficiency, targeting simplicial constructions over general ā-categories,
and achieves a fast, pure checker suitable for formal proofs and combinatorial reasoning.
## Setup
```
$ ocamlopt -o dan src/simplicity.ml && ./dan
```
## Syntax
Incorporating into CCHM/CHM/HTS Anders/Dan core.
### Definition
New sequent contruction:
```
def : := Р(context), conditions ⢠(elements | constraints)
```
Instances:
```
def chain : Chain := Š (context), conditions ⢠n (Cā, Cā, ..., Cā | āā, āā, ..., āāāā)
def simplicial : Simplicial := Š (context), conditions ⢠n (sā, sā, ..., sā | facemaps, degeneracies)
def group : Group := Р(context), conditions ⢠n (generators | relations)
def cat : Category := Р(context), conditions ⢠n (objects | morphisms | coherence)
```
### BNF
```
::= |
::= "def" ":" ":="
::= "Simplex" | "Simplicial" | "Chain" | "Cochain"
| "Category" | "Group" | "Monoid" | "Ring" | "Field"
::= "Š" "(" ")" "ā¢" "(" "|" ")"
::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
::= "¹" | "²" | "³" | "ā“" | "āµ" | "ā¶" | "ā·" | "āø" | "ā¹"
::= | | "ā"
::= | ","
::= ":" % Single declaration, e.g., a : Simplex
| "(" ":" ")" % Grouped declaration, e.g., (a b c : Simplex)
| "=" "<" % Map, e.g., āā = Cā < Cā
| "=" % Equality, e.g., x = 2
| "=" "ā" % Monoid composition, e.g., ac = ab ā bc
| "=" "+" % Ring addition, e.g., x + y = s
| "=" "ā
" % Ring multiplication, e.g., x ā
y = p
| "=" "/" % Field division, e.g., x / y = d
::= | % e.g., a b c
::= | ε
::= | ","
::= | ε
::= | ","
::= "=" % Equality, e.g., a = 2
| "ā" "=" % Monoid composition, e.g., a ā a = e
| "+" "=" % Ring addition, e.g., x + y = s
| "ā
" "=" % Ring multiplication, e.g., x ā
y = p
| "/" "=" % Field division, e.g., x / y = d
| "<" % Map, e.g., āā < Cā
::= % e.g., a
| "ā" % e.g., a ā b
| "+" % e.g., x + y
| "ā
" % e.g., x ā
y
| "/" % e.g., x / y
| "^-1" % e.g., a^-1
| "^" % e.g., a³
| "e" % identity
| % e.g., 2
| % e.g., [[1,2],[3,4]]
::= | % e.g., 123
::= "[" "]" % e.g., [[1,2],[3,4]]
::= | ","
::= "[" "]" % e.g., [1,2]
::= | "," % e.g., 1,2
```
Meaning of `` Across Types:
* Simplex: Dimension of the simplexāe.g., n=2 for a triangle (2-simplex).
* Group: Number of generatorsāe.g., n=1 for Z/3Z (one generator a).
* Simplicial: Maximum dimension of the simplicial setāe.g., n=1 for S1 (up to 1-simplices).
* Chain: Length of the chain (number of levels minus 1)āe.g., n=2 for a triangle chain (0, 1, 2 levels).
* Category: Number of objectsāe.g., n=2 for a path category (two objects x,y).
* Monoid: Number of generatorsāe.g., n=2 for N (zero and successor).
## Semantics
### Chain
* Formation. Π⢠Chain : Set
* Intro. Π⢠n (S `|` R) : Chain if Ī = sāā, ā¦, sāāā : Simplex, rā, ā¦, rā ā§ Sā, Sā, ā¦, Sā = (sāā, ā¦, sāāā), ā¦, (sāā, ā¦, sāāā) ā§ ā rā±¼ = tā±¼ = tā±¼', Π⢠rā±¼ : tā±¼ = tā±¼' ā§ ā āᵢⱼ < sāā, Π⢠āᵢⱼ : sāā ā sāāā,ā
* Elim Face. Π⢠āᵢⱼ s : Simplex if Π⢠n (S `|` R) : Chain ā§ r = āᵢⱼ < s ā§ r ā R ā§ s ā S
* Comp Face. āᵢⱼ (n (S `|` R)) ā s' if r = āᵢⱼ < s' ā§ r ā R ā§ s' ā S
* Uniq Face. Π⢠āᵢⱼ s ā” āᵢⱼ s' if Π⢠n (S `|` R) : Chain ā§ n (S' `|` R') : Chain ā§ s ā S ā§ s' ā S' ā§ ā r = āᵢⱼ < s ā R ā§ r' = āᵢⱼ < s' ā R'
### Cochain
* Formation. Π⢠Cochain : Set
* Intro. Π⢠n (S `|` R) : Cochain if Ī = sāā, ā¦, sāāā : Simplex, rā, ā¦, rā ā§ Sā, Sā, ā¦, Sā = (sāā, ā¦, sāāā), ā¦, (sāā, ā¦, sāāā) ā§ ā rā±¼ = tā±¼ = tā±¼', Π⢠rā±¼ : tā±¼ = tā±¼' ā§ ā Ļᵢⱼ < sāā, Π⢠Ļᵢⱼ : sāā ā sāāā,ā
* Elim Degeneracy. Π⢠Ļᵢⱼ s : Simplex if Π⢠n (S `|` R) : Cochain ā§ r = Ļᵢⱼ < s ā§ r ā R ā§ s ā S
* Comp Degeneracy. Ļᵢⱼ (n (S `|` R)) ā s' if r = Ļᵢⱼ < s' ā§ r ā R ā§ s' ā S
* Uniq Degeneracy. Π⢠Ļᵢⱼ s ā” Ļᵢⱼ s' if Π⢠n (S `|` R) : Cochain ā§ n (S' `|` R') : Cochain ā§ s ā S ā§ s' ā S' ā§ ā r = Ļᵢⱼ < s ā R ā§ r' = Ļᵢⱼ < s' ā R'
### Category
* Formation. Π⢠Category : Set
* Intro. Π⢠n (O `|` M `|` R) : Category if Ī = oā, ā¦, oā, mā, ā¦, mā : Simplex, rā, ā¦, rā ā§ O = (oā, ā¦, oā) ā§ M = (mā, ā¦, mā) ā§ ā rā±¼ = tā±¼ = tā±¼', Π⢠rā±¼ : tā±¼ = tā±¼' ā§ ā tā±¼ = mā ā mᵦ, mā, mᵦ ā Ī
* Elim Comp. Π⢠c : Simplex if Π⢠n (O `|` M `|` R) : Category ā§ r = c = mā ā mā ā§ r ā R ā§ mā, mā ā Ī
* Comp Comp. (mā ā mā) (n (O `|` M `|` R)) ā c if r = c = mā ā mā ā§ r ā R ā§ mā, mā ā Ī
* Uniq Comp. Π⢠c ā” c' if Π⢠n (O `|` M `|` R) : Category ā§ n (O' `|` M' `|` R') : Category ā§ r = c = mā ā mā ā R ā§ r' = c' = mā' ā mā' ā R' ā§ mā, mā ā Ī ā§ mā', mā' ā Ī'
### Monoid
* Formation. Π⢠Monoid : Set
* Intro. Π⢠n (M `|` R) : Monoid if Ī = mā, ā¦, mā : Simplex, rā, ā¦, rā ā§ M = (mā, ā¦, mā) ā§ ā rā±¼ = tā±¼ = tā±¼', Π⢠rā±¼ : tā±¼ = tā±¼' ā§ ā tā±¼ = mā ā mᵦ, mā, mᵦ ā M
* Elim Comp. Π⢠c : Simplex if Π⢠n (M `|` R) : Monoid ā§ r = c = mā ā mā ā§ r ā R ā§ mā, mā ā M
* Comp Comp. (mā ā mā) (n (M `|` R)) ā c if r = c = mā ā mā ā§ r ā R ā§ mā, mā ā M
* Uniq Comp. Π⢠c ā” c' if Π⢠n (M `|` R) : Monoid ā§ n (M' `|` R') : Monoid ā§ r = c = mā ā mā ā R ā§ r' = c' = mā' ā mā' ā R' ā§ mā, mā ā M ā§ mā', mā' ā M'
### Simplex
* Formation. Π⢠Simplex : Set
* Intro. Π⢠n (S `|` R) : Simplex if Ī = sā, ā¦, sā : Simplex, rā, ā¦, rā ā§ `|`S`|` = n + 1 ā§ ā rā±¼ = tā±¼ = tā±¼', Π⢠rā±¼ : tā±¼ = tā±¼' ā§ ā āįµ¢ < sā, Π⢠āįµ¢ : sā ā sāāā ā§ ā Ļįµ¢ < sā, Π⢠Ļįµ¢ : sā ā sāāā
* Elim Face. Π⢠āįµ¢ s : Simplex if Π⢠n (S `|` R) : Simplex ā§ r = āįµ¢ < s ā§ r ā R ā§ s ā S
* Elim Degeneracy. Π⢠Ļįµ¢ s : Simplex if Π⢠n (S `|` R) : Simplex ā§ r = Ļįµ¢ < s ā§ r ā R ā§ s ā S
* Comp Face. āįµ¢ (n (S `|` R)) ā s' if r = āįµ¢ < s' ā§ r ā R ā§ s' ā S
* Comp Degeneracy. Ļįµ¢ (n (S `|` R)) ā s' if r = Ļįµ¢ < s' ā§ r ā R ā§ s' ā S
* Uniq Face. Π⢠āįµ¢ s ā” āįµ¢ s' if Π⢠n (S `|` R) : Simplex ā§ n (S' `|` R') : Simplex ā§ s ā S ā§ s' ā S' ā§ ā r = āįµ¢ < s ā R ā§ r' = āįµ¢ < s' ā R'
* Uniq Degeneracy. Π⢠Ļįµ¢ s ā” Ļįµ¢ s' if Π⢠n (S `|` R) : Simplex ā§ n (S' `|` R') : Simplex ā§ s ā S ā§ s' ā S' ā§ ā r = Ļįµ¢ < s ā R ā§ r' = Ļįµ¢ < s' ā R'
### Simplicial
#### Simplicial Modes
* Π⢠Īā : Type (Simplex)
* Π⢠Īāįµįµāæ : Type
* Π⢠ĪāŹ³įµį¶»įµ : Type
* Π⢠ĪāĖ¢įµįµįµĖ” : Type
#### Formation
The simplicial type is declared as a set within the context Ī without any premises.
```
Π⢠Π: Type
```
#### Introduction
A simplicial set of rank n with elements S and constraints R is formed from context Ī if simplices, equalities, face maps, and degeneracy maps are properly defined.
```
Π⢠n (S | R) : Simplicial if
Ī = sāā, ā¦, sāāā : Simplex, rā, ā¦, rā ā§
Sā, Sā, ā¦, Sā = (sāā, ā¦, sāāā), ā¦, (sāā, ā¦, sāāā) ā§
rā±¼ = tā±¼ = tā±¼',
Π⢠rā±¼ : tā±¼ = tā±¼' ā§
āᵢⱼ < sāā,
Π⢠āᵢⱼ : sāā ā sāāā,ā ā§
Ļᵢⱼ < sāā,
Π⢠Ļᵢⱼ : sāā ā sāāā,ā
```
#### Elim Face
The face map āᵢⱼ extracts a simplex from s in a simplicial set if the constraint r defines the face relation.
```
Π⢠āᵢⱼ s : Simplex if
Π⢠n (S | R) : Simplicial ā§
r = āᵢⱼ < s ā§
r ā R ā§
s ā S
```
#### Elim Composition
The composition sā ā sā yields a simplex c in a simplicial set if the constraint r defines it and s1 and s2 are composable.
```
Π⢠c : Simplex if
Π⢠n (S | R) : Simplicial ā§
r = c = sā ā sā ā§
r ā R ā§ sā, sā ā S ā§
Π⢠āᵢᵢāā sā = āįµ¢ā sā
```
#### Elim Degeneracy
The degeneracy map Ļᵢⱼ lifts a simplex s to a higher simplex in a simplicial set if the constraint r defines the degeneracy relation.
```
Π⢠Ļᵢⱼ s : Simplex if
Π⢠n (S | R) : Simplicial ā§
r = Ļᵢⱼ < s,
r ā R,
s ā S
```
#### Face Computation
The face map āᵢⱼ applied to a simplicial set reduces to the simplex sā² specified by the constraint r in R.
```
āᵢⱼ (n (S | R)) ā s' if
r = āᵢⱼ < s' ā§
r ā R ā§
s' ā S
```
#### Composition Computation.
The composition sā ā sā applied to a simplicial set reduces to the simplex c specified by the constraint r in R, given s1 and s2 are composable.
```
(sā ā sā) (n (S | R)) ā c if
r = c = sā ā sā ā§
r ā R ā§
sā, sā ā S ā§
Π⢠āᵢᵢāā sā = āįµ¢ā sā
```
#### Degeneracy Computation.
The degeneracy map Ļᵢⱼ applied to a simplicial set reduces to the simplex sā² specified by the constraint r in R.
```
Ļᵢⱼ (n (S | R)) ā s' if
r = Ļᵢⱼ < s' ā§
r ā R ā§
s' ā S
```
#### Face Uniqueness
Two face maps āᵢⱼ s and āᵢⱼ sā² are equal if they are defined by constraints r and rā² across two simplicial sets with matching elements.
```
Π⢠āᵢⱼ s ā” āᵢⱼ s' if
Π⢠n (S | R) : Simplicial ā§
n (S' | R') : Simplicial ā§
s ā S ā§ s' ā S' ā§
r = āᵢⱼ < s ā R ā§
r' = āᵢⱼ < s' ā R'
```
#### Uniqueness of Composition.
Two composed simplices c and cā² are equal if their constraints r and rā² define compositions of matching pairs sā, sā and sāā², sāā² across two simplicial sets with composability conditions.
```
Π⢠c ┠c' if
Π⢠n (S | R) : Simplicial ā§
n (S' | R') : Simplicial ā§
r = c = sā ā sā ā R ā§
r' = c' = sā' ā sā' ā R' ā§
sā, sā ā S ā§
sā', sā' ā S' ā§
Π⢠āᵢᵢāā sā = āįµ¢ā sā ā§
Π⢠āᵢᵢāā sā' = āįµ¢ā sā'
```
#### Uniqueness of Degeneracy.
Two degeneracy maps Ļᵢⱼ s and Ļᵢⱼ sā² are equal if they are defined by constraints r and rā² across two simplicial sets with matching elements.
```
Π⢠Ļᵢⱼ s ā” Ļᵢⱼ s' if
Π⢠n (S | R) : Simplicial ā§
n (S' | R') : Simplicial ā§
s ā S ā§
s' ā S' ā§
r = Ļᵢⱼ < s ā R ā§
r' = Ļᵢⱼ < s' ā R'
```
## Examples
### N-Monoid
```
def nat_monoid : Monoid
:= Š (z s : Simplex),
s ā z = s, z ā s = s
⢠2 (z s | s ā z = s, z ā s = s)
```
O(5).
### Category with Group (Path Category with Z/2Z)
```
def path_z2_category : Category
:= Š (x y : Simplex),
(f g h : Simplex),
(z2 : Group(Р(e a : Simplex), a² = e ⢠1 (a | a² = e))),
f ā g = h
⢠2 (x y | f g h | f ā g = h)
```
O(8)ā5 context + 2 nested group + 1 constraintālinear with nesting.
### Triangle Chain
```
def triangle_chain : Chain
:= Š (vā vā vā eāā eāā eāā t : Simplex),
āāā = eāā, āāā = eāā, āāā = eāā, āā < eāā eāā eāā
⢠2 (vā vā vā, eāā eāā eāā, t | āāā āāā āāā, āā)
```
O(11).
### Simplicial Circle
```
def circle : Simplicial
:= Š (v e : Simplex),
āāā = v, āāā = v, sā < v
⢠1 (v, e | āāā āāā, sā)
```
O(5).
### Z/3Z
```
def z3 : Group
:= Š (e a : Simplex),
a³ = e
⢠1 (a | a³ = e)
```
O(4).
### Triangle
```
def triangle : Simplex := Š (a b c : Simplex),
(ab bc ca : Simplex), ac = ab ā bc
⢠2 (a b c | ab bc ca)
```
O(7).
### Singular Cone
```
def singular_cone : Simplex
:= Š (p q r s : Simplex),
(qrs prs pqs : Simplex), pqr = pqs ā qrs
⢠3 (p q r s | qrs prs pqs pqr)
```
Context: p, q, r, s: Simplex (vertices), qrs, prs, pqs : Simplex (faces), pqr = pqs ā qrs.
Simplex: Dimension 3, 4 faces.
### Mƶbius Piece
```
def Mƶbius : Simplex
:= Š (a b c : Simplex),
(bc ac : Simplex), ab = bc ā ac
⢠2 (a b c | bc ac ab)
```
Context: a, b, c : Simplex (vertices), bc, ac : Simplex (faces), ab = bc ā ac (relation).
Simplex: Dimension 2, 3 faces.
### Degenerate Tetrahedron
```
def degen_tetra : Simplex
:= Š (p q r s : Simplex, q = r),
(qrs prs pqs : Simplex), pqr = pqs ā qrs
⢠3 (p q r s | qrs prs pqs pqr)
```
Context: p, q, r, s : Simplex, q = r (degeneracy), qrs, prs, pqs : Simplex, pqr = pqs ā qrs.
Simplex: Dimension 3, 4 facesādegeneracy implies a collapsed edge.
Non-Triviality: q = r flattens the structure algebraically, testing composition under equality.
### Twisted Annulus
```
def twisted_annulus : Simplex
:= Š (a b c d : Simplex),
(bc ac bd : Simplex), ab = bc ā ac, cd = ac ā bd
⢠2 (a b c | bc ac ab), 2 (b c d | bc bd cd)
```
Context:
* Vertices: a, b, c, d.
* Faces: bc, ac, bd.
* Relations: ab = bc ā ac, cd = ac ā bd (twist via composition).
Simplices:
* (a b c `|` bc, ac, ab ): First triangle.
* (b c d `|` bc, bd, cd ): Second triangle, sharing bc.
Checking:
* Vertices: a, b, c, d ā Ī ā O(4).
* Faces: bc, ac, ab (O(3)), bc, bd, cd (O(3)) ā total O(6).
* Relations: ab = bc ā ac (O(1)), cd = ac ā bd (O(1)) ā O(2).
* Total: O(12) ā linear, fast.
### Degenerate Triangle (Collapsed Edge)
```
def degen_triangle : Simplex
:= Š (a b c : Simplex, b = c),
(bc ac : Simplex), ab = bc ā ac
⢠2 (a b c | bc ac ab)
```
Context:
* Vertices: a, b, c, with b = c.
* Faces: bc, ac.
* Relation: ab = bc ā ac.
Simplex:
* (a b c `|` bc, ac, ab ) ā 3 faces, despite degeneracy.
Checking:
* Vertices: a, b, c ā Ī, b = c ā O(3).
* Faces: bc, ac, ab ā Ī ā O(3).
* Relation: ab = bc ā ac ā O(1).
* Total: O(7)āefficient, handles degeneracy cleanly.
### Singular Prism (Degenerate Face)
```
def singular_prism : Simplex
:= Š (p q r s t : Simplex),
(qrs prs pqt : Simplex, qrs = qrs), pqr = pqt ā qrs
⢠3 (p q r s | qrs prs pqt pqr)
```
Context:
* Vertices: p, q, r, s, t.
* Faces: qrs, prs, pqt.
* Relations: qrs = qrs (degenerate identity), pqr = pqt ā qrs.
Simplex:
* (p q r s `|` qrs, prs, pqt, pqr ) ā 4 faces, one degenerate.
Checking:
* Vertices: p, q, r, s ā Ī (t unused, valid) ā O(4).
* Faces: qrs, prs, pqt, pqr ā Ī ā O(4).
* Relations: qrs = qrs (O(1)), pqr = pqt ā qrs (O(1)) ā O(2).
* Total: O(10) ā linear, fast despite degeneracy.
### S¹ as ā-Groupoid
```
def s1_infty : Simplicial
:= Š (v e : Simplex),
āāā = v, āāā = v, sā < v,
āāā = e ā e, sāā < āāā
⢠ā (v, e, āāā | āāā āāā, sā, āāā, sāā)
```
AST:
```
(* Infinite S¹ ā-groupoid *)
let s1_infty = {
name = "s1_infty";
typ = Simplicial;
context = [
Decl (["v"; "e"], Simplex); (* Base point and loop *)
Equality ("āāā", Id "v", Id "āāā");
Equality ("āāā", Id "v", Id "āāā");
Equality ("sā", Id "e", Id "sā");
Equality ("āāā", Comp (Id "e", Id "e"), Id "āāā"); (* 2-cell: e ā e *)
Equality ("sāā", Id "āāā", Id "sāā") (* Degeneracy for 2-cell *)
];
rank = Infinite; (* Unbounded dimensions *)
elements = ["v"; "e"; "āāā"]; (* Finite truncation: 0-, 1-, 2-cells *)
constraints = [
Eq (Id "āāā", Id "v");
Eq (Id "āāā", Id "v");
Map ("sā", ["v"]);
Eq (Id "āāā", Comp (Id "e", Id "e"));
Map ("sāā", ["āāā"])
]
}
```
### ā-Category with cube fillers
```
def cube_infty : Category := Š (a b c : Simplex),
(f g h : Simplex), cube2 = g ā f, cube2 : Simplex,
cube3 = cube2 ā f, cube3 : Simplex
⢠ā (a b c | cube2 cube3)
```
### Matrix Ring Spectrum
```
def matrix_ring_spectrum : Ring
:= Š (a b s p : Simplex),
a + b = s, a ā
b = p,
a = [[1,2],[3,4]], b = [[0,1],[1,0]], s = [[1,3],[4,4]], p = [[2,1],[4,3]]
⢠4 (a b s p | a + b = s, a ā
b = p, a = [[1,2],[3,4]], b = [[0,1],[1,0]],
s = [[1,3],[4,4]], p = [[2,1],[4,3]])
```
### HZ spectrum
```
def hz_spectrum : Ring
:= Š (x y p : Simplex),
x ā
y = p,
x = 2, y = 3, p = 6
⢠3 (x y p | x ā
y = p, x = 2, y = 3, p = 6)
```
### Poly Ring spectrum
```
def poly_ring_zx : Ring
:= Š (f g s p : Simplex),
f + g = s, f ā
g = p,
f = x + 1, g = 2 ā
x, s = 3 ā
x + 1, p = 2 ā
x ā
x + 2 ā
x
⢠4 (f g s p | f + g = s, f ā
g = p, f = x + 1, g = 2 ā
x,
s = 3 ā
x + 1, p = 2 ā
x ā
x + 2 ā
x)
```
### GF(2ā“) Finite Field
```
def gf16 : Field
:= Š (x y s p d : Simplex),
x + y = s, x ā
y = p, x / y = d,
x = Z(2^4), y = Z(2^4)^2,
s = Z(2^4) + Z(2^4)^2,
p = Z(2^4)^3, d = Z(2^4)^14
⢠5 (x y s p d | x + y = s, x ā
y = p, x / y = d,
x = Z(2^4), y = Z(2^4)^2,
s = Z(2^4) + Z(2^4)^2,
p = Z(2^4)^3,
d = Z(2^4)^14)
```
### GF(7) Prime Field
```
def gf7 : Field
:= Š (x y s p d : Simplex),
x + y = s, x ā
y = p, x / y = d,
x = 2, y = 3, s = 5, p = 6, d = 3
⢠5 (x y s p d | x + y = s, x ā
y = p,
x / y = d, x = 2, y = 3,
s = 5, p = 6, d = 3)
```
## Bibliography
* Daniel Kan. Abstract Homotopy I. 1955.
* Daniel Kan. Abstract Homotopy II. 1956.
* Daniel Kan. On c.s.s. Complexes. 1957.
* Daniel Kan. A Combinatorial Definition of Homotopy Groups. 1958.
* Daniel Kan, W. G. Dwyer. Adjoint functors. 1958.
* Daniel Kan, W. G. Dwyer. Simplicial Localizations of Categories. 1980.
* Graeme Segal. Classifying spaces and spectral sequences. 1968.
* Graeme Segal. Categories and cohomology theories. 1974.
* Graeme Segal, R. Bott. Loop groups and their classifying spaces. 1988.
* Charles Rezk. A model for the homotopy theory of homotopy theory. 2001.
* Charles Rezk. A cartesian presentation of weak n-categories". 2010.
* Charles Rezk, S. Schwede, B. Shipley. Simplicial structures on model categories and functors. 2001.
* Charles Rezk, J. Bergner. Comparison of models for (ā,n)-categories. 2013.
## Conclusion
Dan Kan Simplicity HoTT, hosted at groupoid/dan, is a lightweight, pure type checker
built on Cubical Homotopy Type Theory (CCHM), named in tribute to Daniel Kan for
his foundational work on simplicial sets. With a unified syntax ā
`Š (context) ⢠n (elements | constraints)` ā Dan supports a rich type
system `Simplex`, `Group`, `Simplicial`, `Chain`, `Category`, `Monoid`, now extended with
ā-categories featuring cube fillers.