Claude доказал, что 239 точек входа библиотек не падают, на основе около 180 миллионов строк Rocq

Anthropic превратила существующие фаззинг-тесты 123 библиотек OSS-Fuzz в спецификации, а затем Claude написал проверенные машиной доказательства об их бинарниках RISC-V.

Вкратце

Свойство скромное: ни падения, ни провалившегося утверждения для любого входа меньше 64 МБ. Типичное доказательство — около 600 000 строк для бинарника примерно из 18 000 инструкций; процесс нашёл сотни багов, включая один, для которого нужен вход около 20 МБ.

Доказательства покрывают статические сборки musl на RISC-V, а не x86 и glibc, которыми пользуется большинство.

Что на самом деле доказано

Пост Anthropic утверждает, что LLM делают формальную верификацию осуществимой в масштабе. Доказательства написаны на Rocq, над ассемблером бинарников RISC-V, поэтому они не доверяют компилятору. Спецификация для каждой библиотеки берётся из её фаззинг-тестов: программа никогда не падает на любом входе меньше 64 МБ. Допущения включают однопоточный статический бинарник, фиксированную память и Linux.

Результаты: 239 точек входа в 123 библиотеках, около 180 миллионов строк Rocq всего, сотни найденных багов, иногда исправленных Claude до доказательства. Интерпретатор Python на Rust совпал с CPython на 99,95% из 1,7 миллиона случайных программ. Авторы перечисляют ограничения: доверенная база включает проверяющую программу Rocq и модели железа и ОС, а агент мог бы сделать теорему доказуемой, ослабив программу, поэтому патчи проверялись аудитом.

Иллюстрация формальной верификации от Anthropic
Иллюстрация формальной верификации от Anthropic

Скепсис насчёт того, что именно доказано

Один комментатор процитировал приложение о масштабировании:

«Доказательства, написанные агентами, так же «хороши», как любые другие доказательства той же теоремы: они доказывают эквивалентность. Однако пока неясно, смогут ли агенты масштабировать этот многословный стиль доказательств на более сложные программы» — комментатор, цитирующий приложение к статье

Другой спросил, не бессмысленно ли исправлять падения, найденные фаззером, а потом доказывать исправление. Третий спросил, откуда кто-то знает, что утверждение моделирует настоящую программу. Если вы поддерживаете библиотеку на C, вывод уже заголовка: доказательство отсутствия падений — планка, к которой фаззинг может приблизиться, но которую он не может подтвердить.

Получайте такие разборы каждый день

Главные истории Hacker News — на email, в Telegram или RSS.

Следующая новость · 9 из 11 Читать дальше
📈Biz

GNU Taler основывает немецкую компанию и будет просить BaFin о лицензии на электронные деньги

Первоначальный план использовать GLS Bank как эмитента провалился в январе 2026 года, поэтому в Бохуме создаётся Taler Operations AG, которая будет подавать заявку сама.

★ 228 · 💬 85 · taler.net · 1 мин