📌 Anthropic и Theorem использовали Claude для математической верификации 123 открытых библиотек Исследователи применили модель для построения формальных математических доказательств надежности кода. Основой послужили готовые фаззинг-тесты из OSS-Fuzz, сервиса Google для непрерывной проверки открытого кода случайными данными, которые сами по себе не способны дать стопроцентной гарантии отсутствия сбоев. Claude превращал каждый такой тест в строгое утверждение и доказывал его. Всего за несколько недель нейросеть сгенерировала около 180 миллионов строк кода доказательств для 239 точек входа в 123 библиотеках из набора OSS-Fuzz. Корректность доказательств проверяла программа Rocq, которая пересчитывает каждый шаг рассуждения, и результаты математически подтверждают, что протестированные программы гарантированно завершатся штатно при обработке любых произвольных входных данных размером до 64 МБ. В процессе построения доказательств модель вскрыла и устранила сотни нетривиальных багов, которые практически невозможно отловить случайными тестами. В их числе - ошибка перезаписи буфера в алгоритме декомпрессии, срабатывавшая только при строгом совпадении внутренней структуры и размера файла около 20 МБ, а также чтение за границами массива в декодере изображений, требовавшее для воспроизведения 64-мегабайтный файл и более 2 ГБ выделенной памяти. Ранее подобная строгая верификация считалась слишком трудоемкой для реального применения - к примеру, доказательство корректности микроядра seL4 потребовало 20 человеко-лет против всего двух человеко-лет на написание самого кода. Авторы рассчитывают, что скоро формальная верификация станет такой же обыденной практикой, как сегодня фаззинг, почти для всего промышленного кода, хотя пока это дорого - на одно доказательство ушло сотни миллионов токенов. К слову, совсем без людей обойтись всё еще не получается - в экспериментах следили за тем, чтобы модель не добивалась доказуемости, выхолащивая саму программу, поэтому её правки кода штрафовались и проверялись человеком. @ai_machinelearning_big_data