# Оркестратор формальной верификации SMT-LIB 2.7 / AIGER / BTOR2 (CDCL + BMC + k-индукция + интерполяция Крейга + IC3)

Полный стек формальной верификации в браузере — без бинарников cvc5/Z3: парсер скриптов SMT-LIB 2.7 для ядра QF_BV + Bool с Tseitin-бит-бластингом операторов FixedSizeBitVectors, чтение AIGER (ASCII aag и двоичный aig с delta-декодированием; выходы как плохие свойства), чтение BTOR2 со словоуровневым бит-бластингом и собственный CDCL SAT-движок (двойные просматриваемые литералы, активности в стиле VSIDS, 1-UIP-обучение, перезапуски) в основании. На последовательностных моделях выполняются BMC с трассами-свидетелями, k-индукция с усилением уникальными состояниями, интерполяция Крейга в стиле Макмиллана с повторной SAT-сертификацией и цикл IC3/PDR-lite с блокировкой кубов.

> Каноническая страница: https://elysiatools.com/ru/tools/smt-smtlib-2-7-cvc5-z3-btor2-aiger-k-induction-cddr-dbg-invariant-synthesis-orchestrator

- **Категория:** Science & Education

- **Ключевые слова:** парсер smt-lib, решатель qf_bv, cdcl sat движок, чтение aiger, верификация btor2, ограниченная проверка, k-индукция инвариант, интерполяция крейга, ic3 pdr lite, трасса контрпримера

## Обзор

Всё работает на самодостаточном стеке TypeScript: SMT-LIB-фронтенд покрывает обычное множество операторов QF_BV/Bool (с инлайном define-fun и связываниями let), файлы AIGER читаются в ASCII и двоичном виде, модели BTOR2 бит-бластятся со словоуровня. SAT-ядро — настоящий CDCL-решатель (те же семейства алгоритмов, что внутри cvc5 и Z3, в учебном масштабе). Движки безопасности: BMC находит кратчайшие контрпримеры с полными трассами входов/состояний; k-индукция добавляет ограничения уникальности состояний; движок интерполяции строит кандидатов по структуре опровержения и перепроверяет каждого независимыми SAT-вызовами, прежде чем назвать инвариантом — непроверенный кандидат никогда не выдаётся за инвариант; IC3-lite ведёт покадрово заблокированные кубы, завершая доказательство k-индукцией. Рекомендации по масштабу: разрядности ≤ 16 и границы ≤ 30 сохраняют интерактивность.

## Входные данные

- **Источник модели** (select)
- **Текст модели (при вставке)** (textarea): (set-logic QF_BV) (assert ...) (check-sat) | aag M I L O A ... | 1 sort bitvec 8 ...
- **Движок верификации** (select)
- **Граница k для BMC / индукции (1–30)** (number): 10

## Когда использовать

- Когда требуется проверить выполнимость или опровергнуть утверждения в логике битовых векторов SMT-LIB QF_BV.
- При необходимости найти контрпример или трассу нарушения безопасности в аппаратных моделях AIGER и BTOR2 через BMC.
- Для строгого доказательства инвариантов безопасности последовательностных систем с помощью k-индукции, интерполяции Крейга или IC3/PDR-lite.

## Как это работает

- Скрипты SMT-LIB, форматы AIGER (ASCII/binary) или словоуровневые спецификации BTOR2 парсятся и переводятся в логические ограничения с помощью Tseitin-бит-бластинга.
- Встроенный решатель CDCL с поддержкой двух просматриваемых литералов, эвристики VSIDS и обучения 1-UIP производит поиск решений или опровержение формулы.
- Алгоритмы BMC, k-индукции, интерполяции по Макмиллану с повторной SAT-сертификацией или IC3 вычисляют статус безопасности, синтезируют инварианты или выводят пошаговую трассу-свидетель.

## Сценарии использования

- Доказательство математической эквивалентности и коммутативности битовых и логических операций без тестовых векторов.
- Поиск кратчайших сценариев перехода в недопустимое состояние для последовательностных схем и микроконтроллерных блоков.
- Обучение и эксперименты с алгоритмами формальной верификации (CDCL, BMC, k-индукция, интерполяция, IC3) на компактных моделях.

## Частые вопросы

### Нужно ли устанавливать cvc5, Z3 или сторонние утилиты?

Нет, оркестратор работает на автономном стеке TypeScript непосредственно в браузере.

### Какие входные форматы поддерживает инструмент?

Поддерживаются скрипты SMT-LIB 2.7 (QF_BV + Bool), форматы AIGER (ASCII aag и двоичный aig) и модели BTOR2.

### Каковы ограничения на разрядность и глубину поиска?

Для сохранения интерактивной скорости в браузере рекомендуются разрядности векторов до 16 бит и глубина k до 30.

### Как проверяются найденные интерполянты Крейга?

Каждый интерполянт-кандидат проходит обязательную независимую верификацию дополнительными SAT-вызовами перед выводом результата.

### Что выводится при обнаружении нарушения безопасности в BMC?

Инструмент генерирует отчет с вердиктом UNSAFE и подробную пошаговую трассу контрпримера со значениями входов и состояний.

## Связанные инструменты

- [Деобфускатор JavaScript](https://elysiatools.com/ru/tools/javascript-deobfuscator): Деобфусцирует и анализирует запутанный код JavaScript для улучшения читаемости и понимания
- [Извлекатель ссылок Markdown](https://elysiatools.com/ru/tools/markdown-link-extractor): Извлекает встроенные ссылки, справочные ссылки и голые URL-адреса из документов Markdown с базовой проверкой синтаксиса
- [Классификатор жанров AI](https://elysiatools.com/ru/tools/genre-classifier-ai): Классифицирует трек по измеримым признакам: тембровая текстура GTZAN, форма пульса битовой сетки, баланс полос, тональность и динамика — с топ-3 и причиной каждого выбора.
- [Декодер LTSSM и Lane Margining PCIe](https://elysiatools.com/ru/tools/pcie-link-training-linkstate-and-lane-margining-eye-decode): Разбор журнала обучения канала PCIe (последовательность LTSSM + упорядоченные наборы TS1/TS2): полная шкала Gen1-Gen6, согласованные скорость/ширина, биты идентификатора скорости, инверсия полярности и линий, фазы эквализации и диагностика перезапусков; оценка отчётов lane margining (CSV pcilmr) и тепловая карта глаза.
- [Конструктор глав подкаста (ID3 / Podcasting 2.0)](https://elysiatools.com/ru/tools/podcast-chapter-marker-builder): Вставьте список глав с таймкодами и получите сразу все форматы: JSON глав Podcasting 2.0 (v1.2.0) и RSS-тег podcast:chapters, опциональное вписывание фреймов ID3v2.4 CHAP+CTOC прямо в загруженный MP3 (миллисекунды — обычный big-endian uint32, смещения 0xFFFFFFFF, подфрейм TIT2 на главу, существующие фреймы сохраняются), пары Vorbis-комментариев CHAPTER001 (OGG/Opus), текст mp4chaps, блок таймкодов для описания YouTube и SRT-сайдкар, плюс реальная матрица поддержки плеерами (Apple читает RSS-JSON с 2025; Pocket Casts/Overcast — только встроенный ID3; Spotify игнорирует и то, и другое).
- [Разделение train/test со стратификацией](https://elysiatools.com/ru/tools/train-test-split-with-stratification): Читает датасет CSV/JSON и делит на train/validation/test со стратификацией по целевому столбцу (по умолчанию 70/15/15, воспроизводимое зерно) или стратифицированный k-fold; отчёт о распределении классов по сплитам с полосами отклонения, проверка утечек через дубликаты строк, предпросмотр SMOTE (интерполяция ближайших соседей на train) и экспорт CSV в ZIP.
- [Парсер User-Agent](https://elysiatools.com/ru/tools/user-agent-parser): Анализирует строки User-Agent для извлечения информации о браузере, операционной системе, устройстве и движке
- [Извлекатель Журнала Изменений](https://elysiatools.com/ru/tools/changelog-extractor): Анализирует и извлекает структурированные данные из журналов изменений и примечаний к выпуску в различных форматах

## Примеры

- [Примеры Обработки Изображений Web Python](https://elysiatools.com/ru/samples/web-image-processing-python): Примеры обработки изображений Web Python используя PIL/Pillow включая чтение, сохранение, изменение размера и преобразование формата
- [Примеры Обработки Изображений Android Java](https://elysiatools.com/ru/samples/android-image-processing-java): Примеры обработки изображений Android Java включая чтение/сохранение, масштабирование и преобразование формата
- [Примеры Обработки Изображений Android Kotlin](https://elysiatools.com/ru/samples/android-image-processing-kotlin): Примеры обработки изображений Android Kotlin включая чтение/сохранение, масштабирование и преобразование формата
- [Примеры Обработки Изображений Web Rust](https://elysiatools.com/ru/samples/web-image-processing-rust): Примеры обработки изображений Web Rust включая чтение/запись, масштабирование и преобразование форматов
