У програмуванні, Satisfiability Modulo Theories (SMT) — це задача для логічних формул з урахуванням теорій, які лежать в їх основі. Прикладами таких теорій для SMT формул є: теорії цілих та дійсних чисел, теорії списків, масивів, бітових векторів та ін.
Основні поняття
Формально SMT формула — це формула в логіці першого порядку, в якій деякі функції і предикатні символи мають додаткову інтерпретацію, і задача полягає в тому, щоб визначити чи виконується дана формула. Іншими словами, на відміну від , замість булевих змінних SMT формула містить довільні змінні, а предикати — це булеві функції від цих змінних. Прикладами предикатів є лінійні порівняння () або рівності, які включають терми, що не інтерпретуються, або функціональні символи (), де це деяка невизначена функція від двох аргументів. Предикати інтерпретуються згідно з теорією, якій вони належать. Наприклад, лінійні нерівності над дійсними змінними вираховуються згідно з правилами теорії лінійної дійсної арифметики, в той час як предикати над термами, які не інтерпретуються, і функціональними символами вираховуються по правилам теорії функцій з рівністю, які не інтерпретуються, (також відома як порожня теорія). SMT включає в себе також теорії масивів і списків (часто використовуються для моделювання і верифікації програм) і теорію бітових векторів (часто використовується для моделювання і верифікації апаратури). Можливі підкатегорії: наприклад difference logic — підкатегорія лінійної арифметики, в якій нерівності обмежені наступним чином для змінних х і у і константи с.
Більшість SMT розв'язувачів (англ. SMT solvers) підтримують тільки формули без кванторів.
Виразна сила SMT
SMT формула — це узагальнення булевої формули SAT, в якій змінні замінені предикатами з відповідних категорій. Тому SMT представляють більше можливостей для моделювання, ніж SAT формули. Наприклад, SMT формула дозволяє моделювати операції функції модулів мікропроцесора на рівні слів, а не на рівні бітів.
SMT розв'язувачі
Перші спроби вирішення SMT задач були направленні на перетворення їх у SAT формули (наприклад 32-х бітні змінні кодувались 32-ма булевими змінними з кодуванням відповідних операцій над словами в низькорівневі операції над бітами) і вирішенням формули SAT розв'язувачем. Такий підхід має свої переваги — він дозволяє використовувати існуючі SAT розв'язувачі без змін (англ. As-Is), а також використовувати зроблені в них оптимізації. З іншої сторони втрата високорівневої семантики, яка лежить в основі теорій, означає, що SAT розв'язувач повинен докласти чималих зусиль, щоб вивести «очевидні» факти (такі як для додавання). Ця думка призвела до появи спеціалізованих SMT розв'язувачів, які інтегрують звичайні булеві докази в стилі алгоритму зі спеціалізованими для теорій розв'язувачами (Т-вирішувачі), які працюють з диз'юнкціями і кон'юнкціями предикатів з заданої теорії. Архітектура DPLL(T) передає функції булевого доказу DPLL SAT розв'язувачу, який в свою чергу взаємодіє з розв'язувачем теорії Т через визначений інтерфейс. Розв'язувач теорії Т повинен вміти перевіряти здійсненність кон'юнкцій із предикатів теорії, переданих з SAT розв'язувача. Для того щоб така інтеграція працювала, розв'язувач теорії повинен брати участь в аналізі конфліктів (англ. Conflict analysis), тобто повинен виводити нові факти з вже існуючих, а також надавати пояснення нездійсненності при появі конфліктів. Іншими словами, розв'язувач теорії повинен бути інкрементальним (англ. incremental) і мати можливість відкату (англ. backtrackable).
- Розв'язувачі, що підтримуються і активно розвиваються: Alt-Ergo, Barcelogic, Beaver, Boolector, CVC3, DPT, MathSAT, OpenSMT, SatEEn, Spear, STP, UCLID, veriT, Yices, Z3.
- Інші: Argo-lib, Ario, CVC, CVC Lite, Fx7, haRVey, HTP, ICS, LPSAT, RDL, Sammy, Simplify, Simplics, STeP, SVC, Tsat++.
Література
- Nieuwenhuis, R.; Oliveras, A.; Tinelli, C. (2006), «Solving SAT and SAT Modulo Theories: From an Abstract Davis-Putnam-Logemann-Loveland Procedure to DPLL(T)», Journal of the ACM, 53(6), pp. 937—977.
Посилання
- SMT-LIB: бібліотека [ 2 березня 2012 у Wayback Machine.]
- SMT-COMP: Змагання Satisfiability Modulo Theories [ 28 травня 2015 у Wayback Machine.]
- Розв'язуючі процедури — алгоритмічний погляд [ 15 квітня 2022 у Wayback Machine.]
Це незавершена стаття з інформатики. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U programuvanni Satisfiability Modulo Theories SMT ce zadacha dlya logichnih formul z urahuvannyam teorij yaki lezhat v yih osnovi Prikladami takih teorij dlya SMT formul ye teoriyi cilih ta dijsnih chisel teoriyi spiskiv masiviv bitovih vektoriv ta in Osnovni ponyattyaFormalno SMT formula ce formula v logici pershogo poryadku v yakij deyaki funkciyi i predikatni simvoli mayut dodatkovu interpretaciyu i zadacha polyagaye v tomu shob viznachiti chi vikonuyetsya dana formula Inshimi slovami na vidminu vid zamist bulevih zminnih SMT formula mistit dovilni zminni a predikati ce bulevi funkciyi vid cih zminnih Prikladami predikativ ye linijni porivnyannya 3x 2y z 4 displaystyle 3x 2y z geq 4 abo rivnosti yaki vklyuchayut termi sho ne interpretuyutsya abo funkcionalni simvoli f f u v v f u v displaystyle f f u v v f u v de f displaystyle f ce deyaka neviznachena funkciya vid dvoh argumentiv Predikati interpretuyutsya zgidno z teoriyeyu yakij voni nalezhat Napriklad linijni nerivnosti nad dijsnimi zminnimi virahovuyutsya zgidno z pravilami teoriyi linijnoyi dijsnoyi arifmetiki v toj chas yak predikati nad termami yaki ne interpretuyutsya i funkcionalnimi simvolami virahovuyutsya po pravilam teoriyi funkcij z rivnistyu yaki ne interpretuyutsya takozh vidoma yak porozhnya teoriya SMT vklyuchaye v sebe takozh teoriyi masiviv i spiskiv chasto vikoristovuyutsya dlya modelyuvannya i verifikaciyi program i teoriyu bitovih vektoriv chasto vikoristovuyetsya dlya modelyuvannya i verifikaciyi aparaturi Mozhlivi pidkategoriyi napriklad difference logic pidkategoriya linijnoyi arifmetiki v yakij nerivnosti obmezheni nastupnim chinom x y lt c displaystyle x y lt c dlya zminnih h i u i konstanti s Bilshist SMT rozv yazuvachiv angl SMT solvers pidtrimuyut tilki formuli bez kvantoriv Virazna sila SMTSMT formula ce uzagalnennya bulevoyi formuli SAT v yakij zminni zamineni predikatami z vidpovidnih kategorij Tomu SMT predstavlyayut bilshe mozhlivostej dlya modelyuvannya nizh SAT formuli Napriklad SMT formula dozvolyaye modelyuvati operaciyi funkciyi moduliv mikroprocesora na rivni sliv a ne na rivni bitiv SMT rozv yazuvachiPershi sprobi virishennya SMT zadach buli napravlenni na peretvorennya yih u SAT formuli napriklad 32 h bitni zminni koduvalis 32 ma bulevimi zminnimi z koduvannyam vidpovidnih operacij nad slovami v nizkorivnevi operaciyi nad bitami i virishennyam formuli SAT rozv yazuvachem Takij pidhid maye svoyi perevagi vin dozvolyaye vikoristovuvati isnuyuchi SAT rozv yazuvachi bez zmin angl As Is a takozh vikoristovuvati zrobleni v nih optimizaciyi Z inshoyi storoni vtrata visokorivnevoyi semantiki yaka lezhit v osnovi teorij oznachaye sho SAT rozv yazuvach povinen doklasti chimalih zusil shob vivesti ochevidni fakti taki yak x y y x displaystyle x y y x dlya dodavannya Cya dumka prizvela do poyavi specializovanih SMT rozv yazuvachiv yaki integruyut zvichajni bulevi dokazi v stili algoritmu zi specializovanimi dlya teorij rozv yazuvachami T virishuvachi yaki pracyuyut z diz yunkciyami i kon yunkciyami predikativ z zadanoyi teoriyi Arhitektura DPLL T peredaye funkciyi bulevogo dokazu DPLL SAT rozv yazuvachu yakij v svoyu chergu vzayemodiye z rozv yazuvachem teoriyi T cherez viznachenij interfejs Rozv yazuvach teoriyi T povinen vmiti pereviryati zdijsnennist kon yunkcij iz predikativ teoriyi peredanih z SAT rozv yazuvacha Dlya togo shob taka integraciya pracyuvala rozv yazuvach teoriyi povinen brati uchast v analizi konfliktiv angl Conflict analysis tobto povinen vivoditi novi fakti z vzhe isnuyuchih a takozh nadavati poyasnennya nezdijsnennosti pri poyavi konfliktiv Inshimi slovami rozv yazuvach teoriyi povinen buti inkrementalnim angl incremental i mati mozhlivist vidkatu angl backtrackable Rozv yazuvachi sho pidtrimuyutsya i aktivno rozvivayutsya Alt Ergo Barcelogic Beaver Boolector CVC3 DPT MathSAT OpenSMT SatEEn Spear STP UCLID veriT Yices Z3 Inshi Argo lib Ario CVC CVC Lite Fx7 haRVey HTP ICS LPSAT RDL Sammy Simplify Simplics STeP SVC Tsat LiteraturaNieuwenhuis R Oliveras A Tinelli C 2006 Solving SAT and SAT Modulo Theories From an Abstract Davis Putnam Logemann Loveland Procedure to DPLL T Journal of the ACM 53 6 pp 937 977 PosilannyaSMT LIB biblioteka 2 bereznya 2012 u Wayback Machine SMT COMP Zmagannya Satisfiability Modulo Theories 28 travnya 2015 u Wayback Machine Rozv yazuyuchi proceduri algoritmichnij poglyad 15 kvitnya 2022 u Wayback Machine Ce nezavershena stattya z informatiki Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi