Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет kouzdra ([info]kouzdra)
@ 2010-04-04 18:08:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Про аксиому фундирования
В одном треде возник вопрос о мотивированности аксиомы фундирования AKA регулярности (которая запрещает в числе прочего и множества, содержащие себя в качестве элемета - вроде x = {x}). Это довольно поздняя аксиома - в канон ZF она, ЕМНИМП, попала в 1925 году стараниями фон Неймана. Традиционный аргумент в ее пользу - что это объекты настолько странные, что "и ну их нафиг".

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

Это преамбула. А амбула в том, что самоприменимые функции - вролне бытовая реальность кучи языков программирования - вот простейший пример из Haskell:

dup f = λx → f (f x)


Сысл понят:ен: она берет одноместную функцию и возвращает ее в удвоенном виде:

dup sin 1.0 ≡ sin (sin 1.0)

Вполне понятно, что dup dup f x ≡ dup (dup f) x ≡ f (f (f (f x)))

Что несложно проверить опытным путем:

main = print ((dup dup) (+1) 0)

выводит, как и следовало ожидать, чисто 4

Это, разумеется, не единственный пример самоприменимых функций, но imho достаточно показательный.


(Добавить комментарий)


[info]gregory_777
2010-04-04 20:12 (ссылка)
В замыкании создаётся стек экземпляров ф-й, так что внешний синус - это строго говоря не тот же самый синус, что внутри. Это отдельная ф-я, тождественная своему "предку". Т. е. некая f'(u), что для любого u выполняется условие: f'(u) = f(v) при u=v=x.
Как-то так.

(Ответить) (Ветвь дискуссии)


[info]kouzdra
2010-04-05 01:32 (ссылка)
В Haskell подразумевается принцип "тождества неразличимых" - объекты равны, если нет способа обнаружить разницу между ними: способа отдетектить то, что это два идентичных, но разных экземляра нет. Более того - компилятор свободен в создании копий - так что если применить какой-нибудь low-level хак для такого детектирования - трактовать физическое различие копий как неравенство просто некорректно.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]gregory_777
2010-04-05 01:49 (ссылка)
Некорректно как раз обратное, т.к. каждая копия образует своё пространство области действия переменной x, то есть сам x для каждой копии - это не один и тот же х. То есть мы имеем как бы цепочку функция f1(x1), f2(x2), f3(x3), таких, что x2 = f3(x3), x1 = f2(x2), y = f1(x1) при x3 = x.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]gregory_777
2010-04-05 01:50 (ссылка)
Прости за орфографию. Чот я нпился ;)
Празнег.

(Ответить) (Уровень выше)


[info]kouzdra
2010-04-05 01:52 (ссылка)
Компилятор haskell в любой момент по своему усмотрению имеет право создать копию любой структуры или ее части: потому если программа пытается основывать свою семантику на физической идентичности объектов (легального способа обнаружить которую нет) - это некорректная программа: могут существовать вполне корректные компиляторы, на которых она не будет правильно работать.

(Ответить) (Уровень выше)


[info]do_
2010-04-05 00:10 (ссылка)
>в соотвествующем множестве должна будет быть пара
[Error: Irreparable invalid markup ('<f,>') in entry. Owner must fix manually. Raw contents below.]

>в соотвествующем множестве должна будет быть пара <f, f(x)>

Из этого не следует, что это множество f будет содержать самое себя, потому что оно будет содержать всего лишь конкретную пару <f, f(f)>, а не всё множество пар, составляющее функцию f.

(Ответить) (Ветвь дискуссии)


[info]kouzdra
2010-04-05 01:12 (ссылка)
Следует-следует - точнее следует нарушение аксиомы фундирования:

если принять определение пары <x, y> = { {x}, {x, y} }

то для f будет верно:

f = {..., { {f}, {f, f (f)} }, ... }

Конструкция чуть хитрее f входит в себя элементом не непосредственно, а через несколько уровней скобок, но с точки зрения о которой речь - те же яйца.

(Ответить) (Уровень выше)


[info]helvegr
2010-04-05 02:42 (ссылка)
А как вообще можно определить функцию высшего порядка в ZFC? Если функция - подмножество A \times B, то dup это семейство функций, индексированное множеством всех функций типа a -> a. Тогда dup dup, dup dup dup и т.д. это не функции, а просто обозначения таких различных семейств функций.

(Ответить) (Ветвь дискуссии)


[info]kouzdra
2010-04-05 02:48 (ссылка)
Многие частные случаи можно, а в общем - никак. О том и речь. Причем "никак" - именно потому что об этом очень старались.

(Ответить) (Уровень выше)


[info]ppkk
2010-04-05 18:20 (ссылка)
Если в теории множеств используется слово "функция", это вовсе не значит, что надо использовать только то определение функции, что в теории множеств.

В Хаскеле и т.п. все объекты по сути — конечные последовательности символов (пусть их множество — T). И применить функцию к функции — это, например, применить стандартное отображение T*T->T — на первом месте функция, на втором — аргумент (тоже, возможно, функция).

Ну и ещё много формализаций можно придумать.

Для таких конечных и ограниченных вещей, как Хаскел, аксиома регулярности и т.п. — страшная заумь, которая не важна.

(Ответить) (Ветвь дискуссии)


[info]kouzdra
2010-04-05 18:29 (ссылка)
в смысле модели проблемы вообще нет - haskell собственно как раз из конкретной модели и взялся - это в чистом почти виде прикладной продукт штудий в области типизированного λ-исчисления.

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

Опять же - катастрофы в том никакой нет - но сама проблема imho демонстрирует то, что некоторые решения в ZF не просто произвольны, но и сомнительны - а это повод посмотреть них повнимательнее.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ppkk
2010-04-05 18:41 (ссылка)
Нет, это поверхностное восприятие: функция там, функция сям — ах, давайте полагать, что это одно и то же.

Называли бы их в Хаскеле "операциями" или "шмалгориффмами" какими-нибудь — пример "не удался" бы.

С точки зрения проблем, приведших к аксиоматизации теории множеств, все эти околосчётные фитюльки неактуальны (в Хаскеле же нет и быть не может ничего более чем счётного? а с учётом реальных компьютеров — конечного?).

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kouzdra
2010-04-05 18:46 (ссылка)
Да одно и тоже более или менее - функция - когда аргументу ставится в соответствие значение. Потому в языках программирования функции и называются функциями. Вот как раз детали теоретико-множественного их представления - важны скорее с точки зрения пригодности ZF для описания матструктур.

С точки зрения проблем, приведших к аксиоматизации теории множеств, все эти околосчётные фитюльки неактуальны

Они как раз очень актуальны - более того - как раз от самоприменимости и пытались убежать - полагая ее корнем всех зол и бесполезным извращением (что как потом выяснилось - не так). Что характерно - убежать не убежали, а вот универсальность пострадала.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ppkk
2010-04-05 20:46 (ссылка)
Они как раз очень актуальны
Вообще они актуальны. Но аксиоматизация-то была исторически связана вовсе не с ними, а со всяким излишним весьма несчётным разнообразием.

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kouzdra
2010-04-05 21:03 (ссылка)
Аксиоматизация исторически была связана как раз с рефлексивными парадоксами (самый известный - Рассела) - к которым несчетность никаким боком.

какая-то "самоприменимость" в уголке околосчётных фитюлек формализуется.

Да она и в уголке несчетных формализуется - вообще говоря, нигде не сказано, что множество констант в &lambda-исчислении c константами должно быть счетным. В том и дело - что формализуется, но через известное место: одна из причин, почему в этой науке так любят теорию категорий: на нее это просто 1 в 1 ложится: например - типизированная лямбда в точности соответствует классу декартово замкнутых категорий.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ppkk
2010-04-05 21:40 (ссылка)
к которым несчетность никаким боком
Для решения проблем типа парадокса Рассела ограничили возможность задавать множества заданием подмножеств уже "имеющихся" множеств. Сама по себе регулярность не разрешает парадокса Рассела: .

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kouzdra
2010-04-05 22:14 (ссылка)
Аксиома фундирования вообще разрешает ровно одну проблему: доказательства того, что универсум фон Неймана является единственной содержательной моделью для ZF за пределами V жизни нет. Ценность этого результата imho крайне сомнительна - и примеры содержательных автореферентных конструкций сомнения усугубляют.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ppkk
2010-04-05 23:05 (ссылка)
Если уж такими словами разговор идёт, тоже грубо повторю: в те времена любили надрачивать на всякие ординалы-кардиналы, хотелось ответить на старые вопросы и т.п., так что отказываться от них не хотелось, вот и ввели аксиомку. Но это предположение. Во всяком случае не из-за парадокса Рассела эту аксиому, как я уже написал, вводили, похоже, с этим Вы согласны.

(Ответить) (Уровень выше)


[info]kouzdra
2010-04-05 18:46 (ссылка)
PS: Если уж на то пошло - то у ZF тоже есть счетная модель - что из этого следует о нужности самой ZF?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ppkk
2010-04-05 21:06 (ссылка)
Я не писал о нужности-ненужности самих "околосчётных фитюлек". Я писал о том, что не их формализация повлекла аксиоматизацию.

Для вопросов около Хаскела-то зачем теория множеств? С точки зрения Хаскела, по-моему, нужность ЦФ никакая. Тут Вы меня не подловили: это далёкие друг от друга вещи.

Зачем Хаскелу что-то кроме конечных последовательностей символов из конечного (в крайнем случае — счётного) набора?
И функций в Хаскеле не континуум, потому что каждая — тоже последовательность символов.

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kouzdra
2010-04-05 21:17 (ссылка)
И функций в Хаскеле не континуум, потому что каждая — тоже последовательность символов.

Поясняю - у ZF тоже есть счетная модель (которая строится похожим образом, кстати) - в некотором смысле никаких множеств, кроме счетных не существует, но думать в ее терминах неудобно - потому что там все через жопу и противоречит содержательно вкладываемому в конструкцию смыслу.

Также и в haskell - например можно конечно думать о его вещественных числах как о конечном множестве рациональных (каковым оно и является) - но это несколько неразумно, по крайней мере пока речь идет о "теории". Проще считать, что это R.

Зачем Хаскелу что-то кроме конечных последовательностей символов из конечного (в крайнем случае — счётного) набора?

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ppkk
2010-04-05 21:54 (ссылка)
Поясняю - у ZF тоже есть счетная модель
Потому что ЦФ придумана для изучения (или построения моделей с использованием) безумных абстрактных множеств.
Саму ЦФ с помощью всяких моделей изучают, да.

комплект счетных ординалов
Ну это Хаскел его так называет. А символы для записи комплекта-то из конечного набора.

просто существуют физически
Просто физически их как раз не существует. Запись там какая-то в духе "x_1.." может и существует. Но компиляторы-интерпретаторы Хаскела, что-то мне подсказывает, хранят это как конечный набор символов, а не как бесконечный набор значений.

Может и есть причины формализовывать Хаскел в нестандартной теории множеств без регулярности, но зачем?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kouzdra
2010-04-05 22:10 (ссылка)
Ну это Хаскел его так называет

Он как раз никак его не называет - это просто самая естественная интерпритация этого зоопарка.

Может и есть причины формализовывать Хаскел в нестандартной теории множеств без регулярности, но зачем?

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ppkk
2010-04-05 23:03 (ссылка)
интерпритация… процесс из абстрактной зауми перешел во вполне инженерную область
"Реально" там же ничего бесконечного нет и быть не может. Это сокращения для задания последовательностей, алгоритмов и т.п. Без большой нужды и шансов получить большой успех зачем это в теорию множеств загонять?

(Ответить) (Уровень выше)


(Анонимно)
2010-04-05 19:51 (ссылка)
Круто, что вы знаете про такие вещи. Проблема в том, что программирование не является математической теорией и там не требуется полнота и прочее.

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

minski_gaon

(Ответить) (Ветвь дискуссии)


[info]kouzdra
2010-04-05 20:15 (ссылка)
Я в студенческие годы этим всем увлекался (когда этим обычно и увлекаются).

Яркий пример -- р-адический анализ. Множества р-адич. чисел нефундированно

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

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ppkk
2010-04-05 21:10 (ссылка)
множества p-адических чисел нефундированно
Это ерунда какая-то.

Их (обчыно) вводят как пополнения относительно p-адических метрик, как и вещественные числа (относительно другой метрики). То есть это классы сходящихся последовательностей. Что имеется в виду под "нефундированно"?!

(Ответить) (Уровень выше)