52700.fb2 Учебник по Haskell - читать онлайн бесплатно полную версию книги . Страница 263

Учебник по Haskell - читать онлайн бесплатно полную версию книги . Страница 263

E

f

Композиция стрелок – это обычная композиция в исходной категории, в которой определены объекты A

и B, а тождественная стрелка для каждого объекта, это тождественная стрелка для того объекта, в котором

сходятся обе стрелки. Можно проверить, что это действительно категория.

Если в этой категории есть начальный объект, то мы будем называть его суммой объектов A и B. Две

стрелки, которые содержит этот объект мы будем называть inl и inr, а общий объект в котором эти стрелки

сходятся будем называть A + B. Теперь если мы выпишем определение для начального объекта, но вме-

сто произвольных стрелок и объектов подставим наш конкретный случай, то мы получим как раз исходное

определение суммы.

Начальный объект ( inl : A → A + B, inr : B → A + B) ставит в соответствие любому объекту

( f : A → C, g : B → C) стрелку h : A + B → C такую, что выполняются свойства:

236 | Глава 15: Теория категорий

A

inl

A + B

inr

B

h

f

g

C

А как на счёт произведения? Оказывается, что произведение является дуальным понятием по отношению

к сумме. Его иногда называют косуммой, или сумму называют копроизведением. Дуализируем категорию,

которую мы строили для суммы.

У нас есть категория A и в ней выделено два объекта A и B. Объектами новой категории будут пары

стрелок ( a 1 , a 2), которые начинаются в общем объекте C а заканчиваются в объектах A и B. Стрелками в

этой категории будут стрелки исходной категории h : ( e 1 , e 2) ( d 1 , d 2) такие что следующая диаграмма

коммутирует:

A

B

e 1

d 2

d

e

1

2

D

E

f

Композиция и тождественные стрелки позаимствованы из исходной категории A. Если в этой категории

существует конечный объект. То мы будем называть его произведением объектов A и B. Две стрелки этого

объекта обозначаются как ( exl, exr), а общий объект из которого они начинаются мы назовём A×B. Теперь

распишем определение конечного объекта для нашей категории пар стрелок с общим началом.

Конечный объект ( exl : A×B → A, exr : A×B → B) ставит в соответствие любому объекту категории

( f : C → A, g : C → B) стрелку h : C → A × B. При этом выполняются свойства:

A

exl

A × B

exr