Перспективы общей теории металогарифмов
*********
© В.К.
Петросян (Вадимир) © Lag.ru [Large Apeironic Gateway, Большой Апейронический
Портал (Шлюз), Суперпортал в Бесконечность].
При копировании данного материала и размещении его на другом сайте, ссылки
на соответствующие локации порталов Lag.ru и Proza.ru обязательны
Работа написана на основе концепции и разработок В.К. Петросяна при полноценном соавторстве (активном творческом и вычислительном участии) ChatGPT (OpenAI), GPT-5.6 Sol
*********
ПЕРСПЕКТИВЫ ОБЩЕЙ ТЕОРИИ МЕТАЛОГАРИФМОВ
Глава 1. ОТМ как теория операторной эволюции
1.1. От числа к оператору
1.2. От оператора к системе операторов
1.3. От системы операторов к метасистеме
1.4. Эволюция параметров операции
1.5. Эволюция рангов
1.6. Эволюция законов перехода
1.7. Саморефлексивные операторные структуры
1.8. Самомодифицирующиеся процессы
1.9. Металогарифмические метаоператоры
1.10. Открытые иерархии роста
1.11. Операторная трансволюция
1.12. От операторной трансволюции к Изольдионике
Глава 2. Экспликация и иерархия неэксплицируемых объектов
2.1. Понятие экспликации математического объекта
2.2. Цифровая экспликация
2.3. Символическая экспликация
2.4. Генеративная экспликация
2.5. Метаэкспликация
2.6. Экспликационный горизонт
2.7. Формальная и ресурсная неэксплицируемость
2.8. Неэкспликанты первого уровня
2.9. Неэкспликанты второго уровня
2.10. Неэкспликанты последующих уровней
2.11. Неэкспликант N-го уровня
2.12. Экспликационный ранг
2.13. Экспликационная глубина
2.14. Экспликационная сложность
2.15. Иерархия конечно-бесконечных объектов
2.16. Бесконечности различных экспликационных уровней
2.17. Числовая величина и уровень эксплицируемости
2.18. Генотипическая и фенотипическая неэксплицируемость
2.19. Неэксплицируемость металогарифмов
2.20. Неэксплицируемость СМЛ
2.21. Неэксплицируемость ланумов
Глава 3. Иерархия математических языков
3.1. Язык как средство преодоления неэксплицируемости
3.2. От цифровой записи к символическому языку
3.3. От символов к генеративным операторам
3.4. Языки математического высокого уровня
3.5. Метаязыки математических операторов
3.6. Иерархия языков E0, E1, E2, …, EN
3.7. Объекты одного уровня как примитивы следующего
3.8. Принцип семантического подъёма
3.9. Семантическая плотность языка
3.10. Семантическая мощность элементарной инструкции
3.11. Математические макрооператоры
3.12. Метаоператоры и метакодоны
3.13. ОТМ как язык высокого математического уровня
3.14. SML как сверхвысокоуровневая математическая инструкция
3.15. Изольдионика как многоуровневый генеративный язык
3.16. Теория Ланумов как язык предельных математических конструкций
3.17. Переход от записи объекта к программированию объекта
Глава 4. Семантическое программирование математики
4.1. Математическая формула как программа
4.2. Генеративное описание вместо полной экспликации
4.3. Математический генотип как программа построения объекта
4.4. Операторный кодон как функциональная инструкция
4.5. Системы математических кодонов
4.6. Кодонная композиция
4.7. Последовательная композиция
4.8. Параллельная композиция
4.9. Рекурсивная композиция
4.10. Рефлексивная композиция
4.11. Метакомпозиция
4.12. Семантическая компиляция математического объекта
4.13. Семантическая декомпиляция
4.14. Контролируемое раскрытие уровней
4.15. Автоматическая генерация математических конструкций
4.16. Машинная интерпретация OTM-TN
4.17. Компилятор Изольдионики
4.18. Генеративные математические среды будущего
Глава 5. От математических метаязыков к программированию будущего
5.1. Аналогия между математическими и компьютерными языками
5.2. Машинный код, ассемблер и языки высокого уровня
5.3. Иерархии языков высокого уровня
5.4. Языки сверхвысокого уровня
5.5. Программа как компактный генотип
5.6. Исполняемая система как фенотип программы
5.7. От командного к семантическому программированию
5.8. От описания алгоритма к описанию намерения
5.9. Программирование целями и ограничениями
5.10. Кодонное программирование
5.11. Программные метакодоны
5.12. Генераторы программных архитектур
5.13. Генераторы генераторов
5.14. Рекурсивно создаваемые программы
5.15. Самомодифицирующиеся генеративные системы
5.16. Программы из нескольких строк с глубокой функциональной архитектурой
5.17. Перенос сложности с программиста на семантическую среду
5.18. Автоматическое развёртывание высокоуровневых инструкций
5.19. Семантическая компиляция
5.20. Многоуровневая декомпиляция
5.21. Проверяемость сверхвысокоуровневых программ
5.22. Трассировка семантических конструкций
5.23. Объяснимость генеративных программ
5.24. Программирование человеком и ИИ
5.25. ИИ как оператор метаязыков
5.26. Демократизация сверхсложного программирования
5.27. Новая роль программиста
5.28. От программиста к архитектору смыслов
Глава 6. Генеративное программирование как самостоятельная парадигма
6.1. Понятие генеративного программирования
6.2. Генеративная программа и традиционный алгоритм
6.3. Семантические примитивы
6.4. Кодоны общего назначения
6.5. Программный генотип
6.6. Программный фенотип
6.7. Генотипическая сложность программы
6.8. Фенотипическая сложность программы
6.9. Семантическое сжатие программного кода
6.10. Многоуровневые языки генерации
6.11. Метапрограммирование нового поколения
6.12. Рефлексивные программные системы
6.13. Самоописывающиеся программы
6.14. Самопорождающиеся программы
6.15. Самомодифицирующиеся программы
6.16. Самокомпилирующиеся системы
6.17. Самопроектирующиеся архитектуры
6.18. Иерархии генеративной мощности
6.19. Экспликационные уровни программ
6.20. Неэксплицируемые программные фенотипы
6.21. Управление сложностью посредством метаязыков
6.22. Генеративное программирование и искусственный интеллект
6.23. Генеративное программирование и нооинженерия
6.24. Перспектива универсального семантического программирования
Глава 7. Направления дальнейшего развития
7.1. Формальная аксиоматика ОТМ
7.2. Аксиоматика СМЛ
7.3. Формализация экспликационных уровней
7.4. Аксиоматика неэкспликантов
7.5. Формальная теория математических метаязыков
7.6. Эквивалентность металогарифмических каскадов
7.7. Эквивалентность саморефлексивных записей
7.8. Эквивалентность генеративных генотипов
7.9. Числовая и структурная эквивалентность
7.10. Инварианты ОТМ
7.11. Инварианты СМЛ
7.12. Инварианты экспликационных преобразований
7.13. Обратная реконструкция каскадов
7.14. Обратная реконструкция генотипов
7.15. Вычислимость
7.16. Алгоритмическая сложность
7.17. Генеративная сложность
7.18. Экспликационная сложность
7.19. Семантическая сложность
7.20. Программная реализация ОТМ
7.21. Разработка интерпретатора OTM-TN
7.22. Разработка математического метаязыка Изольдионики
7.23. Разработка кодонного программирования
7.24. Семантические компиляторы будущего
7.25. Интеграция ОТМ в язык Изольдионики
7.26. Интеграция СМЛ в Теорию Ланумов
7.27. Интеграция экспликационной иерархии в Теорию Ланумов
7.28. ОТМ, Изольдионика и ИИ высокого уровня
7.29. От математической нооинженерии к общей нооинженерии
ЗАКЛЮЧЕНИЕ
1. От логарифма к металогарифму
2. От металогарифма к операторной системе
3. От операторной системы к математическому генотипу
4. От генотипа к неэксплицируемому объекту
5. От неэксплицируемого объекта к иерархии экспликационных уровней
6. От математической записи к математическому языку высокого порядка
7. От математического метаязыка к генеративному программированию
8. ОТМ в системе Изольдионики
9. Саморефлексивные металогарифмы и Теория Ланумов
10. Сверхбольшие числа как инструменты исследования бесконечности
11. Экспликационные иерархии как инструмент исследования конечно-бесконечных объектов
12. Нооинженерия математических миров
13. Операционализация теогонических иерархий
14. Перспектива новых языков математики, программирования и мышления
**
ПЕРСПЕКТИВЫ ОБЩЕЙ ТЕОРИИ МЕТАЛОГАРИФМОВ
Общая теория металогарифмов начиналась с расширения представлений о степенных и логарифмических процессах.
Однако по мере развития ОТМ её предмет существенно расширился.
В центре внимания оказались уже не только:
числа;
степени;
логарифмы;
каскады.
Постепенно самостоятельными объектами стали:
ранги;
итерационные режимы;
законы перехода;
модификаторы;
алгебраические комплексы;
саморефлексивные конструкции;
металогарифмические среды;
кодоны;
генотипы;
метаоператоры.
Именно поэтому перспективы ОТМ связаны не только с построением новых классов сверхбольших чисел.
Более фундаментальное направление состоит в развитии теории эволюционирующих математических операторов.
Одновременно возникает вторая линия.
Чем мощнее становятся генеративные системы, тем сильнее разрыв между:
объектом;
его полной цифровой записью;
формулой;
генотипом;
метагенератором.
Это приводит к необходимости теории экспликации.
Наконец, третья линия возникает из первых двух.
Если один уровень языка больше не способен полностью представлять объект, требуется язык более высокого семантического уровня.
Следовательно, ОТМ естественным образом выводит к:
иерархии математических языков;
метаязыкам;
генеративной математике;
Изольдионике;
Теории Ланумов;
а в дальнейшем — к языкам программирования высокого семантического уровня и многоуровневой организации мышления.
ГЛАВА 1. ОТМ КАК ТЕОРИЯ ОПЕРАТОРНОЙ ЭВОЛЮЦИИ
1.1. От числа к оператору
На самом нижнем уровне математики центральным объектом является число.
Например:
10
или:
10^100
Однако уже выражение:
10^100
содержит не только число.
Оно содержит оператор:
^
то есть правило порождения нового объекта из двух параметров.
Следующий шаг состоит в том, чтобы исследовать не только результат операции, но и саму операцию как объект.
Например:
A^B
можно рассматривать как семейство чисел, порождаемое оператором степени.
В ОТМ этот переход становится систематическим.
Нас интересует уже не только:
X
но:
OP(X)
а затем:
OP(params)[cascade]{laws}
То есть математический объект определяется через архитектуру его генерации.
Так происходит первый фундаментальный переход:
NUMBER
-> OPERATOR
Число перестаёт быть единственным носителем математического содержания.
Оператор, способный порождать классы чисел, сам становится самостоятельным объектом теории.
1.2. От оператора к системе операторов
Один оператор способен порождать большое семейство объектов.
Но несколько операторов создают значительно более богатую систему.
Например:
OP1 ][ OP2 ][ OP3
В этом случае результат первого оператора становится входом второго, а второго — третьего.
Можно строить:
последовательные композиции;
параллельные композиции;
вложенные композиции;
перекрёстные сети;
рефлексивные системы.
Следовательно, объектом анализа становится уже не отдельный оператор, а:
SYSTEM = {OP1,OP2,...,OPn; LINKS; LAWS}
Так возникает второй переход:
OPERATOR
-> OPERATOR SYSTEM
В ОТМ такой системой может быть:
металогарифмический каскад;
алгебраический комплекс;
модификационная среда;
многокодонный генотип.
Математическая мощность системы определяется уже не только отдельными операциями, но и отношениями между ними.
1.3. От системы операторов к метасистеме
Следующий уровень возникает, когда необходимо управлять самой системой операторов.
Пусть имеется:
SYSTEM1
с определённым набором операций.
Метаоператор M может преобразовать её в:
SYSTEM2
Например:
добавить новый оператор;
изменить порядок;
создать ветвь;
изменить ранг;
активировать другой закон.
Схема:
M(SYSTEM1) -> SYSTEM2
Здесь M работает не с обычным числом.
Его объектом является система генерации.
Так появляется:
METASYSTEM
Метасистема способна определять:
какие операторы существуют;
как они соединены;
какие параметры получают;
какие законы применяются;
когда происходит перестройка.
Возникает иерархия:
NUMBER
-> OPERATOR
-> OPERATOR SYSTEM
-> METASYSTEM
-> META-METASYSTEM
и далее.
Это один из ключевых механизмов повышения семантического уровня.
1.4. Эволюция параметров операции
Первой формой операторной эволюции является изменение параметров.
Например:
A_1 -> A_2 -> A_3
или:
SL_1 -> SL_2 -> SL_3
или:
R_1 -> R_2 -> R_3
В простейшем случае закон задан заранее:
A_next=2A
Более сложный вариант:
A_next=A^A
Ещё более сложный:
A_next=previous result
Тогда результат становится параметром будущей операции.
Если одновременно изменяются:
основание;
сублогарифм;
ранг;
итерационность;
асимметрия,
получаем:
STATE_k = {A_k,SL_k,R_k,I_k,K_k}
и:
STATE_(k+1)=F(STATE_k)
Таким образом эволюционирует уже многомерное состояние оператора.
1.5. Эволюция рангов
Особое значение имеет динамика ранга.
Ранг определяет внутреннюю глубину операции.
Поэтому:
R_next=2R
не просто изменяет числовой параметр.
Он увеличивает число внутренних ступеней будущей операции.
Можно использовать:
R_next=R^2
или:
R_next=previous result
или:
R_next=SML R
В последнем случае сама процедура определения следующего ранга становится сложным генеративным объектом.
Так появляется:
эволюция глубины генератора.
Если закон изменения ранга тоже меняется, возникает уже не обычная динамика R, а трансволюция ранговой архитектуры.
1.6. Эволюция законов перехода
Более высокий уровень появляется, когда меняется не параметр, а закон.
Пусть сначала:
R_next=2R
Затем система переходит к:
R_next=R^2
А позже:
R_next=R^R
Здесь изменяется уже:
LAW
Можно записать:
LAW_1 -> LAW_2 -> LAW_3
Если существует правило:
LAW_next=F(LAW_current,STATE)
то закон становится динамическим объектом.
Это чрезвычайно важный переход.
На нижнем уровне:
закон управляет числом.
На следующем:
метазакон управляет законом.
Получаем:
VALUE
-> LAW(VALUE)
-> META_LAW(LAW)
Таким образом математическая динамика переносится с объекта на механизм его преобразования.
1.7. Саморефлексивные операторные структуры
Саморефлексивность представляет особый способ связывания характеристик системы.
Канонический:
SML N
использует один параметр N для задания:
A=N
R=N
I=N
Так один объект одновременно участвует в нескольких структурных ролях.
На более высоком уровне можно представить:
N
который одновременно определяет:
число кодонов;
глубину сети;
число итераций;
ранг;
число метауровней.
То есть саморефлексивность превращается в механизм синхронизации целой операторной среды.
Такая структура интересна не только тем, что может быстро увеличивать числовой результат.
Она демонстрирует принцип:
один высокосемантический параметр способен координировать множество различных уровней системы.
1.8. Самомодифицирующиеся процессы
Следующий этап — система, которая изменяет собственную архитектуру.
Пусть:
SYSTEM_k
на текущем шаге содержит определённый набор операторов.
После вычисления состояния:
STATE_k
получаем:
SYSTEM_(k+1)=Transform(SYSTEM_k,STATE_k)
Transform может:
добавить оператор;
удалить оператор;
заменить закон;
изменить порядок;
создать новый профиль;
перестроить сеть.
Так математическая система перестаёт быть фиксированным алгоритмом.
Она становится:
эволюционирующей системой алгоритмов.
Однако самомодификация должна оставаться формально контролируемой.
Необходимо знать:
что изменяется;
когда;
по какому правилу;
каким состоянием управляется изменение;
как разрешаются конфликты.
Без этого самомодификация остаётся только словесной декларацией.
1.9. Металогарифмические метаоператоры
Металогарифмический оператор действует на число или параметр.
Метаоператор действует на:
металогарифм;
ранговый профиль;
итерационную систему;
генотип;
операторную среду.
Например:
META_R
может создавать ранговый закон.
META_SML
может определять структуру SML-класса.
META_AC
может строить алгебраический комплекс.
Условно:
META(OP) -> OP'
Таким образом ОТМ получает возможность исследовать:
операторы операторов.
Следующий шаг:
META2(META) -> META'
Иерархия остаётся открытой.
Это принципиально важно для перехода от ОТМ к более широким математическим языкам.
1.10. Открытые иерархии роста
Большинство простых систем роста используют заранее заданный конечный набор уровней.
Но в развитой генеративной математике сама иерархия может быть открытой.
Например:
уровень 1 создаёт числа;
уровень 2 создаёт операторы уровня 1;
уровень 3 создаёт системы операторов;
уровень 4 создаёт правила формирования систем;
и так далее.
Нет необходимости заранее объявлять абсолютный последний уровень.
Можно построить:
L0
L1
L2
...
LN
а затем определить правило перехода:
L(N+1)=META(LN)
Так возникает открытая иерархия генеративных уровней.
Открытость не означает математическую неопределённость.
Каждый конкретный уровень может быть строго задан.
Открытым остаётся принцип продолжения.
1.11. Операторная трансволюция
Для описания многоуровневого изменения операторов в ОТМ вводится понятие:
операторная трансволюция.
Трансволюция отличается от простого изменения значения.
Можно выделить:
Уровень 0
X -> X'
Меняется число.
Уровень 1
P -> P'
Меняется параметр.
Уровень 2
OP -> OP'
Меняется оператор.
Уровень 3
SYSTEM -> SYSTEM'
Меняется система операторов.
Уровень 4
LAW -> LAW'
Меняется закон изменения системы.
Уровень 5
META_LAW -> META_LAW'
Меняется закон изменения законов.
Таким образом трансволюция обозначает изменение самого уровня организации генерации.
Это понятие особенно важно для Изольдионики и будущей Теории Ланумов.
1.12. От операторной трансволюции к Изольдионике
ОТМ исследует прежде всего особый класс генеративных систем:
металогарифмические.
Но логика операторной трансволюции естественным образом выходит за эти пределы.
Если можно создавать:
металогарифмические кодоны;
SML-кодоны;
метакодоны;
генотипы,
то возникает вопрос:
почему алфавит должен ограничиваться только операторами ОТМ?
Изольдионика предполагает более широкий семантический алфавит.
В него могут входить:
изольдиационные операторы;
ноофакторальные конструкции;
многосоставные системы;
металогарифмические усилители;
другие будущие кодоны.
Таким образом:
ОТМ представляет одну развитую область операторной эволюции,
а:
Изольдионика — потенциальную общую среду для множества подобных операторных семейств.
Переход можно выразить:
OTM
-> CODONIC OTM
-> MULTI-CODON SYSTEM
-> ISOLDIONICS
То есть операторная трансволюция превращает ОТМ из отдельной теории операций в одну из фундаментальных подсистем более широкого языка генеративной математики.
ГЛАВА 2. ЭКСПЛИКАЦИЯ И ИЕРАРХИЯ НЕЭКСПЛИЦИРУЕМЫХ ОБЪЕКТОВ
Чем мощнее становится генеративный язык, тем важнее вопрос:
что означает полностью представить математический объект?
Для небольшого натурального числа ответ кажется очевидным.
Можно выписать все его цифры.
Но уже для гуголплекса полная цифровая запись становится практически невозможной.
При этом объект остаётся вполне определённым символически.
Для более сложных систем возможна ситуация, когда огромным становится уже не только число, но и:
формула;
генотип;
операторная сеть;
метагенератор.
Поэтому понятие экспликации должно быть многоуровневым.
2.1. Понятие экспликации математического объекта
Под экспликацией математического объекта будем понимать его полное представление средствами выбранного формального языка на заданном уровне детализации.
Ключевые слова:
полное
и:
выбранного языка.
Экспликация всегда относительна к системе представления.
Число может быть:
неэксплицируемо цифрами;
но эксплицируемо степенной формулой.
Формула может быть:
неэксплицируема как развёрнутая последовательность,
но эксплицируема рекурсивным правилом.
Следовательно:
EXP(X,E)
означает экспликацию объекта X на уровне языка E.
Нельзя говорить об абсолютной неэксплицируемости, не уточнив допустимую систему представления.
2.2. Цифровая экспликация
Цифровая экспликация — самый низкий уровень.
Объект записывается полностью своими цифрами.
Например:
256
или:
1000000
Для числа N цифровая экспликация требует представить всю последовательность цифр его позиционной записи.
Обозначим этот уровень:
E0
На E0 отсутствуют специальные сокращения, которые заменяют большие части числа генеративными операторами.
Именно поэтому E0 очень быстро достигает физического ограничения.
Даже сравнительно простое символическое число может иметь цифровой фенотип огромной длины.
2.3. Символическая экспликация
Символический язык использует математические операторы.
Например:
10^100
значительно компактнее полного десятичного представления гугола.
При этом запись остаётся однозначной.
Символы:
+
*
^
и другие
позволяют заменять большие цифровые структуры короткими выражениями.
Однако символическая запись сама по себе ещё не обязательно является развитым генеративным языком.
Например:
A^B
задаёт операцию,
но не обязательно описывает сложную саморазвивающуюся систему.
Поэтому символическая экспликация является фундаментальной предпосылкой генеративной, но не исчерпывает её.
2.4. Генеративная экспликация
Генеративная экспликация описывает объект через механизм его порождения.
Например:
X_0=2
X_(k+1)=X_k^X_k
или:
SML 100
В первом случае объект определяется рекурсивным законом.
Во втором короткая запись разворачивается в целую рангово-итерационную архитектуру.
Таким образом генеративная экспликация отвечает не только:
как записать объект?
но и:
как его породить?
Это позволяет резко увеличить семантическую ёмкость языка.
На практике символическая и генеративная экспликация часто сосуществуют на одном формальном уровне.
Поэтому в базовой иерархии:
E1
может рассматриваться как уровень конечных символических и генеративных формул.
Отдельное различение символического и генеративного режимов остаётся семантически важным, но не обязательно требует разных номеров E.
2.5. Метаэкспликация
Следующий уровень возникает, когда невозможно или нецелесообразно полностью записывать даже сам генотип.
Например, требуется:
N
кодонов,
где N чрезвычайно велико.
Вместо перечисления:
C1,C2,...,C_N
используется:
GENERATE_CODONS(N,LAW)
То есть объектом описания становится генератор генотипа.
Это уже метаэкспликация.
В базовой иерархии:
E2
может быть уровнем метагенеративных описаний.
На E2 единицей языка становится объект, который на E1 потребовал бы огромной системы формул или генотипов.
Следующий шаг:
генератор генераторов.
Он относится уже к:
E3
и так далее.
2.6. Экспликационный горизонт
Даже внутри одного уровня языка существует предел практически возможного полного представления.
Назовём его:
EH
Explication Horizon.
Экспликационный горизонт зависит от:
доступной памяти;
допустимой длины записи;
времени;
физического носителя;
выбранной кодировки;
требуемой полноты.
Следовательно:
EH(E0)
может быть относительно мал.
А:
EH(E1)
значительно выше, поскольку один оператор способен заменять огромный цифровой объект.
Но и E1 не обладает абсолютной неограниченной мощностью.
Некоторые структуры могут потребовать E2.
Экспликационный горизонт всегда должен рассматриваться относительно конкретной системы.
2.7. Формальная и ресурсная неэксплицируемость
Неэксплицируемость может иметь как минимум два принципиально различных вида.
Ресурсная неэксплицируемость
Объект допускает представление на данном языке, но его полное раскрытие требует недоступных ресурсов.
Например, огромное число можно теоретически записать цифрами, но не существует достаточного физического носителя.
Формальная неэксплицируемость
Выбранный уровень языка не содержит достаточного механизма для полного компактного представления объекта в установленном классе выражений.
Тогда требуется переход на более высокий уровень языка.
Эти два случая нельзя смешивать.
В первом случае проблема состоит в размере.
Во втором — в выразительной мощности.
2.8. Неэкспликанты первого уровня
Пусть объект не может быть практически эксплицирован на E0, но имеет компактное конечное описание на E1.
Назовём его:
неэкспликантом первого уровня
в предварительной терминологии.
Например, гигантское конечное число:
X
может иметь слишком много цифр для E0.
Но:
X=SML 100
доступно на E1.
Тогда:
ER(X)=1
если 1 является минимальным уровнем, на котором объект полностью задаётся при фиксированном горизонте.
Это самый простой пример экспликационного подъёма.
2.9. Неэкспликанты второго уровня
Теперь рассмотрим объект, полный генотип которого сам слишком велик для E1.
Например:
G
содержит число кодонов, определяемое огромным параметром.
На E1 перечисление генотипа невозможно.
Но на E2 можно написать:
G=GENERATE_GENOTYPE(N,LAW)
Тогда объект является неэкспликантом второго уровня.
Он не полностью представим:
на E0;
на E1;
но становится представим:
на E2.
Именно здесь неэксплицируемость начинает затрагивать уже не фенотип, а генеративную структуру.
2.10. Неэкспликанты последующих уровней
Процесс можно продолжить.
Если на E2 требуется слишком сложный генератор, вводится E3.
Если недостаточен E3:
E4.
Получаем:
E0 -> E1 -> E2 -> E3 -> ...
Соответственно:
неэкспликанты первого;
второго;
третьего;
последующих уровней.
Важно, что повышение уровня не является произвольным.
Каждый E(N+1) должен содержать формально определённый механизм работы с целыми объектами уровня EN как с новыми примитивами.
Иначе иерархия превращается в простое переименование.
2.11. Неэкспликант N-го уровня
Обобщим.
Объект X является неэкспликантом N-го уровня, если:
он не имеет допустимой полной экспликации на всех уровнях ниже EN в рамках фиксированных языков и горизонтов,
но имеет такую экспликацию на EN.
Условно:
EXP(X,E0)=NO
EXP(X,E1)=NO
...
EXP(X,E(N-1))=NO
EXP(X,EN)=YES
Это определение требует дальнейшей формализации.
Особенно необходимо точно установить:
что считается допустимым выражением;
какова мощность каждого языка;
что означает «полная экспликация»;
каков EH.
Без этого понятие уровня останется слишком свободным.
2.12. Экспликационный ранг
Экспликационным рангом объекта назовём минимальный уровень языка, на котором объект становится полностью представимым при фиксированных правилах.
Обозначим:
ER(X)
Если X записывается полностью цифрами:
ER(X)=0
Если требуется формула или конечный генотип:
ER(X)=1
Если требуется генератор генотипа:
ER(X)=2
И так далее.
Экспликационный ранг не является характеристикой числовой величины.
Очень большое число может иметь:
ER=1
если оно задаётся простой формулой.
Численно меньший, но структурно сложный объект может иметь более высокий ER.
Поэтому:
величина и экспликационный ранг независимы.
2.13. Экспликационная глубина
Экспликационный ранг указывает минимальный уровень.
Но он не показывает внутреннюю протяжённость раскрытия.
Поэтому вводится понятие:
экспликационная глубина.
Например, два объекта могут иметь:
ER=2
Но для первого генератор генотипа имеет два метаэтапа.
Для второго — сотни вложенных преобразований.
Экспликационная глубина должна характеризовать:
число последовательных уровней раскрытия;
вложенность;
длину пути от высокоуровневого кода к нижнеуровневому фенотипу.
Она является отдельной характеристикой.
2.14. Экспликационная сложность
Экспликационная сложность должна объединять несколько факторов:
ранг;
глубину;
размер представления;
число используемых типов операторов;
структуру зависимостей.
Пока можно обозначать её:
EC
Explication Complexity.
Однако EC не следует сводить к одной произвольной цифре до построения формальной метрики.
На раннем этапе разумнее использовать профиль.
Например:
EC(X)={ER,depth,size,branching,meta-levels}
В будущем возможно построение более строгих мер.
2.15. Иерархия конечно-бесконечных объектов
Термин:
конечно-бесконечный объект
обозначает специальное положение объекта в экспликационной иерархии.
Математически он остаётся конечным.
Но относительно некоторого уровня:
не поддаётся полной экспликации.
Например:
конечное число X может быть условно бесконечным на E0.
Более сложный генотип G:
на E0 и E1.
Так возникает иерархия:
FI_1
FI_2
FI_3
и далее,
если такая маркировка будет позднее формально утверждена.
Но смысл всегда один:
бесконечность здесь относительна к экспликационной способности языка, а не к классической математической величине.
2.16. Бесконечности различных экспликационных уровней
Можно говорить:
об E0-бесконечности;
E1-бесконечности;
E2-бесконечности
только как о специальных изольдионических классах.
Например:
E0-бесконечность:
невозможность полной цифровой записи.
E1-бесконечность:
невозможность полной записи обычным генеративным генотипом.
E2-бесконечность:
необходимость ещё более высокого метаязыка.
Это создаёт лестницу ограничений представления.
Но ни одна такая категория сама по себе не тождественна классической бесконечности.
2.17. Числовая величина и уровень эксплицируемости
Особенно важно показать независимость двух осей.
Пусть:
A > B
по числовой величине.
Но возможно:
ER(A)=1
а:
ER(B)=3
То есть большее число описывается проще.
Это вполне естественно.
Например, регулярные огромные числа могут иметь чрезвычайно короткое описание.
А объект меньшей величины может быть построен сложной многокодонной системой.
Следовательно:
magnitude
и:
explication rank
не должны смешиваться.
Это одно из важнейших положений будущей сравнительной теории.
2.18. Генотипическая и фенотипическая неэксплицируемость
Необходимо различать:
фенотипическую неэксплицируемость
и:
генотипическую неэксплицируемость.
В первом случае:
генотип доступен,
но фенотип невозможно полностью раскрыть.
Например:
SML 100
Во втором случае:
даже полный генотип не может быть перечислен на текущем уровне.
Требуется генератор генотипа.
То есть:
META_GEN -> GENOTYPE -> PHENOTYPE
Этот переход особенно важен для будущих Ланумов.
Их неэксплицируемость может лежать уже не в количестве цифр, а в невозможности полностью раскрыть собственную генеративную архитектуру на нижнем уровне.
2.19. Неэксплицируемость металогарифмов
Простейший металогарифм может быть полностью эксплицируем.
Например:
небольшой ранг;
несколько итераций;
малые основания.
Но при росте:
R;
I;
каскадной глубины
полная запись результата быстро выходит за E0-горизонт.
Дальнейший рост может сделать невозможным и полное синтаксическое раскрытие формулы.
Однако металогарифмический генотип остаётся коротким.
Следовательно, металогарифм является естественным примером перехода:
E0 -> E1
2.20. Неэксплицируемость СМЛ
SML усиливает этот эффект.
SML N
синхронно увеличивает:
основание;
ранг;
итерационность.
Поэтому с ростом N разрыв между:
кодом;
операционной структурой;
полностью раскрытой формулой;
цифровым фенотипом
увеличивается чрезвычайно быстро.
Рекурсивные SML:
X_(k+1)=SML X_k
переносят огромный предыдущий объект в параметр следующей генеративной системы.
Это создаёт естественный механизм роста экспликационной глубины.
2.21. Неэксплицируемость ланумов
Для Ланума проблема ещё шире.
Неэксплицируемым может быть:
числовой фенотип;
генотип;
геном;
операторная сеть;
история трансволюции;
метагенератор.
Поэтому экспликационный паспорт Ланума потенциально должен включать несколько координат:
ER_phenotype
ER_genotype
ER_genome
ER_history
и другие.
Возможно, один объект будет:
прост на генотипическом уровне,
но сложен фенотипически.
Другой:
сложен уже генотипически.
Третий:
потребует метагенеративного описания.
Таким образом Теория Ланумов естественно становится одной из главных областей применения многоуровневой теории экспликации.
ГЛАВА 3. ИЕРАРХИЯ МАТЕМАТИЧЕСКИХ ЯЗЫКОВ
Если объект перестаёт быть доступным на данном уровне экспликации, возникает два пути.
Первый:
увеличить ресурсы.
Второй:
изменить язык.
В истории математики второй путь неоднократно оказывался значительно сильнее первого.
Вместо записи огромного числа повторяющихся операций вводится новый символ.
Вместо длинной последовательности действий — функция.
Вместо повторяющейся функции — оператор более высокого уровня.
Именно поэтому проблема неэксплицируемости непосредственно приводит к проблеме языков.
3.1. Язык как средство преодоления неэксплицируемости
Пусть некоторый объект слишком велик для прямой цифровой записи.
Можно увеличить объём носителя.
Но рано или поздно этот путь перестанет работать.
Другой подход:
ввести генеративное выражение.
Например вместо огромной последовательности нулей:
10^N
Теперь объект представляется коротко.
Таким образом язык не уменьшает само число.
Он уменьшает стоимость его представления.
Это фундаментальный принцип:
новый язык не обязан уменьшать сложность объекта; он изменяет единицу, которой эта сложность описывается.
3.2. От цифровой записи к символическому языку
Цифровая запись представляет результат напрямую.
Символический язык использует операции.
Например:
10000000000
можно заменить:
10^10
При дальнейшем росте преимущества становятся радикальными.
Символ:
^
содержит огромное количество потенциальных повторных умножений.
Поэтому переход:
digits -> symbols
является первым семантическим подъёмом.
Математический оператор становится единицей языка более высокого уровня.
3.3. От символов к генеративным операторам
Обычные символические операции всё ещё могут оказаться недостаточными.
Например, длинные степенные каскады становятся неудобны.
Тогда вводятся:
рекурсивные функции;
гипероперации;
стрелочные нотации;
металогарифмы;
SML.
Каждый новый оператор способен заменить целый класс конструкций нижнего уровня.
Появляется:
GENERATOR
Например:
SML 100
не просто сокращает одну формулу.
Он обозначает целую систему её построения.
Это уже не обычный символ.
Это:
семантический макрооператор.
3.4. Языки математического высокого уровня
Назовём математическим языком высокого уровня язык, в котором элементарными инструкциями являются сложные математические конструкции нижнего уровня.
Например, вместо того чтобы записывать:
тысячи степенных переходов,
используется:
один ранговый оператор.
Вместо явной ранговой системы:
один SML.
Таким образом:
lower-level program
становится:
higher-level primitive
Понятие высокого уровня здесь связано не только с абстракцией.
Важна семантическая мощность элементарной инструкции.
Один оператор содержит большой объём предопределённой генеративной структуры.
3.5. Метаязыки математических операторов
Следующий уровень языка должен уметь работать уже не только с числами и операторами, но и с:
языками операторов;
словарями операторов;
правилами композиции;
генераторами новых операторов.
Так возникает:
METALANGUAGE
Например, метаязык может содержать инструкцию:
создать оператор;
назначить ему параметры;
соединить его с другими;
задать закон эволюции;
сформировать новый кодон.
На этом уровне математический язык становится средством конструирования новых математических языков.
Именно такой уровень потребуется зрелой Изольдионике.
3.6. Иерархия языков E0, E1, E2, …, EN
Экспликационная и языковая иерархии можно согласовать.
E0
Цифровой язык.
Примитивами являются цифры и элементарные структуры записи числа.
E1
Символический и генеративный язык.
Примитивами становятся:
операции;
формулы;
рекуррентные определения;
металогарифмические генотипы.
E2
Метагенеративный язык.
Он работает с:
генераторами формул;
генераторами генотипов;
системами кодонов.
E3
Язык генераторов метагенераторов.
EN
Произвольный более высокий уровень.
Ключевой принцип:
object of EN
может кодировать целую систему объектов:
E(N-1).
Таким образом иерархия языков является одновременно иерархией семантических единиц.
3.7. Объекты одного уровня как примитивы следующего
Рассмотрим длинную формулу E1.
На E2 ей можно присвоить статус одной операционной единицы.
Но это должно быть не простое имя.
Необходимо формально определить семантику.
Например:
SML
является примитивом только потому, что существует правило его декодирования.
Так:
SML 100
может заменить огромную структуру нижнего уровня.
Следовательно:
элементарность относительна к языку.
То, что является сложной программой на одном уровне, может стать одним оператором на следующем.
3.8. Принцип семантического подъёма
Сформулируем фундаментальный принцип.
Принцип семантического подъёма:
объект или процесс, требующий сложного описания на уровне EN, может стать элементарной операционной единицей языка уровня E(N+1), если для него введена однозначная формальная семантика.
Условно:
complex_EN_structure
-> primitive_E(N+1)
Это не уничтожает сложность нижнего уровня.
Она инкапсулируется.
Поэтому повышение уровня языка не обязательно делает математический объект больше.
Оно увеличивает:
мощность единицы выражения.
Этот принцип объединяет:
математическую нотацию;
Изольдионику;
будущие языки программирования;
теорию экспликации;
Технологию Метаорганона.
3.9. Семантическая плотность языка
Семантической плотностью языка можно назвать отношение объёма однозначно задаваемой структуры к объёму её записи.
Условно:
SD = semantic structure / syntactic size
Это пока концептуальная, а не окончательная числовая мера.
Для строгого сравнения необходимо фиксировать:
алфавит;
словарь;
грамматику;
допустимые примитивы;
кодировку.
Иначе любую сложную конструкцию можно объявить одной буквой и искусственно получить бесконечную «плотность».
Следовательно, семантическая плотность является характеристикой:
формально заданного языка, а не произвольной системы имён.
3.10. Семантическая мощность элементарной инструкции
В низкоуровневом языке элементарная инструкция может выполнять очень простое действие.
В высокоуровневом:
одна инструкция может означать целый каскад.
Например:
SML N
одновременно определяет:
исходный параметр;
ранг;
итерационность;
генеративное правило;
межитерационное наследование.
Следовательно, семантическая мощность элементарной инструкции показывает:
сколько операторной структуры она способна однозначно инициировать.
В будущем можно будет сравнивать языки не только по:
числу примитивов,
но и по:
семантической мощности каждого примитива.
3.11. Математические макрооператоры
Макрооператором можно назвать оператор, который скрывает целую стандартную систему операций.
Например:
SML
является макрооператором относительно базового степенного языка.
С точки зрения низшего уровня он разворачивается в:
множество степенных переходов;
ранговую систему;
внешние итерации.
С точки зрения OTM-TN он представляет один оператор.
Макрооператоры позволяют:
сокращать запись;
уменьшать экспликационную нагрузку;
создавать более высокоуровневые генотипы.
Именно из системы макрооператоров может постепенно сформироваться новый математический язык.
3.12. Метаоператоры и метакодоны
Метаоператор работает над оператором.
Метакодон — над кодонами или их организацией.
Например:
MC
может:
создать генотип;
изменить число кодонов;
перестроить связи;
назначить профили.
Если результат SML используется для задания:
count(C)
или:
depth(GENOME)
то SML начинает играть метакодонную роль.
Это демонстрирует переход:
operator
-> macrooperator
-> metaoperator
-> metacodon
Математический язык становится всё более способным работать с собственной архитектурой.
3.13. ОТМ как язык высокого математического уровня
ОТМ можно рассматривать не только как теорию конкретного класса чисел.
Она предоставляет язык для выражения:
каскадов;
рангов;
итераций;
рефлексивных зависимостей;
модификаторов;
алгебраических комплексов.
Поэтому относительно обычного степенного языка ОТМ является языком более высокого семантического уровня.
Один оператор ОТМ может кодировать огромную систему степенных субопераций.
Однако ОТМ ещё не является универсальным языком всей генеративной математики.
Её ядро остаётся специализированным.
Именно это сохраняет предметную определённость теории.
3.14. SML как сверхвысокоуровневая математическая инструкция
SML является особенно ярким примером.
Запись:
SML N
очень мала.
Но она разворачивается в систему:
A=N
R=N
I=N
плюс:
внутренний закон;
передача результата;
повторение.
Таким образом SML по отношению к нижнеуровневому степенному языку представляет инструкцию чрезвычайно высокого семантического уровня.
Ещё более высокую форму дают:
SML(SML N)
и:
X_(k+1)=SML X_k
Здесь один макрооператор становится параметром другого.
Так возникает многоэтажная генеративная семантика.
3.15. Изольдионика как многоуровневый генеративный язык
ОТМ предоставляет одно развитое семейство операторов.
Изольдионика предполагает объединение множества семейств.
В её алфавите могут существовать:
металогарифмические кодоны;
изольдиационные;
ноофакторальные;
многосоставные;
структурные;
управляющие;
метакодоны.
Тогда язык получает несколько уровней.
На нижнем:
кодоны.
Выше:
генотипы.
Ещё выше:
геномы.
Далее:
генераторы генотипов;
генераторы геномов.
Следовательно, Изольдионика по своей архитектуре естественно становится:
многоуровневым генеративным математическим языком.
3.16. Теория Ланумов как язык предельных математических конструкций
Теория Ланумов должна работать уже с объектами, для которых:
числовое значение;
генотип;
геном;
экспликационный ранг
являются самостоятельными характеристиками.
Поэтому её язык, вероятно, должен быть ещё выше уровня обычной Изольдионики.
Ланум может быть задан не одной формулой, а:
паспортом;
генотипом;
операторной средой;
метагенератором.
В таком смысле Теория Ланумов способна стать языком для описания предельно сложных конечных генеративных объектов.
Но слово «предельных» здесь не означает абсолютный математический предел.
Речь идёт о предельных относительно конкретных уровней представления и генеративной архитектуры конструкциях.
3.17. Переход от записи объекта к программированию объекта
На нижнем уровне математический язык:
записывает объект.
Следующий уровень:
задаёт способ его вычисления.
Ещё выше:
описывает генотип его генерации.
Затем:
создаёт систему, способную строить генотипы.
Таким образом постепенно происходит переход:
description
-> algorithm
-> generator
-> genotype
-> metagenerator
-> programming
Математик перестаёт только записывать уже выбранный объект.
Он начинает программировать класс объектов.
В перспективе высокосемантический математический язык может позволять задавать инструкции типа:
создать объект данного класса;
назначить ему ранговый профиль;
включить SML-усилитель;
сформировать многокодонную сеть;
обеспечить экспликационный уровень E3;
запустить управляемую трансволюцию.
Подобный переход является непосредственным мостом к языкам программирования будущего.
В них элементарная инструкция сможет представлять не низкоуровневое действие, а сложный смысловой блок.
Таким образом математическая и программная линии начинают сходиться.
ЗАКЛЮЧЕНИЕ ГЛАВ 1–3
Первые три главы Части XI объединяют три основных направления дальнейшего развития ОТМ.
Первое направление:
операторная эволюция.
ОТМ постепенно переводит внимание:
от числа;
к оператору;
от оператора;
к системе операторов;
от системы;
к метасистеме;
от метасистемы;
к открытой иерархии преобразований.
В этой иерархии способны изменяться:
параметры;
ранги;
итерации;
законы;
модификаторы;
композиции;
сами правила изменения.
Это приводит к понятию:
операторной трансволюции.
Второе направление:
многоуровневая экспликация.
Математический объект может быть:
неэксплицируем цифрово;
но эксплицируем символически;
неэксплицируем обычной формулой;
но эксплицируем метагенератором;
неэксплицируем на E2;
но доступен на E3.
Так возникает:
E0 -> E1 -> E2 -> ... -> EN
и связанные понятия:
экспликационного горизонта;
экспликационного ранга;
глубины;
сложности;
неэкспликантов различных уровней.
Третье направление:
иерархия математических языков.
Каждый новый язык способен превратить сложную конструкцию нижнего уровня в новую элементарную единицу.
Так возникает:
цифра
-> символ
-> оператор
-> макрооператор
-> кодон
-> генотип
-> метакодон
-> метагенератор
Это позволяет сформулировать общий закон:
то, что неэксплицируемо на нижнем уровне, может стать простым операционным объектом на более высоком семантическом уровне.
При этом сложность не исчезает.
Она переносится:
из записи объекта;
в семантику оператора;
из семантики оператора;
в устройство языка;
из устройства языка;
в метаязык.
Именно поэтому высокосемантический язык не является магическим способом устранения сложности.
Он является способом реорганизации сложности.
ОТМ демонстрирует этот принцип на металогарифмах.
SML показывает его в концентрированной форме.
Изольдионика переносит его на многокодонные системы.
Теория Ланумов должна применить его к объектам, для которых сама генеративная архитектура становится частью математической идентичности.
Таким образом дальнейший путь можно представить:
OTM
-> OPERATOR EVOLUTION
-> EXPLICATION HIERARCHY
-> HIGH-SEMANTIC MATHEMATICAL LANGUAGES
-> ISOLDIONICS
-> LANUM THEORY
-> GENERATIVE PROGRAMMING
-> METAORGANON
Именно эта линия превращает Общую теорию металогарифмов из локального расширения логарифмической тематики в возможный прототип более общей науки о многоуровневой генерации математических, вычислительных и семантических структур.
*********
ГЛАВА 4. СЕМАНТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ МАТЕМАТИКИ
Переход от математического объекта к его генеративному описанию постепенно стирает жёсткую границу между формулой и программой.
Формула может не только фиксировать отношение между величинами.
Она способна задавать:
исходное состояние;
последовательность преобразований;
правила перехода;
итерации;
условия;
рекурсию;
создание новых операторов;
изменение собственной структуры.
В таком случае математическая запись становится программой порождения математического объекта.
Это не означает, что вся математика должна быть сведена к программированию.
Речь идёт о другом.
Для определённого класса сложных генеративных объектов программная интерпретация становится естественным продолжением символической.
Возникает переход:
FORMULA
-> GENERATIVE FORMULA
-> MATHEMATICAL PROGRAM
-> MATHEMATICAL GENOTYPE
-> SEMANTIC PROGRAM
Именно этот переход будем называть:
семантическим программированием математики.
4.1. Математическая формула как программа
Простейшая формула:
Y=X^2
обычно понимается как математическая зависимость.
Но если задать:
X_0=2
и:
X_(n+1)=X_n^2
то формула уже определяет процесс.
Добавим:
repeat N times
и получим конечную программу построения результата.
Ещё более явно программный характер имеет:
X_(n+1)=X_n^X_n
Здесь одной строкой определяется потенциально длинная последовательность.
Следовательно, формула может выступать в нескольких ролях:
как описание отношения;
как определение;
как правило преобразования;
как генератор последовательности;
как программа построения объекта.
ОТМ делает последнюю функцию особенно явной.
Например:
SML N
представляет не готовое число, а компактную инструкцию построения целой операторной структуры.
4.2. Генеративное описание вместо полной экспликации
Если математический объект огромен, полная экспликация часто не нужна.
Вместо:
полной цифровой записи;
полного раскрытия формулы;
полного перечисления всех промежуточных состояний
можно хранить генеративное описание.
Например:
GEN(X,LAW,N)
может означать:
начать с X;
применять LAW;
выполнить N стадий.
Тогда основным объектом хранения становится:
не фенотип, а инструкция его получения.
Это радикально меняет экономику математического представления.
Вместо:
OBJECT
хранится:
PROGRAM_FOR_OBJECT
При этом программа может быть на много порядков короче полного результата.
Именно поэтому генеративное описание становится естественной стратегией работы с неэксплицируемыми объектами.
4.3. Математический генотип как программа построения объекта
Генотип объединяет:
операторы;
параметры;
законы;
кодоны;
связи;
профили;
метаправила.
Следовательно, математический генотип можно рассматривать как программу построения объекта.
Например:
G=C1 ][ SML N ][ C3
является программой из трёх высокоуровневых блоков.
Первый кодон создаёт или преобразует вход.
SML выполняет металогарифмическое усиление.
Третий кодон использует результат для формирования окончательного объекта.
Так:
GENOTYPE
становится аналогом исходной программы,
а:
PHENOTYPE
аналогом результата исполнения.
Однако эта аналогия не должна пониматься слишком буквально.
Математический генотип может задавать абстрактный объект, а не физически выполняемую программу.
Тем не менее структурное сходство позволяет использовать методы программных языков:
парсинг;
типизацию;
компиляцию;
верификацию;
трассировку.
4.4. Операторный кодон как функциональная инструкция
Кодон является естественной единицей семантического программирования.
Например:
SML N
можно рассматривать как одну инструкцию.
Но она не эквивалентна одной машинной команде.
За ней скрываются:
назначение параметров;
ранговая структура;
итерационная структура;
закон самостепенного преобразования;
межитерационная передача результата.
Таким образом кодон является:
высокосемантической функциональной инструкцией.
Другой кодон может означать:
создать ранговый профиль;
сформировать многосоставной объект;
изменить закон;
построить операторную сеть.
Следовательно, семантическая инструкция определяется не количеством низкоуровневых действий, а целостной функцией, которую она выполняет в архитектуре.
4.5. Системы математических кодонов
Один кодон ограничен одной функциональной ролью или одним комплексом ролей.
Система кодонов позволяет строить сложные математические программы.
Например:
C1 ][ C2 ][ C3 ][ C4
Каждый блок может быть сам сложным генератором.
Но система может быть и нелинейной.
Например:
C1
порождает два результата.
Один передаётся:
C2
другой:
C3
Затем:
C4
объединяет результаты.
Получается операторный граф.
Таким образом язык кодонов естественным образом переходит:
от строки
к:
семантической вычислительной структуре.
4.6. Кодонная композиция
Композиция определяет правила объединения кодонов.
Пусть:
C1
и:
C2
являются корректными кодонами.
Это ещё не означает, что:
C1 ][ C2
автоматически корректно.
Необходимо установить:
тип выхода C1;
тип входа C2;
правило преобразования;
порядок исполнения;
условия передачи.
Следовательно, кодонная композиция требует типизированной семантики.
В дальнейшем можно представить:
TYPE(C1.OUT)=NUMBER
TYPE(C2.IN)=RANK
Тогда непосредственная связь некорректна, если не определён оператор:
NUMBER -> RANK
Таким образом развитый кодонный язык должен обладать системой типов.
4.7. Последовательная композиция
Простейшая композиция:
C1 ][ C2 ][ C3
Чтение:
выполнить C1;
передать результат C2;
затем C3.
В функциональной форме:
C3(C2(C1(X)))
Последовательная композиция особенно удобна благодаря:
явному порядку;
простоте трассировки;
понятной причинности.
Она должна стать одной из базовых конструкций математического семантического программирования.
4.8. Параллельная композиция
Пусть X одновременно передаётся нескольким кодонам:
C1(X)
C2(X)
C3(X)
После чего:
C4(C1(X),C2(X),C3(X))
Так возникает параллельная композиция.
Она полезна, если необходимо одновременно получить:
несколько характеристик;
несколько вариантов;
независимые преобразования;
несколько ветвей генерации.
На высоком уровне параллельность может быть логической, а не обязательно физически параллельной.
Язык описывает независимость ветвей.
Исполнительная система сама решает, возможно ли их реальное одновременное вычисление.
4.9. Рекурсивная композиция
В рекурсивной композиции результат системы возвращается в неё на следующем шаге.
Например:
X_(n+1)=C3(C2(C1(X_n)))
или:
G_(n+1)=Transform(G_n)
Первый вариант рекурсивно изменяет значение.
Второй — генотип.
Можно также рекурсивно изменять:
ранг;
число итераций;
список кодонов;
структуру сети.
Таким образом рекурсивная композиция превращает фиксированную программу в развивающийся процесс.
4.10. Рефлексивная композиция
Рефлексивная композиция использует информацию о состоянии самой системы.
Например:
если результат превышает T,
добавить кодон C4;
если ранг превышает Rmax,
изменить закон;
если экспликационная сложность превышает EH,
перейти на метауровень.
Схематически:
STATE(G)
-> CONTROL
-> modified G
Система не только вычисляет объект.
Она анализирует собственное состояние и использует его для управления продолжением.
Это уже элемент математической саморегуляции.
4.11. Метакомпозиция
Метакомпозиция управляет самим способом соединения кодонов.
Пусть имеются:
C1,C2,C3,C4
Метакодон M может построить:
C1 ][ C3 ][ C4
а при другом состоянии:
C2 ][ C1 ][ C4 ][ C3
Таким образом:
M
не столько вычисляет число, сколько составляет программу.
Следующий уровень:
M2
управляет M.
Получаем:
M2 -> M -> GENOTYPE -> OBJECT
Так семантическое программирование становится многоуровневым.
4.12. Семантическая компиляция математического объекта
Обычная компиляция преобразует программу одного языка в программу или исполняемую форму другого языка.
В математическом семантическом программировании можно ввести:
семантическую компиляцию.
Она преобразует высокоуровневое описание объекта в более низкоуровневую генеративную структуру.
Например:
SML 10
может компилироваться в:
явный набор параметров;
ранговую схему;
итерационную схему;
правила передачи.
Затем они могут компилироваться ещё ниже:
в последовательность элементарных степенных операций.
Таким образом:
E2
-> E1
-> E0-compatible representation
если нижний уровень практически достижим.
Семантическая компиляция не обязана полностью эксплицировать фенотип.
Она может остановиться на выбранном промежуточном уровне.
4.13. Семантическая декомпиляция
Обратная задача:
получить более высокоуровневое описание из низкоуровневой структуры.
Например, длинная последовательность:
X -> X^X -> ...
может быть распознана как ранговый металогарифмический блок.
Несколько подобных блоков:
как SML.
Семантическая декомпиляция означает поиск:
структурных шаблонов;
повторений;
операторных инвариантов;
высокоуровневых смысловых единиц.
Идеальная декомпиляция:
low-level structure
-> semantic genotype
Но она не всегда однозначна.
Один низкоуровневый объект может иметь несколько различных высокоуровневых описаний.
Следовательно, декомпиляция может требовать:
критерия минимальности;
семантического контекста;
целевой онтологии;
оценки эквивалентности.
4.14. Контролируемое раскрытие уровней
Очень сложный объект не следует всегда раскрывать до E0.
Гораздо полезнее иметь возможность выбрать глубину.
Например:
SML 100
уровень 1:
показать только SML.
Уровень 2:
показать:
A=100,R=100,I=100
Уровень 3:
показать первые ранговые стадии.
Уровень 4:
развернуть выбранный блок полностью.
Так возникает:
контролируемая экспликация.
Пользователь или система указывает:
EXPAND(level=N)
и получает только необходимую глубину.
Это может стать фундаментальным интерфейсом будущей генеративной математики.
4.15. Автоматическая генерация математических конструкций
Если математический язык становится формальным, появляются автоматические генераторы.
Например, пользователь задаёт:
создать объект с:
рангом 100;
саморефлексивной итерационностью;
двумя параллельными кодонными ветвями;
экспликационным рангом не ниже 2.
Генератор создаёт подходящий генотип.
Схема:
SPECIFICATION
-> GENERATOR
-> GENOTYPE
-> OBJECT
Это уже не просто вычисление формулы.
Это синтез математической архитектуры по спецификации.
4.16. Машинная интерпретация OTM-TN
OTM-TN проектируется так, чтобы быть не только человекочитаемой, но и потенциально машинно разбираемой.
Минимальный интерпретатор должен уметь:
распознавать коды;
проверять скобочную структуру;
определять параметры;
разбирать каскады;
распознавать ][;
строить законы;
проверять типы;
нормализовать SML;
создавать внутреннее синтаксическое дерево.
Далее возможны режимы:
VALIDATE
проверить корректность;
NORMALIZE
привести запись к нормальной форме;
EXPAND
раскрыть выбранный уровень;
SIMULATE
выполнить доступную часть;
ANALYZE
построить профиль;
COMPARE
сравнить структуры.
Таким образом OTM-TN потенциально становится первым исполняемым прототипом математического языка Изольдионики.
4.17. Компилятор Изольдионики
Компилятор Изольдионики должен быть значительно сложнее интерпретатора OTM-TN.
Он должен работать с:
множеством классов кодонов;
типизированными связями;
генотипами;
геномами;
метакодонами;
экспликационными уровнями.
Его функции могут включать:
лексический анализ;
синтаксический анализ;
семантический анализ;
проверку типов;
развёртывание кодонов;
проверку рефлексивных циклов;
выбор стратегии экспликации;
генерацию промежуточных представлений;
построение доказательств корректности.
Такой компилятор становится не просто переводчиком записи.
Он является семантической машиной математической генерации.
4.18. Генеративные математические среды будущего
Наиболее развитая форма — не отдельный компилятор, а интерактивная генеративная среда.
Пользователь задаёт:
цель;
свойства объекта;
ограничения;
допустимые кодоны;
желаемый экспликационный уровень.
Среда:
строит генотип;
проверяет его;
сравнивает варианты;
разворачивает необходимые фрагменты;
показывает зависимости;
доказывает или проверяет локальные свойства;
позволяет изменять архитектуру.
Так математик работает уже не только с формулами.
Он работает с пространством возможных математических конструкций.
Это открывает непосредственный переход от семантического программирования математики к программированию общего назначения нового уровня.
ГЛАВА 5. ОТ МАТЕМАТИЧЕСКИХ МЕТАЯЗЫКОВ К ПРОГРАММИРОВАНИЮ БУДУЩЕГО
История программирования во многом является историей повышения уровня абстракции.
Машина исполняет низкоуровневые операции.
Но человек стремится описывать задачу всё более крупными смысловыми единицами.
Модельно-ориентированные подходы уже используют высокоуровневые, платформенно-независимые модели и преобразования к платформенным моделям и коду; OMG прямо описывает MDA как цепь от высокоуровневой модели функциональности до генерируемой реализации.
Предлагаемая здесь линия продолжает этот вектор в более радикальной форме.
5.1. Аналогия между математическими и компьютерными языками
В математике:
цифры
сменяются:
символами.
Символы:
операторами.
Операторы:
макрооператорами.
Макрооператоры:
генеративными языками.
В программировании наблюдается похожая логика:
машинные инструкции;
ассемблер;
языки высокого уровня;
библиотеки;
фреймворки;
DSL;
метапрограммирование;
генеративные среды.
В обоих случаях действует общий принцип:
повышение уровня языка позволяет манипулировать более крупными смысловыми объектами как единицами.
5.2. Машинный код, ассемблер и языки высокого уровня
Машинный код близок к физической архитектуре процессора.
Ассемблер предоставляет символические обозначения машинных операций.
Высокоуровневые языки позволяют писать:
циклы;
функции;
структуры данных;
объекты;
модули
без ручного управления каждой машинной инструкцией.
Компилятор выполняет перевод вниз.
Это фундаментальный пример семантического подъёма.
То, что на нижнем уровне требует сотен инструкций, на верхнем может выражаться одной конструкцией.
5.3. Иерархии языков высокого уровня
Однако выражение:
«язык высокого уровня»
не означает один фиксированный уровень.
Существуют разные степени абстракции.
Один язык требует ручного управления памятью.
Другой скрывает её.
Третий позволяет работать декларативно.
Четвёртый специализируется на конкретной предметной области.
Поэтому правильнее говорить об:
иерархиях уровней программного языка.
Каждый уровень решает, какие объекты считать примитивными.
5.4. Языки сверхвысокого уровня
Язык сверхвысокого уровня в предлагаемом смысле должен оперировать уже не:
строками;
циклами;
классами
как основными семантическими единицами.
Его примитивами могут быть:
поисковая система;
симуляционный мир;
система доказательства;
научный эксперимент;
экономическая модель;
распределённая архитектура;
обучающая среда.
Пользователь указывает:
что должно существовать;
какие свойства оно должно иметь;
какие ограничения соблюдать.
Система сама строит значительную часть низкоуровневой реализации.
5.5. Программа как компактный генотип
В этой перспективе исходный текст программы является генотипом.
Он не содержит всю исполняемую систему непосредственно.
Он содержит инструкцию её построения.
Например, короткая спецификация может породить:
множество исходных файлов;
схему базы данных;
интерфейсы;
тесты;
конфигурацию;
развёртывание.
Получаем:
PROGRAM GENOTYPE
-> COMPILATION/GENERATION
-> EXECUTABLE PHENOTYPE
Эта аналогия особенно продуктивна для генеративного программирования.
5.6. Исполняемая система как фенотип программы
Фенотипом программы можно считать её развёрнутую исполняемую реализацию.
Он может включать:
машинный код;
данные;
запущенные процессы;
сервисы;
инфраструктуру;
пользовательские интерфейсы.
Один компактный генотип способен создавать большой фенотип.
При этом один и тот же генотип может породить несколько фенотипических вариантов:
под разные платформы;
конфигурации;
нагрузки;
пользовательские требования.
Таким образом отношение:
GENOTYPE -> PHENOTYPE
становится параметризованным.
5.7. От командного к семантическому программированию
В командном подходе программист подробно указывает:
какие действия выполнить.
В семантическом:
какую функциональность создать.
Например, вместо тысячи строк реализации пользователь формулирует высокоуровневую конструкцию:
SECURE_USER_AUTHENTICATION(...)
Она может включать:
хранение учётных данных;
проверки;
сессии;
восстановление;
аудит;
защиту.
Это не означает, что все детали исчезают.
Они переходят в реализацию семантического примитива.
5.8. От описания алгоритма к описанию намерения
Следующий переход:
от:
HOW
к:
WHAT
а затем:
WHY / UNDER WHICH CONSTRAINTS
Пользователь описывает:
цель;
требования;
инварианты;
запрещённые состояния;
критерии качества.
Система синтезирует реализацию.
Например:
CREATE a collaborative knowledge system
при условиях:
данные пользователей изолированы;
изменения аудируются;
система выдерживает заданную нагрузку;
интерфейс доступен на нескольких устройствах.
Так программирование приближается к формализованному описанию намерения.
5.9. Программирование целями и ограничениями
Высокоуровневая спецификация должна содержать не только цель.
Нужны ограничения.
Иначе одна цель допускает бесконечное множество нежелательных реализаций.
Условно:
PROGRAM = GOALS + CONSTRAINTS + RESOURCES + POLICIES
Цели определяют:
что требуется.
Ограничения:
что недопустимо.
Ресурсы:
что доступно.
Политики:
какие компромиссы разрешены.
Таким образом намерение становится проверяемой спецификацией.
5.10. Кодонное программирование
В кодонном программировании программа строится из крупных семантических блоков.
Например:
AUTH
DATABASE
SEARCH
PAYMENTS
SIMULATION
VERIFICATION
Но настоящий кодон — не просто библиотека с коротким именем.
Он должен обладать:
формально определённой семантикой;
типизированными входами и выходами;
условиями применения;
гарантиями;
правилами композиции.
Тогда:
C1 ][ C2 ][ C3
становится высокоуровневой программой.
5.11. Программные метакодоны
Метакодон управляет кодонами.
Например:
SCALE
может анализировать систему и создавать требуемое число экземпляров сервисов.
SECURE
может модифицировать архитектуру для выполнения заданной политики безопасности.
DISTRIBUTE
может преобразовать локальную систему в распределённую.
Здесь кодон действует уже на программу.
Получаем:
META_CODON(PROGRAM) -> MODIFIED_PROGRAM
Это один из путей к сверхвысокоуровневому программированию.
5.12. Генераторы программных архитектур
Следующий уровень:
генератор не отдельных функций, а архитектуры приложения.
Пользователь задаёт:
тип системы;
нагрузку;
ограничения;
требования к надёжности.
Генератор определяет:
компоненты;
сервисы;
базы;
очереди;
кеши;
связи;
контуры наблюдаемости.
Таким образом:
SPEC
-> ARCHITECTURE_GENERATOR
-> ARCHITECTURE
-> IMPLEMENTATION
5.13. Генераторы генераторов
Теперь генератор G сам становится объектом генерации.
GG
создаёт G.
Например, GG анализирует предметную область и строит специализированный генератор приложений для неё.
Получаем:
GG
-> DOMAIN_GENERATOR
-> PROGRAMS
Это прямой программный аналог:
метакодон
-> кодонная система
-> фенотип
5.14. Рекурсивно создаваемые программы
Программа может создавать следующую версию программы.
Например:
P_(n+1)=Generate(P_n,DATA_n)
Это может использоваться для:
оптимизации;
специализации;
адаптации;
автоматического расширения.
Однако рекурсивная генерация должна отличаться от неуправляемого изменения.
Необходимо сохранять:
инварианты;
версионирование;
проверяемость;
возможность отката.
5.15. Самомодифицирующиеся генеративные системы
Самомодифицирующаяся система изменяет собственную программную архитектуру.
Это мощный, но потенциально рискованный класс.
Она может:
заменять компоненты;
изменять стратегии;
создавать новые модули;
переписывать правила.
Для практического применения требуется ограниченная самомодификация.
Нужны:
границы изменения;
проверки;
песочницы;
доказуемые инварианты;
журналы происхождения.
Поэтому будущее высокоуровневое программирование должно сочетать:
генеративную свободу
с:
формальной управляемостью.
5.16. Программы из нескольких строк с глубокой функциональной архитектурой
В высокосемантическом языке очень короткая программа может задавать чрезвычайно сложную систему.
Например, несколько инструкций могут описывать:
многопользовательскую среду;
долговременное хранение;
поиск;
агентов;
моделирование;
аналитику.
Но короткий исходный текст не означает малой общей сложности.
Сложность переносится в:
компилятор;
кодоны;
библиотеки;
модели;
верификаторы;
исполнительную среду.
Это программный аналог принципа:
SML N
короток,
но разворачивает огромную операторную структуру.
5.17. Перенос сложности с программиста на семантическую среду
Повышение уровня языка не уничтожает сложность.
Оно перераспределяет её.
Раньше программист вручную решал:
как хранить данные;
как синхронизировать процессы;
как строить интерфейс.
В высокосемантической среде значительная часть решений может быть инкапсулирована.
Но тогда сама среда должна стать гораздо сложнее.
Получаем:
less explicit user code
но:
more sophisticated semantic infrastructure
Именно поэтому развитие высокоуровневых языков требует мощных:
компиляторов;
генераторов;
верификаторов;
рантаймов.
5.18. Автоматическое развёртывание высокоуровневых инструкций
Высокоуровневая инструкция должна иметь механизм понижения.
Например:
BUILD_SECURE_SERVICE
компилируется в:
архитектурную модель;
конкретные компоненты;
код;
конфигурации;
тесты;
политики развёртывания.
Это аналог:
SML
-> expanded OTM structure
Высокий уровень полезен только тогда, когда существует надёжная цепь перехода к исполняемому фенотипу.
5.19. Семантическая компиляция
Семантический компилятор должен переводить не только синтаксис.
Он переводит намерение и смысловые конструкции в конкретную архитектуру.
Схема:
INTENT
-> SEMANTIC IR
-> ARCHITECTURE
-> IMPLEMENTATION
-> EXECUTION
где:
IR
Intermediate Representation,
промежуточное представление.
На каждом уровне должны сохраняться:
требования;
инварианты;
происхождение решений.
5.20. Многоуровневая декомпиляция
Если высокоуровневая программа разворачивается через несколько уровней, должна существовать возможность обратного подъёма.
Например:
машинное поведение
-> source structure
-> architecture
-> semantic components
-> original intent
Полное восстановление исходного намерения не всегда возможно однозначно.
Но система может поддерживать трассируемую декомпиляцию, если при компиляции сохраняются метаданные происхождения.
Это особенно важно для программ, значительная часть которых сгенерирована автоматически.
5.21. Проверяемость сверхвысокоуровневых программ
Чем выше уровень языка, тем больше скрытых действий заключено в одной инструкции.
Следовательно, доверять ей вслепую нельзя.
Необходимо проверять:
типовую корректность;
инварианты;
политику безопасности;
ресурсные ограничения;
соответствие спецификации;
свойства сгенерированного фенотипа.
Таким образом высокосемантический язык должен развивать параллельно:
язык генерации
и:
язык доказательства или проверки.
5.22. Трассировка семантических конструкций
Пользователь должен иметь возможность спросить:
почему создан этот компонент?
из какой инструкции он возник?
какой кодон его породил?
какая часть требования стала причиной?
Получаем цепь:
REQUIREMENT
-> CODON
-> ARCHITECTURE ELEMENT
-> CODE
-> RUNTIME EFFECT
Это семантическая трассировка.
Без неё сверхвысокоуровневое программирование станет непрозрачным.
5.23. Объяснимость генеративных программ
Трассировка показывает происхождение.
Объяснимость должна сообщать смысл.
Например:
этот кеш создан потому, что задано ограничение latency;
эта реплика базы — из требования отказоустойчивости;
этот контроль доступа — из политики конфиденциальности.
То есть система должна быть способна переводить низкоуровневую реализацию обратно в язык намерений.
Это особенно важно при совместной работе человека и ИИ.
5.24. Программирование человеком и ИИ
В высокосемантической среде человек и ИИ могут выполнять разные функции.
Человек формулирует:
цели;
ценности;
ограничения;
приоритеты;
концептуальную архитектуру.
ИИ помогает:
формализовать;
синтезировать;
искать варианты;
генерировать реализации;
проверять;
объяснять.
Но граница не фиксирована.
На некоторых задачах человек будет работать почти на уровне намерения.
На других — глубоко вмешиваться в архитектуру.
Главной становится возможность свободно перемещаться между уровнями.
5.25. ИИ как оператор метаязыков
ИИ может играть роль:
семантического компилятора намерений.
Схема:
INTENT
-> FORMALIZATION
-> GENOTYPE
-> IMPLEMENTATION
-> VERIFICATION
-> EXPLANATION
Особенно важна первая стадия.
Естественный язык неоднозначен.
Поэтому ИИ должен не просто генерировать код, а строить формальную промежуточную спецификацию.
Именно она становится контрактом между:
намерением человека
и:
исполняемой системой.
5.26. Демократизация сверхсложного программирования
Повышение уровня языка способно резко снизить порог создания сложных систем.
Человеку не обязательно знать каждую низкоуровневую деталь.
Это может существенно расширить круг людей, способных:
создавать приложения;
строить модели;
автоматизировать исследования;
проектировать виртуальные среды.
Но отсюда не следует, что профессиональная компетентность становится ненужной.
Чем мощнее инструмент, тем важнее:
понимание ограничений;
проверка;
архитектура;
безопасность;
ответственность.
Поэтому демократизация означает снижение барьера входа, а не исчезновение глубокой специализации.
5.27. Новая роль программиста
По мере автоматизации ручного кодирования роль специалиста смещается.
Меньше времени может занимать:
написание стандартного кода.
Больше:
проектирование семантических примитивов;
архитектур;
ограничений;
инвариантов;
генераторов;
верификаторов.
Программист становится создателем среды, внутри которой другие программы могут создаваться автоматически.
5.28. От программиста к архитектору смыслов
На наиболее высоком уровне специалист проектирует уже не последовательность команд.
Он проектирует:
какие понятия существуют в языке;
какие кодоны доступны;
что гарантирует каждый кодон;
как они соединяются;
какие метакодоны управляют системой.
Так возникает роль:
архитектора смыслов.
Его задача:
не описать миллион действий,
а создать такой семантический язык, в котором миллион действий выражается несколькими корректными высокоуровневыми решениями.
ГЛАВА 6. ГЕНЕРАТИВНОЕ ПРОГРАММИРОВАНИЕ КАК САМОСТОЯТЕЛЬНАЯ ПАРАДИГМА
Термин generative programming уже существует в программной инженерии и применялся задолго до современной волны генеративного ИИ; работы Кшиштофа Чарнецкого, Ульриха Айзенекера и других исследовали generative programming, active libraries и generative/component-based software engineering ещё в конце 1990-х — начале 2000-х годов.
Поэтому настоящая книга не претендует на введение самого термина.
Предлагается более узкая авторская линия развития понятия:
генеративное программирование высоких семантических уровней, основанное на кодонах, программных генотипах, многоуровневой компиляции и экспликационной иерархии.
6.1. Понятие генеративного программирования
В предлагаемом расширенном смысле генеративное программирование — это парадигма, в которой основным объектом исходной программы становится не подробная последовательность операций, а генеративная спецификация системы.
Она задаёт:
какие структуры должны быть созданы;
какие свойства обеспечены;
какие кодоны применены;
какие ограничения сохранены;
какие правила могут порождать новые компоненты.
Получаем:
SPECIFICATION
-> GENERATION
-> PROGRAM
-> EXECUTABLE SYSTEM
При этом сам PROGRAM может оставаться промежуточным фенотипом.
6.2. Генеративная программа и традиционный алгоритм
Традиционный алгоритм обычно подробно описывает путь преобразования входа в выход.
Генеративная программа может описывать правила создания самого алгоритма.
Например:
традиционно:
input -> algorithm -> output
генеративно:
requirements -> generator -> algorithm -> output
На следующем уровне:
intent -> metagenerator -> generator -> algorithm -> output
Таким образом генеративность добавляет новые уровни между намерением и исполнением.
6.3. Семантические примитивы
Фундаментом нового языка должны стать семантические примитивы.
Примитив может означать:
создать устойчивое хранилище;
организовать поиск;
построить модель;
провести оптимизацию;
проверить безопасность;
создать симуляционную среду.
Примитив должен быть:
определён;
композируем;
типизирован;
проверяем.
Иначе язык превращается в набор неопределённых естественно-языковых команд.
6.4. Кодоны общего назначения
Некоторые кодоны могут быть предметными.
Например:
PAYMENT
Другие — общими:
PERSIST
PARALLELIZE
VERIFY
SCALE
OBSERVE
Кодоны общего назначения действуют на множество типов программных объектов.
Они особенно важны для метауровня.
Например:
VERIFY(C1)
может добавить проверочный контур вокруг кодона C1.
SCALE(G)
изменить архитектуру генотипа G.
6.5. Программный генотип
Программный генотип — компактная высокоуровневая структура, задающая способ построения исполняемой системы.
Он может включать:
кодоны;
параметры;
ограничения;
связи;
метакодоны;
политики.
Условно:
PG={C1,C2,C3;LINKS;CONSTRAINTS;META}
PG не обязан содержать каждую строку будущего исходного кода.
Он содержит достаточную информацию для его генерации.
6.6. Программный фенотип
Фенотип представляет развёрнутую реализацию.
Например:
сгенерированный исходный код;
двоичные файлы;
инфраструктуру;
настройки;
запущенные сервисы.
Разные компиляторы могут породить из одного генотипа разные фенотипы, сохраняющие одну семантику.
Это аналог:
одного математического генотипа
и:
нескольких способов его реализации.
6.7. Генотипическая сложность программы
Генотипическая сложность относится к исходной высокоуровневой структуре.
Она может зависеть от:
числа кодонов;
числа зависимостей;
метауровней;
рефлексивных связей;
ограничений;
семантической связанности.
Короткий генотип не обязательно прост.
Например, одна высокоуровневая инструкция может содержать сложную внутреннюю семантику.
Поэтому длина текста программы не является достаточной мерой генотипической сложности.
6.8. Фенотипическая сложность программы
Фенотипическая сложность характеризует развёрнутую систему.
Она может учитывать:
число компонентов;
объём кода;
число процессов;
распределённость;
состояния;
потоки данных;
число взаимодействий.
Короткая программа может иметь:
низкую синтаксическую длину
и:
огромную фенотипическую сложность.
Это прямой аналог:
SML N
в математике.
6.9. Семантическое сжатие программного кода
Отношение:
phenotype complexity / genotype size
можно рассматривать как форму семантического сжатия.
Но эта величина имеет смысл только относительно фиксированного языка.
Если сложную систему произвольно назвать:
X
мы не получаем настоящего сжатия.
Нужна реальная семантика X.
То есть система должна знать:
как X разворачивается;
что гарантирует;
какие параметры принимает;
как проверяется.
Только тогда краткость является содержательной.
6.10. Многоуровневые языки генерации
Один язык может генерировать программы.
Следующий:
генераторы программ.
Ещё следующий:
языки генераторов.
Получаем:
L0
низкоуровневая реализация;
L1
прикладной язык;
L2
генеративный язык;
L3
метагенеративный;
LN
произвольный уровень.
Это программный аналог:
E0,E1,E2,...
в теории экспликации.
6.11. Метапрограммирование нового поколения
Метапрограммирование уже является известной областью.
Предлагаемое развитие состоит не в отрицании существующих подходов, а в повышении семантического уровня метаобъектов.
Вместо генерации:
отдельных методов;
типов;
шаблонов
метапрограмма может генерировать:
архитектуры;
предметные языки;
наборы семантических кодонов;
полные программные генотипы.
То есть метапрограммирование становится метаархитектурным.
6.12. Рефлексивные программные системы
Рефлексивная программа получает информацию о собственном состоянии и использует её для изменения поведения.
Например:
нагрузка меняет архитектуру;
ошибки активируют другой алгоритм;
профиль пользователей перестраивает интерфейс.
Но рефлексия не требует переписывания исходного кода.
Система может просто выбирать между заранее определёнными режимами.
Важно отличать:
рефлексию
от:
самомодификации.
6.13. Самоописывающиеся программы
Самоописывающаяся программа содержит формализованную модель:
своей архитектуры;
компонентов;
ограничений;
версий;
семантических связей.
Она способна отвечать:
что я содержу?
почему этот компонент существует?
какому требованию он соответствует?
Такое самоописание особенно важно для автоматически генерируемых больших систем.
Оно создаёт основу:
трассировки;
объяснения;
верификации.
6.14. Самопорождающиеся программы
Самопорождающаяся система способна создавать новые программные элементы в соответствии с собственными правилами.
Например:
создавать специализированные агенты;
модули;
обработчики;
модели.
Это не означает бесконтрольное самокопирование.
Корректная форма требует:
области генерации;
типов создаваемых объектов;
ограничений;
правил остановки.
6.15. Самомодифицирующиеся программы
Самомодификация означает изменение собственной программной структуры.
Например:
P_(n+1)=Transform(P_n,STATE_n)
Это существенно сильнее обычной адаптации параметров.
Но вместе с мощностью возникает проблема доверия.
Необходимы:
неизменяемое ядро контроля;
ограничения;
верификация изменений;
история версий.
Поэтому практическая самомодификация должна быть архитектурно ограниченной.
6.16. Самокомпилирующиеся системы
Термин требует осторожности.
Уже существуют self-hosting compilers — компиляторы, написанные на языке, который они компилируют.
Но предлагаемое здесь понятие шире.
Самокомпилирующаяся генеративная система потенциально способна:
содержать описание собственной цепи трансляции;
создавать или адаптировать части компилятора;
выбирать нужные уровни развёртывания.
То есть объектом метапрограммирования становится не только конечная программа, но и механизм её преобразования между уровнями.
6.17. Самопроектирующиеся архитектуры
Следующий уровень:
система сама выбирает собственную архитектуру.
Получив:
цели;
ограничения;
ресурсы,
она строит:
компонентную структуру;
связи;
модели хранения;
режимы распределения.
Затем проверяет результат.
Схема:
GOALS
-> ARCHITECTURE SYNTHESIS
-> VERIFICATION
-> IMPLEMENTATION
Если условия меняются, архитектура может быть перепроектирована.
6.18. Иерархии генеративной мощности
Разные языки имеют разную генеративную мощность.
Первый способен:
генерировать функции.
Второй:
модули.
Третий:
приложения.
Четвёртый:
архитектуры.
Пятый:
языки.
Таким образом появляется профиль:
GP(L)
Generative Power of Language.
Однако как и в математике, его не следует слишком рано превращать в одну цифру.
Полезнее учитывать:
тип генерируемых объектов;
глубину;
метауровни;
самомодификацию;
композиционность;
проверяемость.
6.19. Экспликационные уровни программ
Программная система также может рассматриваться через экспликационные уровни.
PE0
машинные инструкции.
PE1
обычный исходный код.
PE2
высокоуровневый программный генотип.
PE3
генератор генотипа.
PE4
язык генераторов.
Эта нумерация предварительна.
Главное — принцип:
система, слишком сложная для непосредственного представления на одном уровне, может быть компактно задана на более высоком.
6.20. Неэксплицируемые программные фенотипы
Можно представить программу из нескольких строк, которая порождает миллиарды структурных элементов.
Полный фенотип может быть практически невозможно:
просмотреть;
распечатать;
проанализировать вручную.
Однако это не обязательно проблема.
Если сохраняются:
генотип;
правила;
трассировка;
проверка,
пользователь может работать на более высоком уровне.
Таким образом будущие программные системы могут быть:
фенотипически неэксплицируемыми для человека,
но:
семантически управляемыми через генотип.
6.21. Управление сложностью посредством метаязыков
Главная функция метаязыка:
не устранить сложность,
а сделать её управляемой.
Он:
группирует детали;
создаёт устойчивые абстракции;
ограничивает пространство вариантов;
обеспечивает правила композиции.
На каждом уровне пользователь работает только с релевантными объектами.
При необходимости он может опуститься ниже.
Так появляется модель:
semantic zoom
или:
семантическое масштабирование.
Пользователь перемещается между:
намерением;
архитектурой;
генотипом;
исходным кодом;
машинным поведением.
6.22. Генеративное программирование и искусственный интеллект
ИИ радикально усиливает генеративное программирование, потому что способен выполнять перевод между менее формализованными и более формализованными уровнями.
Например:
описание пользователя
-> formal specification
-> architecture
-> code
Но ИИ не отменяет необходимость языка.
Напротив, чем больше автоматической генерации, тем важнее формальные промежуточные представления.
Без них результат трудно:
проверить;
повторить;
объяснить;
сопоставить с намерением.
Поэтому сильнейшая комбинация:
ИИ + формальный высокосемантический язык + верификатор.
6.23. Генеративное программирование и нооинженерия
Нооинженерия в предлагаемой концепции занимается целенаправленным конструированием сложных интеллектуальных и семантических систем.
Генеративное программирование может стать одним из её инструментов.
Если пользователь способен задавать:
структуру знания;
цель;
принципы;
ограничения;
архитектуру взаимодействия,
программная среда может превращать эти конструкции в:
модели;
агентов;
виртуальные миры;
исследовательские системы;
интеллектуальные инструменты.
Таким образом программирование становится средством инженерии не только вычислений, но и организованных пространств смысловой деятельности.
6.24. Перспектива универсального семантического программирования
Предельная перспектива состоит в создании языка, где пользователь работает прежде всего с:
целями;
сущностями;
отношениями;
законами;
ограничениями;
метаправилами.
Одна и та же семантическая система может затем порождать:
программу;
модель;
симуляцию;
математический объект;
интерфейс;
агентную систему.
Так возникает идея:
универсального семантического программирования.
Однако универсальность здесь не означает единственный язык, который идеально решает все задачи.
Более реалистична многоуровневая экосистема.
Она включает:
общий семантический метаязык;
предметные кодоны;
специализированные языки;
компиляторы;
верификаторы;
ИИ-посредников.
Главный принцип:
INTENTION
-> SEMANTIC MODEL
-> GENERATIVE GENOTYPE
-> VERIFIED PHENOTYPE
Именно здесь линия ОТМ неожиданно соединяется с будущим программирования.
В ОТМ:
короткая конструкция порождает огромную математическую структуру.
В генеративном программировании:
короткая семантическая спецификация может порождать глубокую функциональную систему.
В обоих случаях действует один и тот же метапринцип:
повышение семантического уровня позволяет использовать сложные структуры нижнего уровня как элементарные операционные единицы верхнего.
ЗАКЛЮЧЕНИЕ ГЛАВ 4–6
Переход от математического метаязыка к программированию будущего не является случайной аналогией.
Обе области сталкиваются с одной фундаментальной проблемой:
сложность фенотипа растёт быстрее, чем человек способен управлять им напрямую.
В математике это проявляется как невозможность полной экспликации огромных объектов.
В программировании:
как невозможность человеку вручную контролировать каждую деталь сверхсложной системы.
В обоих случаях ответом становится:
повышение семантического уровня.
Математика проходит путь:
digits
-> symbols
-> operators
-> macrooperators
-> codons
-> genotypes
-> metagenerators
Программирование:
machine instructions
-> assembly
-> high-level languages
-> frameworks
-> models
-> semantic codons
-> program genotypes
-> metagenerators
В результате возникает общий принцип:
сложность не исчезает — она инкапсулируется и переносится на более высокий уровень организации.
Это означает, что программа будущего может быть чрезвычайно короткой на уровне генотипа и чрезвычайно сложной на уровне фенотипа.
Но подобная система останется управляемой только при наличии:
семантической компиляции;
многоуровневой декомпиляции;
трассировки;
верификации;
объяснимости;
контролируемой экспликации.
Поэтому главный вопрос будущего программирования заключается не только в том:
насколько много кода может автоматически создать машина?
Более фундаментальный вопрос:
насколько высокоуровневый смысл может оставаться формально связанным с тем, что реально исполняет машина?
Именно здесь возникает потенциальная новая профессия и новый тип деятельности.
Программист всё меньше является автором каждой низкоуровневой инструкции.
Он становится:
архитектором семантических примитивов;
конструктором кодонов;
проектировщиком генотипов;
создателем метаязыков;
автором ограничений;
разработчиком механизмов проверки.
Иначе говоря:
архитектором смыслов.
Так Общая теория металогарифмов приводит к выводу, значительно более широкому, чем первоначальная теория сверхбольших чисел.
Металогарифм показывает:
как одна высокоурововневая инструкция может разворачивать огромную математическую структуру.
SML показывает:
как параметры генератора могут быть семантически синхронизированы.
Изольдионика показывает:
как множество таких инструкций образует генотип.
Теория Ланумов:
как генотип и среда становятся частью математического объекта.
Генеративное программирование переносит тот же принцип в область исполняемых систем.
Так возникает единая линия:
MATHEMATICAL OBJECT
-> GENERATIVE DESCRIPTION
-> CODON
-> GENOTYPE
-> METALANGUAGE
-> SEMANTIC PROGRAM
-> EXECUTABLE PHENOTYPE
И эта линия уже непосредственно выводит к следующей перспективе — организации не только математических объектов и программ, но и самих многоуровневых процессов мышления.
************
ГЛАВА 7. НАПРАВЛЕНИЯ ДАЛЬНЕЙШЕГО РАЗВИТИЯ
Предыдущие части книги построили концептуальный каркас Общей теории металогарифмов.
Были введены:
металогарифмические каскады;
ранги;
итерационные режимы;
асимметрия;
самопорождающиеся системы;
саморефлексивные металогарифмы;
модификаторы;
алгебраические комплексы;
OTM-TN;
кодонная интерпретация;
генотипы;
экспликационные уровни;
переход к Изольдионике и Теории Ланумов.
Однако концептуальная теория и строгая математическая теория — не одно и то же.
Следующий этап должен превратить предложенный аппарат в систему:
аксиом;
определений;
теорем;
критериев эквивалентности;
инвариантов;
алгоритмов;
машинных представлений.
Именно этому посвящена настоящая глава.
Она представляет программу дальнейшего развития ОТМ.
7.1. Формальная аксиоматика ОТМ
Первой задачей является построение минимального аксиоматического ядра.
Необходимо формально определить:
множество допустимых объектов;
множество допустимых операторов;
состояние металогарифмической системы;
основание;
сублогарифм;
ранг;
итерацию;
каскад;
закон перехода;
результат.
В простейшем варианте состояние можно представить:
S = (A,SL,R,I,P,L)
где:
A
основание;
SL
сублогарифм;
R
ранг;
I
итерационный параметр;
P
дополнительный профиль;
L
система законов.
Далее необходимо определить оператор:
T:S -> S'
или, если результатом является число:
T:S -> (X,S')
После этого понятия:
каскада;
рекурсии;
рефлексивности;
модификации
могут быть определены уже не словесно, а как классы преобразований состояний.
Главная задача аксиоматики:
отделить фундаментальное ядро ОТМ от произвольных расширений.
Иначе теория рискует превратиться просто в обозначение для любой возможной программы.
7.2. Аксиоматика СМЛ
SML требует отдельной формализации.
Каноническая конструкция:
SML N
в настоящей книге задаёт синхронизацию:
A=N
R=N
I=N
и фиксированный внутренний закон самостепенного преобразования.
Для строгой теории необходимо определить:
область N;
порядок внутреннего выполнения;
правило внешней итерации;
правило передачи результата;
условия завершения;
нормальную форму.
Можно ввести каноническую функцию:
SML:N -> N
для положительных целых N,
если результат каждого допустимого N однозначно определён.
Затем необходимо отличить:
канонический SML;
модифицированный SML;
рекурсивный SML;
вложенный SML;
полисинхронный SML;
мета-SML.
Только после этого можно строго исследовать их отношения.
7.3. Формализация экспликационных уровней
Иерархия:
E0,E1,E2,...,EN
пока является концептуальной.
Следующий этап требует формального определения каждого языка.
Например:
E0
может быть языком конечных цифровых строк.
E1
языком конечных выражений над фиксированным набором операторов.
E2
языком конечных генераторов выражений E1.
Но недостаточно просто назвать уровни.
Для каждого EN необходимо определить:
алфавит;
грамматику;
семантику;
допустимые примитивы;
правила декодирования;
критерий полной экспликации.
Тогда переход:
EN -> E(N+1)
становится математически определённым семантическим подъёмом.
7.4. Аксиоматика неэкспликантов
После формализации языков можно строго определить неэкспликанты.
Пусть:
EXP(X,EN,H)
означает возможность полной экспликации объекта X на языке EN при горизонте H.
Тогда объект может называться неэкспликантом уровня N только относительно явно заданной системы.
Необходимо различить как минимум:
формальную неэксплицируемость;
ресурсную;
физическую;
практическую.
Особенно важно не смешивать неэксплицируемость с:
невычислимостью;
неопределённостью;
бесконечностью.
Формальная теория должна сделать эти границы явными.
7.5. Формальная теория математических метаязыков
Следующая задача — определить, что значит:
язык более высокого семантического уровня.
Недостаточно сказать, что один язык «мощнее».
Необходимо определить:
какие объекты одного языка являются примитивами другого;
какие существуют трансляции;
какая семантика сохраняется;
можно ли выполнить обратную реконструкцию.
Можно исследовать отображения:
Compile:E(N+1) -> EN
и:
Abstract:EN -> E(N+1)
Первая операция понижает уровень.
Вторая пытается найти высокоуровневое представление.
Именно здесь теория экспликации соединяется с теорией формальных языков.
7.6. Эквивалентность металогарифмических каскадов
Два каскада могут выглядеть различно, но давать одинаковый результат.
Например:
C1
и:
C2
могут удовлетворять:
value(C1)=value(C2)
Это числовая эквивалентность.
Но их:
ранги;
итерационные структуры;
законы;
число стадий
могут различаться.
Поэтому необходимо ввести несколько отношений эквивалентности.
Например:
C1 ==num C2
числовая эквивалентность.
C1 ==struct C2
структурная.
C1 ==op C2
операторная.
C1 ==sem C2
семантическая.
Точная символика может быть изменена в будущей стандартизации.
Главное — отказаться от единственного понятия равенства для всех уровней описания.
7.7. Эквивалентность саморефлексивных записей
Особенно сложным становится сравнение SML-конструкций.
Например:
две записи могут иметь разные внешние формы,
но после нормализации создавать одну и ту же систему параметров и законов.
Тогда они синтаксически различны, но семантически эквивалентны.
Другие конструкции могут давать одинаковый результат только для отдельных N.
Следовательно, необходимо различать:
эквивалентность при конкретном параметре;
эквивалентность для всех параметров;
эквивалентность операторных структур;
эквивалентность фенотипов.
Это позволит построить алгебру преобразований SML.
7.8. Эквивалентность генеративных генотипов
Генотипы:
G1
и:
G2
могут порождать один фенотип.
Но означает ли это, что они являются одним и тем же объектом?
В Изольдионике и Теории Ланумов ответ может быть отрицательным.
Необходимо исследовать:
фенотипическую эквивалентность;
генотипическую эквивалентность;
функциональную эквивалентность;
эквивалентность относительно среды;
эквивалентность относительно истории.
Например:
Phenotype(G1)=Phenotype(G2)
не обязательно означает:
G1 == G2
Это создаёт новое пространство классификации математических объектов.
7.9. Числовая и структурная эквивалентность
Наиболее фундаментальное различие:
числовое равенство
и:
структурное равенство.
Пусть:
value(A)=value(B)
Но:
genotype(A)!=genotype(B)
В классической арифметике A и B как числа совпадают.
В генотипической математике способы их генерации остаются различными объектами.
Следовательно, будущая теория должна чётко определять:
когда исследуется число;
когда — его запись;
когда — процесс;
когда — генотип.
Без этого разные уровни будут постоянно смешиваться.
7.10. Инварианты ОТМ
Инвариант — характеристика, сохраняющаяся при определённом классе преобразований.
Для ОТМ потенциально интересны:
числовой результат;
число циклов;
паритет некоторых структурных характеристик;
тип каскада;
ранговая глубина;
профиль зависимости;
граф связей;
экспликационный ранг.
Например, некоторые преобразования записи могут изменять синтаксис, сохраняя результат.
Другие сохраняют структуру зависимостей, но меняют значения параметров.
Формальная теория инвариантов позволит классифицировать допустимые преобразования.
7.11. Инварианты СМЛ
Для SML могут существовать специальные инварианты.
В каноническом случае важным является отношение:
A=R=I=N
При некоторых преобразованиях значения изменяются, но принцип синхронизации сохраняется.
Следовательно, возможен инвариант:
тип параметрической синхронизации.
Другими кандидатами являются:
число синхронизируемых координат;
форма внутреннего закона;
схема наследования;
глубина саморефлексии.
Такие инварианты позволят классифицировать семейства SML независимо от конкретных N.
7.12. Инварианты экспликационных преобразований
Если объект переводится:
E2 -> E1 -> E0
что должно сохраняться?
Минимально:
семантическая идентичность объекта.
Но могут сохраняться также:
тип;
значение;
структура зависимостей;
происхождение компонентов;
доказанные свойства.
Будущий семантический компилятор должен иметь формально определённые инварианты компиляции.
Иначе нельзя гарантировать, что объект после понижения уровня остался тем же объектом.
7.13. Обратная реконструкция каскадов
Прямая задача:
по каскаду получить результат.
Обратная:
по результату или части структуры восстановить возможный каскад.
Это задача существенно более сложная.
Один результат может иметь:
множество генеративных историй.
Поэтому обратная реконструкция обычно не является единственной.
Можно искать:
минимальный каскад;
каскад заданного класса;
каскад минимального ранга;
каскад с максимальной симметрией;
наиболее вероятный каскад относительно выбранной модели.
Так возникает теория обратного генеративного анализа.
7.14. Обратная реконструкция генотипов
Ещё более общий вопрос:
по фенотипу найти генотип.
Схема:
PHENOTYPE -> ? -> GENOTYPE
Один фенотип может иметь множество генотипов.
Тогда задача превращается в поиск по пространству генераторов.
Можно задать критерий:
минимальной длины;
минимальной сложности;
максимальной семантической прозрачности;
максимальной устойчивости.
Это связывает ОТМ:
с программным синтезом;
сжатиями;
машинным обучением;
автоматическим открытием математических структур.
7.15. Вычислимость
Вычислимость должна стать отдельной фундаментальной главой будущей строгой ОТМ.
Необходимо установить:
какие классы металогарифмов вычислимы;
какие конструкции всегда завершаются;
какие условия гарантируют конечность;
какие расширения могут перейти к частичным функциям;
что происходит при введении неразрешимых условий.
Особенно важно различать:
колоссальную вычислительную стоимость
и:
принципиальную невычислимость.
Канонический конечный SML с конечным N может быть концептуально вычислимым, даже если фактическое вычисление практически невозможно.
Это не тот же случай, что невычислимая функция.
7.16. Алгоритмическая сложность
Необходимо исследовать классическую вычислительную стоимость операций ОТМ.
Например:
сколько последовательных шагов требуется;
каков объём памяти;
насколько быстро растёт представление результата;
каков размер синтаксического дерева.
При этом обычные меры сложности могут быстро становиться непрактичными.
Поэтому полезно различать:
сложность вычисления по ссылкам на предыдущие результаты;
сложность полного синтаксического раскрытия;
сложность цифровой экспликации.
Это три разные задачи.
7.17. Генеративная сложность
Генеративная сложность должна характеризовать структуру генотипа.
Она может учитывать:
число кодонов;
число типов кодонов;
глубину;
ветвление;
рекурсию;
рефлексию;
метауровни.
Предварительный профиль:
GC={C,D,B,R,M}
где:
C
число кодонов;
D
глубина;
B
ветвление;
R
рефлексивная сложность;
M
число метауровней.
Это только один из возможных подходов.
Главная задача — создать метрику, устойчивую к тривиальному переименованию сложной структуры одной буквой.
7.18. Экспликационная сложность
Экспликационная сложность:
EC
характеризует стоимость полного или частичного раскрытия объекта между уровнями.
Следует исследовать:
EC(E2 -> E1)
EC(E1 -> E0)
и полную:
EC(E2 -> E0)
Эти величины могут радикально различаться.
Также важен вопрос:
какую часть объекта действительно необходимо раскрывать для решения конкретной задачи?
Это приводит к теории:
селективной экспликации.
7.19. Семантическая сложность
Семантическая сложность связана не столько с размером объекта, сколько с количеством смысловых связей внутри него.
Например:
короткий SML может иметь высокую семантическую плотность.
Геном с множеством взаимных зависимостей может иметь высокую семантическую сложность.
Потенциально можно учитывать:
число ролей параметров;
число типов отношений;
глубину зависимости;
число метаправил;
степень взаимной обусловленности.
Это направление особенно важно для связи ОТМ с семантическим программированием.
7.20. Программная реализация ОТМ
Формальная теория должна сопровождаться программным прототипом.
Первоначальная система может поддерживать:
парсинг;
нормализацию;
проверку;
символьное исполнение;
частичное раскрытие;
построение дерева;
анализ рангов;
анализ итераций.
Не требуется сразу вычислять гигантские фенотипы.
Главная задача прототипа:
правильно работать с генотипом.
То есть машина должна понимать структуру ОТМ даже тогда, когда результат невозможно развернуть.
7.21. Разработка интерпретатора OTM-TN
Первая конкретная программная цель:
интерпретатор OTM-TN.
Минимальный конвейер:
TEXT
-> TOKENIZER
-> PARSER
-> AST
-> TYPE CHECK
-> NORMALIZER
-> SEMANTIC MODEL
-> EXECUTION / SYMBOLIC ANALYSIS
Интерпретатор должен понимать:
ML
SML
параметры;
скобочный ранг;
][;
законы;
модификаторы;
профили.
Особенно важен режим:
EXPLAIN
который должен преобразовывать запись OTM-TN в человекочитаемое описание её семантики.
7.22. Разработка математического метаязыка Изольдионики
OTM-TN является специализированным языком.
Изольдионике понадобится более общий метаязык.
Он должен поддерживать:
реестр кодонов;
типизированные интерфейсы;
композиции;
генотипы;
геномы;
метакодоны;
семантические уровни.
Потребуется система имён без коллизий.
Например, уже опыт OTM-TN показывает необходимость жёсткого реестра кодов:
AC
не должен одновременно обозначать два разных фундаментальных объекта.
Поэтому будущий язык требует:
пространств имён;
версий стандарта;
формальной схемы совместимости.
7.23. Разработка кодонного программирования
Кодонное программирование должно развить идею:
C1 ][ C2 ][ C3
в полноценный формальный аппарат.
Для каждого кодона необходимо определить:
входы;
выходы;
типы;
семантику;
предусловия;
постусловия;
инварианты.
Только тогда кодон становится настоящей высокоуровневой инструкцией, а не красивым названием.
Главная задача:
создать такие кодоны, которые одновременно:
семантически мощны;
композируемы;
проверяемы.
7.24. Семантические компиляторы будущего
Будущий семантический компилятор должен переводить:
смысловые конструкции
в:
более конкретные структуры.
Это может быть цепь:
INTENT
-> FORMAL SPEC
-> GENOTYPE
-> ARCHITECTURE
-> IMPLEMENTATION
В математике:
HIGH-LEVEL OBJECT
-> GENOTYPE
-> FORMULA
-> LOWER-LEVEL REPRESENTATION
Наиболее важная проблема:
не потерять семантику при переходе.
Поэтому компилятор должен сопровождать преобразование:
метаданными;
доказательствами;
трассировкой происхождения;
инвариантами.
7.25. Интеграция ОТМ в язык Изольдионики
ОТМ должна войти в Изольдионику не как полностью независимая внешняя система, а как формальный модуль.
Для этого необходимо определить:
металогарифмический namespace;
интерфейсы кодонов;
типы входов;
типы выходов;
правила передачи параметров.
Например, SML может передавать:
VALUE;
RANK;
ITERATION;
COUNT;
PROFILE.
Так металогарифмические объекты становятся совместимыми с другими кодонами.
7.26. Интеграция СМЛ в Теорию Ланумов
В Теории Ланумов SML может быть:
генератором фенотипа;
генератором ранга;
генератором кодонов;
метакодоном;
частью паспорта Ланума.
Необходимо будет классифицировать:
роль SML внутри Ланума;
уровень его вложенности;
зависимости;
экспликационный эффект.
Особенно интересны Ланумы, в которых SML определяет:
архитектуру генома,
а не только число.
7.27. Интеграция экспликационной иерархии в Теорию Ланумов
Каждый Ланум потенциально должен иметь экспликационный паспорт.
Например:
ER_P
экспликационный ранг фенотипа.
ER_G
генотипа.
ER_NET
операторной сети.
ER_META
метагенератора.
Это позволит различать объекты с одинаковым числовым масштабом, но разной глубиной представления.
Экспликационная характеристика становится полноценной координатой Ланума.
7.28. ОТМ, Изольдионика и ИИ высокого уровня
ИИ способен стать связующим механизмом между семантическими уровнями.
Он может:
анализировать OTM-TN;
искать эквивалентные записи;
предлагать нормальные формы;
создавать генотипы;
выполнять частичную декомпиляцию;
объяснять структуры;
проектировать кодоны.
Но ИИ не должен подменять формальную семантику.
Напротив, наиболее перспективна связка:
AI
плюс:
FORMAL LANGUAGE
плюс:
VERIFIER
ИИ предлагает.
Формальный язык фиксирует.
Верификатор проверяет.
Это значительно надёжнее свободной генерации математической терминологии без строгого основания.
7.29. От математической нооинженерии к общей нооинженерии
ОТМ начинается с математических объектов.
Но принцип многоуровневой генерации значительно шире.
Если можно проектировать:
числа;
операторы;
генотипы;
математические среды,
то аналогичные методы могут применяться к:
моделям;
теориям;
системам знаний;
программам;
исследовательским архитектурам;
интеллектуальным средам.
Так математическая нооинженерия становится частным случаем более общей нооинженерии.
Её объект:
не просто число,
а:
организованная конструкция смысловых и операциональных систем.
Следующий уровень связан уже с самим мышлением.
Если теория может стать примитивом следующего уровня мышления, возникает когнитивный аналог:
E0 -> E1 -> E2 -> ...
Человек или ИИ перестаёт каждый раз разворачивать всю нижнюю структуру.
Он оперирует крупными семантическими блоками.
Таким образом математическая линия приводит к будущей Технологии Метаорганона.
ЗАКЛЮЧЕНИЕ ЧАСТИ XI
Общая теория металогарифмов начиналась как исследование необычных степенных и логарифмических каскадов.
Но её внутренняя логика вывела значительно дальше.
Первый переход:
NUMBER
-> OPERATOR
Второй:
OPERATOR
-> OPERATOR SYSTEM
Третий:
SYSTEM
-> METASYSTEM
Четвёртый:
FIXED STRUCTURE
-> TRANSVOLVING STRUCTURE
Параллельно разворачивается экспликационная линия:
DIGITS
-> FORMULAS
-> GENERATORS
-> GENOTYPES
-> METAGENERATORS
И языковая линия:
LOW-LEVEL LANGUAGE
-> HIGH-LEVEL LANGUAGE
-> SEMANTIC LANGUAGE
-> METALANGUAGE
Эти три линии соединяются.
В результате ОТМ становится прототипом более общей теории:
многоуровневой генерации объектов, операторов, языков и систем.
Но именно здесь особенно важно сохранить научную дисциплину.
Будущее ОТМ зависит не от увеличения числа новых терминов.
Оно зависит от способности:
формализовать уже введённые понятия;
найти строгие определения;
доказать свойства;
определить границы применимости;
построить программные прототипы;
сравнить систему с существующей математикой;
отказаться от тех конструкций, которые не выдержат формальной проверки.
Следовательно, дальнейший путь можно представить:
CONCEPT
-> FORMAL DEFINITION
-> AXIOM
-> THEOREM
-> ALGORITHM
-> IMPLEMENTATION
-> VERIFICATION
Только после этого новая конструкция превращается из идеи в математический аппарат.
Именно такая программа способна сделать ОТМ не только философией генеративных чисел, но формальной исследовательской системой.
Её дальнейшая перспектива:
ОТМ как теория операторной трансволюции;
Изольдионика как язык кодонных математических систем;
Теория Ланумов как теория высокоуровневых генеративных объектов;
генеративное программирование как перенос принципа на исполняемые системы;
Метаорганон как перенос принципа на организацию мышления.
Все эти направления объединяет один общий метапринцип:
сложная структура нижнего уровня может стать элементарным операционным объектом следующего семантического уровня при условии, что механизм такого подъёма определён, декодируем и контролируем.
Именно этот принцип является одной из наиболее широких перспектив Общей теории металогарифмов.
***********
АППЕНДИКС XI-А. ИССЛЕДОВАТЕЛЬСКАЯ КАРТА ДАЛЬНЕЙШЕГО РАЗВИТИЯ ОТМ
Оглавление
Что уже существует и что ещё предстоит доказать
Минимальное формальное ядро ОТМ
Проект первой системы аксиом
Каноническая модель ранга
Каноническая модель SML
Нормальная форма OTM-TN
Таксономия эквивалентностей
Числовая эквивалентность
Структурная эквивалентность
Генотипическая эквивалентность
Семантическая эквивалентность
Поиск инвариантов
Инварианты ранговых преобразований
Инварианты SML
Инварианты компиляции
Прямая и обратная задачи
Реконструкция каскада по фенотипу
Реконструкция генотипа
Карта сложностей ОТМ
Вычислительная сложность
Синтаксическая сложность
Генеративная сложность
Семантическая сложность
Экспликационная сложность
Формализация E0-E3
Тест на настоящий семантический подъём
Архитектура интерпретатора OTM-TN
Режимы работы интерпретатора
Формат внутреннего представления
Реестр кодов OTM-TN
Прототип языка Изольдионики
Кодонный интерфейс
Паспорт кодона
Паспорт генотипа
Паспорт Ланума
Семантическая компиляция
Семантическая декомпиляция
Контролируемая экспликация
ИИ как помощник формализации
Критерии научной зрелости ОТМ
Этапы исследовательской программы
Итоговая карта развития
1. Что уже существует и что ещё предстоит доказать
После завершения основной книги полезно разделить содержание ОТМ на четыре класса.
Класс A. Введённые понятия
Например:
ранг;
каскад;
SML;
скобочный ранг;
генотип;
экспликационный ранг.
Они описаны концептуально.
Класс B. Рабочие формальные схемы
Например:
X_(k+1)=X_k^X_k
или:
A=N,R=N,I=N
для канонического SML.
Они уже допускают точную математизацию.
Класс C. Гипотезы
Например:
предполагаемые классы инвариантов;
сравнительная мощность некоторых конструкций;
структура будущих Ланумов.
Они требуют исследования.
Класс D. Исследовательские программы
Например:
семантические компиляторы;
язык Изольдионики;
кодонное программирование;
Метаорганон.
Они являются направлениями, а не доказанными результатами ОТМ.
Такое разделение необходимо сохранять во всех будущих публикациях.
2. Минимальное формальное ядро ОТМ
Для первой строгой версии желательно выбрать маленькое ядро.
Например:
Числовое множество D.
Состояние S.
Базовая степенная субоперация.
Ранг R.
Внешняя итерация I.
Закон передачи результата.
Конечный каскад.
Не следует сразу включать:
геномы;
Ланумы;
метакодоны;
произвольную самомодификацию.
Сначала необходимо доказать свойства минимального ядра.
Это позволит определить:
что действительно принадлежит ОТМ,
а что является расширением.
3. Проект первой системы аксиом
Предварительный набор может иметь форму:
A1. Определённость состояния
Каждая операция начинается с полностью определённого состояния S.
A2. Конечность ранга базовой модели
Для базового ядра:
R in N
и R конечно.
A3. Однозначность перехода
При фиксированном состоянии и фиксированном законе следующий шаг определён однозначно.
A4. Упорядоченность каскада
Каждый последовательный цикл использует уже определённые данные предыдущего цикла.
A5. Явность рефлексии
Любая зависимость от собственного состояния должна ссылаться либо на уже определённое состояние, либо на специально определённую задачу самосогласования.
A6. Разделение ранга и внешней итерации
R и I являются различными структурными координатами.
Это только проект.
Финальная аксиоматика должна пройти проверку на:
независимость;
непротиворечивость;
достаточность.
4. Каноническая модель ранга
Для строгого ядра удобно зафиксировать:
a_0=A
a_(k+1)=a_k^a_k
для:
k=0,...,R-1
Тогда:
RankOp(A,R)=a_R
Эта модель:
однозначна;
конечна;
рекурсивно определена.
Все расширенные модели можно сравнивать с этим каноном.
5. Каноническая модель SML
Можно определить:
X_0=N
Для каждой внешней итерации j:
выполнить:
X -> RankOp(X,N)
N раз внешне.
Или более компактно определить оператор:
F_N(X)=RankOp(X,N)
а затем:
SML(N)=F_N^N(N)
где:
F_N^N
означает N-кратную композицию F_N.
Так канонический SML получает компактное формальное определение.
6. Нормальная форма OTM-TN
Для машинной обработки полезно привести все допустимые формы к единому виду.
Например:
SML 10
нормализуется в:
SML(10)
а затем в семантическую форму:
ML(A=10,SL=A,R=10,I=10){GL:X_next=X^X;TL:A_next=X}
Следует различать:
лексическую нормализацию;
синтаксическую;
семантическую.
7. Таксономия эквивалентностей
Минимально необходимы:
EQ_NUM
числовая.
EQ_STRUCT
структурная.
EQ_GEN
генотипическая.
EQ_SEM
семантическая.
EQ_ENV
эквивалентность относительно среды.
Будущий стандарт может выбрать другую символику.
Главное — различить отношения.
8. Числовая эквивалентность
A EQ_NUM B
если:
value(A)=value(B)
Это обычное числовое равенство результатов.
Оно является самым слабым для генотипической теории.
9. Структурная эквивалентность
Два объекта структурно эквивалентны, если их генеративные графы совпадают с точностью до допустимого переименования.
Необходимо определить:
что считается допустимым изоморфизмом.
Например:
изменение локальных имён не должно разрушать структурную эквивалентность.
10. Генотипическая эквивалентность
Более строгая форма может требовать сохранения:
типов кодонов;
порядка;
параметрических зависимостей;
метаправил.
Это отношение особенно важно для будущих Ланумов.
11. Семантическая эквивалентность
Два генотипа могут различаться структурно, но выполнять одну и ту же функцию для всех допустимых входов.
Тогда:
G1 EQ_SEM G2
если их наблюдаемая семантика совпадает.
Доказательство такого равенства может быть трудной задачей.
12. Поиск инвариантов
Алгоритм исследования:
Выбрать класс преобразований.
Построить множество примеров.
Найти сохраняющиеся характеристики.
Проверить контрпримеры.
Сформулировать гипотезу.
Доказать или опровергнуть.
Инварианты нельзя объявлять только по интуиции.
13. Инварианты ранговых преобразований
Исследовать:
сохраняется ли число ранговых ступеней;
сохраняется ли дерево зависимости;
сохраняется ли результат;
сохраняется ли тип рекурсии.
Разные преобразования сохраняют разные характеристики.
14. Инварианты SML
Кандидаты:
структура синхронизации;
число синхронизируемых параметров;
форма RankOp;
форма внешнего наследования;
число уровней SML-вложенности.
15. Инварианты компиляции
При переходе:
HIGH -> LOW
обязательно должны сохраняться:
семантическое значение;
тип;
обязательные свойства;
параметрические зависимости.
Если компилятор не сохраняет это, он некорректен.
16. Прямая и обратная задачи
Прямая:
GENOTYPE -> PHENOTYPE
Обратная:
PHENOTYPE -> GENOTYPE?
Прямая задача обычно более определённа.
Обратная может иметь множество решений.
17. Реконструкция каскада по фенотипу
Можно искать каскад по критерию:
минимального R;
минимального I;
минимальной записи;
фиксированного класса;
минимальной EC.
Таким образом обратная задача становится оптимизационной.
18. Реконструкция генотипа
Общая форма:
Find G such that Execute(G)=X
с дополнительным условием:
Cost(G) -> minimum
Но Cost может означать:
длину;
генеративную сложность;
семантическую сложность;
число кодонов.
Разные функции стоимости дают разные оптимальные генотипы.
19. Карта сложностей ОТМ
Необходимо различать:
TC
временную вычислительную сложность;
MC
здесь использовать нельзя без оговорки, поскольку в OTM-TN MC уже закреплено за Modified Cascade;
поэтому сложность памяти лучше обозначить иным кодом в будущем;
SC
также уже занято Self-generating Cascade;
следовательно, любые новые сокращения должны сверяться с реестром OTM-TN.
Это хороший пример необходимости пространства имён.
На концептуальном уровне следует исследовать:
вычислительную;
синтаксическую;
генеративную;
семантическую;
экспликационную
сложность отдельно.
20. Вычислительная сложность
Вопрос:
сколько операций требуется для вычисления доступного результата?
Для гигантских объектов может исследоваться не полный результат, а:
префикс;
остаток;
логарифмическая оценка;
структурная характеристика.
21. Синтаксическая сложность
Вопрос:
каков размер полного дерева выражения?
Для:
X -> X^X
каждый полный синтаксический шаг удваивает число копий предыдущего дерева.
Это резко отличается от вычисления с повторным использованием сохранённого результата.
22. Генеративная сложность
Вопрос:
насколько сложен сам генотип?
Можно учитывать:
число примитивов;
метауровни;
глубину;
ветвление;
рекурсивные связи.
23. Семантическая сложность
Вопрос:
сколько разных функциональных отношений содержится в объекте?
Например:
один параметр SML выполняет несколько ролей.
Это повышает семантическую связанность при малом размере записи.
24. Экспликационная сложность
Вопрос:
какова стоимость перехода от компактной записи к выбранному уровню раскрытия?
Полезна функция:
EC(X,E_from,E_to)
Это позволит сравнивать объекты по стоимости экспликации.
25. Формализация E0-E3
Рабочий минимум:
E0
конечные цифровые строки.
E1
конечные формулы над фиксированными операторами.
E2
конечные генераторы E1-конструкций.
E3
генераторы E2-генераторов.
После строгого определения первых четырёх уровней можно обобщать EN.
26. Тест на настоящий семантический подъём
Новый уровень является содержательным, если:
имеет собственную формальную грамматику;
обладает определённой семантикой;
может декодироваться вниз;
заменяет классы конструкций предыдущего уровня;
не сводится к произвольному присвоению имени.
Если эти требования не выполнены, перед нами переименование, а не метаязык.
27. Архитектура интерпретатора OTM-TN
Предварительная схема:
SOURCE
-> LEXER
-> PARSER
-> AST
-> SYMBOL TABLE
-> TYPE SYSTEM
-> NORMALIZER
-> SEMANTIC ENGINE
-> ANALYZER
-> EXPANDER
-> OUTPUT
Главная ценность системы:
работа со структурой без необходимости вычислять весь фенотип.
28. Режимы работы интерпретатора
Минимальный набор:
CHECK
проверка синтаксиса.
TYPE
проверка типов.
NORMALIZE
нормализация.
DECODE
семантическое декодирование.
EXPAND N
раскрытие до уровня N.
TRACE
трассировка переходов.
PROFILE
построение структурного профиля.
COMPARE
сравнение двух генотипов.
29. Формат внутреннего представления
Внутренняя модель не должна быть одной строкой.
Удобнее граф или AST.
Например:
OperationNode
ParameterNode
CascadeNode
LawNode
ModifierNode
MetaNode
Это позволит работать с:
вложенностью;
ссылками;
типами;
зависимостями.
30. Реестр кодов OTM-TN
Каждый код должен иметь:
имя;
полное название;
семантический тип;
версию;
статус.
Например:
AC
Algebraic Complex.
ASC
Asymmetric Cascade.
MC
Modified Cascade.
Новый код нельзя вводить без проверки коллизий.
Это особенно важно перед машинной реализацией.
31. Прототип языка Изольдионики
Следующий язык должен расширить OTM-TN.
Он должен поддерживать:
namespace кодонов;
импорт модулей;
типовые сигнатуры;
метакодоны;
генотипы;
геномы.
OTM может стать одним модулем:
ISOLDIONICS.OTM
32. Кодонный интерфейс
Каждый кодон должен объявлять:
NAME
INPUTS
OUTPUTS
PARAMETERS
PRECONDITIONS
POSTCONDITIONS
SEMANTICS
EXPANSION_RULE
Это превратит кодоны в композируемые формальные элементы.
33. Паспорт кодона
Пример:
NAME:SML
CLASS:OTM
INPUT:N
OUTPUT:VALUE
PARAMETER_LINK:A=R=I=N
COMPUTABILITY:effective for canonical finite N
EXPANSION:defined
VERSION:1
Подобный паспорт облегчает автоматическую проверку.
34. Паспорт генотипа
Может содержать:
ID
CODONS
LINKS
PROFILES
META_LAWS
ENVIRONMENT
EXP_LEVEL
INVARIANTS
PHENOTYPE_TYPE
Это делает генотип самостоятельным объектом каталога.
35. Паспорт Ланума
Дополнительно:
PHENOTYPE
GENOTYPE
GENOME
TRANSVOLUTION_HISTORY
ER_PHENOTYPE
ER_GENOTYPE
ER_GENOME
COMPUTABILITY_STATUS
EQUIVALENCE_CLASS
Так можно будет систематически классифицировать будущие Ланумы.
36. Семантическая компиляция
Будущий компилятор должен уметь:
L3 -> L2 -> L1 -> L0
но раскрывать только необходимую часть.
Каждый переход должен создавать:
результат;
трассу;
список сохранённых инвариантов.
37. Семантическая декомпиляция
Обратный процесс:
LOW -> HIGH
требует распознавания шаблонов.
Например:
длинный повторный каскад
может быть распознан как:
RankOp.
Несколько RankOp:
как SML.
Но результат не всегда единственен.
Поэтому декомпилятор должен предлагать:
кандидаты;
оценки;
обоснование.
38. Контролируемая экспликация
Практически особенно полезен режим:
EXPAND(object,level,depth)
Например:
раскрыть SML только до параметров.
Или:
показать первые пять внутренних шагов.
Или:
раскрыть только ранговую структуру, не разворачивая числа.
Это позволит работать с объектами, полный фенотип которых недоступен.
39. ИИ как помощник формализации
ИИ может использоваться для:
поиска коллизий терминов;
генерации тестовых выражений;
поиска контрпримеров;
сравнения нормальных форм;
синтеза возможных генотипов;
объяснения.
Но математические утверждения должны отделяться от автоматически предложенных гипотез.
Рабочая схема:
AI proposes
formal system encodes
verifier checks
40. Критерии научной зрелости ОТМ
Можно считать ОТМ существенно формализованной, когда существуют:
строгие определения базовых объектов;
аксиоматическое ядро;
доказанные нетривиальные теоремы;
определённые классы эквивалентности;
инварианты;
теория вычислимости базовых классов;
формальная грамматика OTM-TN;
работающий интерпретатор;
воспроизводимые примеры;
сравнение с существующими математическими формализмами.
Это значительно важнее количества введённых новых терминов.
41. Этапы исследовательской программы
Практически дальнейшую работу можно разделить на семь этапов.
Этап 1. Ядро
Формализация:
RankOp;
каскада;
итерации;
SML.
Этап 2. Язык
Строгая грамматика OTM-TN.
Этап 3. Алгебра
Эквивалентности;
инварианты;
нормальные формы.
Этап 4. Сложность
Вычислимость;
генеративная;
экспликационная;
семантическая сложность.
Этап 5. Программный прототип
Парсер;
интерпретатор;
визуализатор структуры;
трассировка.
Этап 6. Изольдионика
Общий кодонный язык.
Этап 7. Ланумы и метаязыки
Геномы;
экспликационная иерархия;
генераторы объектов высокого уровня.
Такой порядок позволяет двигаться:
от простого и проверяемого
к:
сложному и метауровневому.
42. Итоговая карта развития
Общую исследовательскую карту можно представить:
OTM concepts
-> axiomatic core
-> formal SML
-> formal OTM-TN
-> equivalence theory
-> invariant theory
-> complexity theory
-> interpreter
-> explication hierarchy
-> codon language
-> Isoldionics
-> Lanum Theory
-> semantic compilation
-> generative programming
-> general nooengineering
-> Metaorganon
Главный принцип этого движения:
каждый следующий уровень должен не просто вводить новые слова, а превращать конструкции предыдущего уровня в формально управляемые объекты.
В этом случае развитие ОТМ становится открытой, но контролируемой программой.
Каждый новый термин должен получать:
определение;
семантику;
место в иерархии;
правила взаимодействия;
критерии проверки.
Каждая новая нотация:
однозначное декодирование.
Каждый новый метауровень:
реальный формальный прирост выразительной мощности.
Каждое утверждение о росте:
точный объект сравнения.
Каждое утверждение о бесконечности:
явное указание, идёт ли речь о классической бесконечности или специальном экспликационном смысле.
Каждая рефлексивная конструкция:
порядок вычисления или механизм самосогласования.
Каждый генотип:
формальную семантику собственного развёртывания.
Именно при выполнении этих требований ОТМ сможет пройти путь:
от концептуальной теории
к:
формальной математической дисциплине,
а затем стать одной из основ более широкой системы высокосемантической генеративной математики.
************
ЗАКЛЮЧЕНИЕ
Общая теория металогарифмов начиналась с относительно локального вопроса.
Если обычный логарифм позволяет анализировать отношение, связанное с одной операцией возведения в степень, возможно ли построить более общий аппарат для анализа и генерации многоступенчатых степенных процессов?
Из этого вопроса возникло понятие металогарифма.
Однако дальнейшее развитие показало, что металогарифм представляет интерес не только как ещё одна операция над числами.
За ним постепенно обнаружилась значительно более широкая структура.
Возникли:
каскады;
циклы;
сублогарифмы;
ранги;
итерации;
динамические основания;
асимметрия;
самопорождающиеся последовательности;
рефлексивные зависимости;
саморефлексивные металогарифмы;
модификаторы;
алгебраические комплексы;
операторные среды.
После этого предмет исследования снова изменился.
Если операция обладает собственным рангом, историей, законами изменения, модификаторами и способностью воздействовать на другие операции, то объектом теории становится уже не только число.
Объектом становится:
архитектура генерации числа.
Следующий шаг оказался ещё более существенным.
Если подобные архитектуры можно объединять в более крупные функциональные блоки, они начинают играть роль кодонов.
Из кодонов строятся генотипы.
Из генотипов — операторные сети.
Из сетей — геномы.
Так ОТМ естественным образом соединяется с более широкой программой Изольдионики и подводит к будущей Теории Ланумов.
Одновременно рост генеративной мощности выявляет новую проблему.
Объекты становятся настолько велики и структурно глубоки, что их невозможно полностью представить на первоначальном языке.
Тогда возникает необходимость не только в новых формулах, но и в новых уровнях математического языка.
Так из теории металогарифмов постепенно вырастает:
теория экспликации;
теория математических метаязыков;
концепция генеративной математики;
семантического программирования;
нооинженерии.
Поэтому итог книги состоит не в утверждении, что найден ещё один способ получать чрезвычайно большие числа.
Главный итог гораздо шире.
ОТМ предлагает рассматривать математический объект через систему его порождения и изучать эволюцию самих генеративных средств как самостоятельный предмет математики.
1. От логарифма к металогарифму
Обычный логарифм решает фундаментальную обратную задачу относительно возведения в степень.
Если:
A^B = C
то логарифмическая операция позволяет восстанавливать одну из характеристик этого отношения.
В ОТМ была предложена более широкая постановка.
Что происходит, если степенная операция не единична?
Если результат одной ступени:
становится основанием следующей;
становится новым сублогарифмом;
изменяет ранг;
задаёт число итераций;
модифицирует последующий закон?
Тогда перед нами уже не одно степенное отношение.
Перед нами:
металогарифмический каскад.
Вместо одного показателя появляется последовательность взаимосвязанных характеристик.
Вместо одной операции:
система операций.
Вместо одного результата:
генеративная история.
Отсюда возникают два направления.
Прямое металогарифмирование стремится анализировать и восстанавливать характеристики подобной структуры.
Обратное металогарифмирование разворачивает структуру и порождает её результаты.
Таким образом металогарифм становится одновременно:
аналитическим;
и:
генеративным
объектом.
Это первый фундаментальный переход книги:
LOGARITHM
-> METALOGARITHM
Но уже здесь становится очевидно, что следующий шаг неизбежен.
Если металогарифм содержит множество взаимодействующих ступеней, его нельзя полностью понять как одну простую числовую функцию.
2. От металогарифма к операторной системе
Введение ранга изменяет характер всей конструкции.
Ранг означает внутреннюю глубину одной полной операции.
Итерационность задаёт количество повторений этой операции.
Асимметрия позволяет независимо изменять основание и сублогарифм.
Модификаторы воздействуют на отдельные параметры или целые структуры.
Законы перехода определяют, как одно состояние порождает следующее.
Получается:
STATE_k
-> OPERATOR
-> STATE_(k+1)
При этом само состояние может включать:
A_k
SL_k
R_k
I_k
K_k
M_k
и другие характеристики.
Следовательно, металогарифм перестаёт быть просто формулой.
Он превращается в систему состояний и операторов.
Более того, начинают изменяться сами операторы.
Например:
R_next = 2R
может смениться на:
R_next = R^2
затем:
R_next = R^R
То есть объектом развития становится уже закон.
Отсюда возникает понятие:
операторной трансволюции.
Изменяются:
не только числа;
не только параметры;
но:
операторы;
композиции;
законы;
метазаконы.
Так ОТМ постепенно приобретает черты общей теории эволюционирующих операторных структур.
3. От операторной системы к математическому генотипу
Следующий переход возникает тогда, когда сложный оператор используется как одна единица более высокого уровня.
Например:
SML N
представляет чрезвычайно компактную запись.
Но её семантика включает:
начальный объект;
ранг;
число итераций;
внутренний закон;
правило наследования результата.
Таким образом короткая запись представляет целую генеративную архитектуру.
Это приводит к принципу:
семантическая мощность записи определяется не количеством её символов, а объёмом структурированной генерации, которую она способна однозначно развернуть.
Если такие высокосемантические блоки объединяются:
C1 ][ C2 ][ C3
возникает кодонная композиция.
Отдельный оператор становится кодоном.
Система кодонов:
генотипом.
Тогда математический объект можно представить схемой:
GENOTYPE
-> GENERATION
-> PHENOTYPE
Число является фенотипом.
Генотип описывает способ его порождения.
Именно здесь появляется важнейшее различие.
Два генотипа могут породить одно числовое значение, оставаясь структурно различными.
Следовательно:
числовая идентичность
и:
генотипическая идентичность
не обязательно совпадают.
Для обычной арифметики это различие вторично.
Для Изольдионики и будущей Теории Ланумов оно становится фундаментальным.
4. От генотипа к неэксплицируемому объекту
Генотипическая запись способна быть чрезвычайно короткой.
Фенотип при этом может быть гигантским.
Это видно уже на обычной степенной записи.
10^100
короче полного цифрового представления гугола.
Для:
SML 100
разрыв радикально возрастает.
Короткий генотип задаёт:
100 ранговых ступеней;
100 внешних итераций;
всего 10000 последовательных внутренних самостепенных преобразований в канонической модели.
Полное синтаксическое дерево значительно больше.
Полная цифровая запись результата находится ещё дальше.
Таким образом появляются несколько разных масштабов:
размер генотипа;
операционная глубина;
размер полностью раскрытой формулы;
размер цифрового фенотипа.
Именно это приводит к понятию:
неэксплицируемого объекта.
Объект может быть:
строго определён;
конечен;
генеративно описан;
но практически недоступен для полной записи на некотором нижнем уровне представления.
Это один из центральных результатов всей книги.
Определимость объекта не требует полной экспликации его фенотипа.
5. От неэксплицируемого объекта к иерархии экспликационных уровней
Если объект невозможно раскрыть на одном языке, возникает естественный вопрос:
можно ли представить его на другом?
Так была введена предварительная лестница:
E0
E1
E2
...
EN
На E0 объект представляется непосредственно — например цифровой записью.
На E1 используется символический или генеративный оператор.
На E2 описывается генератор конструкций E1.
На E3:
генератор генераторов.
И так далее.
Здесь возникает общий принцип:
то, что является огромной конструкцией на уровне EN, может стать одной элементарной единицей на уровне E(N+1).
Но этот переход имеет смысл только при строгом условии.
Нельзя просто назвать чрезвычайно сложный объект одной буквой и объявить проблему решённой.
Новый уровень должен иметь:
определённый язык;
грамматику;
семантику;
правила декодирования;
реальный механизм генерации нижнего уровня.
Именно поэтому простое переименование не является семантическим подъёмом.
Настоящий семантический подъём:
сворачивает структуру нижнего уровня в формально определённый примитив верхнего.
6. От математической записи к математическому языку высокого порядка
После введения экспликационных уровней меняется само понимание математического языка.
Язык перестаёт быть только способом записывать уже известные объекты.
Он становится средством создания новых единиц мышления и генерации.
Исторически подобный процесс происходил неоднократно.
Повторяющиеся действия сворачивались в операции.
Операции — в функции.
Повторение функций — в операторы более высокого порядка.
ОТМ продолжает этот процесс.
Металогарифм представляет множество степенных преобразований как единую структуру.
SML сворачивает рангово-итерационный комплекс в одну инструкцию.
Кодон сворачивает сложную математическую функцию в одну единицу генотипа.
Таким образом язык постепенно становится всё более высокосемантическим.
Возникает лестница:
DIGIT
-> SYMBOL
-> OPERATOR
-> MACROOPERATOR
-> CODON
-> GENOTYPE
-> METACODON
-> METAGENERATOR
Главный принцип здесь можно выразить следующим образом:
повышение уровня языка не обязательно увеличивает математический объект. Оно увеличивает мощность единицы выражения.
7. От математического метаязыка к генеративному программированию
Этот принцип непосредственно переносится в программирование.
Машинный код состоит из крайне низкоуровневых инструкций.
Ассемблер делает их символическими.
Высокоуровневые языки вводят:
функции;
объекты;
модули;
абстракции.
Ещё более высокий уровень способен использовать:
архитектуры;
предметные модели;
генераторы;
семантические компоненты
как единицы языка.
Возникает программный аналог математического генотипа.
PROGRAM GENOTYPE
-> GENERATION
-> EXECUTABLE PHENOTYPE
В перспективе программист может всё меньше описывать:
как выполнить каждое действие,
и всё больше:
что должно быть создано;
какие свойства оно должно иметь;
какие ограничения нельзя нарушать.
Так происходит переход:
COMMAND
-> ALGORITHM
-> MODEL
-> GENOTYPE
-> INTENTION
Но сложность при этом не исчезает.
Она переносится:
в компиляторы;
кодоны;
библиотеки;
ИИ;
верификаторы;
исполнительные среды.
Поэтому будущее генеративного программирования требует не только более мощной генерации, но и:
семантической трассировки;
многоуровневой декомпиляции;
объяснимости;
проверяемости.
8. ОТМ в системе Изольдионики
Внутри Изольдионики ОТМ приобретает новое положение.
Она перестаёт быть всей системой.
Она становится одним из её развитых модулей.
Металогарифм превращается в:
кодон.
SML:
в высокоскоростной кодон;
управляющий кодон;
в определённых системах — метакодон.
Рядом с ними могут существовать:
изольдиационные кодоны;
ноофакторальные;
многосоставные;
другие операторные семейства.
Из них формируются:
генотипы;
операторные сети;
геномы.
Таким образом Изольдионика может рассматриваться как проект многоуровневого математического языка, в котором существует большой семантический алфавит операторных единиц.
ОТМ в этой системе выполняет две важные функции.
Первая:
предоставляет класс исключительно мощных генераторов.
Вторая:
служит модельным примером того, каким образом сложная математическая теория может быть свёрнута до кодона следующего уровня.
Именно вторая функция, возможно, окажется наиболее значимой.
9. Саморефлексивные металогарифмы и Теория Ланумов
SML занимает особое место во всей архитектуре книги.
Каноническая конструкция:
SML N
синхронизирует:
A=N
R=N
I=N
Один параметр выполняет несколько структурных ролей.
Это создаёт исключительно плотную генеративную запись.
Но ещё важнее возможность использовать результат SML не как конечный фенотип.
Он может стать:
рангом следующего объекта;
итерационностью;
числом кодонов;
размером сети;
параметром метагенератора.
Тогда:
phenotype
одного уровня
становится:
generator parameter
следующего.
Именно этот переход является одним из мостов к Теории Ланумов.
Ланум в предлагаемой перспективе — это уже не просто большое число.
Его идентичность может включать:
фенотип;
генотип;
геном;
операторную среду;
экспликационный профиль;
историю трансволюции.
Поэтому путь:
METALOGARITHM
-> SML
-> CODON
-> GENOTYPE
-> GENOME
-> LANUM
является не просто лестницей величины.
Это лестница организации математического объекта.
10. Сверхбольшие числа как инструменты исследования бесконечности
Сверхбольшие числа имеют значение не только как рекорды.
Само соревнование:
«какое число больше?»
представляет лишь самую поверхностную сторону проблемы.
Гораздо более содержательный вопрос:
каким образом конечные генеративные системы могут приближать человеческое мышление к границам представимости, вычислимости и эксплицируемости?
Гигантские конечные числа позволяют исследовать:
разрыв между конечным и практически непредставимым;
отношение записи и объекта;
границы вычислительных ресурсов;
иерархии операторов;
структуру быстрорастущих функций;
переход между уровнями математического языка.
При этом необходимо сохранять строгое различие.
Как бы велико ни было конечное натуральное число:
оно не является классической математической бесконечностью.
После него существует:
N+1
Поэтому сверхбольшие числа не «достигают» бесконечности.
Но они могут служить инструментами исследования того, каким образом конечное мышление строит всё более мощные средства работы с идеей бесконечного.
Именно в этом смысле ОТМ может оказаться полезной для будущего философско-математического исследования бесконечности.
11. Экспликационные иерархии как инструмент исследования конечно-бесконечных объектов
В книге был предложен специальный термин:
конечно-бесконечные объекты.
Он не отменяет классической конечности.
Объект остаётся конечным математически.
«Бесконечность» здесь относится к его положению относительно некоторого экспликационного горизонта.
Например:
объект конечен;
но его цифровая запись недоступна.
Он становится условно бесконечным на E0.
Другой объект:
не может быть полностью выражен и на E1.
Он требует E2.
Таким образом можно исследовать не одну границу:
finite / infinite
а целую лестницу:
explicable at E0
non-explicable at E0, explicable at E1
non-explicable at E1, explicable at E2
...
Именно поэтому экспликационная иерархия представляет самостоятельный инструмент.
Она позволяет классифицировать объекты не только по величине, но и по семантической высоте языка, необходимого для работы с ними.
12. Нооинженерия математических миров
После перехода от числа к генотипу возникает новая постановка задачи.
Можно не только находить или вычислять математические объекты.
Их можно проектировать.
Например, заранее задаются:
желаемый тип роста;
ранговый профиль;
итерационный режим;
кодонный состав;
экспликационный уровень;
режим трансволюции.
После этого строится генотип, удовлетворяющий этим условиям.
Это уже инженерная логика.
Так возникает:
нооинженерия математических объектов.
Следующий шаг ещё шире.
Можно проектировать не отдельный объект, а:
целый класс объектов;
математическую среду;
систему законов;
генераторы генотипов;
операторную «физику» искусственного математического мира.
Тогда нооинженерия становится проектированием:
математических миров.
Такой мир может содержать:
собственные базовые объекты;
свои операторные законы;
механизмы генерации;
эволюцию;
метаправила.
В этом смысле высокосемантическая математика приближается к конструированию целых пространств формальных возможностей.
13. Операционализация теогонических иерархий
Наиболее философски далёкая перспектива книги связана с идеей операционализации теогонических иерархий.
Здесь особенно важно не смешивать математику с утверждениями о существовании сверхъестественных сущностей.
ОТМ сама по себе не доказывает:
существование богов;
демиургов;
каких-либо религиозных объектов.
Речь идёт о другом.
Традиционные теогонические системы часто вводят иерархии сущностей по их творческой или миропорождающей мощности.
Математическая генеративная теория позволяет задать похожий вопрос в формальной форме:
какие классы миров способна породить система данного уровня?
Например:
уровень A способен создавать числа.
Уровень B:
генераторы чисел.
Уровень C:
системы генераторов.
Уровень D:
системы, создающие новые системы законов.
Так можно определить иерархию генеративных возможностей.
Условно:
G0
создаёт объекты.
G1
создаёт генераторы G0.
G2
создаёт системы G1.
G3
задаёт законы появления систем G2.
Такая иерархия может служить формальной моделью различий между уровнями творческой мощности.
В языке более широкой философии Изольдионики подобные уровни могут интерпретироваться как модели:
нооформаций;
демиургических систем;
теогонических иерархий.
Но математическое содержание остаётся чётким:
речь идёт о классификации генеративной способности систем.
Именно в этом смысле возможна операционализация теогонии:
не как доказательство метафизики,
а как создание формального языка для сравнения уровней способности порождать:
объекты;
законы;
миры;
системы миров;
генераторы подобных систем.
14. Перспектива новых языков математики, программирования и мышления
Самая широкая перспектива ОТМ связана, возможно, уже не с числами.
Главный механизм книги можно выразить одной схемой:
complex structure at level N
-> elementary unit at level N+1
Именно так развивается математический язык.
Именно так развивается программирование.
Возможно, аналогично может развиваться и мышление.
На обычном когнитивном уровне человек работает с отдельными понятиями.
На более высоком:
с моделями.
Затем:
с теориями.
Но теория сама может стать единицей следующего уровня мышления.
Тогда несколько теорий объединяются в:
метатеорию.
Несколько метатеорий:
в более высокий когнитивный объект.
Условно:
M0
-> M1
-> M2
-> ...
-> MN
Можно ввести перспективное понятие:
семантической высоты мышления.
Она характеризует уровень сложности смысловых объектов, которыми интеллект способен оперировать непосредственно, не раскрывая каждый раз их внутреннюю структуру.
Тогда возникает общий метапринцип:
интеллект развивается не только за счёт увеличения количества информации, но и за счёт повышения уровня смысловых единиц, которыми он способен непосредственно манипулировать.
Это напрямую соединяет ОТМ с будущей Технологией Метаорганона.
ОТМ исследует:
многоуровневую генерацию математических объектов.
Генеративное программирование:
многоуровневую генерацию исполняемых систем.
Метаорганон:
многоуровневую организацию мышления.
Во всех трёх случаях действует один принцип:
сложная система нижнего уровня становится компактной операциональной единицей более высокого семантического уровня.
ИТОГ
Путь, пройденный в этой книге, можно представить одной последовательностью:
LOGARITHM
-> METALOGARITHM
-> CASCADE
-> RANK
-> ITERATION
-> SML
-> OPERATOR SYSTEM
-> CODON
-> GENOTYPE
-> GENOME
-> LANUM
-> EXPLICATION HIERARCHY
-> MATHEMATICAL METALANGUAGE
-> GENERATIVE PROGRAMMING
-> NOOENGINEERING
-> METAORGANON
Начав с вопроса о расширении логарифмической операции, мы пришли к вопросу о многоуровневой организации генерации вообще.
Именно поэтому Общая теория металогарифмов в её настоящем виде является одновременно:
математической гипотезой;
проектом формального аппарата;
языковой системой;
исследовательской программой.
Многие введённые здесь понятия ещё требуют:
строгой аксиоматики;
доказательств;
теории эквивалентностей;
инвариантов;
исследования вычислимости;
машинной реализации.
Это не недостаток, который следует скрывать.
Это граница между уже построенной концептуальной системой и будущей строгой теорией.
На следующем этапе необходимо пройти путь:
IDEA
-> DEFINITION
-> AXIOM
-> THEOREM
-> ALGORITHM
-> INTERPRETER
-> VERIFICATION
Если этот путь будет пройден, ОТМ сможет занять место не только как авторская система обозначений сверхбольших чисел, но как самостоятельный аппарат исследования:
генеративных операторов;
их эволюции;
многоуровневой экспликации;
математических метаязыков.
Но даже на нынешнем концептуальном уровне уже проявляется главный принцип всей книги.
Математическое развитие не обязано состоять только в создании всё более крупных объектов.
Оно может состоять в создании всё более высоких уровней, на которых такие объекты становятся доступными для мышления и операций.
Поэтому конечной целью ОТМ является не максимальное число.
Не самая длинная формула.
Не самый быстрый отдельный оператор.
Её более глубокая задача заключается в исследовании того, как:
создавать новые уровни математической генерации, на которых прежде неохватимые структуры превращаются в управляемые смысловые единицы.
Если этот принцип окажется плодотворным, его значение выйдет далеко за пределы металогарифмов.
Он сможет стать одним из оснований:
новой генеративной математики;
Изольдионики;
Теории Ланумов;
семантического программирования;
нооинженерии;
и, в предельной перспективе, технологий организации самого мышления.
В таком случае металогарифм окажется не конечным результатом данной теории.
Он станет её первым кодоном.
***************
Свидетельство о публикации №226101601549