Automatsko rezonovanje beleške sa predavanja Teorije prvog reda i SMT Milan Banković Matematički fakultet, Univerzitet u Beogradu Proletnji semestar 2018.
Višesortna logika prvog reda Pregled 1 Višesortna logika prvog reda 2 Teorije prvog reda 3 SMT problem 4 Najčešće teorije u SMT-u 5 SMT rešavači 6 SMT-LIB
Višesortna logika prvog reda Višesortna logika prvog reda Motivacija Uobičajena definicija logike prvog reda podrazumeva jedinstven domen (univerzum) iz koga se uzimaju vrednosti kojima se interpretiraju svi termovi Dakle, svi izrazi su ili termovi ili formule, pri čemu se svi termovi interpretiraju elementima iz tog jedinstvenog domena, dok se formule interpretiraju kao tačne ili netačne Ovakva definicija onemogućava razlikovanje tipova U mnogim primenama, poželjno je razlikovati tipove (npr. ako semantiku nekog programa opisujemo u okviru logike prvog reda, želimo da razlikujemo npr. izraze tipa int od izraza tipa double). Dakle, poželjno je termove razlikovati po sortama, pri čemu za svaku sortu termova postoji poseban domen iz koga se uzimaju vrednosti Ovakav logički okvir se naziva višesortna logika prvog reda
Višesortna logika prvog reda Sintaksa Signatura Σ = (S, F, r) Skup sorti S (medu kojima je i Bool) Skup funkcijskih simbola F (medu kojima su i,,,,...) Funkcija ranga r : F S S r(f ) = [s 1,..., s n ] s (s 1,..., s n su sorte argumenata, a s je povratna sorta) r(a) = [ ] s (a je simbol konstante sorte s) Za svaku sortu s S, skup promenljivih V s Izrazi Svaki izraz e ima svoju sortu s Simbol konstante a ranga [ ] s je izraz sorte s Promenljiva x V s je izraz sorte s Ako je t i izraz sorte s i (i = 1,..., n) i r(f ) = [s 1,..., s n ] s, tada je f (t 1,..., t n ) izraz sorte s Izraze sorte Bool zovemo formulama, a ostale izraze termovima Iskazni simboli imaju uobičajene rangove: r( ) = r( ) = [ ] Bool, r( ) = [Bool] Bool, r( ) = [Bool, Bool] Bool,... Simbol jednakosti: r(= s ) = [s, s] Bool za svaku sortu s S Promenljive se u formulama mogu kvantifikovati: ( x : σ).f ili ( x : σ).f, gde je x promenljiva sorte σ, a F je formula
Višesortna logika prvog reda Semantika Σ-struktura L = (D, L ) D = {D s s S}: skup domena (za svaku sortu s po jedan) D Bool = {0, 1}: domen sorte Bool je uvek {0, 1} a L D s (r(a) = [ ] s): konstanta sorte s uzima vrednost iz D s f L : D s1... D sn D s (r(f ) = [s 1,..., s n ] s) Uobičajeno značenje iskaznih simbola: L = 0, L = 1, L (x) = 1 akko je x = 0, L (x, y) = 1 akko x = 1 i y = 1,... = L s (x, y) = 1 akko su x i y isti element skupa D s Interpretacija Valuacija v : V s D s (za svako s S) x V s : I L v (x) = v(x) r(a) = [ ] s: I L v (a) = a L r(f ) = [s 1,..., s n ] s: I L v (f (t 1,..., t n )) = f L (I L v (t 1 ),..., I L v (t n )) I L v (( x : σ).f ) = 1 akko I L v (F ) = 1 za svako v (v (y) = v(y) za y x) I L v (( x : σ).f ) = 1 akko I L v (F ) = 1 za neko v (v (y) = v(y) za y x) Interpretacija zatvorenih formula (rečenica) ne zavisi od v (I L v (F ) = I L (F ))
Višesortna logika prvog reda Semantika nastavak Osnovne semantičke pojmove definišemo na uobičajen način L F : zatvorena formula F je tačna u Σ-strukturi L (I L (F ) = 1) Zadovoljiva formula: postoji Σ-struktura L takva da je L F F : valjana formula (tačna u svim Σ-strukturama) F : logička posledica (tačna kad god su tačne sve formule iz ) F 1 F 2 : logička ekvivalencija (F 1 F 2 i F 2 F 1 ) F : nezadovoljiva (negacija F je valjana formula)
Višesortna logika prvog reda Napomene Napomene Višesortna logika tretira sve simbole na uniforman način Sorta Bool je samo jedna od sorti (fiksiranog značenja) Predikatski simboli su prosto funkcijski simboli koji vraćaju Bool Iskazni simboli,,,,,... su samo funkcijski simboli nad Bool sortom i sa fiksiranim značenjem Izražajnost Višesortna logika prvog reda nema veću izražajnost od uobičajene logike prvog reda bez sorti Za svaku Σ-strukturu L (u smislu višesortne logike) smo u standardnoj logici prvog reda mogli uzeti strukturu čiji je univerzum unija domena svih sorti iz L Postojanje više sorti se sada može simulirati dodatnim unarnim predikatskim simbolima p s koji se interpretiraju kao odgovarajući podskupovi univerzuma koji odgovaraju domenima pojedinih sorti s L
Teorije prvog reda Pregled 1 Višesortna logika prvog reda 2 Teorije prvog reda 3 SMT problem 4 Najčešće teorije u SMT-u 5 SMT rešavači 6 SMT-LIB
Teorije prvog reda Dedukcija podsećanje Dedukcioni sistem Pravila izvodenja oblika: P 1,...,P n Q Aksiome: tvrdenja koja se ne dokazuju Dokaz: izvodenje primenom pravila (u vidu niza ili stabla) F : F je dokaziva iz (i aksioma) F : F je teorema, tj. dokaziva bez dodatnih pretpostavki (samo iz aksioma) Saglasnost: ako F, onda F Potpunost: ako F, onda F Potpuni i saglasni sistemi: Hilbertov sistem, prirodna dedukcija, račun sekvenata
Teorije prvog reda Teorija prvog reda Definicija teorije prvog reda Teorija T nad signaturom Σ zadata skupom aksioma Ax(T ) je skup svih formula F takvih da je Ax(T ) F Formule F T zovemo teoremama teorije T (u oznaci T F ) Deduktivna posledica u teoriji (u oznaci T F ): Ax(T ) F Model teorije: struktura L u kojoj su sve formule iz Ax(T ) tačne Formula F je valjana u teoriji T (T -valjana, u oznaci T F ) ako je tačna u svim njenim modelima, tj. ako je Ax(T ) F Formula je zadovoljiva u teoriji T (T -zadovoljiva) ako je tačna u bar jednom modelu teorije T, tj. ako je Ax(T ) {F } zadovoljiv skup formula Logička posledica u teoriji (u oznaci T F ): F je tačna u svim modelima teorije T u kojima su tačne sve formule iz, tj. važi Ax(T ) F
Teorije prvog reda Teorija prvog reda Veza izmedu deduktivnih i semantičkih pojmova Pod pretpostavkom da je deduktivni sistem koji razmatramo potpun i saglasan, važi: T F akko Ax(T ) F akko Ax(T ) F akko T F T F akko Ax(T ) F akko Ax(T ) F akko T F Rečenica F je T -zadovoljiva akko nije T F tj. akko nije T F
Teorije prvog reda Teorija prvog reda Osobine teorije prvog reda Za teoriju kažemo da je aksiomatska ako je zadata skupom aksioma Ax(T ) koji je rekurzivan (odlučiv) Za teoriju kažemo da je potpuna ako za svaku rečenicu A važi ili T A ili T A Za teoriju kažemo da je konzistentna ako ni za jednu rečenicu A ne važi istovremeno i T A i T A Za teoriju kažemo da je odlučiva ako postoji efektivan postupak koji za svaku rečenicu A u konačnom broju koraka ispituje da li je T A ili ne
Teorije prvog reda Teorija prvog reda Mogu se dokazati sledeće važne činjenice Teorija je konzistentna akko ima model Za svaku konzistentnu teoriju koja ima bar jedan beskonačan model postoje modeli koji su neizomorfni (posledica Skolem-Lovenhajmove teoreme) Drugim rečima, u logici prvog reda se ne može formulisati konzistentna teorija koja ima tačno jedan model (do na izomorfizam). Za to su nam potrebne moćnije logike (poput logike drugog reda) Teorija je potpuna akko su joj svi modeli medusobno elementarno ekvivalentni (tj. za svaku rečenicu F važi da je F tačna u jednom modelu akko je tačna u drugom i obratno) Potpuna teorija je odlučiva akko je aksiomatska Problem ispitivanja T -zadovoljivosti formule F je odlučiv akko je teorija odlučiva u smislu prethodne definicije
SMT problem Pregled 1 Višesortna logika prvog reda 2 Teorije prvog reda 3 SMT problem 4 Najčešće teorije u SMT-u 5 SMT rešavači 6 SMT-LIB
SMT problem SMT problem i SMT rešavači SMT problem i SMT rešavači SMT problem SMT problem (engl. Satisfiability Modulo Theory) za teoriju T je problem ispitivanja T -zadovoljivosti date formule F Odlučivost SMT problema zavisi od izbora teorije T Za pojedine teorije, SMT problem je odlučiv samo za neke fragmente (formule odredenog oblika) SMT rešavači Softverski alati koji implementiraju procedure odlučivanja (za odlučive SMT probleme) zovu se SMT rešavači Relativno nova tehnologija (početak 21. veka) SAT tehnologija + procedure odlučivanja (lenji pristup) Primene: verifikacija softvera i hardvera, problemi zadovoljavanja ograničenja
SMT problem SMT problem i SMT rešavači Kvantifikatori i SMT Kvantifikatori Egzistencijalni kvantifikatori: skolemizacija Univerzalne kvantifikatore nije uvek moguće ukloniti Neke teorije dopuštaju eliminaciju kvantifikatora Istanciranje kvantifikatora je jedna od tehnika za tretman univerzalnih kvantifikatora SMT problem za bazne formule najčešći slučaj
Najčešće teorije u SMT-u Pregled 1 Višesortna logika prvog reda 2 Teorije prvog reda 3 SMT problem 4 Najčešće teorije u SMT-u 5 SMT rešavači 6 SMT-LIB
Najčešće teorije u SMT-u EUF teorija EUF teorija EUF teorija Equality with Uninterpreted Functions Nema drugih predikatskih simbola osim jednakosti (svi atomi su oblika u = v) Signatura može saržati proizvoljan broj sorti i funkcijskih simbola koji se mogu potpuno slobodno interpretirati (neinterpretirani simboli i sorte) Modeli teorije su svi (normalni) modeli (prazan skup aksioma) SMT problem za ovu teoriju je neodlučiv SMT problem za bazni fragment ove teorije (u oznaci QF UF) je odlučiv Zadovoljivost konjunkcije baznih literala ove teorije je odlučiv u polinomijalnom vremenu (procedure zasnovane na kongruentnim zatvorenjima, poput Nelson-Openove procedure)
Najčešće teorije u SMT-u Realna aritmetika Realna aritmetika Realna aritmetika Signatura: sorta Real, simboli 0, 1, +,,, /, Aksiome: realna zatvorena polja Standardni model: struktura realnih brojeva R Teorija je odlučiva (eliminacijom kvantifikatora) Bazni linearni fragment (u oznaci QF LRA) Problem ispitivanja zadovoljivosti konjunkcije linearnih baznih literala je odlučiv u polinomijalnom vremenu Neke od procedura odlučivanja (eksponencijalne složenosti) su Furije-Mockinova procedura (zasnovana na eliminaciji kvantifikatora) i Simpleks procedura
Najčešće teorije u SMT-u Celobrojna aritmetika Celobrojna aritmetika Celobrojna aritmetika Signatura: sorta Int, simboli 0, 1, +,,, Aksiome: Peanove aksiome (prvog reda) Standardni model: struktura celih brojeva Z Teorija je neodlučiva Njen linearni fragment (Presburgerova aritmetika) je odlučiv Bazni linearni fragment (QF LIA) Problem ispitivanja zadovoljivosti konjunkcije linearnih baznih literala je odlučiv i NP-kompletan
Najčešće teorije u SMT-u Teorija nizova Teorija nizova Teorija nizova Signatura: sorte Index, Value i Array, simboli select : [Array, Index] Value store : [Array, Index, Value] Array Aksiome: ( x)( y)( z)(select(store(x, y, z), y) = z) ( x)( y 1 )( y 2 )( z)(y 1 y 2 select(store(x, y 1, z), y 2 ) = select(x, y 2 )) ( x 1 )( x 2 )(( y)(select(x 1, y) = select(x 2, y)) x 1 = x 2 ) Teorija je neodlučiva u opštem slučaju Bazni fragment teorije (QF AX) je odlučiv Problem ispitivanja zadovoljivosti konjunkcije baznih literala je NP-kompletan
Najčešće teorije u SMT-u Teorija bitvektora Teorija bitvektora Teorija bitvektora Signatura: sorte BitVec n (n N), simboli: bvnot n, bvneg n : [BitVec n ] BitVec n bvadd n, bvshl n,... : [BitVec n, BitVec n ] BitVec n bvult n, bvslt n,... : [BitVec n, BitVec n ] Bool Standardni model: hardverska aritmetika Teorija je odlučiva Bazni fragment QF BV Problem ispitivanja zadovoljivosti konjunkcije baznih literala je NP-kompletan
SMT rešavači Pregled 1 Višesortna logika prvog reda 2 Teorije prvog reda 3 SMT problem 4 Najčešće teorije u SMT-u 5 SMT rešavači 6 SMT-LIB
SMT rešavači Lenji pristup Lenji pristup Lenji pristup Iskazna apstrakcija: atomi prvog reda se zamenjuju iskaznim slovima SAT rešavač ispituje zadovoljivost dobijene iskazne formule Zadovoljavajuća iskazna valuacija odreduje konjunkciju baznih literala Posebna procedura odlučivanja proverava zadovoljivost dobijene konjunkcije baznih literala u teoriji Rezultat: efikasnost pretrage SAT rešavača + procedure odlučivanja prilagodene teoriji,,lenja DNF transformacija
SMT rešavači DPLL(T ) DPLL(T ) DPLL(T ) (Nievenhuis, Oliveras, Tineli (2006)) Najčešće korišćena arhitektura zasnovana na lenjom pristupu DPLL zasnovan SAT rešavač + T -rešavač SAT rešavač: inkrementalno konstruiše zadovoljavajuće iskazne valuacije T -rešavač: ispituje zadovoljivost odgovarajuće konjunkcije literala prvog reda u teoriji T u toku konstrukcije zadovoljavajuće valuacije Mogućnost rezonovanja unapred u teoriji (teorijske propagacije)
SMT rešavači DPLL(T ) DPLL(T ) DPLL(X ) sistem zasnovan na pravilima Implementira klasičan CDCL zasnovan SAT rešavač proširen dodatnim pravilima za rezonovanje u teoriji Stanje (F, M, C): F skup klauza, M je stek literala (parcijalna valuacija), C je konfliktni skup (ili no cflt ako nema konflikta) Pravilo: definiše način promene stanja, kao i uslove pod kojima se može primeniti Grananje, jedinična propagacija, analiza konflikata i nehronološko vraćanje unazad Dodatno: teorijske propagacije i konflikti
SMT rešavači DPLL(T ) Funkcionalnost T -rešavača Obavezna funkcionalnost da može da utvrdi da li je konjunkcija literala na steku zadovoljiva u teoriji da može da konstruiše objašnjenje konflikta (R M takav da je R T ) Poželjna funkcionalnost da može da vrši teorijske propagacije i generiše njihova objašnjenja (R M takav da je R T l, gde je l propagirani literal) inkrementalnost (mogućnost efikasne provere zadovoljivosti u slučaju dodavanja novih literala u konjunkciju bez pokretanja celog postupka iz početka) efikasna rekonstrukcija prethodnog stanja (za potrebe vraćanja unazad)
SMT rešavači DPLL(T ) DPLL(T ) Struktura SMT rešavač ima modularnu strukturu, komponente su jasno odvojene i komuniciraju putem precizno definisanog interfejsa ovakva arhitektura omogućava da se T -rešavač zameni T -rešavačem za neku drugu teoriju T bez ikakvih promena na SAT rešavaču DPLL(X ) + T -rešavač = DPLL(T )
SMT rešavači DPLL(T ) Primer interfejsa teorijskog rešavača Interfejs procedure newlevel() uspostavljanje novog nivoa odlučivanja backtrack(m) vraćanje unazad na nivo m assert(l) dodavanje literala l na stek checkconflict(e) provera konflikta u teoriji checkpropagate(l) detekcija teorijskih propagacija explainliteral(l, E) objašnjavanje propagiranog literala
SMT-LIB Pregled 1 Višesortna logika prvog reda 2 Teorije prvog reda 3 SMT problem 4 Najčešće teorije u SMT-u 5 SMT rešavači 6 SMT-LIB
SMT-LIB SMT-LIB SMT-LIB Poznati SMT rešavači: Z3, Yices, CVC, MathSAT, OpenSMT, BarcelogicTools Cilj SMT-LIB inicijative: bolja koordinacija u razvoju i lakše poredenje SMT rešavača Standard SMT-LIB (tekuća verzija 2.6): ulazno-izlazni jezik, logički okvir, teorije Veliki skup instanci za testiranje i poredenje http://smtlib.cs.uiowa.edu/