Expand description
Homotopy Type Theory
Notice! This module is experimental and in early stages of development.
This is a model of Homotopy Type Theory that attempts to be similar to the version in the standard HoTT book.
Structs
- Identity type.
- Whether some type is a homotopy proposition.
- Reflexivity proof of identity type.
Functions
(f : x -> y) ⋀ id{x}(a, b) => id{y}(f(a), f(b))
.(f : x => y) ⋀ id{x}(a, b) => id{y}(f(a), f(b))
.is_contr(a) => a
.(id{x}(a, b) ⋀ id{x}(a, c)) => id{x}(c, b)
.(id{x}(a, b) ⋀ id{x}(b, c)) => id{x}(a, b)
.id{x}(a, b) => (a == b)
.(x : type(n)) ⋀ (a : x) ⋀ (b : x) => id{x}(a, b) : type(n)
.(is_groupoid(x) ⋀ (a : x) ⋀ (b : x) ⋀ (p : id{x}(a, b)) ⋀ (q : id{x}(a, b)) ⋀ (hp : id{id{x}(a, b)}(p, q)) ⋀ (hq : id{id{x}(a, b)}(p, a))) => id{id{id{x}(a, b)}(p, q)}(hp, hq)
.(is_groupoid(x) ⋀ (a : x) ⋀ (b : x)) => is_set(id{x}(a, b))
.(is_htype(n+1, x) ⋀ (a : x) ⋀ (b : x)) => is_htype(n, id{x}(a, b))
.(is_prop(x) ⋀ (a : x) ⋀ (b : x)) => id{x}(a, b)
.(is_set(x) ⋀ (a : x) ⋀ (b : x) ⋀ (p : id{x}(a, b)) ⋀ (q : id{x}(a, b))) => id{id{x}(a, b)}(p, q)
.(is_set(x) ⋀ (a : x) ⋀ (b : x)) => is_prop(id{x}(a, b))
.(a : x) => refl{x}(a) : id{x}(a, a)
.a => is_contr(a)
.is_contr(true)
.
Type Definitions
- Whether some type is a homotopy proposition of level 0.
- Whether some type is a groupoid.
- Whether some type is a homotopy n-groupoid.
- Whether some type is a homotopy proposition of level 1.
- Whether some type is a homotopy proposition of level 2.