psilogic: (Default)
psilogic ([personal profile] psilogic) wrote2010-11-12 04:41 pm

Про теорию категорий в стиле фэнтези

Тут пошла такая пьянка: [livejournal.com profile] a_shen помянул теорию категорий, [livejournal.com profile] avva помянул теорию категорий... причем, помянули в таком смысле, что это нечто жутко абстрактное, непонятно, как объяснить простым смертным.

Захотелось мне посмотреть, что за страшная такая теория категорий. То есть, попробовать объяснить хотя бы самому себе. :)

Начинать я люблю с определений: раз и два.

Ну что тут скажешь: видим образчики того, как составить определение так, "чтобы никто не догадался". Как нарочно, чтобы было непонятно. Значков много, разложены значки кривовато. Например, определение в вики содержит такое:

"задано множество морфизмов (или стрелок) HomC(A,B)..."

- ну и к чему относится "Hom" - к понятию "морфизм" или к понятию "множество морфизмов"? Я сначала подумал первое, потом стал читать дальше, оказалось - второе. Вот и получается: вроде как математика, формулы, а все-равно - двусмысленности.

Дальше пошли примеры, и, когда сопоставил примеры с определениями, стало более-менее ясно. Не так страшен черт, как его малюют. И объяснить, вроде бы, не так уж и сложно - по крайней мере себе. Можно даже в стиле фэнтези.



Объект

Во-первых, представьте себе некий "объект". Тут есть первая психологическая ловушка - для примера может прийти в голову что-то простое типа "число 5" или "точка A". Так вот, не берите простое, берите сразу сложное - и тогда (как ни парадоксально) понять будет проще.

В качестве объекта возьмем... робота-трансформера или... мага-полиморфа. Маг-полиморф - это который умеет превращаться в разных животных. Все-таки предпочту второе - когда-то для одной игрушки программировал магов-полиморфов, ностальгия, знаете ли. :)

Вот что такое объект. А в категории таких объектов много. То есть, клан магов-полиморфов например. Замечу: это вовсе НЕ аналогия и не художественная метафора, это - вполне корректный пример, частный случай, поскольку теория категорий почти не ограничивает, что именно считать объектами.

Морфизм = превращение

Во-вторых, понятие "морфизм" или "стрелка". Маг-полиморф говорит: "лупус-задрупус-мордус-впередус-жопус-в-хвостус" и превращается, скажем, в волка. Вот морфизм - это и есть превращение. Опять же, для понятности лучше представлять себе превращение сложного объекта в другой сложный объект. Дальше я буду часто говорить "превращение" - мне кажется, это "качественный" и интуитивно понятный перевод термина "морфизм" на русский язык.

Кстати, еще одна психологическая ловушка, мешающая пониманию: слово морфизм - существительное. Но существительные по-умолчанию ассоциируются с предметами. А морфизм удобнее представлять себе как действие с началом и завершением.

Композиция = последовательное превращение

Есть один тонкий момент: может быть много заклинаний превращения мага в волка. Например, заклинание "лупус-задрупус..." заставляет хвост постепенно вырастать из задницы, а заклинание "хомо-дисперсус-конденсус-канис" запускает сложный процесс: сначала превращает мага в облако протоплазмы (первая часть - "хомо-дисперсус"), а потом из облака формируется матерый волчара (вторая часть - "конденсус-канис").

Последний пример называется "композиция". Композиция - это два превращения, идущих друг за другом: маг -> облако протоплазмы -> волк.

Еще одно извращение, мешающее пониманию: вместо того, чтобы писать превращения в порядке применения, их пишут наоборот:

("конденсус-канис" o "хомо-дисперсус")

- значок "o" - обозначает операцию композиции. Почему пишут наоборот - не знаю, может, изобретатель теории категорий был евреем, и ему так привычнее :)

Тождественный морфизм = превращение в себя

А теперь представим себе студента школы магии. Перепутал он "у" и "о" в астральных формулах. Начал балаболить: "лОпус-задрОпОс..." - и дело не пошло. Хвост начал отрастать, но отвалился и испарился. И вроде бы все на месте - лишних деталей не осталось. То есть, была некая попытка превращения, но объект вернулся в прежнее состояние. Вот вам тождественный морфизм.

Категория

Категория - это когда есть совокупность объектов (пример: клан магов-полиморфов), совокупность морфизмов (пример: заклинания превращения, которые используют те маги) и выполняется еще парочка условий.

Что за условия? Да ничего особенного - пара аксиом: ассоциативность и закон тождества.

- Ассоциативность. Пусть маг-полиморф может принимать 4 формы: человек, волк, собака, кот. И пусть есть 4 заклинания:
1. человек->волк
2. волк->собака->кот
3. человек->волк->собака
4. собака->кот
Так вот, закон ассоциативности утверждает, что в кота можно превратиться обоими возможными путями:
(заклинание 1) человек->волк, (заклинание 2) волк->собака->кот
все равно, что:
(заклинание 3) человек->волк->собака, (заклинание 4) собака->кот

- Закон тождества. Пусть есть заклинание превращения в самого себя (как "лОпус-задрОпОс"). Тогда неважно, когда его применять - до другого превращения или после:
человек->волк
все равно, что:
человек->человек, человек->волк
или:
волк->человек
все равно, что:
волк->человек, человек->человек

Всякие-разные морфизмы

Еще один студент с факультета полиморфизма обнаружил в Книге Заклинаний формулу превращения в дракона. Пробормотал: "драгонаутус-фойер-гросс-райзер!" - и превратился в огромное жЫвотное. Попробовал изрыгнуть пламя - вах! Получается! "Ладно", - подумал он, - "а теперь обратно". Обернулся к подставке, на которой лежала книга, а там - только пепел. Упс! Кажется, перестарался огнеметчик.

Вот когда для заданного превращения все-таки есть возможность превратиться обратно - тогда это превращение называется "изоморфизм".

Студент стал искать выход из своего затруднительного положения. Оказалось, что подходящего заклинания - чтобы превратиться из дракона прямиком в человека - никак не обнаруживается. Но нашлось нечто другое: куча заклинаний превращения из дракона в разных животных. Студент решил посмотреть, нельзя ли скомбинировать все эти заклинания так, чтобы найти путь к человеческому облику. Обнаружилось, что есть заклинание лемур->человек и длинная, сложная цепочка заклинаний, ведущих от дракона к лемуру. Причем, единственная цепочка.

Вот такая ситуёвина, когда для первой части превращения есть только один подходящий метод, называется "мономорфизмом".

А "эпиморфизм" – это когда есть только один подходящий вариант для заданной второй части. Скажем, обнаружилось, что из дракона можно превратиться в виверну, тогда студент стал искать путь превращения из виверны в человека, и нашел только один вариант.

"Биморфизм" – когда и для первой, и для второй части есть по одному подходящему варианту.

"Эндоморфизм" – когда одно превращение или серия превращений возвращает к исходной точке, например человек->волк->человек.

"Автоморфизм" – изоморфизм И эндоморфизм.

Тонкость, которую я НЕ понял: чем отличаются тождественный морфизм, эндоморфизм и автоморфизм? На первый взгляд – это одно и то же, в смысле определения эквивалентны. Может ли быть эндоморфизм, который НЕ является единичным? Может ли быть эндоморфизм, который НЕ является изоморфизмом?

[identity profile] alisarin.livejournal.com 2010-11-12 07:15 pm (UTC)(link)
* Объект - нечто произвольное, относящееся к данной категории.*

Философское рассуждение иногда требует использование такого рода понятие, указывающее на нечто сверхпроизвольное. Тогда я употребляю слово "условность" (а при некотором раскладе - и "специфика"). Но это лишь указание на то, что "что-то введено (выделено)" и более ни на что. Как его можно после этого упорядочивать, мне просто трудно представить ...

После же "раскрытия условности" - с этим уже можно что-то делать :) Как можно оперировать с тем "пойди туда, не знаю куда, возьми то, не знаю что", ума не приложу. Хотя инструкция "пойди", да, здесь имеет место :))

[identity profile] psilogic.livejournal.com 2010-11-12 07:27 pm (UTC)(link)
[ Но это лишь указание на то, что "что-то введено (выделено)" и более ни на что. ]

Вот это и есть объект. Мы не знаем, зачем нам понадобилась "условность" - поэтому не знаем никаких ее свойств. Вот как только узнаем - так и начинаем уточнять какие-то свойства объекта/условности - определяем данные, структуру, код и т.п. Например, если надо упорядочивать - будет какая-нибудь операция упорядочивания, или номер.

В программировании всегда есть некоторые операции, которые возникают как побочный эффект от того, что любому объекту выделяется какое-то место в памяти - это адрес (расположение в памяти) и размер (занимаемый в памяти). Но, вообще говоря, эти два свойства - просто побочный эффект того, как обычно технически "устроены" объекты в программе.

соответствия и отношения

[identity profile] falcao.livejournal.com 2010-11-12 07:40 pm (UTC)(link)
Ваша ошибка заключается в том, что предлог "в" Вы пытаетесь трактовать "содержательно". Представьте себе, что есть единый оборот типа "отображение-из-A-в-B". Так просто принято говорить. В этой "мать-и-мачехе" не надо пытаться найти союз "и" :)

Морфизм в категории, конечно, может не быть отображением. Например, может быть дан граф, у которого "объектами" будут вершины, а "морфизмами" -- направленные рёбра. Что угодно может быть. Всякий морфизм, согласно определению, это морфизм некоторого объекта A в некоторый объект B. Это означает, что у каждого морфизма есть свой "порт приписки" (A) и "порт назначения" (B).

Если имеет место частный случай, состоящий в том, что A=B, то такой морфизм называется "эндоморфизмом" (объекта A). В словесной форме это принято выражать оборотом "из A в себя", что по смыслу совершенно то же, что "из A в A".

Выше Вы верно заметили, что морфизмов одного объекта в другой может быть много. Это же касается и морфизмов из A в A. Среди них обязательно есть один тождественный, но могут быть и другие.

Что касается отношений, то тут особой нестыковки нет. То понятие, на которое Вы ссылаетесь, можно назвать "отношением", но это уже отход от "стандарта". То есть в таких случаях желательно делать оговорку. А вообще-то "n-арное отношение" обычно рассматривают на неком множестве D, что соответствует частному случаю D1=...=Dn=D.

При n=2, когда множества разные, я предпочитаю называть подмножество декартова произведения AxB термином "бинарное соответствие между A и B".

[identity profile] psilogic.livejournal.com 2010-11-12 08:13 pm (UTC)(link)
"Соответствие между" - мне нравиццо, т.к. это выглядит интуитивно понятно и для нематематика.

[ В словесной форме это принято выражать оборотом "из A в себя", что по смыслу совершенно то же, что "из A в A". ]

На самом деле я так и понял, причиной непонимания было другое. Когда Вы говорили "А вот если взять что-то вроде h из A в A такого, что h(1)=1, h(2)=1, h(3)=2, то это уже не будет автоморфизм, но эндоморфизмом он является" - я это так понял, что раз нет никакого h(j)=3, то в правом объекте морфизма h:A->B не будет элемента 3. Но, если разрешить появление 3 "из ничего" (а почему бы и нет), то все нормально.

В общем, получается то же, что и akuklev говорил: задается произвольная операция равенства морфизмов, которая необязательно подразумевает равенство правых частей в смысле равенства множеств, т.е. там две разных операции равенства - для морфизмов - своя, для объектов - своя. Соответственно определение эндоморфизма использует равенство объектов A и B, определение изоморфизма - равенство морфизмов, а автоморфизм - оба типа равенств - верно?

иманентность равенства

[identity profile] falcao.livejournal.com 2010-11-12 11:11 pm (UTC)(link)
Я часто сталкивался с этим явлением, когда многие люди считают, что все отображения должны быть сюръективными. Типа, если число 3 "не используется", то как бы зачем оно вообще?

Дело в том, что когда мы определяем отображение, сопоставляя одному числу другое, то зачастую бывает не известно, что будет использовано, а что нет. Представьте себе какой-нибудь многочлен 6-й степени типа x6+x2+x. Множество значений, которое он принимает, очень трудно описать сколь-нибудь "разумно". Ясно, что это будет замкнутый луч от какого-то значения c до бесконечности, но вот чему равно c -- это можно сказать только "приближённо".

Часто бывает так, что рассматривается целое семейство функций, и тогда за ними становится труднее следить, если не фиксировать одну и ту же область значений, которые им в принципе разрешено принимать. Вам наверняка будет хорошо понятен такой пример: булевой функцией от одной переменной называется отображение из {0,1} в {0,1}. Ясно, что "тожественная истина" или "тождественная ложь" -- это тоже будет частный случай б.ф., хотя одно из значений она принимать не будет. Смысл здесь в том, что второе множество указывает на то, что за его пределы выходить нельзя, то есть когда функция приняла значение 2 или "пи", то она уже не называется "булевой".

> операция равенства морфизмов

Такой операции вообще-то нет, и "равенство" -- это "отношение", а не "операция"!

Кроме того, равенство в математике всегда "имманентно", то есть любые два математических объекта либо равны "от Бога", либо не равны. Проблема может возникать только тогда, когда используются разные имена, и они могут указывать на один и тот же объект. Для различения объектов или морфизмов, составляющих категорию, можно просто использовать какие-то символы, и при этом ситуация мало чем отличается от того, как если бы мы имели дело с числами, матрицами, или чем-то ещё "привычным".

с Тиграми по понятиям :)

[identity profile] psilogic.livejournal.com 2010-11-13 12:21 am (UTC)(link)
[ Такой операции вообще-то нет, и "равенство" -- это "отношение", а не "операция"! ]

У-хи-хи-хи! :) Когда Вы так делаете, я сразу вспоминаю, насколько небрежно Вы относитесь к терминологии в любой другой области, кроме математики :)) Но меня, в общем, устраивает, что хотя бы в математике оно так :)

Равенство можно отнести и туда, и туда - разве нет? Скажу по-секрету, у меня есть железная отмазка: в программистской терминологии равенство называют операцией (или оператором), у которой два параметра X, Y (обычно из одного и того же множества), а на выходе - результат true или false.

[ Кроме того, равенство в математике всегда "имманентно", то есть любые два математических объекта либо равны "от Бога", либо не равны. ]

Замысловато сказали - чуть мозг в кучку не завял :) У нас, у программЁров, равенства разные могут быть, по всякому можно определить, что означает, когда говорится, что два объекта заданного типа равны - так что не совсем понятно, что Вы имели в виду...

[identity profile] alisarin.livejournal.com 2010-11-13 05:09 am (UTC)(link)
Что же тогда, выделение объектов в программировании - это то, что с огромным трудом удается достичь иными средствами, - подлинная случайность? Ведь порождение этих объектов происходит в силу какого-то востребования, а оно, оказывается просто спонтанно.

А если "объект" есть общее имя ряда возможных порождений, и само определение что есть объект просто соответствует этому списку порождений, то, быть может, такой список и следует привести? ;-)

Re: с Тиграми по понятиям :)

[identity profile] alisarin.livejournal.com 2010-11-13 05:15 am (UTC)(link)
*в программистской терминологии равенство называют операцией (или оператором), у которой два параметра X, Y (обычно из одного и того же множества), а на выходе - результат true или false.*

Интересно, а по жизни программеры тоже скряги, как они экономят слова? Не хотят говорить
"операция сравнения значений", а говорят просто "равенство"...

Мне присуще впечатление, что языки программирования специально изуродованы под китайскую грамоту. Если используемые в них понятия привести к литературной норме, то пользование ими и составление программ оказалось бы изумительно легким... ;-)

Re: с Тиграми по понятиям :)

[identity profile] psilogic.livejournal.com 2010-11-13 06:51 am (UTC)(link)
[ Не хотят говорить "операция сравнения значений", а говорят просто "равенство"... ]

Это другое. К операция сравнения значений относятся еще и "больше", "меньше" и т.п.

[ Мне присуще впечатление, что языки программирования специально изуродованы под китайскую грамоту. ]

Наоборот там все оптимизировано - программисты не фелософы, геморрой себе не создают :)

[identity profile] psilogic.livejournal.com 2010-11-13 06:58 am (UTC)(link)
[ Ведь порождение этих объектов происходит в силу какого-то востребования, а оно, оказывается просто спонтанно ]

Не понтанно :) Есть задачка, которая стоит перед программистом, объекты подбираются так, чтобы решить задачку, из возможных решений, которые приходят в голову программисту, он выбирает то, что ему кажется лучшим.

[ А если "объект" есть общее имя ряда возможных порождений, и само определение что есть объект просто соответствует этому списку порождений, то, быть может, такой список и следует привести? ]

Это подход философа - упомянуть все возможные решения задачки, но саму задачку так и не решить :) Программист выбирает один из вариантов и решает. В результате получается объект определенного класса, содержащий определенные данные, код, структуру.

[identity profile] 66george.livejournal.com 2010-11-13 08:14 am (UTC)(link)
Сам подход мне нравится, но конкретные примеры не все верны. Объяснять долго, но в обозримом будущем напишу учебник. Вот здесь было много книжек
http://community.livejournal.com/category_theory/2190.html
лично мне больше всего нравится книга Ламбека и Скотта. Теорию категорий придумали два человека (Эйленберг и Маклейн), кто из них еврей, не знаю. Запись композиции функций в обратном порядке - стандартная математическая запись. В теории категорий от неё часто отходят и записывают композицию в том порядке, в каком идут морфизмы на картинке.

[identity profile] psilogic.livejournal.com 2010-11-13 08:38 am (UTC)(link)
[ Запись композиции функций в обратном порядке - стандартная математическая запись. ]

а, вот значит откуда оно взялось f(g(x)) - но все же операции записываются в прямом порядке, когда без скобок то

[identity profile] 66george.livejournal.com 2010-11-13 08:54 am (UTC)(link)
При такой записи в прямом, а если нарисовать картинку, то в противоположном
g:A->B f:B->C
В теории категорий довольно часто пишут gf, в том порядке, как на картинке (и обычно без кружочка в этом случае).
Эндоморфизм - это отображение некоторого объекта (например, множества) в себя, он не обязан быть тождественным. Автоморфизм - это изоморфизм на себя (например, перестановка конечного множества). Вообще, для начала надо думать о множествах и функциях.

Re: с Тиграми по понятиям :)

[identity profile] alisarin.livejournal.com 2010-11-13 10:07 am (UTC)(link)
Понятия можно "почистить" - "операция выделения равных значений".

А насчет какие болячки создают себе программисты - я читал тут всю историю создания музыкального редактора ;-) А еще раньше в этом же блоге наблюдались посты о разного рода программистских приемчиках - зачем все это, если написание программ так просто?..

Не буду вступать в диспут - но моя оценка: рано или поздно все эти программные решения почистят, причем на начальном уровне окажется все это посложнее, зато на уровне макроструктур - существенно попроще. Сейчас пока программирование похоже на те автомобили зари технического прогресса, при конструировании которых не думали об эргономике. А вот все эти готовые решения, не оптимизированные на уровне написания кода - это все ерунда.

Хотя программирование - это уже индустрия...

[identity profile] alisarin.livejournal.com 2010-11-13 10:09 am (UTC)(link)
*Программист выбирает один из вариантов и решает. В результате получается объект определенного класса, содержащий определенные данные, код, структуру.*

Напоминает - "окраина города - район стихийной застройки" :) Мне кажется, признание - супер! ...

Re: с Тиграми по понятиям :)

[identity profile] psilogic.livejournal.com 2010-11-13 10:16 am (UTC)(link)
[ Понятия можно "почистить" - "операция выделения равных значений". ]

А можно еще так "почистить" - "операция сущностного выделения имманентно равных бытийственно-эксплицитных символично нотированных идейно-содержательных значений"

фЯлософы... :))

[identity profile] psilogic.livejournal.com 2010-11-13 10:19 am (UTC)(link)
[ Напоминает - "окраина города - район стихийной застройки" :) ]

В огороде бузина...

[ Мне кажется, признание - супер! ... ]

Да-да-да-д! Страшная тайна раскрыта! :)

Re: с Тиграми по понятиям :)

[identity profile] alisarin.livejournal.com 2010-11-13 01:38 pm (UTC)(link)
Все зависит от потребности различения - разнятся же красный и красный выгоревший :)

Хотя ирония - она действительно по делу! Но это как слишком легкая одежда - в ней не постоишь на холоде, хотя на том же холоде бегать в ней как раз лучше. Тогда при такой урезанности понятий как сейчас, программирование оказывается избыточно сложной практикой. Так думаю...

[identity profile] alisarin.livejournal.com 2010-11-13 01:40 pm (UTC)(link)
Имеет прямое отношение - единого стандарта и порядка и, главное, осмысленного понимания рациональности программного кода чей-то не наблюдается :(

Re: с Тиграми по понятиям :)

[identity profile] psilogic.livejournal.com 2010-11-13 01:45 pm (UTC)(link)
дык, с чего ты взял, что избыточно урезанной?

программЁры используют такие понятия, какие удобно, их же никто не заставляет, терминология складывается стихийно. если в какой книжке или языке слишком длинный/неудобный термин, он очень быстро заменяется сленгом. если что-то слишком коротко - уточняют дополнительными словами.

[identity profile] psilogic.livejournal.com 2010-11-13 01:46 pm (UTC)(link)
а кому оно надо - единство такое? :)

[identity profile] alisarin.livejournal.com 2010-11-13 02:03 pm (UTC)(link)
Может и не нада, как знать :) Но тады оно "как феномен" не до конца познано - нет общей теории :))

Re: с Тиграми по понятиям :)

[identity profile] alisarin.livejournal.com 2010-11-13 02:06 pm (UTC)(link)
Тогда цикл замыкается в знаменитую "железную отмазку": нечто называется так не потому, что оно таким образом недвусмысленно в широком понимании, а потому, что кто-то когда-то так вякнул. Это не есть хорошо ;-)

процедуры (1)

[identity profile] falcao.livejournal.com 2010-11-13 08:50 pm (UTC)(link)
У нас этот вопрос уже много раз возникал -- по поводу терминов и "небрежности". Поэтому хотелось бы внести некую ясность. Прежде всего, Вы неверно поставили сам "диагноз", говоря о моей "небрежности". Мне она совершенно не свойственна. Я сейчас на примере поясню, чтобы у Вас возникла в голове правильная картина.

Представьте себе, что я делаю какие-то изделия "ручной работы". При этом я вкладываю в этот процесс много усилий, продумываю каждую деталь и всё прочее. То есть речи нет ни о какой "небрежности". Наоборот, присутствует необычайно бережное отношение, то есть нечто прямо противоположное. И вот Вы смотрите со стороны, оценивая мои "изделия" на предмет того, в какой степени они соответствуют ГОСТу. Видите, что не соответствуют, но иногда по каким-то показателям бывают близки к тем или иным требованиям. В этот момент возникает "искушение" приписать мне "небрежность": что я-де недостаточно постарался, и отклонился от требований. Но штука-то вся в том, что я вообще не следую ГОСТу вполне сознательно! Мне на него глубоко наплевать, потому что эти стандарты для меня совершенно искусственны. То есть когда психологи, например, употребляют слово "совесть" в каком-то своём значении, следуя традиционному стандарту, то у них наличествует само желание ему следовать. А у меня "свой" путь "кустаря-одиночки", и я делаю что-то, чего "промышленность" в принципе не выпускает, и результатами вполне при этом доволен.

Когда я Вам сообщаю некий "стандарт", который наличествует в современной математике, то я думаю, что Ваши собственные представления вряд ли кажутся Вам более "совершенными". Вполне может быть так, что Вы и не собираетесь следовать предлагаемому "стандарту", но такое поведение именно для Вас менее всего характерно. Поэтому ситуация как бы получается "несимметричная" у меня и у Вас.

По поводу равенства: давайте на "примитивном" уровне ощутим разницу между понятием "операции" (бинарной) и "отношения" (тоже бинарного). Имеется некоторое множество M. Говорят, что на нём задана операция *, если каждой упорядоченной паре (x,y) элементов из M она сопоставляет некоторый элемент из M. То есть это не что иное как отображение из MxM в M, или всюду определённая (на M) функция от двух переменных со значениями в M. Например, сложение, умножение -- это примеры операций, которые могут быть заданы на Z, на R или на чём-то ещё.

Теперь как определяется отношение на M? Концепция тут принята такая. Вот есть отношение равенства, или отношение параллельности (на множестве прямых), или отношение "больше" на множестве чисел. Допустим, я знаю "содержательно", когда элементы находятся в этом отношении, а когда нет. Точнее, когда произвольно заданный элемент x находится в отношении с каким-то элементом y. Мне показывают две прямые, а я для себя определяю, параллельны они или нет. Я при этом могу ответить как бы на "все" вопросы и составить "шпаргалку", то есть полный список таких упорядоченных пар видв (x,y), где x находится в рассматриваемом отношении с y. Ясно, что такой список несёт как бы полную информации о самом отношении, про которое пока непонятно, что это такое? Я знаю, что 5 больше 3, и потому пара (5,3) входит в мой список для отношения "больше", а пара (2,7) иил (4,4) в него уже не входит.

Но что такое "больше" само по себе, без "атрибутов" в виде x и y? Принимается такое "мужественное" решение: считать чисто "директивно", что "больше" -- это и есть составленный список пар. Что ведёт к такому формальному определению: отношением на M называется произвольное подмножество в MxM.

ПРОДОЛЖЕНИЕ СЛЕДУЕТ; ПРОСЬБА ПИСАТЬ НИЖЕ!

процедуры (2)

[identity profile] falcao.livejournal.com 2010-11-13 08:51 pm (UTC)(link)
При этом становится возможной ПРОЦЕДУРА проверки на то, находятся ли заданные элементы в рассматриваемом отношении. А именно, берём пару (x,y), "сканируем" весь список, и говорим TRUE, если пара в нём нашлась, и FALSE, если не нашлась. Что приводит к оторбражению из того же MxM, но уже не в M, а в {0,1}. Такое отображение, с точки зрения содержащейся в нём информации, практически равноценно "отношению" как множеству пар. Но формально это уже другой объект, и его можно называть уже "бинарным предикатом" на множестве M.

Это и есть то, что Вы описали, но это не операция. И если подходить формально, то это даже не отношение. В программировании на языке типа Паскаля отношение имело бы тип данных set, а остальные вещи имели бы "процедурный" тип, причём разный.

Это всё должно быть ясно, но я обращаю внимание вот на что. Любая процедура со значениями типа boolean что-то устанавливает или проверяет. То есть она имеет дело с какими-то фактами действительности. Эти факты либо имеют место, либо нет. Скажем, я записал на двух листочках какие-то натуральные числа и положил их в конверты. Эти два числа либо равны, либо нет. Я употребил в связи с этим слово "имманентный". Вовсе не для того, чтобы "вумное" слово "поюзать", а мне казалось, что это простой путь проиллюстрировать некую идею, которую Вы пока что не уловили.

Равенство в этом смысле как бы "абсолютно", то есть числа x и y -- если их кто-то зафиксировал -- либо равны, либо нет. То, что могут существовать какие-то другие процедуры, никак этому не противоречит, потому что там речь идёт о неких отношениях эквивалентности, ПОХОЖИХ чем-то на равенство, понимаемое как "абсолютное тождество", где x равен только x и ничему другому. Это соотвтетсвует "диагональному" отношению, где список состоит из всех пар вида (x,x), и больше туда ничего не входит.

Я могу рассматривать какие-то выражения типа x+7 и (4+x)+3. Их можно считать "равными", и мы даже так делаем, когда ставим между ними знак равенства. Но надо понимать, что под этим понимается совсем другое. Как выражения, они не равны, но при любом x у них будут одинаковые значения. Это задаёт отношение эквивалентности (одно из возможных), и с ним далее идёт работа.

Что касается категорий, от которых мы "отошли", то там всё просто, если говорить о равенстве. Оно везде полагается "абсолютным", то есть имеется в виду "абсолютное тождество". Можно, например, считать, что у категории есть "хозяин", который провёл полную "инвентаризацию", занумеровав все объекты и все морфизмы. Каждая "единица хранения" имеет у него при этом свой уникальный "инвентарный номер", и по нему можно производить "идентификацию". Скажем, "хозяин" знает, что под номером 177 у него идёт тождественный морфизм объекта номер 56. А композицией морфизмов 13 и 19 будет морфизм номер 7. И так далее. То есть я к тому, что о равенстве можно не говорить здесь в том плане, что оно "уже есть". И ещё надо отличать равенство как таковое от процедуры проверки на факт равенства чего-то чему-то. Разница была описана мной выше.

Page 3 of 4