Есть еще одна интересеная мысль про предкатегории/категории, которую редко вспоминают, но она мне кажется полезной. Обычно категории определяются через предкатегории, но можно сделать и наоборот. Предкатегории можно определить как тройки (X,C,f), где X — тип, C — категория, а f : X -> Ob(C) — сюръективная функция.
Это можно сравнить с другим примером. Рассмотрим сетоиды. Мы бдуем говорить, что сетоид унивалентный, если эквивалентность на нем эквивалентна равенству. Легко видеть, что унивалентный сетоид — это то же самое, что множество. И наоборот, обычный сетоид можно определить через унивалентный (т.е. через множества). Сетоиды эквивалентны типу троек (X,C,f), где X — множество, C — унивалентный сетоид (т.е. тоже множество), а f : X -> C — сюръективная функция.