Слой кубов¶
Все кубы находятся во вселенной CUBE.
Есть три встроенных куба:
- Куб
1— это единичный куб с единственной точкой*_1 - Куб
2— это куб направленного интервала с точками0_2и1_2, с линейным порядком - Куб
𝕀(илиIIв ASCII) — дедекиндов кубический интервал с точками0ᵢи1ᵢ, без тотального порядка
2 является подтипом 𝕀: любая точка 2 может использоваться там, где ожидается 𝕀. Кубический интервал 𝕀 используется аналогично 2, но без тотального порядка:
-- Кубический hom-тип в A между x и y
#define cub-hom
(A : U) (x y : A)
: U
:= (t : II) -> A [ t === 0_I |-> x , t === 1_I |-> y ]
Также возможно иметь переменные CUBE и делать произведения кубов:
I * J— это произведение кубовIиJ(t, s)— это точка вI * J, еслиt : Iиs : J- если
ts : I * J, тоfirst ts : Iиsecond ts : J
Обычно вы можете использовать (t, s) как в качестве паттерна, так и в качестве конструкции пары точек:
-- Перестановка компонент точки в кубе I × I
#define swap
( I : CUBE)
: ( I × I) → I × I
:= \ (t , s) → (s , t)