Первые две статьи этой серии поставили ряд важных вопросов о математике. В третьей статье на них были даны ответы. Мы нашли память и время идеального мира (доска и маркер), и построили первые объекты (примитив и коллектор).
Мы также начали построение нейроматематики, в рамках которой получили строгое определение ИСТИНА, РАВЕНСТВО и ПРОТИВОПОЛОЖНОСТЬ. Определения этих объектов отсутствуют в Математической энциклопедии, так что нейроматематика уже стала в чём-то более богата, чем математика традиционная.
В третьей статье много говорилось о памяти, но это далеко не всё, что можно о ней сказать. В действительности, функция хранения наследуется всеми сложными объектами, и в четвёртой статье мы разберём, как это происходит.
В процессе построения этих объектов мы также дадим определение ещё одному понятию, которое отсутствует в Математической энциклопедии, но крайне важно. Это СЛЕДОВАНИЕ. Мы сталкиваемся с ним на каждом шагу: даже сейчас, в процессе написания/прочтения этих слов, которые следуют одно за другим.
Следование нам понадобится также и для того, чтобы строго определить МНОЖЕСТВО. Это понятие, конечно, есть в Математической энциклопедии, но описывается оно там лишь неформально, на интуитивном уровне. Множество - одно из самых базовых понятий, а в рамках нейроматематики оно выражает самую суть памяти. Хотите узнать, как? Не переключайтесь!
Часть 1: введение в проблему
Часть 2: философия
Часть 3: математическая реальность
С интересом слежу за серией. Долгожданная третья статья вызвала странное ощущение. Очень хочется какую-то еë часть перевести на язык теории категорий, ... какую-то — на язык комбинаторного исчисления и теории разрешимости, ... описание "доски" ... вопиет о формализации в терминах топологического пространства и группах его преобразований.
Нейроматематика строится с нуля, с чистого листа. Мы вправе использовать только то, чему сами дали строгое определение. Пока что мы дали такое определение только истине, равенству и противоположности. До упомянутых разделов нам ещё как до Луны.
"Аналогов нет" в современной науке эквивалентно "я дилетант".
Проблема математических бланков, описанная в первой статье, ранее не декларировалась. Во всей математике считается нормальным использовать базовые объекты без известной структуры, описывая их аксиомами. Но мы строим новый раздел - нейроматематику, которая предъявляет требование, чтобы структура ВСЕГО была задана строго и явно. Такая цель ранее не ставилась. Математический формализм (Гильберт, Рассел) делал попытки построить все математические системы на основе аксиом, но нейроматематика не использует аксиомы, заменяя их более сильным требованием известности структуры.
В предыдущих статьях мы показали, что ввод памяти и времени в математику позволяет породить новый раздел - нейроматематику, в рамках которой можно дать строгие определения понятиям, ранее описанным только интуитивно. Это даёт представление о мощности аппарата памяти и времени.
Что касается памяти, то в нейроматематике любой объект может являться памятью для другого, и эта возможность используется повсеместно. Аналогично, в программировании, стандартная форма определения - это фигурные скобки и указание, что там внутри. Такое описание говорит о том, что базисный объект предоставляет память для размещения своих элементов. Иными словами, паттерн памяти универсален не только в нейроматематике, но и в программировании, которое можно принять за некоторую проекцию математики.
Возвращаясь к программному коду коллектора:
collector
{
empty x_1 = new() @positive;
empty x_2 = new() @negative;
}
collector x_0 = new();
По этому коду видно, что элементы и размещены в памяти коллектора, а не в той же, где размещён сам коллектор . Это не столь очевидно при рассмотрении графической нотации:
Но тем не менее, подобное соглашение о коллекторе надо иметь в виду в дальнейшем.
Данная статья подробно рассказывает о том, как размещение в памяти делается в ФОРАОН, а также о том, какое фундаментальное соотношение связывает память и объекты внутри неё. Мы также оформим это отношение в виде математического объекта.
В традиционной математике, основные графические объекты описываются (в лучшем случае) аксиомами. Обратимся к Математической энциклопедии. О прямой там [1 т.4 с.721] говорится, что это "одно из основных геометрических понятий, обычно косвенным образом определяемое аксиомами геометрии". Аналогично - линия [1 т.3 с.382-383]: "геометрическое понятие, точное и в тоже время достаточно общее определение которого представляет значительные трудности..." А, например, статья "точка" вообще отсутствует, как и статья "плоскость".
Все эти объекты имеют между собой нечто общее. А именно: они доступны для непосредственного восприятия. Что это означает? Все мы изучали геометрию в школе, и можно ручаться, что прежде чем объяснять смысл линии учитель рисовал её на доске. То есть, сначала разум ребёнка понимает "на уровне BIOS", что такое линия, а затем уже идёт речь о формальных её свойствах.
Подход нейроматематики отличается тем, что она требует строгую структуру того, что же находится на этом "уровне BIOS". Нам в помощь то, что определение доски уже задано как непосредственно (рисунком), так и в виде кода.
ТОЧКА
Имея структуру доски, легко дать строгое определение точки. Точка это атомарный объект, не имеющий элементов, по структуре совпадающий с нуль-системой. Однако точкой её делает информационный аспект, т.е. размещение на доске в некотором месте, иными словами:
empty point = new() @location;
Собственно, любое место на доске существует и до начала рассмотрения каких-либо объектов. Мы создаём и размещаем её на доске для того, чтобы пометить конкретное место как предмет нашего внимания.
ЛИНИЯ
Давайте рассмотрим наш взгляд "на уровне BIOS" на линию.
Линия 1) не находится в единственном месте - это протяжённый объект на доске, с одной парой направлений. Вместе с тем, 2) у линии есть особое место, определяющее её местонахождение на доске (задающая или начальная точка). Однако место не есть единственная информация о линии, 3) вторым информационным элементом является ориентация линии, которая может быть либо постоянной (прямая), либо переменной.
Это то, что наш взгляд считывает с изображения линии: таковы параметры её непосредственного восприятия - больше в ней ничего нет. Причина, по которой вышеуказанное определение отсутствует в традиционной математике, понятна: в ней нет идеи памяти и нет возможности использовать её свойства.
Запишем это в программной нотации:
line
{
@offset;
direction { @positive; @negative; }
shift;
}
line x = new() @location @orientation;
Бросается в глаза, что эта запись есть "урезанное" определение доски из третьей статьи. Подобно месту на доске, у линии есть смещение (@offset
), являющееся адресом внутри линии. Далее следует протяжённость с двумя направлениями (direction
). Различие между линией и доской в том, что у последней две протяжённости в двух ориентациях, а у линии одна. Наконец, shift
описывает преобразование адреса на линии - сдвиг. То есть богатство линии один, как и у ленты машины Тьюринга.
Если при создании не указано место размещения (@location
), то по умолчанию линия будет размещена задающей точкой в центре доски. Если ориентация не задана, то по умолчанию она будет равна константе @primary
, т.е. горизонтальная прямая. Ориентацию можно также задать как функцию, зависящую от смещения.
Рассмотрим для примера линию . Её диапазон смещения () пусть будет от (задающая точка) до . Разместим на доске (@location
) с координатами . Ориентацию линии (@orientation
) зададим как функцию .
Линия, соответствующая этому определению, изображёна на рисунке:
Не всякую линию на плоскости можно задать функцией , например, так нельзя задать окружность . Описание же линии через функцию ориентации возможно во всех случаях, даже если линия содержит петли или изломы.
Заметим, что общая структура линии соответствует коллектору. Действительно, коллектор содержит полюса, расположенные в двух направлениях, а также базис между ними, соответствующий протяжённости линии.
Коллектор - это самый простой объект после собственно нуль-системы . Но он не единственный, и даже не самый аскетичный. Рассмотрим следующее определение:
accent(x_1)
{
empty x_1 = new();
}
В графической нотации ФОРАОН такой объект будет изображён так:
Здесь примитив записан ПОВЕРХ примитива . Такое размещение примитивов будем называть АКЦЕНТ. Графическая нотация изображает верхний примитив со сдвигом вправо на половину диаметра от нижнего примитива. В целом, это очень простое определение, которое, после всех объяснений выше, должно быть вполне понятным. Такая нотация означает, что "верхний" примитив находится в памяти нижнего.
На этом примере видно, что отношение памяти между объектами добавляет в нейроматематику третье измерение. То есть, объект может расти не только по горизонтали, но и по условной "вертикали", в сторону последовательно большего количества вложений. Это третье измерение будем называть МЕМОРИАЛЬНЫМ.
При помощи акцента можно соединять не только отдельные примитивы, но и более сложные объекты, например, два или более коллекторов. Мы не будем записывать программный код, но в графической нотации такое объединение будет выглядеть следующим образом:
Определённый таким образом объект будем называть КОНТУРОМ или ЦЕПОЧКОЙ.
При изображении линии мы использовали графический элемент, который ещё не был введён. Этот элемент - стрелочка. При взгляде на картинку стрелочка не вызывает вопросов, потому что это интуитивно понятный объект. Однако в нейроматематике надо предъявить его структуру.
Стрелочка показывает, в каком направлении происходит то, что нас интересует. В частности, на картинке линии стрелочка показывает, в каком направлении растёт смещение . Иными словами, стрелочка маркирует ВЫБРАННОЕ направление на линии.
Если структура линии выражается коллектором, то как указать нам указать на один из его полюсов? Ответ: воспользоваться акцентом. Буквально, возьмём коллектор и надпишем выбранное направление (пусть это будет ) над его базисом. В графической нотации это будет выглядеть так:
Сконструированный таким образом объект назовём ДИРЕКТОРОМ. Его программный вариант можно записать так: director : collector, accent(x_3) { }
. Однако уже на примере директора видно, что программный код, в силу его одномерности, уступает трёхмерной графической нотации.
Кроме записи выше, мы также будем использовать ещё несколько альтернативных форм:
Как правило, стрелочки изображаются в виде отрезков, но мы также в отдельных случаях будем пользоваться изогнутыми линиями: директор - это всего лишь линия с выбранным направлением.
Мы столь тщательно создавали стрелочку не просто так. В нейроматематике, стрелочка выражает отношение СЛЕДОВАНИЯ, которое заключается в том, что один объект следует за другим, который ему предшествует. Отношение следования тесно связано с временем, каковая связь выражается в том, что следующий объект создаётся, обрабатывается, получает информацию или исполняется после предыдущего. Запись " следует за " выглядит как .
Следование повсеместно присутствует в математике, программировании, да и в любой формализованной области знаний. Вне зависимости от того, есть ли на виду явная стрелочка или нет, большинство объектов и/или их частей, так или иначе следуют за чем-то, как, например, слова этого текста.
В традиционной математике следование (как и сама стрелочка) не формализуется и особо не замечается. Но если его заметить и поставить на службу, можно получить замечательные результаты, как будет показано в этой серии заметок. Благодаря тому, что мы формально описали структуру стрелочки, следование становится полноправным строгим элементом нейроматематики, наряду с ранее определёнными понятиями истины и равенства.
Следование формирует фундаментальное взаимоотношение между памятью и объектами в ней. Оно заключается вот в чём: чтобы объект мог быть создан в памяти, последняя должна уже присутствовать. Иными словами, объект в памяти всегда следует за ней, память же предшествует ему. Данное взаимоотношение будем называть контрактом памяти.
Рассмотренные выше объекты (коллектор, аспект, директор) построены так, что в памяти одного примитива хранятся другие примитивы, до трёх. Теперь построим обобщённую модель памяти, в которой могут храниться произвольные объекты. В рамках нейроматематики, такой моделью является МНОЖЕСТВО.
Математическая энциклопедия [1 т.3 с.758-759] сообщает, что "понятие множества принадлежит к числу первоначальных математических понятий и может быть пояснено только при помощи примеров". Такая беспомощность объясняется просто: в обычной математике нет идеи памяти, как и твёрдого понятийного фундамента, который она предоставляет.
Давайте построим определение множества для нейроматематики.
Исходя из интуитивного понимания, множество разделяет с памятью свойство содержать в себе некоторые объекты. Множество также выполняет контракт памяти - предшествует своим элементам, т.к. чтобы добавить элемент в множество, оно должно уже существовать.
Данный факт подводит нас к тому, что в основе структуры множества должен находиться директор (стрелочка), выражающий следование. В самом простейшем случае, это единственная стрелочка, которая соединяет базисный объект, предоставляющий свою память, и единственный элемент.
Нейроматематика выделяет следующие части определения множества:
базисный объект, предоставляющий память (ТЕЛО)
стрелочка (МАРШРУТ), выражающая размещение элемента(ов) в памяти тела и их следование за телом, согласно контракту памяти.
В простейшем случае, формула множества может быть записана так: . Здесь тело множества, стрелочка маршрут, а единственный элемент. В традиционной математике, конечно, нет понятия тела множества, и множество из одного элемента запишется как . В рамках нейроматематики, такая запись говорит, что тело опущено, т.е. буквально оно пустое. Иными словами: .
ВАЖНО: данное определение действует в рамках нейроматематики - отдельной дисциплины, создаваемой с нуля. Это обстоятельство позволяет нам дать определение по своему усмотрению, и лишь впоследствии, через несколько статей, доказать эквивалентность нашего определения аксиоматическому определению традиционной математики. Что до аксиом, то в нейроматематике они могут быть доказаны.
Для множества из более одного элемента, потребуется более сложный маршрут из стрелочек, ведущий от тела к элементам. Пример такого маршрута можно видеть на диаграмме:
Как видно из неё, маршрут такого множества использует уже ранее введённые объекты: в его основе цепочка директоров. Директоры, входящие в цепочку, формируют адрес в памяти множества, по которому располагаются его элементы. Наличие адреса - черта любой мультипамяти, присущая в том числе, множеству из более одного элемента.
По какой причине маршрут выглядит именно так, будет более детально разъяснено в более поздних статьях, как и про бесконечные множества, а также алгоритмы над множествами и описывающие их аксиомы. На данный момент мы ввели понятие множества на самом общем уровне, перечислив его принципиальные моменты: мультипамять, адрес, контракт следования, структурные части множества - тело и маршрут.
Маршрут множества, подобно изображённому выше, это способ показать включение нескольких объектов в память тела множества. Но даже если запись объекта не содержит стрелочек, как, например, коллектор и акцент, все сложные объекты, в рамках нейроматематики, могут рассматриваться как множества.
Ранее мы указывали, что в ФОРАОН запись и означает размещение объектов в памяти. В свете изложенного, запись множества, например , полностью консистентна с размещением в памяти, потому что множество - это и есть объект, в памяти которого находятся элементы.
До сих пор мы преимущественно вели речь о статических объектах и понятиях, так или иначе связанных с памятью. Большую часть этих вопросов мы уже рассмотрели, и теперь подошла очередь поговорить про время. Время в нейроматематике абстрактное "математическое", где отдельные моменты связаны преобразованиями - не выполнено, выполнено. В третьей статье мы коснулись маркера в ознакомительном порядке, а в пятой - рассмотрим вопрос времени более подробно. Не переключайтесь!
[1] Математическая энциклопедия в 5 томах. Москва. 1982.