data Fin : Nat -> Set where
Fin - тип данных, параметризованный натуральным числом (или: Fin
- функция уровня типа, которая принимает Nat
и возвращает Set
(базовый тип), т.е. для любого натурального числаn
Fin n
является Set
).
fzero : {n : Nat} -> Fin (succ n)
Для всех натуральных чисел n
fzero
является членом типа / набора Fin (succ n)
(из которого следует, что для всехположительные числа (т. е. все натуральные числа, кроме нуля) n
fzero
является членом Fin n
).
fsucc : {n : Nat} -> Fin n -> Fin (succ n)
Для всех натуральных чисел n
и всех значений m
типа Fin n
, fsucc m
является членом типа Fin (succ n)
.
Так что fzero
является членом Fin n
для всех n
, кроме нуля, а fsucc m
является членом Fin n
для всех n
, которые представляют число больше fsucc m
.
В основном Fin n
представляет набор всех натуральных чисел, меньших n
, то есть всех действительных индексов для списков размера n
.