В информатике и математической логике Cooperating Validity Checker (CVC) — это семейство решателей выполнимости по модулю теорий (SMT). Последние основные версии CVC — CVC4 и CVC5 (стилизованные под cvc5); более ранние версии включают CVC, CVC Lite и CVC3. [2] Как CVC4, так и cvc5 поддерживают форматы ввода SMT-LIB и TPTP для решения задач SMT, а также формат SyGuS-IF для синтеза программ . Как CVC4, так и cvc5 могут выводить доказательства, которые можно независимо проверить в формате LFSC, cvc5 дополнительно поддерживает форматы Alethe и Lean 4. [3] [4] cvc5 имеет привязки для C++ , Python и Java .
CVC4 участвовал в SMT-COMP в 2014–2020 годах [5], а cvc5 участвовал в 2021–2022 годах [6] . CVC4 участвовал в SyGuS-COMP в 2015–2019 годах [7] и в CASC в 2013–2015 годах.
В дополнение к стандартным решениям SMT и SyGuS, cvc5 поддерживает абдуктивное рассуждение , которое представляет собой задачу построения формулы B , которую можно объединить с формулой A для доказательства целевой формулы C. [18] [19]
cvc5 был подвергнут нескольким независимым тестовым кампаниям. [20]
Приложения
CVC4 применялся для синтеза рекурсивных программ [21] и для проверки политик доступа Amazon Web Services [22] [23] CVC4 и cvc5 были интегрированы с Coq [24] и Isabelle [25] CVC4 является одним из внутренних рассуждений, поддерживаемых CBMC, C Bounded Model Checker [26]
^ Барретт, Кларк; Тинелли, Чезаре (2018), Кларк, Эдмунд М.; Хензингер, Томас А.; Вайт, Хельмут; Блюм, Родерик (ред.), «Теории выполнимости по модулю», Справочник по проверке моделей , Cham: Springer International Publishing, стр. 305–343 , doi : 10.1007/978-3-319-10575-8_11 , ISBN978-3-319-10575-8
^ Барбоза, Ханиэль; Рейнольдс, Эндрю; Кремер, Гереон; Лахнитт, Ханна; Нимец, Айна; Нётцли, Андрес; Оздемир, Алекс; Прейнер, Матиас; Вишванатан, Арджун; Витери, Скотт; Зохар, Йони; Тинелли, Чезаре; Барретт, Кларк (2022). «Гибкое производство доказательств в промышленном решателе SMT». В Blanchette, Jasmin; Kovács, Laura; Pattinson, Dirk (ред.). Автоматизированное рассуждение . Конспект лекций по информатике. Том 13385. Cham: Springer International Publishing. стр. 15–35 . doi :10.1007/978-3-031-10769-6_3. ISBN978-3-031-10769-6. S2CID 250164402.
^ (Барбоса и др. 2022, стр. 417)
^ "Участники". SMT-COMP . Получено 29.11.2023 .
^ "SMT-COMP". SMT-COMP . Получено 29.11.2023 .
^
Alur, Rajeev; Fisman, Dana; Singh, Rishabh; Solar-Lezama, Armando (2016-02-02). "Результаты и анализ SyGuS-Comp'15". Electronic Proceedings in Theoretical Computer Science . 202 : 3–26 . arXiv : 1602.01170 . doi :10.4204/EPTCS.202.3. ISSN 2075-2180. S2CID 2086015.
Alur, Rajeev; Fisman, Dana; Singh, Rishabh; Solar-Lezama, Armando (2016-11-22). "SyGuS-Comp 2016: результаты и анализ". Electronic Proceedings in Theoretical Computer Science . 229 : 178– 202. arXiv : 1611.07627 . doi : 10.4204/EPTCS.229.13. ISSN 2075-2180. S2CID 440389.
Alur, Rajeev; Fisman, Dana; Singh, Rishabh; Solar-Lezama, Armando (28.11.2017). "SyGuS-Comp 2017: результаты и анализ". Electronic Proceedings in Theoretical Computer Science . 260 : 97–115 . arXiv : 1711.11438 . doi :10.4204/EPTCS.260.9. ISSN 2075-2180. S2CID 37464992.
^ Лян, Тяньи; Рейнольдс, Эндрю; Тинелли, Чезаре; Барретт, Кларк; Детерс, Морган (2014). "Решатель теории DPLL(T) для теории строк и регулярных выражений". В Biere, Armin; Bloem, Roderick (ред.). Computer Aided Verification . Lecture Notes in Computer Science. Vol. 8559. Cham: Springer International Publishing. pp. 646– 662. doi :10.1007/978-3-319-08867-9_43. ISBN978-3-319-08867-9.
^ Хадареан, Лиана; Бансал, Кшитий; Йованович, Деян; Барретт, Кларк; Тинелли, Чезаре (2014). «История двух решателей: энергичные и ленивые подходы к бит-векторам». В Бире, Армин; Блюм, Родерик (ред.). Компьютерная верификация . Конспект лекций по информатике. Том 8559. Cham: Springer International Publishing. стр. 680– 695. doi :10.1007/978-3-319-08867-9_45. ISBN978-3-319-08867-9.
^ Brain, Martin; Niemetz, Aina; Preiner, Mathias; Reynolds, Andrew; Barrett, Clark; Tinelli, Cesare (2019). «Условия обратимости формул с плавающей точкой». В Dillig, Isil; Tasiran, Serdar (ред.). Computer Aided Verification . Lecture Notes in Computer Science. Cham: Springer International Publishing. стр. 116– 136. doi : 10.1007/978-3-030-25543-5_8 . ISBN978-3-030-25543-5.
^ Лян, Тяньи; Цискаридзе, Нестан; Рейнольдс, Эндрю; Тинелли, Чезаре; Барретт, Кларк (2015). «Процедура принятия решений для регулярного членства и ограничений длины для неограниченных строк». В Lutz, Carsten; Ranise, Silvio (ред.). Frontiers of Combining Systems . Lecture Notes in Computer Science. Vol. 9322. Cham: Springer International Publishing. pp. 135– 150. doi :10.1007/978-3-319-24246-0_9. ISBN978-3-319-24246-0.
^ Рейнольдс, Эндрю; Бланшетт, Жасмин Кристиан (2015). «Процедура принятия решения для (Co)типов данных в SMT-решателях». В Фелти, Эми П.; Миддельдорп, Аарт (ред.). Автоматизированная дедукция — CADE-25 . Конспект лекций по информатике. Том 9195. Cham: Springer International Publishing. стр. 197– 213. doi :10.1007/978-3-319-21401-6_13. ISBN978-3-319-21401-6.
^ Шэн, Ин; Нётцли, Андрес; Рейнольдс, Эндрю; Зохар, Йони; Дилл, Дэвид; Грискамп, Вольфганг; Парк, Юнкил; Кадир, Шаз; Барретт, Кларк; Тинелли, Чезаре (15.09.2023). «Рассуждения о векторах: выполнимость по модулю теории последовательностей». Журнал автоматизированного рассуждения . 67 (3): 32. doi :10.1007/s10817-023-09682-2. ISSN 1573-0670. S2CID 261829653.
^ Бансал, Кшитидж; Рейнольдс, Эндрю; Барретт, Кларк; Тинелли, Чезаре (2016). «Новая процедура принятия решений для конечных множеств и ограничений мощности в SMT». В Olivetti, Nicola; Tiwari, Ashish (ред.). Автоматизированное рассуждение . Конспект лекций по информатике. Том 9706. Cham: Springer International Publishing. стр. 82–98 . doi :10.1007/978-3-319-40229-1_7. ISBN978-3-319-40229-1.
^ Мэн, Баолуо; Рейнольдс, Эндрю; Тинелли, Чезаре; Барретт, Кларк (2017). «Решение реляционных ограничений в SMT». Ин де Моура, Леонардо (ред.). Автоматизированная дедукция – CADE 26. Конспект лекций по информатике. Том 10395. Cham: Springer International Publishing. стр. 148– 165. doi :10.1007/978-3-319-63046-5_10. ISBN978-3-319-63046-5.
^ Рейнольдс, Эндрю; Иосиф, Раду; Сербан, Кристина; Кинг, Тим (2016). "Процедура принятия решений для логики разделения в SMT" (PDF) . В Artho, Сирилл; Легай, Аксель; Пелед, Дорон (ред.). Автоматизированная технология проверки и анализа . Конспект лекций по информатике. Том 9938. Cham: Springer International Publishing. стр. 244– 261. doi : 10.1007/978-3-319-46520-3_16. ISBN978-3-319-46520-3. S2CID 6753369.
^ Оздемир, Алекс; Кремер, Гереон; Тинелли, Чезаре; Барретт, Кларк (2023). «Выполнимость по модулю конечных полей». В Энеа, Константин; Лал, Акаш (ред.). Компьютерная верификация . Конспект лекций по информатике. Том 13965. Cham: Springer Nature Switzerland. стр. 163–186 . doi :10.1007/978-3-031-37703-7_8. ISBN978-3-031-37703-7. S2CID 257235627.
^ Рейнольдс, Эндрю; Барбоза, Ханиэль; Ларраз, Даниэль; Тинелли, Чезаре (2020-05-30). «Масштабируемые алгоритмы для абдукции с помощью синтеза, управляемого перечислительным синтаксисом». Автоматизированное рассуждение . Конспект лекций по информатике. Том 12166. С. 141– 160. doi :10.1007/978-3-030-51074-9_9. ISBN978-3-030-51073-2. ЧМЦ 7324138 .
^ (Барбоса и др. 2022, стр. 426)
^
Брингольф, Мауро; Винтерер, Доминик; Су, Чжэндун (2023-01-05). «Поиск и понимание ошибок неполноты в решателях SMT». Труды 37-й Международной конференции IEEE/ACM по автоматизированной программной инженерии . ASE '22. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 1– 10. doi : 10.1145/3551349.3560435. ISBN978-1-4503-9475-8. S2CID 255441416.
Sun, Maolin; Yang, Yibiao; Wen, Ming; Wang, Yongcong; Zhou, Yuming; Jin, Hai (2023-07-26). «Проверка решателей SMT с помощью перечисления скелетов, усиленного историческими входными данными, вызывающими ошибки». IEEE/ACM 45-я Международная конференция по программной инженерии (ICSE) 2023 года . ICSE '23. Мельбурн, Виктория, Австралия: IEEE Press. стр. 69–81 . doi :10.1109/ICSE48619.2023.00018. ISBN978-1-6654-5701-9. S2CID 259860528.
Нимец, Айна; Прейнер, Матиас; Барретт, Кларк (2022). «Murxla: модульный и высокорасширяемый API-фаззер для SMT-решателей». В Шохам, Шарон; Визель, Якир (ред.). Компьютерная верификация . Конспект лекций по информатике. Том 13372. Cham: Springer International Publishing. стр. 92–106 . doi :10.1007/978-3-031-13188-2_5. ISBN978-3-031-13188-2. S2CID 251447764.
Ким, Чонвук; Со, Санбом; О, Хакджу (2023-07-26). «Дайвер: Тестирование решателя SMT под руководством Oracle с неограниченными случайными мутациями». 45-я международная конференция IEEE/ACM по программной инженерии (ICSE) 2023 года. ICSE '23. Мельбурн, Виктория, Австралия: IEEE Press. стр. 2224– 2236. doi : 10.1109/ICSE48619.2023.00187. ISBN978-1-6654-5701-9. S2CID 259860926.
Сан, Маолинь; Ян, Ибяо; Ван, Ян; Вэнь, Мин; Цзя, Хаосян; Чжоу, Юймин (2023). «Проверка решателя SMT с помощью больших предварительно обученных языковых моделей». 38-я Международная конференция IEEE/ACM по автоматизированной программной инженерии (ASE) 2023 г. стр. 1288–1300 . doi :10.1109/ase56229.2023.00180. ISBN979-8-3503-2996-4. S2CID 265055537 . Получено 29.11.2023 .
Брингольф, Мауро (2021). Fuzz-тестирование SMT-решателей с ослаблением и усилением формул (магистерская диссертация). ETH Zurich. doi : 10.3929/ethz-b-000507582.
^ Берман, Шмуэль (17.10.2021). «Программирование по примеру с помощью программирования по примеру: синтез циклических программ». Companion Proceedings of the 2021 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity . SPLASH Companion 2021. Нью-Йорк, Нью-Йорк, США: Association for Computing Machinery. стр. 19–21 . arXiv : 2108.08724 . doi :10.1145/3484271.3484977. ISBN978-1-4503-9088-0. S2CID 237213485.
^ Backes, John; Bolignano, Pauline; Cook, Byron; Dodge, Catherine; Gacek, Andrew; Luckow, Kasper; Rungta, Neha; Tkachuk, Oksana; Varming, Carsten (октябрь 2018 г.). Автоматизированное обоснование на основе семантики для политик доступа AWS с использованием SMT. IEEE. стр. 1– 9. doi :10.23919/FMCAD.2018.8602994. ISBN978-0-9835678-8-2. S2CID 52237693.
^ Рунгта, Неха (2022). «Миллиард запросов SMT в день (приглашенный доклад)». В Шохам, Шарон; Визель, Якир (ред.). Компьютерная верификация . Конспект лекций по информатике. Том 13371. Чам: Springer International Publishing. стр. 3–18 . doi :10.1007/978-3-031-13185-1_1. ISBN978-3-031-13185-1. S2CID 251447649.
^
Для CVC4: Экичи, Бурак; Мебсоут, Ален; Тинелли, Чезаре; Келлер, Шанталь; Кац, Гай; Рейнольдс, Эндрю; Барретт, Кларк (2017). "SMTCoq: плагин для интеграции SMT-решателей в Coq" (PDF) . В Маджумдар, Рупак; Кунчак, Виктор (ред.). Компьютерная проверка . Конспект лекций по информатике. Том 10427. Cham: Springer International Publishing. стр. 126– 133. doi : 10.1007/978-3-319-63390-9_7. ISBN978-3-319-63390-9. S2CID 206701576.
Для cvc5: (Барбоса и др., 2022, стр. 425)
Для cvc5: Барбоза, Ханиэль; Келлер, Шанталь; Рейнольдс, Эндрю; Вишванатан, Арджун; Тинелли, Чезаре; Барретт, Кларк (2023-06-03). «Интерактивная тактика SMT в Coq с использованием абдуктивного рассуждения». Серия EPiC по вычислениям . 94. EasyChair: 11– 22. doi : 10.29007/432m . S2CID 259070258.
^ Крёнинг, Даниэль; Таучниг, Михаэль (2014). "CBMC – C Bounded Model Checker". В Ábrahám, Эрика; Хавелунд, Клаус (ред.). Инструменты и алгоритмы для построения и анализа систем . Конспект лекций по информатике. Том 8413. Берлин, Гейдельберг: Springer. стр. 389– 391. doi :10.1007/978-3-642-54862-8_26. ISBN978-3-642-54862-8.
Barbosa, Haniel; Barrett, Clark; Brain, Martin; Kremer, Gereon; Lachnitt, Hanna; Mann, Makai; Mohamed, Abdalrhman; Mohamed, Mudathir; Niemetz, Aina; Nötzli, Andres; Ozdemir, Alex; Preiner, Mathias; Reynolds, Andrew; Sheng, Ying; Tinelli, Cesare (2022). "Cvc5: универсальный и промышленный решатель SMT". В Fisman, Dana; Rosu, Grigore (ред.). Инструменты и алгоритмы для построения и анализа систем . Конспект лекций по информатике. Том 13243. Cham: Springer International Publishing. стр. 415–442 . doi : 10.1007/978-3-030-99524-9_24. ISBN978-3-030-99524-9. S2CID 247857361.
Barrett, Clark; Conway, Christopher L.; Deters, Morgan; Hadarean, Liana; Jovanović, Dejan; King, Tim; Reynolds, Andrew; Tinelli, Cesare (2011). "CVC4". В Gopalakrishnan, Ganesh; Qadeer, Shaz (ред.). Computer Aided Verification . Lecture Notes in Computer Science. Vol. 6806. Berlin, Heidelberg: Springer. pp. 171– 177. doi :10.1007/978-3-642-22110-1_14. ISBN978-3-642-22110-1.