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

KLT-MATDES + ARBD · Исполнимый контракт и тестовое досье · v1.0 · 14 сентября 2026 года

Автор проекта «ЛОГИКА КУРПИШЕВА 2»: Курпишев Иван Борисович. Программная реализация и подготовка досье выполнены с помощью Codex.

Результат этой сборки

Подготовлен самостоятельный исполнимый слой SE3 поверх неизменённых SE1/SE2: SQLite-журнал, раздельные команды freeze/check, полный экспорт JSON и проверка повторным вычислением. Сначала сохраняются исходный StateSpec, модель, горизонт, прогноз, контекст и правило оценки. Последующее StateSpec принимается отдельной операцией. Первое сопоставимое наблюдение закрепляет основной результат, включая промах.

Проверенный результатЗначение
Автоматические тесты50: 38 SE3 + 12 SE2; failures=0, errors=0
Демонстрация15 сценариев; 34 записи журнала
Исходные файлы реализации SE219 файлов сохранены побайтно; реестр UPSTREAM_SE2.json
Новые прогнозы реальных материалов0; real_corpus_forecast=NOT_RUN
Внешний или независимый слепой прогонНе выполнен; EXT-RUN=NOT_RUN

Доказательная граница

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

physical_reachability = NOT_ESTABLISHED
parameter_identification = NOT_PERFORMED
science = ABSTAIN; truth_layer_promotion = 0

Основание: KLT_MATDES_ARBD_FORECAST_SE2.pdf от 12.09.2026, страницы 1-3, особенно пункт SE3 плана продолжения на странице 3. PDF прочитан полностью; также проверены исходные forecast.py и states_events.py. Изменения сайта и замороженных томов в эту сборку не входят.

1. Объекты контракта и порядок операций

Обозначим A = StateSpec начального состояния, M = TransitionModel, h = точный горизонт, F = ForecastRequest SE2, P = forecast(F), E = неизменяемое правило оценки. Новый freeze-пакет содержит F, E и метаданные выбора модели, но не последующее наблюдение. P вычисляется ядром заново; готовый прогноз из входа не принимается.

C = H({forecast_request: F, forecast_receipt: P,
       evaluation_policy: E, selection_context: S})

Здесь H - SHA-256 канонической UTF-8 JSON-записи с сортировкой ключей и без нечисловых JSON-констант. Численные координаты передаются строками. forecast_id связывает операции журнала; commitment_hash=C связывает check с точным содержимым фиксации.

ОперацияОбязательное содержание
freezeschema, forecast_id, forecast_request, evaluation_policy, selection_context
checkschema, forecast_id, commitment_hash, observed_state, chronology
exportПолная история, исходные входы, receipts, хеш головы, количества статусов, нерешённые прогнозы
verify / verify-exportПроверка структуры, цепочки и повторный расчёт всех решений

Переходы в журнале

Текущее положениеПопыткаРезультат
Прогноз не фиксированДопустимый freezeFROZEN; новый неизменяемый прогноз
Прогноз не фиксированcheckREJECTED; попытка сохранена
FROZENНесопоставимое StateSpecABSTAIN; прогноз ждёт допустимого сравнения
FROZENСопоставимое StateSpecEVALUATED; основной результат закреплён
Основной результат уже естьЛюбой новый checkREJECTED; прежний результат сохранён
forecast_id уже фиксированПовторный freezeREJECTED; перезапись запрещена

Также запрещается повторная фиксация идентичного ForecastRequest под новым forecast_id. Новая модель требует нового идентификатора и самостоятельной фиксации. Это не решает вопрос множественного выбора моделей: ни сводная точность, ни статистическое покрытие в SE3 не оцениваются. Декларативные JSON Schema находятся в schemas/; межполевая семантика и журнал проверяются arbd_chem.se3.

2. Условия допуска последующего StateSpec

Начальное и последующее состояния проверяются существующим валидатором SE1. Неизвестные значения и границы не заменяются нулём. SourceSpec требует ссылку на источник и source_hash, но сам факт наличия ссылки не аутентифицирует измерение.

ПроверкаТочное правило SE3 v1.0
Материал и структураРавны material_id и structure_key. Равенства одной химической формулы недостаточно.
Фаза, домен, свойствоРавны phase, domain, property_name. Поддержаны band_gap и bulk_modulus.
МетодТочное равенство method_class; автоматического соответствия разных методов нет.
Процессная шкалаРавны clock_id и kind=PROCESS_RELATIVE. Календарное время не заменяет процессное.
Целевой моментt_observed = t_initial + h в секундах; h>0; обе границы времени равны нулю.
УсловияНормализованные температура и давление совпадают целиком: значение, единица, абсолютная граница.
ПолнотаВсе количественные координаты и их абсолютные границы заданы; идентификатор состояния новый.
ОбластьГраницы неотрицательны; нижние концы интервалов свойства, температуры, давления и времени не ниже нуля.
Происхождение в этой сборкеНачальная и последующая записи имеют kind=MECHANICS_FIXTURE; реальные каналы блокируются.
ЦелостностьСовпадают commitment_hash и пересчитанные привязки состояния и модели; фиксация ранее присутствует в журнале.

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

Единицы и неопределённость времени

Канонические единицы: J, Pa, K, s. Преобразования и ограничения числового представления унаследованы из SE1; в том числе 1 eV = 1.602176634·10⁻¹⁹ J точно. SE1 ограничивает показатель десятичного представления по модулю 30; SE2 численное ядро имеет отдельный предел 40. Дополнительные конечные нули следует удалять точно, без округления, если они выводят строку за предел SE1.

Неточный момент наблюдения даёт ABSTAIN. SE3 не расширяет интервал прогноза по неопределённости времени, не интерполирует и не выбирает ближайшее наблюдение. Для этого потребуется отдельный заранее утверждённый закон и договор.

3. Математика сопоставления и смысл интервалов

При принятом в SE2 аффинном законе q(h)=q0+v·h и границе u(h)=u0+uv·h прогноз задаёт центр m=q(h) и закрытый интервал I=[L,U]=[m-u(h),m+u(h)]. Это детерминированная оболочка условного множества начальных значений и постоянных скоростей, а не вероятностный прогнозный интервал.

Для последующего StateSpec пусть y - заявленный центр свойства, u_y≥0 - его абсолютная граница. Наблюдательный интервал O=[a,b]=[y-u_y,y+u_y]. SE3 вычисляет:

delta = y - m;  absolute_deviation = |delta|
center_hit = (L <= y <= U)
O = [a,b] = [y-u_y, y+u_y]
gap(I,O) = max(0, L-b, a-U)
residual_interval = [a-U, b-L]
ОтношениеУсловиеЗначение
CONTAINEDL ≤ a и b ≤ UВесь заявленный интервал O лежит внутри I
OVERLAPmax(L,a) ≤ min(U,b), O не содержится в IПересечение непусто, включая касание
DISJOINTmax(L,a) > min(U,b)Заявленные интервалы разделены

Попадание центра и отношение интервалов - разные показатели. Центр может лежать вне I при пересечении интервалов; центр может лежать внутри I, когда часть O выходит за его пределы. Промах не является ошибкой формата и не даёт ABSTAIN: это законный результат EVALUATED с center_hit=false.

Условные свойства

Если z принадлежит O, а q принадлежит I, то a-U ≤ z-q ≤ b-L. Крайние разности достигаются в противоположных углах прямоугольника O×I; поэтому указанный интервал - точная оболочка всех разностей при этих предпосылках. gap=0 эквивалентно непустому пересечению закрытых интервалов. Это утверждения об объявленных множествах, без гипотезы о распределениях ошибок.

При положительном линейном пересчёте единицы координаты порядок концов и все булевы решения сохраняются; отклонение и зазор пересчитываются тем же коэффициентом. Температурное смещение degC→K выполняется до проверки условий. Вычисления сравнения используют Decimal с точностью контекста 300; входные границы остаются унаследованными.

Ошибка самого закона, переменные возмущения и незаявленная смена фазы не включаются в u(h). Даже серия совпадений концов не выводит постоянство скорости и не устраняет неидентифицируемость траекторий, зафиксированную в SE2.

4. SQLite-журнал, неизменяемость и проверка

ЭлементРеализация
metaОдна запись: версия контракта, journal_id, локальное время создания, хеши исполнимых файлов и SQL-схемы, доказательные статусы.
entriesseq, operation, forecast_id, disposition, body, event_hash. body содержит исходный ввод, разобранный пакет, receipt и предыдущий хеш.
ИндексыUNIQUE для успешной фиксации forecast_id; отдельный UNIQUE для основного EVALUATED.
ТриггерыОтклоняют UPDATE/DELETE в meta и entries; проверяется сохранность SQL-схемы.
ТранзакцияBEGIN IMMEDIATE → проверка истории → решение → INSERT → COMMIT. При системной ошибке ROLLBACK.
ЭкспортСогласованный снимок внутри read-транзакции; файл создаётся только по свободному имени.
previous_hash(1) = H(meta)
event_hash(n) = H(event_body(n))
previous_hash(n+1) = event_hash(n)

Каждая новая операция предварительно проверяет всю историю: последовательность, хеши, согласованность SQL-колонок и JSON, сохранность исходного ввода и повторный расчёт решений. Результат пересчитывается с прежним прогнозом, прежней политикой и записанными локальными временами. Изменение исходных исполнимых файлов требует отдельной версии журнала.

Какие попытки сохраняются

Сохраняются FROZEN, EVALUATED, ABSTAIN и REJECTED, включая неверный JSON, повторный ключ JSON, повторный forecast_id и попытку заменить промах. Для входа до 1 MiB сохраняются UTF-8-текст, число байтов и SHA-256. Для более крупного или не-UTF-8 входа - размер и хеш; само содержимое не сохраняется. Файлы, которые не удалось прочесть, и операции, не дошедшие до записи из-за отказа диска, блокировки или обратного хода локальных часов, не объявляются сохранёнными.

Граница защиты

Триггеры и проверка повторным расчётом защищают штатный поток от перезаписи и несогласованной подмены. Пользователь с полным доступом к файлам способен пересоздать всю согласованную историю, заменить программу либо усечь журнал и пересчитать экспорт. Без внешне закреплённой головы цепочки это не исключается. Локальный SHA-256 не является доказательством авторства, времени или независимости наблюдения.

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

5. Хронология и неизменяемые научные статусы

Контракт различает процессное время StateSpec и календарные сведения о выборе модели, получении и доступности наблюдения. Эти сведения нельзя смешивать: процессные 5 секунд не подтверждают, что файл впервые увидели после фиксации.

ПолеПравило
model_selected_at_utcНе позже локального времени freeze; временная метка - заявление, а не внешняя аттестация.
outcome_access_before_freezeYES / NO / UNKNOWN фиксируется до check.
observed_at_utc, available_at_utcobserved_at ≤ available_at ≤ локальное время приёма check.
model_retuned_after_freezeYES / NO / UNKNOWN; последующая настройка не заменяет исходный прогноз.

RETROSPECTIVE_DECLARED назначается при доступе к исходу до фиксации, времени наблюдения/доступности не позже фиксации или заявленной последующей перенастройке. Если сведений о доступе либо перенастройке недостаточно, возможен ORDER_UNRESOLVED. Только при полностью согласованных декларациях более позднего получения используется LOCAL_ORDER_DECLARED_ONLY; это название не означает слепоту.

Независимо от декларативного порядка все включённые испытания имеют assessment_design=RETROSPECTIVE_SYNTHETIC_FIXTURE: сами значения известны при конструировании тестов. В пункте SE3 исходного PDF наблюдения после подбора модели названы ретроспективными без дополнительных критериев. Здесь эта граница сохранена консервативно: никакое такое совпадение не объявляется проспективным подтверждением. Для будущего реального протокола потребуется отдельно различить календарный порядок и использование исходов при выборе модели.

СтатусЗначение во всех receipts
physical_reachabilityNOT_ESTABLISHED
parameter_identificationNOT_PERFORMED
real_corpus_forecastNOT_RUN
independent_blind_test / EXT-RUNNOT_RUN
scienceABSTAIN
DHC_chemOPEN-NOT-CONFIRMED
truth_layer_promotion0
T6-RA5NOT_ISSUED
axiom_promotionDISABLED

Инвариант сохранения статусов: всякий сформированный receipt получает константный FIREWALL; численное сравнение возвращает только metrics и контрактное решение. При добавлении записи прежние записи не изменяются. Следовательно, по индукции по числу успешных добавлений ни одна штатная операция SE3 не повышает перечисленные статусы. Это свойство программы; оно не доказывает физическую истинность содержания.

6. Тестовые наблюдения и ожидаемые результаты

Общий fixture из SE2: q0=2 eV, u0=0.1 eV, v=0.02 eV/s, uv=0.005 eV/s, h=5 s, H=10 s. Получаем m=2.1 eV и I=[1.975;2.225] eV. В JSON метрики записаны в J; ниже для чтения используется eV. Все значения синтетические.

Сценарийy ± u_y, eVЦентр в IОтношение / статус
inside2.15 ± 0.025ДаCONTAINED; δ=+0.05
lower_boundary1.975 ± 0ДаCONTAINED; δ=-0.125
upper_boundary2.225 ± 0ДаCONTAINED; δ=+0.125
miss_high2.4 ± 0.01НетDISJOINT; gap=0.165
miss_low1.8 ± 0.01НетDISJOINT; gap=0.165
outside_overlap2.3 ± 0.1НетOVERLAP; gap=0
inside_wide2.1 ± 0.2ДаOVERLAP; gap=0
touching2.3 ± 0.075НетOVERLAP; касание в U
phase_mismatch2.15 ± 0.025Не оцениваетсяABSTAIN; другая фаза
method_mismatch2.15 ± 0.025Не оцениваетсяABSTAIN; другой метод
clock_mismatch2.15 ± 0.025Не оцениваетсяABSTAIN; другая шкала
target_time_mismatch2.15 ± 0.025Не оцениваетсяABSTAIN; t=6 вместо 5
missing_bound2.15 ± неизвестноНе оцениваетсяABSTAIN; граница не задана
wrong_commitment2.15 ± 0.025Не оцениваетсяREJECTED; другой хеш
real_source2.15 ± 0.025Не оцениваетсяABSTAIN; USER_SUPPLIED

Дополнительно: после miss_high отправлен удачный по числу исход, но получен PRIMARY_RESULT_ALREADY_LOCKED; исходный промах сохранён. После ошибки фазы отправлен сопоставимый fixture и законно выполнено первое сравнение. Также записаны повторный freeze и повреждённый JSON.

Итого в демонстрационном журнале: FROZEN=15, EVALUATED=9, ABSTAIN=6, REJECTED=4; всего 34 записи. Шесть прогнозов остаются без допустимого основного сравнения. Эти количества описывают ветви программы; делить число попаданий на число записей и объявлять предсказательную точность нельзя.

Полные пакеты и receipts: reports/SE3/SE3_DEMO.sqlite, SE3_JOURNAL_EXPORT.json, SE3_SCENARIOS.json. Хеш головы журнала сохранён в экспорте и контрольной точке.

7. Приёмочные тесты и фактическая проверка

Сохранённый запуск: Python 3.12.14, SQLite 3.53.1; 50 тестов, 0 failures, 0 errors. Перечень каждого теста и полный журнал находятся в docs/SE3_TEST_REPORT.json. Выполнены 38 новых SE3 и 12 унаследованных тестов forecast SE2.

Номера SE3Проверяемое обязательство
01-04Порядок freeze/check, точное отклонение, неизвестный прогноз, запрет дубликатов, неизменяемый промах.
05-10Материал, структура, фаза, домен, метод, свойство, часы, горизонт, время и постоянные условия; эквивалентные единицы.
11-14Точный перевод энергии, включённые концы интервала, различие попадания центра и пересечения интервалов.
15-18Пропуски, отсутствие границ, отрицательные/недопустимые числа, несовместимые единицы, запрет PredictedState в роли наблюдения.
19-22Закрытые схемы, отсутствие утечки исхода в freeze, предел горизонта, отсутствие модели, хеши, блок реального источника до forecast.
23-25Календарный порядок не доказывает слепоту; перенастройка не меняет прогноз; будущие и обратные даты отклоняются.
26-29Невалидный JSON сохраняется как отказ; UPDATE/DELETE запрещены; снятие триггера и подмена с пересчитанным хешем обнаруживаются.
30-33Конкурирующие фиксации и проверки дают один основной результат; повторная инициализация не стирает БД; отсутствующая БД не создаётся молча.
34-36Нерешённые прогнозы остаются видимыми; FIREWALL во всей истории; обратный ход часов и ошибка диска не создают фиктивного сохранения.
37-38Команды в отдельных процессах, JSON-экспорт без перезаписи; bulk_modulus в Pa и нулевой интервал без деления на ноль.

Тест конкурентной записи использует отдельные SQLite-соединения; тест ошибки диска моделирует отказ перед INSERT и проверяет отсутствие частичной записи. Тест подмены изменяет численное решение и пересчитывает локальные хеши: повторный расчёт выявляет расхождение receipt.

Полная историческая регрессия с реальной базой и её лицензиями не входит в эти 50 тестов. Неизменённый исторический test_states_events.py сохранён отдельно в upstream/tests, поскольку один его тест требует отсутствующие здесь корпусные входы. Численные строки реального корпуса в пакет не добавлялись. Нагрузочные и независимые внешние испытания не выполнялись.

8. Запуск, интеграция и точка отката

Минимальная среда ядра: Python 3.11+ с sqlite3; сторонние библиотеки не требуются. Команды запускаются из корня распакованного пакета. В примерах используются заранее известные fixture-данные.

python3 -m arbd_chem.se3 init --db new.sqlite
python3 -m arbd_chem.se3 freeze --db new.sqlite
  --input reports/SE3/inside.freeze.json
python3 -m arbd_chem.se3 check --db new.sqlite
  --input reports/SE3/inside.check.json
python3 -m arbd_chem.se3 export --db new.sqlite
  --output new_export.json
python3 -m arbd_chem.se3 verify --db new.sqlite

Перенесённые строки после имени команды следует вводить как одну команду. Полные однострочные команды находятся в README. freeze/check возвращают код 2 для ABSTAIN/REJECTED, сохранив receipt в журнале. EVALUATED возвращает код 0 и может содержать промах. Выходной файл export создаётся в режиме исключительного создания; существующий не перезаписывается.

python3 -m unittest discover -s tests -v
python3 scripts/run_se3_tests.py --output new_tests.json
python3 scripts/build_se3_demo.py --output new_demo

Подключение к программе

Интерфейс будущей интеграции: две отдельные серверные или локальные операции submit(db, FREEZE, raw_bytes) и submit(db, CHECK, raw_bytes). Вторая операция принимает только commitment_hash сохранённого прогноза. Клиенту следует показывать ABSTAIN с конкретными blockers; попадание центра и отношение интервалов выводить раздельно. Перед публикацией сайта требуется самостоятельная интеграционная проверка, сохранение прежней версии и точное согласование доступа к журналу.

Откат и воспроизводимость

SE3 добавляет arbd_chem/se3.py; унаследованные 19 файлов SE2 не изменены. Откат означает возврат к прежнему архиву SE2 или запуск прежнего модуля arbd_chem.forecast; таблицы и записи SE3 при этом не удаляются и не переписываются. В пакет включены исходный PDF, MD и JSON SE2, но не полный исследовательский корпус.

UPSTREAM_SE2.json фиксирует полный SHA-256 архива SE2, PDF и каждого перенесённого исходника. CHECKPOINT_SE3.json связывает текущий код, тесты, журнал, доказательные статусы и следующий этап. SHA256_MANIFEST.json охватывает файлы выпуска, кроме самого реестра; внешний SHA-256 ZIP находится рядом с ZIP.

Хеш исполнимых модулей этой сборки: 27e437179972738012b48fcd30c3d7dc / 33784be4707125052c53ac0914cb3587. Изменение кода требует нового выпуска; уже созданный журнал нельзя молча проверять другой реализацией.

9. Открытые обязательства и источники

Следующий научный цикл

ОбязательствоЧто требуется до реального прогона
CP2B-B3: данные и лицензииВосстановить первичные условия, методы, фазу, структуру, процессную шкалу и основания повторного использования; сохранить первичные документы.
Идентификация моделиЗадать измеряемый процесс и физически обоснованный класс эволюции; исследовать определимость параметров, ошибку закона и допустимый горизонт.
Предварительный протоколЗафиксировать корпус, критерии включения/исключения, модель, параметры, горизонт, интервальную семантику, основной исход, baseline и правило множественных сравнений.
Разделение данныхУстановить непересекающиеся временные и lineage-группы; проверить доступ к исходам и исключить настройку по проверочным наблюдениям.
НезависимостьЗакрепить прогноз и правила оценки до раскрытия; обеспечить отдельного хранителя/исполнителя и проверяемые свидетельства времени и доступа.
EXT-RUNВыполнить независимую сборку/расчёт или эксперимент; опубликовать все исходы, отказы и ограничения. До этого статус остаётся NOT_RUN.

Поля будущей реальной предрегистрации не заполнены предположениями. Текущая SQLite-фиксация является технической заготовкой, а не такой предрегистрацией. Расширение допуска с MECHANICS_FIXTURE потребует новой версии контракта и собственного досье оснований; запрет не снимается переименованием происхождения входа.

Источник проекта

[S1] Курпишев И. Б. KLT-MATDES + ARBD: модель и горизонт прогноза. Контрольная точка SE2, 12.09.2026. Стр. 1: условный формализм; стр. 2: StateSpec, контекст, единицы, физические ограничения; стр. 3: план SE3 и научные статусы. SHA-256 прочитанного PDF: d03295697c63723e9d8449c8cd3e1609 / 1dae4acf70862ab393da4cede31abdce.

[S2] KLT_MATDES_ARBD_CHEM_SE2_RESEARCH.zip: forecast.py, states_events.py, fixture-пакеты и тесты. Полная побайтовая привязка - docs/UPSTREAM_SE2.json. Дата выпуска 12.09.2026. Drive-копия PDF прочитана отдельно; совпадение содержания использованных разделов подтверждено, тождество байтов PDF разных хранилищ не заявляется.

Внешние технические основания, проверены 14.09.2026

[E1] BIPM. The International System of Units (SI), SI Brochure. Основание канонических единиц и точного преобразования eV/J. https://www.bipm.org/en/publications/si-brochure

[E2] Python documentation: sqlite3. Транзакции, параметризованные запросы и работа с соединениями. https://docs.python.org/3/library/sqlite3.html

[E3] SQLite documentation: Transaction. Семантика BEGIN IMMEDIATE и сериализация записи. https://www.sqlite.org/lang_transaction.html

Эти источники обосновывают единицы и инженерные операции. Они не подтверждают химическую достижимость, идентификацию параметров или физическую применимость KLT-MATDES/ARBD.