# pro.02_10 Диалектическая онтология типов

Диалектическая онтология типов подчиняется тем же законам, что и весь диалектический материализм.

- От отрицания простого, к снятию противоречия в виде сложного.
- От базового, к обобщённому.

## Диалектическая онтология типов как отражение структуры объективной реальности.

Мы уже отвергли идеалистические перекосы:

- `nil` как "сущее небытие",
- динамика как хаос,
- синтаксис как идеалистическая бюрократия.

Но теперь настал момент синтеза:

- от отрицания простого (примитивных типов)
- к снятию противоречия в форме составного, обобщённого, развивающегося

к диалектической онтологии типа.

## Диалектический путь развития понятия "тип"

### Простое (метафизика)

Базовый тип — ярлык, классификация. Неподвижен.

В терминах `prolet` базовый тип называется *кварк*. Кварки встроены в `prolet` и являются инвариантами информационной материи. Кварки нельзя ни отменить, не переопределить.

`действие`, `бул`, `байт`, `целое`, `вещ`, `строка`

> 💡 Противоречие: кварки не отражают в полной мере структурную сложность мира. Возникает потребность в нуклонах -- протонах и нейтронах, единственная возможность быть для которых -- быть основанными на кварках.

`Яблоко` , `Груша` , `Час`, `СписокРабот`

Кроме того, `целое` — как кварк не просто число, а объект с поведением. Поведение объекта, способы взаимодействия с миром определяются свойствами самого объекта. С другой стороны, те же свойства объекта диалектически накладывают ограничения на тот же объект.

### Снятие противоречия (синтез)

Кварк, отношение, материя в движении. Аксиоматический тип, существующий вечно и служащий строительным материалом для порождения протонов и нейтронов.

Это — не эволюция, а революция в мышлении:

- кварк перестаёт быть самостоятельной сущностью,
- и становится протоном или нейтроном -- формой существования материи в информационной сфере.

> 💡 `целое` не просто как один из кварков, а как фундаментальный тип реальности.

## Критика метафизического подхода к типам

Ошибка: тип как "вещь в себе"

В `C` , `Java` , `Python` : `int` — это нечто отдельное, не связанное с практикой.

Но в реальности:

- Целое в банковской системе ≠ Целое в физике частиц,
- Строка в **UI** ≠ Строка в криптографии.
- Метафизика абстрагируется от содержания,
- идеализм отрывает форму от материи.

Нет никакого абстрактного `int` . Есть:

- число яблок
- число груш
- число аршин сукна

Это всё целые числа, но это *разные* целые числа. Нельзя складывать *число яблок* с *числом груш*. Это разные *числа*. Но, складывая эти разные числа -- можно получить *число фруктов*, как число нового типа.

> ⚠️ Важное замечание: арифметический знак `+` при подобном сложении будем неадекватным, так как не отражает *диалектический процесс превращения* одного вида материи в другой.

## Диалектическая онтология типа: тип как единство формы, содержания и практики

Принципы:

### Нуклон — не ярлык, а категория бытия

Отражает объективную структуру предметной области.

### Нуклон возникает в практике

Не задаётся сверху, а вырастает из задачи, из реальных условий.

### Нуклон — в движении форм материи

Развивается, дополняется, трансформируется.

### Нуклон — отношение форм материи

Не изолирован, а связан с другими нуклонами через кварки, с памятью, с временем.

### Нуклон — результат познания материи

Чем глубже понимание — тем точнее свойства нуклона. Нуклон — это не только ответ на вопрос "что это", но и "почему", "каким образом", "зачем", "каким именно способом".

## Путь от базового к обобщённому: три стадии онтологического развития

### Стадия 1: Отрицание абстрактов (антипод метафизике)

Мы отрицаем существование "абстрактных типов" как таковых. Как свободные кварки отсутствуют в природе, так и:

Нет `int` . Есть `Счёт` , `Индекс` , `Количество` , `КодОшибки` .

Нет `string` . Есть `Имя` , `Хэш` , `Запрос` , `Ответ` .

```prolet
(протон Рубль или Рубля или Рублей (// синонимы типа)
  (// Абстракция на основе кварка)
  @_кварк    целое

  (// Допустимый диапазон на базе кварка, как инвариант типа)
  @_диапазон (0 999_999_999)

  (// Допустимые операции над конкретным типом, как контракт на поведение)
  @_операции (слож выч)
)
```

> 💡 Кварк не уничтожен, но содержится на новом уровне — уровне протона/нейтрона как осмысленная категория с политиками общественных отношений.

### Онтологическое уточнение: атрибут `@_кварк целое`

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

Это — *ключевое* уточнение, которое позволяет не отступать от диалектического материализма, но признать относительную самостоятельность цифрового, равно и математического мышления как *специфической формы отражения реальности*.

### Интерпретация

| ПОНЯТИЕ                      | СТАТУС В ОНТОЛОГИИ PROLET                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Физический дискурс | Специфическая физическая практика, в которой аксиома (вроде кварка `целое`) обращаются как первичная данность, <br />и результат высшего обобщения физической практики (исследовали камни, яблоки, дни — и выделили первичную форму)                                                                                                                                                                                                                                                            |
| Языковой дискурс     | Специфическая общественная практика, в которой кварк `целое` приобретает явные множественные формы <br />(число камней, яблок, дней) с общими и частными атрибутами, но контекст задаётся программистом (определяется конкретный тип).                                                                                                                                                                                                                                                        |
| Аппаратный дискурс | Специфическая вычислительная практика, в которой произвольно смоделированный тип программистом отражается на<br />реально существующую аппаратуру в доступной форме. В ходе изменения формы сущности преходят атрибуты типа, которые <br />фактически становятся ограниченными конкретными операциями в конкретном алгоритме<br />(обратный переход качества в количество). |
| @_кварк                        | Указание на форму, заимствованную из физического дискурса, но используемую как инструмент для организации сущего                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |

Это — далеко от платонизма, по сути это признание автономии отражения на разных уровнях бытия.

Как язык отражает мир, так и аппаратура, так и физика — отражает количественные отношения, и эти отношения не существуют вне практики.

## 📜 Принципы объявления протонов `prolet`

- Протон — только материализованная форма сущего
- `целое`,  `строка`,  `вещ`,  `бул`, `байт`, `действие` — связанные кварки, получающие отражение на низком уровне в аппаратуру (реальность).
- `@_кварк` — не наследование, а встраивание формы из дискурса физического аппарата
- Протон всегда имеет социальный контекст состояния
- Без атрибутов, отражающих практику — *нет протона*
- Определение вида c использованием кварка `(протон Яблоко @_кварк целое ...)`,
- Протон может быть основан на любом кварке (кроме кварка `действие`), и только одном кварке. Но атрибутов протона может быть по необходимости.

## 📜 Принципы объявления нейтронов `prolet`

- Нейтрон — только материализованная форма сущего
- `действие` — связанный кварк действия, получающие отражение на низком уровне в аппаратуру (реальность).
- `@_кварк` — встроенный специфичный кварк, заимствование формы из дискурса физического аппарата
- Нейтрон всегда имеет социальный контекст действия,
- Без атрибутов, отражающих практику — *нет нейтрона*
- Определение нейтрона c использованием кварка `(нейтрон @_кварк действие ...)` — без действия ошибка онтологии, запрещено,
- Нейтрон может быть основан только на кварке `действие`, и только одном кварке. Но атрибутов нейтрона может быть по необходимости.

## Стадия 2: Сложное — как единство противоположностей

Атом — не просто структура с набор свойств, а единство противоречий:

```prolet

(// любой нуклон построен на единственном кварке,
        но число атрибутов может быть любым)
(протон Роль или Права
    @_обязательно
    @_кварк Перечисление
    @_выбор_ (Админ Пользователь Гость)
    @значение Гость (// По умолчанию, можно менять)
    @_док "Роль пользователя в системе"

(протон ПользовательНомер
    @_обязательно
    @_кварк          Целое
    @_диапазон      (1 999_999_999)
    @_автоИнкремент
    @_уникально
    @_док ( "идентификация пользователя в системе")

(протон Имя или Название
    @_кварк      Строка
    @_умолчание "Иван"
    @_док       "идентификация пользователя в системе")

(// любой атом имеет множество нуклонов и атомов, число атрибутов может быть любым)
(атом Пользователь
    @_номер ПользовательНомер
    @имя  Имя (// Можно менять)
    @счёт Счёт
    @роль Роль
    @если_акт Активность
)
```

Свойство в атоме может ссылаться только на нуклоны или на атом (этот же или другой) — то есть на материализованное сущее (нуклон или атом).

Атом, который содержит другой атом или нуклоны -- могут быть определены позже, но до момента начала семантического анализа.

Прямая ссылка на кварк вне протона или нейтрона — запрещена.

Все атрибуты в нуклоне, помечены префиксами:

- `@_кварк` -- системный, нельзя изменить

В приведённом синтаксисе объявления атома достигается единство формы и содержания:

- Разделение "атрибут vs поле" — идеализм, ведущий к ложному противопоставлению "сущности" и "её атрибутов". В предлагаемом подходе всё является свойством. Кварк `целое` *должен* быть отражён на реально существующий носитель -- протон, который *неизбежно* приобретает дополнительные атрибуты (в том числе контракт, как социальная политика).
- В реальности — есть только объект с характеристиками: у человека — имя, возраст, роль, статус, история.
- Нет "основных данных" и "метаданных" — есть все данные как единое сущее.

### Философский и практический смысл

|           АСПЕКТ           | ОБЪЯСНЕНИЕ                                                                                                                                                                                                                                                                                                                                                                                                   |
| :-------------------------------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|        Онтология        | Нуклон — не шаблон, а форма сущего в практике.<br />Если в практике номер всегда уникален и присваивается автоматически, то такое значение — часть его бытия, а не внешнее условие.<br />Контекст не может переопределить его кварк. |
|    Единство формы    | Если ПользовательНомер используется в 10 атомах — не нужно 10 раз писать `@уникально`. Нарушение — на уровне протона или нейтрона, а не контекста.                                                                                                                                                 |
|     Безопасность     | Система гарантирует уникальность и обязательность на уровне нуклона, а не доверяет нуклону "не забыть".                                                                                                                                                                                                                          |
| Эволюция практики | Если правило изменится (например, номер перестанет быть авто-инкрементным), —  меняется одно свойство в нуклоне,<br />а не в конкретном контексте.                                                                                                                                                 |

### Принципы проектирования в prolet

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

## Форма 3: спецификация — тип как отношение

```prolet
(спец Хранилище
    @_док "Абстракция работы с хранилищем"
    (Нов (ИмяФайла имя) Хранилище.Рез)
  
    @_док "Создаёт новое именованное хранилище"
    (ФайлПолуч (ИмяФайла имя) СписБайт.Рез)

    @_док "Читает файл с диска")
    (ФайлЗаписать (ИмяФайла имя   СпиСписБайт данные) ЕслиОк.Рез @изм)

    @_док "Записывает файл на диск")
    (Закрыть ()ЕслиОк.Рез)
)

(Хранилище (
    (Нов "тест_хран")(уст хран)
    (ФайлПолуч "test.txt")
)
```

Спецификация определяется не сущностью, а связями — как в диалектике.

- спецификация — объявляет форму взаимодействия, а не математическую сигнатуру
- Каждое действие — глагол, отражающий практику
- Параметры: `(%Тип %имя %Тип %данные)` — именованные, ссылаются на нуклоны и атомы
- Возврат: (%Результат %Тип) — атом, отражающий результат практики
- Возвращаемый результат может отсутствовать
- Все нуклоны и атомы в спецификации должны так или иначе существовать, кварки запрещены (только на самом низком уровне)
- @_док и др. свойства — не обязательны для каждого метода и спецификации, но можно потребовать обязательность на уровне проекта или конкретного действия
- Спецификация не содержит реализации — только действия с параметрами и возвращаемые значения

## Онтологическая иерархия типов

> 💡 Это — спираль развития, а не лестница. Каждый новый уровень — не просто добавление, а результат борьбы и единства противоположностей.

```mermaid
flowchart LR
subgraph Практика
    direction TB
    Субъект --> Цели
    Цели --> Задачи
    Задачи --> Требования
end

subgraph prolet
    direction TB
    subgraph Нуклоны
        direction LR
       Протоны
       Нейтроны
    end
    Спецификации --> Атомы
    Спецификации --> Нуклоны
    Атомы --> Нуклоны
    Нуклоны --> Кварки
end

subgraph СинтезАппарат
    direction TB
    АппаратныйТип1
    АппаратныйТип2
end

Практика --> prolet
prolet --> СинтезАппарат
```

## Практические гарантии онтологии

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

## 🎯 Заключение: онтология как отражение мира

- предложенная онтология отрицает метафизику примитивов,
- Разрешает противоречие между простым и сложным,
- Снимает противоречие в универсальной форме,
- Делает спецификацию не абстрактной сущностью, а категорией бытия, движения и отношения.

Это — не просто система типов, это — модель познания мира:

`от чувственного (примитив)` → `к рациональному (сложное)` → `к диалектическому (обобщённое)``.

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