# PBH-VERIFY-01 — пилот «вывод → реализация → независимая проверка» для модуля сферических 3+1-диагностик **Что это.** Небольшой воспроизводимый эксперимент ТЗ `../pbh_computational_physics_agent_prompt_ru.md`: модуль `sphdiag` вычисляет по сферическому срезу (A, R, K^r_r, K^θ_θ) и материи (скалярное поле φ, Π или Vlasov-моменты) проекции T_ab, невязки связей, массу Misner–Sharp, световые расширения θ±, классы сфер и кандидаты apparent horizon — с оценками численной ошибки и статусами пригодности. Он **не** эволюционирует данные и **не** решает связи. Выводов о f_PBH, EKG→Vlasov или космологическом сценарии пилот не делает. ## Результат одной строкой Модуль (`impl-B-v0.5`, контракт v1.4) проходит 34 из 35 тестов независимой матрицы v2 (провал U62 — неустранимый по одному снимку компромисс между ложной тревогой и пропуском недоразрешённости). Все 13 предрегистрированных мутантов убиты и разработческими тестами, и замороженными независимыми матрицами. Аудит нашёл все 4 тайно внесённых кодовых дефекта и частично — круговой тест. Естественные ошибки найдены в контракте (14 шт., одна — неверный знак в F10), в численной логике реализации (не в формулах) и в допусках самой проверки. Самая содержательная находка получена на реальных данных V1: первый горизонт V1 ставится на ядре шириной в одну ячейку, где знаки θ± не разрешены (см. `decision.md`). ## Структура | Путь | Содержание | |---|---| | `context_audit.md` | Доступный контекст, V0/V1/V1b, принято/гипотеза/проверено/противоречие | | `physics_contract.md` | Контракт (v1.0 заморожен до кода; v1.1–v1.4 с происхождением каждого изменения, §13–§16) | | `derivation.md`, `derivation/` | Вывод F1–F13 (sympy из 4-метрики; сверка с [S1]–[S4]) | | `verification_plan.md` | Замороженная матрица тестов (v1, затем v2 с журналом изменений допусков) | | `src/sphdiag/` | Основной модуль (архитектура B) | | `tests/dev/` | Разработческие тесты реализации B | | `independent_reference/` | Независимые эталоны (аналитика, собственный ФКГ-интегратор, собственный решатель связей, FD) — без импорта `sphdiag` | | `tests/independent/` | Независимая матрица (`run_matrix.py`), направляется на любую реализацию через `SPHDIAG_PATH` | | `arch_A/` | Архитектура A: один агент с самопроверкой (код, тесты, `REPORT.md`) | | `audit_copy/` | Копия кода для аудита (с тайными дефектами — `mutants/audit_seeds.md`) и `audit_findings.md` | | `mutants/` | Генератор мутантов, мутанты по версиям кода (`v0.1`, `v0.3`, `v0.4`, с копией `BASE`) и скрипты прогона | | `extension/` | Подключение снимков Einstein–Vlasov из `pbhgr.cosmo_ev` (V1) | | `results/` | JSON и логи всех прогонов, `agent_costs.md` | | `mutation_report.md`, `audit_report.md`, `evidence_matrix.csv`, `decision.md`, `results/comparison_A_B.md` | Итоговые документы | | `agent_logs/` | Журналы ролей и `timeline.txt` | Версии зафиксированы git-тегами: `contract-v1.0` … `contract-v1.4`, `impl-B-v0.1` … `impl-B-v0.5`, `arch-A-v1`, `verify-matrix-v1`, `verify-matrix-v2`. ## Зависимости Python 3.12.3, numpy 2.5.3, scipy 1.18.1, pytest 9.1.1 (системные). sympy 1.14.0 + mpmath 1.3.0 — только для `derivation/` и части эталонов; ставятся локально: ```bash pip install --target .pydeps sympy==1.14.0 ``` ## Команды Разработческие тесты: ```bash cd /root/PBH/pbh_verify_01 && PYTHONPATH=src python3 -m pytest tests/dev -q ``` Независимая матрица (≈ 1–4 мин): ```bash cd /root/PBH/pbh_verify_01 && SPHDIAG_PATH=src python3 tests/independent/run_matrix.py --out results/matrix_now.json ``` Та же матрица на реализации A: ```bash cd /root/PBH/pbh_verify_01 && SPHDIAG_PATH=arch_A/src python3 tests/independent/run_matrix.py --out results/matrix_A_now.json ``` Символьная проверка формул: ```bash cd /root/PBH/pbh_verify_01 && PYTHONPATH=.pydeps python3 derivation/core.py ``` Мутанты (генерация, затем dev-набор и замороженная матрица; замороженная копия матрицы — `git archive verify-matrix-v2 tests/independent independent_reference | tar -x -C `): ```bash cd /root/PBH/pbh_verify_01 && python3 mutants/make_mutants.py --out mutants/v0.4 ``` ```bash cd /root/PBH/pbh_verify_01 && ./mutants/run_dev_on_mutants.sh mutants/v0.4 results/mutants_dev_v0.4code_v0.4suite.txt ``` ```bash cd /root/PBH/pbh_verify_01 && ./mutants/run_matrix_on_mutants.sh v2_on_v0.4 mutants/v0.4 ``` Расширение на данных V1 (≈ 2–4 мин на прогон, < 100 МБ): ```bash cd /root/PBH/pbh_verify_01 && PYTHONPATH=/root/PBH/pbhgr:src python3 extension/vlasov_snapshots.py --mu 0.10 --dR 0.3 --tend 29.5 --tstart 27.6 --out results/extension/mu010 ``` ## Ресурсы и расходы - Машина: VPS 2 vCPU / 3.7 ГБ без swap. Параллельно шли 3D-прогоны `pbhgr` другого сеанса; пилот их не трогал. Все вычисления пилота одномерные, < 200 МБ. - Прямые денежные расходы: **0 €** (серверы и платные API не арендовались). - Субагенты (одна модель, раздельные контексты): 5 агентов, суммарно ≈ 1.56 млн токенов субагентов (реализация B 378 тыс. за 5 раундов; верификатор 482 тыс.; derivation 230 тыс.; аудит 189 тыс.; агент A 278 тыс.) плюс контекст координатора. Длительности — `results/agent_costs.md`. - Время по стенным часам: 22:31–≈02:30 UTC (≈ 4 ч), см. `agent_logs/timeline.txt`. - **Человеческое вмешательство** после выдачи ТЗ: не зарегистрировано (не логировалось; в сеансе не было сообщений пользователя после начальной команды). Оценок «ускорения» не делается. ## Ограничения См. `decision.md` (разрешено/заблокировано) и `audit_report.md` §6. Главные: оценка ошибки по одному снимку не видит изломов (нужна сходимость на двух сетках); погрешности входных полей не принимаются; касательные нули не ищутся; все роли — экземпляры одной модели, поэтому общая ошибка возможна (пример — одинаковый ложный VIOLATED у A и B, N13).