Formalni postupci u oblikovanju raunalnih sustava Matematika formalna
Formalni postupci u oblikovanju računalnih sustava Matematička (formalna) logika Prof. dr. sc. Nikola Bogunović 1
FORMAL VERIFICATION I = Implementation (model of the system to be verified) YES Verifier NO (error trace) S = Specification (behavior) Expressed in temporal logic I S ? 2
Formalna (matematička) logika Logika određuje postupke ispravnog rasuđivanja (analogno artimetici). 1. Svaki čovjek je smrtan. 2. Sokrat je čovjek. Zaključak: 3. Sokrat je smrtan. (Ako je istinita rečenica 1 i 2, “logički slijedi” rečenica 3) 1. Svaki ima obilježje . 2. je . 3. ima obilježje . "Logićki slijedi" samo na temelju oblika (forme), a ne na temelju sadržaja (konteksta). Matematička ili formalna logika daje sustav zaključivanja u kojem je "logički izveden" zaključak barem tako dobar kao polazne pretpostavke. Temelj: formalan sustav Niti jedan formalan sustav ne može osigurati istinite polazne pretpostavke. 3
Propozicijska logika (sudova, izjava, iskaza, tvrdnji) (engl. propositional logic, propositional calculus) Sintaksa Logika sudova preslikava deklarativne rečenice (istinite ili lažne) u sutav simbola. Npr. : P: Sokrat je mudar. PS: P, Q, . . . Logički operatori (vezice): (ne, not, ~) (i, and, &) (ili, or, ) (ako, if, , ) (akko, iff, , ) Rezervirani simboli: F (false, , , ) T (true, 1) (, ), . prebrojiv skup atoma, simboličkih varijabli negacija konjunkcija disjunkcija implikacija ekvivalencija konstanta (neistinitost) konstanta (istinitost) znakovi zagrada, zareza i točke Def. (rekurzivno) ispravno formiran (wff) složeni sud, ili formula: 1. Svaki atom je formula. 2. Ako su P i Q formule, onda su formule: ( P), ( Q), (P Q). 4
Semantika Interpretacija: pridruživanje obilježja istinitosti (T, F) atomičkim sudovima I: PS BOOL gdje je BOOL= T, F , t. j. funkcija s kodomenom T ili F. Semantika dvaju složenih sudova prikazuje se istinitosnom tablicom. 2 suda = 22 = 4 interpretacije, 24 = 16 istinitosnih tablica Neke važnije tablice istinitosti za povezivanje dva suda: P Q implikacija ekvivalencija kontradikcija tautologija (P Q) (), T ________________________________________ I 1 : I 2 : I 3 : I 4 : T T F F T F T T T F F F F T T Pazi: Implikacija nije uzročnost ! (to je samo formalna kolona u tablici istinitosti, t. j. funkcijska istinitost). 5
Semantička pravila P 1, P 2 istinite Q 1, Q 2 neistinite A bilo koja formula (istinita ili ne). Istinite su formule: Q 1 (P 1 P 2) (P 1 A) (A P 1) (Q 1 A) (P 1 P 2) (Q 1 Q 2) Neistinite su formule: P 1 (Q 1 A) (A Q 1) (Q 1 Q 2) (P 1 Q 1) (Q 1 P 1) () - prazna formula Složeni sud: Interpretacija (jedan od mogućih svjetova, ovdje 23 mogućih interpretacija) I: P=T, Q=F, R=F, izračunavanje (evaluacija) istinitosne vrijednosti daje formuli: (Q ((( Q) P) R)) 6 neistinitu vrijednost.
Pravila ekvivalencije Dvije formule su ekvivalentne ili jednake ako imaju istinitosnu vrijednost za svaku interpretaciju I. (A A) = () ( ( A)) = A (A A) = A (A B) = (B A) ((A B) C) = (A (B C)) ((A B) C) =(A (B C)) = ((A B) (A C)) ( (A B)) = (( A) ( B)) (A B) = (( A) B) (A B) = ((A B) (B A)) (A B) =(( B) ( A)) kontradikcija dvostruka negacija jednaka važnost (idempotencija) jednaka važnost komutativnost asocijativnost distributivnost De Morganov zakon eliminacija uvjeta eliminacija dvostrukog uvjeta transpozicija 7
Formalan sustav Definiramo formalan sustav: { , L} , gdje je - skup ispravno formiranih formula (wff) L - skup pravila zaključivanja Neka temeljna pravila zaključivanja (slijede iz tablica istinitosti) Generiraju dodatne istinite formule (mehanički) bez razumijevanja konteksta (značenja). Pogodna za strojnu primjenu. Semantički korespondiraju sa semantikom "istinitosti". • • Ako P=T, Q=T, generiraj (P Q) = T Ako P=T, (P Q)=T, generiraj Q = T Ako Q=T, (P Q)=T, generiraj P Ako (P Q)=T, generiraj (Q P) = T Ako (P Q)=T, generiraj P, Q Ako P=T (odnosno Q=T), generiraj (P Q) = T Ako [ ( P)]=T, generiraj P (uvođenje konjunkcije) (modus ponens) (modus tolens) (komutativnost ) ( eliminacija) (uvođenje disjunkcije) ( eliminacija) 8
DEFINICIJE OBILJEŽJA U FORMALNOM SUSTAVU Sekvencija formula { 1, 2, …, n} ili pojedina formula je teorem (dokaz, dedukcija) iz skupa formula , ako je u skupu , ili se može izvesti iz korištenjem pravila zaključivanja L. L { 1, 2, …, n} sekvencija formula je teorem L i formula i je teorem Skup je konzistentan akko ne sadrži formule na temelju kojih bi i i i (istovremeno) bili teoremi. Formalan sustav { , L, i } je odrediv ili odlučljiv (engl. decidable), akko postoji algoritam koji će u konačnom vremenu odrediti ili ne teorem i (dati odgovor "da" ili "ne” postoji). Formalan sustav { , L, i } je poluodrediv ili poluodlučljiv (engl. semidecidable), akko postoji algoritam koji će u konačnom vremenu odrediti teorem ako on postoji. Algoritam završava u konačnom vremenu s odgovorom "da" (za teorem i ), ali ne mora završiti u konačnom vremenu s odgovorom "ne"(za ne-teorem i ). Formalan sustav je neodrediv ili neodlučljiv (engl. undecidable) ako nije odrediv ni poluodrediv. 9
Sintaksa i semantika u formalnom sustavu povezane su interpretacijom (pridruživanjem istinitosti atomima i evaluacijom (izračunavanjem istinitosti složene formule). Neka interpretacija je model formalnog sustava ako evaluira sve njegove formule u istinito (vrijedi i za svaku pojedino). Skup formula je zadovoljiv (engl. satisfiable) ako ima model (barem jedan). Vrijedi i za pojedinačne formule. Skup formula je nezadovoljiv (nekonzistentan, kontradiktoran) ako nema model. Skup formula implicira ili povlači (engl. entails) formulu , ako je svaki model od ujedno i model od . Formula je tada logička posljedica skupa formula . (svaki model od je model formule ) Formula je valjana ili tautologija (engl. valid) ako je istinita za svaku interpretaciju i evaluaciju. (svaka interpretacija je model formule ) 10
Formalan sustav { , L} je ispravan , (engl. sound) ako i kadgod je L i , t. j. svaka pravilima dokazana formula je ujedno i logička posljedica skupa . L i implicira i Formalan sustav { , L} je kompletan (engl. complete) ako L i kadgod je , t. j. svaku logičku posljedicu skupa moguće je dokazati pravilima L. implicira L i U ispravnom i kompletnom formalnom sustavu { , L} vrijedi: = L i Većina interesantnih formalnih sustava je nekompletno, a vrlo malo ih je odredivo. Propozicijska logika je ispravna, kompletna i odrediva (npr. preslikavanjem u tablicu istinitosti), jer operira sa konačnim skupom simbola. 11
Primjeri: Prioritet logičkih operatora: Najviši: negacija konjunkcija disjunkcija implikacija Najniži: ekvivalencija P (P P) () P (Q P) zadovoljiva ali ne i valjana (tautologija) kontradiktorna (nezadovoljiva) valjana (tautologija) 12
Normalni oblici Svaka propozicijska formula je ekvivalentna formuli u disjunkcijskom normalnom obliku (DNF) : (k 11 … k 1 n ) (k 21 … k 2 m) … (kp 1 … kpr) Svaka propozicijska formula je ekvivalentna formuli u konjunkcijskom normalnom obliku (CNF) : (k 11 … k 1 n ) (k 21 … k 2 m) … (kp 1 … kpr) ki = literal (negirani ili nenegirani atom) klauzula = disjunkcija literala. Npr. : (k 21 … k 2 m) CNF = konjunkcija klauzula 13
SAT problem (zadovoljivost) - temeljni NP problem Tražimo model skupa formula (interpretaciju koja evaluira u istinito. Ekvivalentno traženju modela formule koja se sastoji iz konjunkcije svih formula u . skup formula je najčešće dan u CNF obliku: (k 11 … k 1 p ) (k 21 … k 2 r ) … (kp 1 … kps ) Iscrpna procedura rješavanja CNF SAT problema sistematski pridjeljuje istinitosne vrijednosti atomima. Za n atoma 2 n pridruživanja. Računalno neizvedivo. DNF - polinomski (konačan broj literala u samo jednom disjunkcijskom članu). CNF 2 SAT CNF 3 SAT opći slučaj - polinomska kompleksnost (do 2 literala u klauzuli) - NP kompletno (do 3 literala u klauzuli) - NP kompletno Mnogi stohastički algoritmi (1992, 1993) troše eksponencijalno vrijeme u najgorem slučaju, ali polinomsko u srednjem (očekivanom). 14
Meta pravila zaključivanja (ne u logici nego o logici) 1. Teorem dedukcije: (A 1 A 2 . . . An) C, t. j. : C je logička posljedica istinite formule (A 1 A 2 . . . An), akko je formula ((A 1 A 2 . . . An) C) valjana (uvijek istinita, tautologija). Dokaz: - ako je formula ((A 1 A 2 . . . An) C) valjana, uz istinitu (A 1 A 2 . . . An) mora biti istinita i C (tablica implikacije). - (A 1 A 2 . . . An) i C su istovremeno istinite ako imaju zajednički model (a to je i def. logičke posljedice). 15
2. Teorem oborivosti (A 1 A 2 . . . An) C, t. j. : C je logička posljedica (A 1 A 2 . . . An) akko je formula (A 1 A 2 . . . An ( C)) kontradiktorna. Dokaz: Iz teorema 1 (dedukcije) slijedi ako je C logička posljedica (A 1 A 2 . . . An), ((A 1 A 2 . . . An) C) mora biti valjana, odnosno njena negacija ((A 1 A 2 . . . An) C) kontradiktorna (to je dokazano u teoremu 1) Nastojimo pokazati da ta negacija, kao nepobitno kontradiktorna formula, je upravo naša formula (A 1 A 2 . . . An ( C)). ((A 1 A 2 . . . An) C) = (( (A 1 A 2 . . . An)) C) = = ((A 1 A 2 . . . An) ( C)) = (A 1 A 2 . . . An ( C)) Time je teorem dokazan. 16
Lema : Ako želimo dokazati da je formula C logička posljedica (A 1 A 2 . . . An) - (aksiomi, pretpostavke, premise), formulu C negiramo, dodajemo konjunkcijskom skupu aksioma, te nastojimo dokazati da je tako dobiven skup kontradiktoran, t. j. : Pokaži kontradiktornost u: (A 1 A 2 . . . An ( C)) Kako je prazna formula () nepobitno kontradiktorna, prošireni skup nastojimo pravilima zaključivanja L reducirati na (). Postupak se naziva “reductio ad absurdum”. Primjer: Ako su istinite tvrdnje. P, (P Q), (Q S), dokaži da je istinita tvrdnja S. 1. P 2. (P Q) 3. (Q S) 4. S ; dodajemo negaciju tvrdnje (hipoteze) S iz 1. i 2. modusom ponensom slijedi Q, iz 3. i 4. modusom tolensom slijedi Q, 17 a konjunkcija tvrdnji Q je očita kontradikcija.
RAZRJEŠAVANJE - novo pravilo zaključivanja (Robinson 1965) Logička posljedica dviju istinitih konjunkcijom vezanih normaliziranih klauzula, je normalizirana klauzula bez komplementarnih parova. Normalizirana klauzula je formula oblika disjunkcije literala. Komplementarni parovi su nenegirani i negirani jednaki atomički predikati. Robinsonov teorem zadržava zadovoljivost rezultirajuće formule. 1. (A 1 A 2 . . . An B 1 B 2 . . . Bm) 2. (( B 1) ( B 2) . . . ( Bm) C 1 C 2 . . . Cp) ______________________ 3. (A 1 A 2 . . . An C 1 C 2 . . . Cp) 3 - razriješena formula (engl. resolvent), bez kompl. parova Bi i Bi. Objašnjenje s tzv. "izostavljenom sredinom": 1. i 2. moraju biti istinite (polazna pretpostavka). B ne može istovremeno biti T i F. Ako je B = F, to mora u 1. bar jedan A biti T. Ako je B = T, odnosno B = F, to mora u 2. bar jedan C biti T. Znači da bar jedan A ili C mora biti T, a to je upravo formula 3. 18
Svaka formula u propozicijskoj logici može se preslikati u konjunkciju klauzula (CNF): Npr: (P Q) (R P) 1. Eliminiraj implikaciju uporabom ekvivalentnog " " oblika: ( P Q) ( R P) 2. Reduciraj doseg negacije (pomak u desno) uporabom De. Mrorgan pravila, te eliminiraj dvostruke negacije: (P Q) ( R P) 3. Pretvori u CNF asocijativnim i distribucijskim pravilima: (P R P) ( Q R P), te dalje: (P R) ( Q R P) = CNF oblik normalizirane klauzule 19
Razrješavanje je ispravano (engl. sound) pravilo zaključivanja, t. j. : RES implicira da je (dobivena formula je doista logička posljedica ) Samo razrješavanje nije kompletno (dostatno za izvođenje svih logičkih posljedica nekog skupa klauzula). Npr. : iz {P, R} skupa ne može se samo razrješavanjem dokazati teorem (P R), jer se nema što razriješiti. Koristimo dodatni teorem oborivosti i osnovna pravila: 1. korak dod. neg. teorem (teorem oborivosti) P R (P R) 2. korak pravilo neg. 3. korak elimin. 4. korak razrješavanje P (), R P R Razrješavanje je oborivo kompletno (engl. refutation complete). P R P R 20
Opći postupak dokazivanja teorema (ATP): - definiraj skup aksioma E kao ispravne formule (wff). - definiraj teorem H kao ispravnu formulu (wff). - negirani H dodaj skupu aksioma E, dobiven je skup formula F. - preslikaj skup formula F u skup normaliziranih klauzula K. ponavljaj: izaberi klauzule k 1 i k 2 iz skupa K novi-k : = razriješi (k 1, k 2) novi-k' : = pojednostavi novi-k sa K ; pojed. novi-k K : = pojednostavi K sa novi-k’ ; pojed. K dok: () ili redukcija više nije moguća ako (), vrati "teorem H dokazan" inače, vrati "skup konzistentan, teorem H nije dokazan" 21
E 1 aksiomi E 2 E = { Ei } … (wff) En normalizirane klauzule teorem H: H ( općenito n m ) F K = { k 1, k 2, … , k m } (wff) k 1 k 2 kontradikcija … () km pravila L (rezrješavanje i ostala) 22
Postupci pojednostavljivanja: 1. Uporaba temeljnih pravila: Npr. : (P R P) (P P Q) pojednostavi (spoji) u (P R) izostavi cijelu jer je evidentno valjana (T) 2. Podrazumijevanje (engl subsumption) Klauzula 1 podrazumijeva klauzulu 2 , ako su literali u 1 podskup literala u 2. Npr. : (P R) podrazumijeva klauzule (P R Q) 23
Postupci izbora klauzula za razrješavanje (STRATEGIJE) 1. Strategija izbora u širinu (engl. breadth-first-strategy) • U prvoj iteraciji svaka klauzula se uspoređuje sa svakom klauzulom. • U n-toj iteraciji, novo generirane klauzule iz n-1 iteracije dodaju se skupu klauzula, te se sve klauzule uspoređuju svaka sa svakom. • Generira eksponencijalan broj novih klauzula. • Garantira pronalaženje rješenja (strategija je kompletna). 2. Strategija s prvenstvom jediničnih klauzula (jedan literal) (engl. unit preference strategy) - predprocesiranje • Cilj dokazivanje je prazna klauzula. • Stoga u svakom koraku, ako se proizvede klauzula s manje članova od izvornih, dolazi se bliže rješenju. • Razrješavanje s klauzulom koja sadrži samo jedan literal sigurno generira kaluzulu s manje članova nego što ih imaju polazne. 24
3. Strategija skupa potpore (engl. set of support) • Za skup ulaznih klauzula K, može se definirati podskup T K, (skup potpore). • Ova strategija zahtijeva da barem jedna od klauzula u razrješavanju bude ili ima pretka u T. • Može se pokazati da ako je K nezadovoljiv, a K-T zadovoljiv, strategija skupa potpore je kompletna. • Ako je izvorni set klauzula-aksioma Ei zadovoljiv (uobičajen slučaj), nije oportuno tražiti razrješavanje u tom skupu (to je ustvari K-T skup). Negacija onoga što nastojimo dokazati daje nekonzistentnost. • Strategija skupa potpore zahtijeva stoga da barem jedna od klauzula u razrješavanju bude negirani zaključak ili klauzula generirana ranije razrješavanjem s negiranim zaključkom. • Reducira prostor stanja strategije izbora u širinu, te traži samo sva razrješavanja s negiranim zaključkom i njegovim potomcima, a ne sva kao u strategiji u širinu. 25
4. Linearna ulazna strategija razrješavanja (PROLOG) • Polazi od negiranog zaključka i jedne klauzule iz skupa aksioma. • U svakom slijedećem koraku razrješava se uvijek s rezultatom iz prijašnjeg koraka i jednom novom klauzulom iz skupa aksioma. • Nikad se ne koriste klauzule generirane u nekom od ranijih koraka (kao kod npr. strategije skupa potpore), niti dva aksioma zajedno. • Linarna ulazna strategija nije kompletna. Primjer: Ako ma koja klauzula predstavljala negirani zaključak, linearnom ulaznom strategijom nije moguće doći do prazne klauzule (dokaza). 1. (A B) 2. (A B) 3. ( A B) 4. ( A B) Očito da iz 1 i 2 slijedi A, a 3 i 4 slijedi A, te je skup nekonzistentan. Ako pak koristimo linearnu ulaznu strategiju, polazimo npr. od 1, te 1 i 2 daju 5: A, 5 i 3 daje 6: B, 6 i 4 daje 7: A, i nema (), t. j. kontradik. Slično bez obzira na polaznu klauzulu. 26
PREDIKATNA LOGIKA (Logika predikata prvoga reda - FOPL) (engl. predicate logic, predicate calculus, first order predicate logic) G. Frege, A. Tarski 1. P: Svi ljudi su smrtni. 2. Q: Sokrat je čovjek. 3. R: Sokrat je smrtan. U propozicijskoj logici nikako se iz 1 i 2 ne može zaključiti 3, t. j. temeljem P i Q nije moguće zaključiti R. FOPL uvodi objekte, relacije, obilježja, funkcije (pobliži opis unutar suda). Sintaksa: Atomički predikat: (pred_simbol t 1 t 2 … tn) pred_simbol(t 1 t 2 … tn) pred_simbol: ti = članovi: – infiks notacija (kao npr. LISP) - prefix notacija (Prolog) osnovno obilježje u rečenici (predikat) objekti ili odnosi u rečenici 27
Članovi (ti ) : Konstante: Rezervirane konstante: Varijable: Funkcije: objekti u nekom svijetu (blok 1, sokrat, …). T, F. razred objekata ili obilježja; mogu poprimiti vrijednosti iz svoje domene; (Npr. : X, Y, …). veza između objekata - (fun_simb t 1 t 2 … tn) Npr. : (cos X), (otac_od abel kain) Formalna def. člana: 1. Konstanta je član. 2. Varijabla je član. 3. Ako je fun_simb funkcijski simbol sa n-argumenata, a t 1, t 2, …, tn su članovi, tada je (fun_simb t 1 t 2 … tn) član. Logički operatori (vezice): , , Kvantifikacijski simboli (uz varijable, pobliže određuju istinitost rečenice): (postoji, za_neki, exist) (za_svaki, svi, for_all) - egzistencijski ili partikularni kvantifikator (barem jedan). - univerzalni kvantifikator (svi), ima središnju ulogu u izražavanju generalizacije. 28
Ispravno definiran složeni predikat ili formula (wff): 1. svaki atomički predikat je formula. 2. ako je Si formula, tada su formule: ( S), (S 1 S 2), (S 1 S 2). 3. ako je X varijabla, a S formula, tada su formule: X S(X), X S(X). Negirani ili nenegirani atomički predikat naziva se literal. Dopuna pravilima ekvivalencije (P(X), Q(X) su wff s varijablom X): ( ( X P(X))) = X ( P(X)) ( ( X Q(X))) = X ( Q(X)) X P(X) = Y P(Y) - analogno De Morgan - simbol varijable nije bitan, ali je bitan doseg, uvijek unutar jedne formule Primjer ispravno definiranog složenog predikata: ( X Y (((otac X Y) (majka X Y)) (roditelj X Y))) 29
Semantika predikatne logike (1) Skup wff odnosi se na neku domenu razmatranja D. • Interpretacija I je proces preslikavanja elemenata iz domene D svakoj pojedinoj konstanti, varijabli, i funkciji, te atomičkom predikatu, tako da: • Simbolu T uvijek je pridružena istinita vrijednost. • Simbolu F uvijek je pridružena neistinita vrijednost. • Svakoj konstanti pridruži se jedan element iz D. • Svakom funkcijskom simbolu pridruži se jedan element iz D. • Svakoj varijabli se pridruži neprazan podskup iz D (dozvoljene supstitucije). • Svaka funkcija f, sa m argumenata, definira interpretacijom i evaluacijom preslikavanje iz Dm u D, t. j. : f: Dm D (pridruživanje jednog elementa iz D). • Svaki predikat P, s brojem članova n, definira interpretacijom i evaluacijom svojih članova preslikavanje iz Dn u T, F , t. j. P: Dn T, F (istinito ili ne). • Vrijednosti wff formula složenih logičkim operatorima date su odgovarajućim istinitosnim tablicama. • Vrijednost X P(X) je T, ako P(X) je T, za sve vrijednosti X date sa I, a F inače. • Vrijednost X P(X) je T, ako P(X) je T, barem za jednu vrijed. X datoj sa I, a F inače. 30
Semantika predikatne logike (2): Određivanje istinitosti wff svodi se na interpretaciju + evaluaciju Primjeri pridruživanja istinitosti: 1. (prijatelj ivan ana) Atomički predakat je T, ako u D postoji objekt Ana koja je prijatelj Ivanu. 2. X je domena prirodnih brojeva X (veci X 10) atomički predikat je F X (veci X 10) atomički prediakt je T - u određivanju T potrebne sve supstitucije varijable (problem ako je domena beskonačna) - u određivanju T potrebna jedan supstitucija za koju T (problem ako je domena beskonačna i predikat F) Skup svih istinitih predikata iz domene D = stanje svijeta (engl. state of the world). 31
Primjeri preslikavanja prirodnog jezika u predikatnu logiku 1. Nitko nije savršen. X (savrsen X), ili X ( (savrsen X)), t. j. "svi su nesavršeni" 2. Svi košarkaši su visoki. X ((kosarkas X) (visok X)) za svaki X u domeni razmatranja vrijedi da ako je (X) košarkaš tada je visok Ispravna uporaba univerzalnog kvantifikatora (1) Neka je okvir razmatranja (skup objekata): { Garfield, Feliks, računalo} Preslikaj u pred. logiku: "Sve mačke su sisavci. " Za sve objekte u okviru razmatranja vrijedi: ako su mačke tada su sisavci. x [ mačka(x) sisavac(x)] 32
Ispravna uporaba univerzalnog kvantifikatora (2) x [ mačka(x) sisavac(x)] (vrijedi za sve objekte x) Dokaz: Supstitucija svih objekata u formulu (konjunkcija formula jer ): [ mačka(Garfield) sisavac(Garfield)] [ mačka(Feliks) sisavac(Feliks)] [ mačka(računalo) sisavac(računalo)] . . . (ostali objekti ako ih ima) prva [ ]: T tablica za druga [ ]: T tablica za treća [ ]: T !!!!! tablica za pa je cijela [ ] formula T !!!!! Ekvivalentno nabrajanju samo tvrdnji koje su istinite na lijevoj strani. Ništa ne govorimo o tvrdnjama koje su neistinite na lijevoj strani. Ako bi preslikali: x [ mačka(x) sisavac(x)] Supstitucija svih objekata daje: [ mačka(Garfield) sisavac(Garfield)] [ mačka(Feliks) sisavac(Feliks)] [ mačka(računalo) sisavac(računalo)] … (ostali objekti ako ih ima) mačka(računalo) = F - daje neistinitu cijelu formulu !! 33
Ispravna uporaba egzistencijskog kavantifikatora (1) Neka je okvir razmatranja (kao prije): Preslikaj u predikatnu logiku: { Garfield, Feliks, računalo} "Garfield ima brata koji je mačka. " Postoji barem jedan (neki) objekt i takav da su mu obilježja istinita. x [brat(x, Garfield) mačka(x)] Dokaz supstitucijom svih objekata u formulu ( disjunkcija formula jer ): [brat(Garfield, Garfield) mačka(garfield)] [brat(Feliks, Garfield) mačka(Feliks)] [brat(računalo, Garfield) mačka(računalo)] … bar jedan (ostali ako ih ima) Prva [ ] neistinita, ali idemo dalje jer su povezane disjunkcijom. Drugi red istinit, cijela formula je istinita (dalje ne moramo ispitivati). 34
Ispravna uporaba egzistencijskog kavantifikatora (2) Ako bi preslikali: x [brat(x, Garfield) mačka(x)] Supstitucija svih objekata u disjunkciju formula daje: [brat(Garfield, Garfield) mačka(Garfield)] [brat(Feliks, Garfield) mačka(Feliks)] [brat(računalo, Garfield) mačka(računalo)] … (ostali objekti ako ih ima) Implikacija je istinta ako je atomički izraz na lijevij strani neistinit ! Npr. ako je: [brat(računalo, Garfield) mačka(računalo)] istinito, cijela je formula istinita !! Egzistencijski kvantificirana implikacijska formula je istinita ako u okviru razmatranja postoji barem jedan objekt za koji je premisa implikacije neistinita. Takva rečenica ne daje nikakvu potvrdnu informaciju. Zaključak: ide uz 35
Ispitni zadatak iz predikatne logike Preslikaj u predikatnu logiku: Rješenje: "Niti jedan student ne sluša sve predmete. " Def. predikate: S(x) x je student L(x) x je predmet B(x, y) x sluša y Prioriteti logičkih operatora: Preporuka: , , . koristi zagrade za prioritet i doseg kvantif. a) “Ne postoji x koji je student i takav da sluša sve predmete. ” x [ S(x) y (L(y) B(x, y) ) ] = obilježje b) “Za svaki x vrijedi: ako je student postoji predmet (bar jedan) koji ne sluša” x [ S(x) ( y (L(y) B(x, y) ) ) ] = obilježje Evidentno: 1) ide uz , ide uz 2) pomicanjem negacije u a) slijedi b) - De. Morgan 36
Obilježja predikatne logike Zadovoljivost Model Logička posljedica Kontradiktornost Pravila zaključivanja Teoremi dedukcije i oborivosti (metateoremi) kao u propozicijskoj logici Teorem razrješavanja - potrebno dodati izjednačavanje. Logika predikata višega reda Predikatna logika: Kvantifikacija samo varijabli (objekata u domeni D), a ne na odnosa (predikatski ili funkcijski simbol) u domeni D. Logika višega reda: (Voli) (Voli ivo ana) kvantifikacija na predikatskom simbolu. 37
RAZRJEŠAVANJE - u predikatskoj logici (Robinson 1965) Logička posljedica dviju istinitih, konjunkcijom vezanih, univerzalno kavntificiranih normaliziranih klauzula, je normalizirana klauzula bez komplementarnih parova. Normalizirana klauzula je formula oblika disjunkcije literala. Komplementarni parovi su nenegirani i negirani jednaki atomički predikati. Robinsonov teorem zadržava zadovoljivost rezultirajuće formule. 1. (A 1 A 2 . . . An B 1 B 2 . . . Bm) 2. (( B 1) ( B 2) . . . ( Bm) C 1 C 2 . . . Cp) ______________________ 3. (A 1 A 2 . . . An C 1 C 2 . . . Cp) 3 - razriješena formula (engl. resolvent), bez kompl. parova Bi i Bi. 38
Postupci dokazivanja u predikatnoj logici - definiraj skup aksioma E kao ispravne formule (wff). - definiraj teorem H kao ispravnu formulu (wff). - negirani H dodaj skupu aksioma E, dobiven je skup formula F. - preslikaj skup formula F u skup normaliziranih klauzula K. ponavljaj: izaberi klauzule k 1 i k 2 iz skupa K novi-k : = razriješi (k 1, k 2) novi-k' : = pojednostavi novi-k sa K ; pojed. novi-k K : = pojednostavi K sa novi-k’ ; pojed. K dok: () ili redukcija više nije moguća ako (), vrati "teorem H dokazan" inače, vrati "skup konzistentan, teorem H nije dokazan" 39
Preslikavanje formula logike predikata u normalizirane klauzule (1) Normalizirana klauzula: disjunkcija literala. Temeljna ili osnovna klauzula (engl. ground clause): klauzula bez varijabli. Preslikavanje ne zadržava jednakost (ekvivalenciju), ali zadržava zadovoljivost (dostatno za uporabu teorema oborivosti). 1. Eliminirati sve implikacije i ekvivalencije, te umjesto njih koristiti disjunkcije i konjunkcije, npr. : (P Q) = (( P) Q) (P Q) = ((( P) Q) (P ( Q))) 2. Pomaknuti negacije do jediničnih formula, npr. : ( ( P)) = P ( ( X A(X))) = ( X ( A(X))) 3. Preimenovati varijable uz kvantifikatore u istoj složenoj formuli. Npr. : ( X (P(X)) ( X Q(X))) Formule P i Q trebaju sadržati različite varijable (npr. X, Y), ( X (P(X)) ( Y Q(Y))) Doseg varijable je samo unutar formula. Ponekad je korisno formule standardizirati (posebno označiti). 40
Preslikavanje formula logike predikata u normalizirane klauzule (2) 4. Eliminirati kvantifikatore (skolemizirati - Toraf Skolem). 4. 1 Univerzalni kvantifikator (podrazumijeva se, te se ispušta) ( X ((prizma X) (geom_tijelo X))) ; sve prizme se geom. tijela pišemo jednostavnije: ((prizma X) (geom_tijelo X)) 4. 2 Egzistencijski kvantifikator Pretvorba varijable u novu konstantu ili funkciju, čiji su članovi univerzalno kvantificirane varijable. 4. 2. 1 Egzistencijski kvantifikator nije u dosegu univerzalnog: ( X((nudist X) (demokrat X))) X sup. s novom jedinstvenom konstantom – skolem konst. Dajemo ime nečemu što mora postojati, jer ako je formula istinita, mora postojati bar jedna supstitucija. Odaberemo npr: X = ab_1, te slijedi: ((nudist ab_1) (demokrat ab_1)) 41
Preslikavanje formula logike predikata u normalizirane klauzule (3) 4. 2. 2 Egzistencijski kvantifikator u dosegu univerzalnog: ( X ( Y P(X, Y))) ; predikat P sardži članove-varijable X i Y Postoji neki Y i nekako ovisi o (odabranom) X. Dajemo novi simbol za Y, (uvodimo funkcijski član - skolem funkciju), jer je Y različit za svaki odabrani X. Y = f(X), pa uz izostavljanje slijedi: P(X, f(X)) ; prefiks notacija Npr. "Svaka osoba ima majku. " X Y (majka X Y) ; infiks notacija Varijabla X označuje svaku osobu. Y označuje određenu (ne svaku), jer ovisi o X. Y zamijenjujemo s funk. članom (m_funkcija X), pa (uz ispuštanje ): (majka X (m_funkcija X)) ; u infiks notaciji 42
Preslikavanje formula logike predikata u normalizirane klauzule (4) 5. konjunkcijom složene formule se rastavljaju i pišu svaka posebno. (A (B C)) = (A B) (A C) Formule (A B) i (A C) pišu se kao odvojene klauzule. Nakon izvedenog preslikavanja slijedi: skup normaliziranih klauzula, koji predstavlja stanje svijeta u CNF (konjunkcijskom normalnom obliku) - konjunkcija klauzula. 43
Izjednačavanje atomičkih predikata (unifikacija) - 1 U razrješavanju tražimo komplementarne parove (radi eliminacije). U propozicijskoj logici atomički predikati su jednaki ili ne (atomički simboli). U predikatskoj logici jedinični predikati s istim predikatskim simbolom i jednakim brojem članova možda se mogu izjednačiti. Iako izvorno nejednaki, treba pronaći supstituciju varijabli, koja bi ih učinila jednakima (obilježje inteligencije ? ). Pažnja: Doseg varijabli je unutar jedne klauzule, te svaku supstituciju varijable treba dosljedno provesti u cijeloj klauzuli. Primjer 1: 1. (p 1 a b) ; p 1 je pred. simbol, a i b se konst. 2. (( (p 1 X b)) (p 2 X c)) ; p 1 i p 2 su pred. , X je varijabla supstitucija: X=a u cijeloj klauzuli 2. 1. (p 1 a b) 2. (( (p 1 a b)) (p 2 a c)) (…) su kompl. parovi koji se u razrješavanju eliminiraju. Ostaje samo (p 2 a c). Skup parova varijabli i pripadnih supstitucija je unifikator: = X=a. 44
Izjednačavanje atomičkih predikata (unifikacija) - 2 Primjer 2: 1. (r 1 Y Z) ; Y, Z su varijable 2. (( (r 1 a X)) (r 2 X b)) ; X je varijabla, a i b su konst. Supstitucija Y=a, Z=a 1 u prvoj klauzuli, te X=a 1 u drugoj daje: 1. (r 1 a a 1) 2. ( (r 1 a a 1)) (r 2 a 1 b)) (…) su kompl. parovi. Razriješena klauzula je (r 2 a 1 b). Postoji i općenitije rješenje. Ako u prvoj klauzuli supstituiramo: Y=a, Z=Xnovi (varijablu zamijenimo s varijablom), a u drugoj X=Xnovi, slijede klauzule: 1. (r 1 a Xnovi) 2. ( (r 1 a Xnovi)) (r 2 Xnovi b)) Razriješena klauzula (r 2 Xnovi b) je općenitija, sadrži varijablu Xnovi koja se može dalje koristiti (u slijedećim koracima). Traži se supstitucija koja daje najopćenutije rješenje, unifikator (supstitucijski parovi) je tada MGU (engl. most general unifier). 45
Izjednačavanje atomičkih predikata (unifikacija) - 3 Test na pojavu (engl. occurs check”) U izjednačavanju se varijabla ne smije zamijeniti članom koji sadrži tu istu varijablu. X se ne može zamijeniti s f(X), jer bi to kreiralo beskonačnu sekvenciju: f(f(f(. . . X))). Ispitivanje takve hazardne situacije naziva se test na pojavu (engl. occurs check). Primjer: (pred_symb_1 X (pred_symb_1 Y (funk X)) Y ) U prvom koraku zamijeni se Y sa X. Slijedi: (pred_symb_1 X (funk X)) (pred_symb_1 X X ) U drugom koraku nastoji se zamijeniti X sa (funk X) što generira beskonačnu petlju. 46
Pojednostavljenje u FOPL podrazumijevanjem Podrazumijevanje odbacuje manje općenite klauzule. Upotrebljavamo prefiks notaciju: Npr. stariji( otac_od(X), X) je općenitija jedinična klauzula od stariji( otac_od(ana), ana) Npr. žena(X, Y) žensko(X) je općenitija od žena(ana, ivan) žensko(ana) Npr. P(a, X) P(Y, b) je općenitija od P(a, b) Nije uvijek prednost odbaciti jediničnu klauzulu (jedan od ciljeva u ATP-u). 47
Primjer zaključivanja (dokazivanja teorema) u FOPL- (1): Aksiomi: A 1 : Svi ljudi su smrtni. A 2 : Sokrat je čovjek. Teorem: ? : Sokrat je smrtan FOPL: X ((covjek X) (smrtan X)) (covjek sokrat) FOPL: (smrtan sokrat) Teorem H negiramo i dodajemo skupu premisa: E 1: ( X ((covjek X) (smrtan X))) E 2: (covjek sokrat) E 3: ( (smrtan sokrat)) Preslikavamo u normalizirane klauzule: K 1: (( (covjek X)) (smrtan X)) K 2: (covjek sokrat) K 3: ( (smrtan sokrat)) Klauzule K 1 i K 2 (strategija u širinu) uz sup. X=sokrat, razriješimo u klauzulu K 4. K 1: (( (covjek X)) (smrtan X)) ; izvorne klauzule K 1 i K 2 ostaju nepromijenjene K 2: (covjek sokrat) K 3: ( (smrtan sokrat)) K 4: (smrtan sokrat) ; novo generirana klauzula dodaje se skupu Klauzule K 3 i K 4 su kontradiktorne, jer njihovim razrješavanjem slijedi (). Time je teorem “Sokrat je smrtan. ” dokazan. 48
Primjer zaključivanja (dokazivanja teorema) u FOPL- (2): Primjer ističe važnost unifikatora. A 1 : A 2 : H: Rex se uvijek nalazi gdje i Ivan je u knjižnici. Gdje je Rex ? FOPL: A 1 : A 2 : H: X (nalazi ivan X) (nalazi rex X) (nalazi ivan knjiznica) Y (nalazi rex Y) ; Rex se nalazi svagdje (postavljanje hipoteze !!) Klauzule: K 1 : (nalazi ivan X) (nalazi rex X) K 2 : (nalazi ivan knjiznica) K 3 : (nalazi rex Y) ; Rex se ne nalazi nigdje, ; traži se kontradikcija uz vezanje Y Iz K 1 i K 2 (supstitucija X=knjiznica) slijedi dodatna klauzula: K 4 : (nalazi rex knjiznica) Iz K 3 i K 4 (supstitucija Y=knjiznica) slijedi K 5: (), t. j. kontradikcija. Time je teorem dokazan. Odgovor je sadržan u supstituciji Y=knjiznica. 49
RAZRJEŠAVANJE I JEDNAKOST (1) Npr. (3 + 4) možemo pisati i kao ((3 + 0) + 4) ---> uvođenje aritmetike ! Nemoguće je izgraditi sustav sa svim mogućim varijacijama predstavljanja. Postoji nekoliko popularnih pristupa obradbe jednakosti. 1. Relaciju jednakosti aksiomatiziramo: X X=X X Y (X=Y) (Y=X) X Y Z ( X=Y Y=Z) (X=Z) X Y (Xj=Y) P(X 1 … Xj … Xn) P(X 1 … Y … Xn) X Y (Xj=Y) f(X 1 … Xj … Xn) f(X 1 … Y … Xn) ; refleksija ; simetrija ; transitivnost ; sup. u pred. ; sup. u funk. Dodavanjem ovih formula u skup aksioma uvodi nove (moguće nepotrebne) klauzule i povećava prostor stanja pri razrješavanju. 50
RAZRJEŠAVANJE I JEDNAKOST (2) 2. Paramodulacija Cilj je izvesti zamjenu člana u klauzuli koristeći pozitivni literal equal (simbol equal je standard ili konvencija). To je generalizacija supstitucije jednakosti (t. j. može biti duboko ugnježđena). Postupak: - supstitucija varijabli u obje klauzule (“From” i “Into”) - supstiticija člana u “Into” s članom iz equal predikata (“From”). Primjer 2. 1: Postoji jednakost: (majka_od ana) = kata odnosno standardno: (equal (majka_od ana) kata) To je “From” jedinična klauzula (literal, atomički predikat). Neka je željena “Into” klauzula: (starija (majka_od X) X) Supstitucija X=ana u obje klauzule (ovdje se u “From” nema što supstituirati) daje: “From”: (equal (majka_od ana) kata) “Into”: (starija (majka_od ana) Supstitucija člana u “Into” s članom iz “From” (t. j. koristeći equal) daje konačno: (starija kata ana) 51
RAZRJEŠAVANJE I JEDNAKOST (3) 2. Paramodulacija Primjer 2. 2 (s varijablama u obje klauzule, obje equal !): “From”: “Into”; (equal (sum 0 X) X) (equal (sum Y (minus Y)) 0) Supstitucija u obje traži: Y=0, X=(minus Y)=(minus 0) Rezultat supstitucije u obje: “From”: (equal (sum 0 (minus 0)) “Into”: (equal (sum 0 (minus 0)) 0 ) Supstitucija “From” u “Into” daje konačno: (equal (minus 0) 0) Kod paramodulacija izvorni oblik (equal (sum Y (minus Y)) 0) ostaje u skupu. Postupak se zaustavlja nakon prve uspješne zamjene. Paramodulacija čuva kompletnost ako se proširi s refleksivnim predikatom: (equal X X) 52
RAZRJEŠAVANJE I JEDNAKOST (3) 3. Postupak demodulacije Demodulacija je postupak prijepisa klauzula u odabran kanonički (standardan) oblik. U postupku se koristi pozitivna jedinična klauzula (predikat) kao demodulator. Ograničeno na gornju razinu u jediničnoj klauzuli (predikatu), bez ugnježđivanja. Npr. neka je demodulator : Standardizirano pišemo: (otac_od X)) = (djed_od X) (equal (otac_od X)) (djed_od X)) ; Demodulator prepisuje član u nekom atomičkom predikatu uz pomoć svoje jedinične klauzule. Npr. , u predikatu (dob (otac_od ana)) 75) funkcijski član (otac_od ana)) se zamijenjuje (djed_od ana) iz demodulatora i prepisuje u: (dob (djed_od ana) 75) Izvorni oblik predikata (dob (otac_od ana)) 75) se odbacuje, ( kod paramodulacije ostaje u skupu). Jedna uspješna zamjena pokreće daljnju moguću (kod paramodulacija ne). U nekim posebnim slučajevima može se izgubiti kompletnost. 53
Godelov teorem nekompletnosti (1931) (ide uz bok Einsteinovoj teoriji relativnosti i Heisenbergovom principu neodređenosti) U FOPL se uvodi skup prirodnih brojeva (N). “Ne postoji konzistentan i kompletan sustav dokazivanja za FOPL + N. ” Postoje izrazi koji su: istiniti ali nedokazljivi, ili dokazljivi ali nisu istiniti. Aritmetika omogućuje izgradnju kodnog sustava (Godelovi brojevi) za izraze u FOPL + N: Npr. : P = “ P je nedokazljiv” Ako je P istinit, tada je P nedokazljiv (nekompletnost ! ). Ako je P neistinit, tada je P dokazljiv (nekonzistentnost ! ). 54
Tipične primjene ATP-a 1. Matematika 2. Formalna logika 3. Zagonetke 4. Oblikovanje računalnih sustava 5. Automatizirano upravljanje (engl. automated control) 6. … The TPTP Problem Library for Automated Theorem Proving http: //www. cs. miami. edu/~tptp v 2. 5. 0 (July, 2002): 7 MB --> 350 MB, 6772 problems (30 domains) 55
Primjer: Projektiranje digitalnih sklopova (uporaba demodulacije) i. X - ulazni signali, o. Y - izlazni signali Potrebno je izgraditi sklop: o 1 = or(i 1, not(i 2)) isključivo NAND sklopovima Definiramo predikat SKL (koristimo infiks notaciju kao u Prologu): (1) SKL(or(i 1, not(i 2)) i prepisujemo u SKL(< izraz >), gdje je <izraz> dat isključivo NAND sklopovima. Definiramo demodulatore: (2) EQUAL(or(x, y), nand(not(x), not(y)) (3) EQUAL(and(x, y), not(nand(x, y))) (4) EQUAL(not(x), nand(x, x)) (5) EQUAL(nand(x, x), nand(x, x)), x) Strategija: ; osnovne formule prijepisa ; za pojednostavljenje - zamjena članova iznutra prema van - SKL jedinična klauzula u "set of support” - početak !! - not(i 2) iz SKL prepisuje demodulator (4) u nand(i 2, i 2) - cijeli član or(i 1, nand(i 2, i 2)) prepisuje demod. (2) u: nand(not(i 1), not(nand(i 2, i 2))) - dalje, idući iznutra not(nand(i 2, i 2)) prepisuju demodulatori (4) i (5) u i 2 - konačno not(i 1) prepisuje demodulator (4) u (nand(i 1, i 1) Rezultat: SKL(nand(i 1, i 1), i 2) 56
Primjer: ATP u verifikaciji programskih odsječaka (1) 1. Predstavljanje stanja programa: PSTATE(naziv_tekuće_naredbe, lista_varijabli) ; prefiks notacija naziv_tekuće_naredbe = “label” lista_varijabli(simbol, vrijednost, ostatak_liste) --> član konstanta --> funkcijski član Npr: lista_varijabli(k, 2, nil) ; samostalna varijabla k lista_varijabli(a, lels 1(1, 7, lels 1(2, 19, lels 1(3, 1, lels 1(4, 73, lels 1(5, 6, nil))))), ; varijabla a[ ] je polje (engl. array) : funkcija: lels(indeks_elementa, vrijednost_elementa, ostatak_liste) Npr. stanje programa: PSTATE(entry, lista_varijabli(a, lels 1(1, 7, lels 1(2, 19, lels 1(3, 1, lels 1(4, 73, lels 1(5, 6, nil))))), lista_varijabli(k, 2, nil)) gdje je: entry a[ ], k - naziv tekuće naredbe - varijable 57
Primjer: ATP u verifikaciji programskih odsječaka (2) 2. Predstavljanje naredbi i njihovih učinaka: Svaka naredba mora se predstaviti posebnim kontekstom (skupom logičkih izraza) ! Npr. . naredba ASSIGN(xinstr, zassignto, wexpr, yinstr) ; opći oblik naredbe ASSIGN gdje je : xinstr - tekuća naredba zassignto - varijabla u koju se upisuje wexpr - izraz koji se evaluira prije zapisivanja yinstr - slijedeća naredba Opći aksiom za naredbu (učinak): Program u stanju xstate sa naredbom xinstr prelazi u novo stanje i novom slijedećom instrukcijom yinstr. (PSTATE_1 ASSIGN) PSTATE_2 PSTATE_1 ASSIGN PSTATE_2 ili kao normalizirana klauzula: konačno aksiom za ASSIGN: PSTATE(xinstr, xstate) ASSIGN(xinstr, zassignto, wexpr, yinstr) PSTATE(yinstr, store(zassignto, eval(wexpr, xstate) 58
Primjer: ATP u verifikaciji programskih odsječaka (3) 3. Simboličko izvođenje naredbi (1): Npr. naredba: k = i + 1 se predstavlja predikatom: ASSIGN(entry, pvar(k), sum(pparam(i), pconst(1)), dows) ; specifična ASSIGN entry - konstanta, naziv naredbe pvar( … ) - funkcija, varijabla iz tekućeg stanja u koju se opisuje sa ASSIGN sum( … ) - izraz koji treba evaluirati pparam(i) - vrijednost varijable i neovisno o stanju pconst(1)- konstanta 1 dows - naziv nove naredbe Razrješavamo dvije normalizirane klauzule (opći aksiom za ASSIGN i poseban slučaj ASSIGN k = i + 1): (1) PSTATE(xinstr, xstate) ASSIGN(xinstr, zassignto, wexpr, yinstr) PSTATE(yinstr, store(zassignto, eval(wexpr, xstate) (2) ASSIGN(entry, pvar(k), sum(pparam(i), pconst(1)), dows) unifikator: { xinstr=entry, zassignto=pvar(k), wexpr=sum, yinstr=dows } 59
Primjer: ATP u verifikaciji programskih odsječaka (4) 3. Simboličko izvođenje naredbi (2): Rezrješavanjem (1) i (2) slijedi (za taj poseban slučaj k = i +1): PSTATE(entry, xstate) PSTATE(dows, store(pvar(k), eval(sum(pparam(i), pconst(1)) , xstate)) Uporabom ekvivalencije ( A B) = (A B) možemo interpretirati: Ako je program u naredbi pridruživanja entry sa bilo kojim stanjem xstate, on prelazi u novo stanje s naredbom dows koje nastaje od xstate tako da se u variajblu k upiše suma i+1 iz (stanja xstate). Poopćeno: potrebno def. aksiome i posebne predikate za sve naredbe u programu. Popratni efekti: Ako store upisuje prije ili za vrijeme izvođenja wexpr izgubit će se nove vrijednosti. Mijenjaju se vrijednosti varijabli za vrijeme evaluacije. C, Pascal, Fortran imaju popratne efekte ! LISP djelomično, funkcijski jezik ML nema. Logički programi nemaju popratne efekte. 60
Formalna verifikacija računalnih sustava (1) 1. Deduktivni pristup Opis sustava (implementacija) data skupom formula . Treba dokazati da je formula (specifikacija sustava) logička posljedica skupa . dokaži da su svi modeli ujedno i modeli ili L dokaži (izvedi) uporabom skupa pravila L (simboličko izvođenje programa) Problem predstavljanja. Zahtijeva stručno vođenje (strategije, jednakost, …). Primjena ograničena na Ulazno/Izlazne sustave (terminirajuće). Može se koristiti za sustave s beskonačnim brojem stanja. 61
Formalna verifikacija računalnih sustava (2) 2. Provjera modela (engl. “model checking”) provjeravamo samo zadovoljivost (da li je -specifikacija istinita u jednom modelu -implementacije, t. j. za jednu interpretaciju) Ograničeno na modele s konačnim brojem stanja. Primjena u reaktivnim sustavima (neterminirajućim). Automatizirano izvođenje. Višestruka semantika (“overloading”): logička posljedica (form. logika) i zadovoljivost (provjera modela) 62
- Slides: 62