State: 1.2 <– speci…cation phi2 is true
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
15 / 30
Bahasan
1
Apa Itu NuSMV
2
Instalasi dan Cara Memakai NuSMV
3
Sintaks Dasar NuSMV
4
Pemakaian NuSMV terkait Logika Proposisi
5
NuSMV untuk Konsistensi Spesi…kasi Sistem
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
16 / 30
Sintaks Dasar NuSMV Perhatikan kembali program yang sebelumnya telah dibuat. --Example-01 MODULE main VAR p : boolean; q : boolean; phi1: boolean; phi2: boolean; ASSIGN phi1 := !p & q; phi2 := p -> p j q; LTLSPEC phi1 LTLSPEC phi2
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
17 / 30
Struktur program adalah --Example-01 (nama program yang bersifat opsional, komentar selalu didahului dengan karakter “--”) MODULE main (nama modul). VAR (deklarasi variabel). ASSIGN (assignment, contohnya untuk membuat proposisi majemuk). LTLSPEC (pemeriksaan spesi…kasi sistem dalam formula logika tertentu) LTLSPEC dapat diganti dengan SPEC saja atau CTLSPEC. Jika diganti dengan SPEC, maka hasilnya akan sama dengan jika kita memakai CTLSPEC.
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
18 / 30
Tipe Data Tipe data pada NuSMV ada beberapa macam, yaitu: boolean: system_ok : boolean; enumeration: state : {ready, busy, waiting, stopped}; bounded integers: num : 1..8; array and bit vectors: arr : array 0..3 of {red,yellow,green}; bv: signed word[8];
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
19 / 30
Assignment immediate assignment: ASSIGN x := <expression>; atau DEFINE x := <expression>; initialization: ASSIGN init(x) := <expression>; progression: ASSIGN next (x) := <expression>;
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
20 / 30
Operator Logika Proposisi Operator logika proposisi yang dipakai pada NuSMV adalah: Simbol : ^ _ ! $
Operator pada NuSMV ! & j -> <->
Sebagai contoh, formula p ! q ^ r dan p $ p _ :q pada NuSMV berturut-turut dapat ditulis sebagai: p -> q & r p <-> p j !q
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
21 / 30
Bahasan
1
Apa Itu NuSMV
2
Instalasi dan Cara Memakai NuSMV
3
Sintaks Dasar NuSMV
4
Pemakaian NuSMV terkait Logika Proposisi
5
NuSMV untuk Konsistensi Spesi…kasi Sistem
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
22 / 30
Cara Kerja NuSMV Secara umum NuSMV bekerja dengan cara memeriksa model yang dimasukkan oleh pengguna. Jika model tersebut salah (false), maka NuSMV akan memberikan suatu counterexample yang menjelaskan kesalahan model tersebut. Lihat kembali keluaran yang diberikan NuSMV untuk masukan program example-01.smv. – speci…cation phi1 is false – as demonstrated by the following execution sequence Trace Description: LTL Counterexample Trace Type: Counterexample – Loop starts here -> State: 1.1
State: 1.2 <– speci…cation phi2 is true
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
23 / 30
Pada example-01.smv, program NuSMV dibuat untuk memeriksa kebenaran formula 1 :=
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
24 / 30
Pada example-01.smv, program NuSMV dibuat untuk memeriksa kebenaran formula 1 := :p ^ q dan 2 :=
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
24 / 30
Pada example-01.smv, program NuSMV dibuat untuk memeriksa kebenaran formula 1 := :p ^ q dan 2 := p ! p _ q.
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
24 / 30
Pada example-01.smv, program NuSMV dibuat untuk memeriksa kebenaran formula 1 := :p ^ q dan 2 := p ! p _ q. NuSMV memberikan keluaran bahwa spesi…kasi (formula) 1 dapat salah ketika I (p) = T dan I (q) = F. Untuk spesi…kasi 2 ,
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
24 / 30
Pada example-01.smv, program NuSMV dibuat untuk memeriksa kebenaran formula 1 := :p ^ q dan 2 := p ! p _ q. NuSMV memberikan keluaran bahwa spesi…kasi (formula) 1 dapat salah ketika I (p) = T dan I (q) = F. Untuk spesi…kasi 2 , NuSMV menyatakan bahwa 2 adalah spesi…kasi (formula) yang benar (tidak pernah salah). Jelas bahwa 2 adalah suatu tautologi (bersifat absah/ valid). Dari observasi terhadap keluaran program ini, kita dapat melihat bahwa NuSMV dapat digunakan untuk memeriksa falsi…ability dari suatu formula logika proposisi . Lebih jauh kita memiliki: Untuk setiap masukan yang berupa formula logika proposisi , maka NuSMV akan mengeluarkan keluaran berikut:
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
24 / 30
Pada example-01.smv, program NuSMV dibuat untuk memeriksa kebenaran formula 1 := :p ^ q dan 2 := p ! p _ q. NuSMV memberikan keluaran bahwa spesi…kasi (formula) 1 dapat salah ketika I (p) = T dan I (q) = F. Untuk spesi…kasi 2 , NuSMV menyatakan bahwa 2 adalah spesi…kasi (formula) yang benar (tidak pernah salah). Jelas bahwa 2 adalah suatu tautologi (bersifat absah/ valid). Dari observasi terhadap keluaran program ini, kita dapat melihat bahwa NuSMV dapat digunakan untuk memeriksa falsi…ability dari suatu formula logika proposisi . Lebih jauh kita memiliki: Untuk setiap masukan yang berupa formula logika proposisi , maka NuSMV akan mengeluarkan keluaran berikut: counterexample berupa interpretasi untuk setiap variabel proposisi atom yang membuat I ( ) = F apabila merupakan formula yang falsi…able,
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
24 / 30
Pada example-01.smv, program NuSMV dibuat untuk memeriksa kebenaran formula 1 := :p ^ q dan 2 := p ! p _ q. NuSMV memberikan keluaran bahwa spesi…kasi (formula) 1 dapat salah ketika I (p) = T dan I (q) = F. Untuk spesi…kasi 2 , NuSMV menyatakan bahwa 2 adalah spesi…kasi (formula) yang benar (tidak pernah salah). Jelas bahwa 2 adalah suatu tautologi (bersifat absah/ valid). Dari observasi terhadap keluaran program ini, kita dapat melihat bahwa NuSMV dapat digunakan untuk memeriksa falsi…ability dari suatu formula logika proposisi . Lebih jauh kita memiliki: Untuk setiap masukan yang berupa formula logika proposisi , maka NuSMV akan mengeluarkan keluaran berikut: counterexample berupa interpretasi untuk setiap variabel proposisi atom yang membuat I ( ) = F apabila merupakan formula yang falsi…able, pernyataan bahwa “speci…cation formula yang falsi…able.
MZI (FIF Tel-U)
is true” apabila
Model Checker NuSMV
bukan merupakan
Oktober 2015
24 / 30
Memeriksa Satis…ability dengan NuSMV Permasalahan Diberikan formula logika proposisi , apakah kita dapat memeriksa keterpenuhan (satis…ability ) dari ? Jika ya, bagaimana caranya? Untuk mengetahui jawaban dari permasalahan, terlebih dulu eksekusi program .smv berikut.
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
25 / 30
Memeriksa Satis…ability dengan NuSMV Permasalahan Diberikan formula logika proposisi , apakah kita dapat memeriksa keterpenuhan (satis…ability ) dari ? Jika ya, bagaimana caranya? Untuk mengetahui jawaban dari permasalahan, terlebih dulu eksekusi program .smv berikut. --Example-02 MODULE main VAR p : boolean; q : boolean; r : boolean; s : boolean; phi1: boolean; phi2: boolean; phi3: boolean;
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
25 / 30
ASSIGN phi1 := (p j q) & (! q j r) & (! phi2 := (p j q j r j s); phi3 := !(p j q j r js); LTLSPEC phi1 LTLSPEC phi2 LTLSPEC phi3
MZI (FIF Tel-U)
r j s) -> p j s;
Model Checker NuSMV
Oktober 2015
26 / 30
NuSMV akan memberikan keluaran berikut: – speci…cation phi1 is true – speci…cation phi2 is false – as demonstrated by the following execution sequence Trace Description: LTL Counterexample Trace Type: Counterexample – Loop starts here -> State: 1.1
State: 2.2 <-
Model Checker NuSMV
Oktober 2015
27 / 30
Untuk memeriksa apakah teorema berikut.
bersifat terpenuhi atau tidak kita dapat memakai
Teorema
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
28 / 30
Untuk memeriksa apakah teorema berikut.
bersifat terpenuhi atau tidak kita dapat memakai
Teorema Formula logika proposisi tersalahkan (falsi…able).
terpenuhi (satis…able) jika dan hanya jika :
Sebagai contoh, pada program example-02 smv sebelumnya, untuk memeriksa apakah p _ q _ r _ s bersifat satis…able maka kita dapat melakukannya dengan memeriksa apakah : (p _ q _ r _ s) bersifat falsi…able.
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
28 / 30
Untuk memeriksa apakah teorema berikut.
bersifat terpenuhi atau tidak kita dapat memakai
Teorema Formula logika proposisi tersalahkan (falsi…able).
terpenuhi (satis…able) jika dan hanya jika :
Sebagai contoh, pada program example-02 smv sebelumnya, untuk memeriksa apakah p _ q _ r _ s bersifat satis…able maka kita dapat melakukannya dengan memeriksa apakah : (p _ q _ r _ s) bersifat falsi…able. Kita melihat bahwa NuSMV meyatakan bahwa : (p _ q _ r _ s) bersifat falsi…able dengan counterexample berikut:
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
28 / 30
Untuk memeriksa apakah teorema berikut.
bersifat terpenuhi atau tidak kita dapat memakai
Teorema Formula logika proposisi tersalahkan (falsi…able).
terpenuhi (satis…able) jika dan hanya jika :
Sebagai contoh, pada program example-02 smv sebelumnya, untuk memeriksa apakah p _ q _ r _ s bersifat satis…able maka kita dapat melakukannya dengan memeriksa apakah : (p _ q _ r _ s) bersifat falsi…able. Kita melihat bahwa NuSMV meyatakan bahwa : (p _ q _ r _ s) bersifat falsi…able dengan counterexample berikut:I (p) = T, I (q) = F, I (r) = F, dan I (s) = F. Jelas bahwa hal ini berakibat I (: (p _ q _ r _ s)) = F, sehingga I ( ) = I (p _ q _ r _ s) = T.
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
28 / 30
Bahasan
1
Apa Itu NuSMV
2
Instalasi dan Cara Memakai NuSMV
3
Sintaks Dasar NuSMV
4
Pemakaian NuSMV terkait Logika Proposisi
5
NuSMV untuk Konsistensi Spesi…kasi Sistem
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
29 / 30
Latihan Buatlah NuSMV untuk memecahkan masalah-masalah berikut. 1
Periksa apakah spesi…kasi sistem berikut konsisten atau tidak dengan memakai NuSMV: (1) ketika system software di-upgrade, user tidak dapat mengakses …le system; (2) jika user dapat mengakses …le system, maka user dapat menyimpan …le baru; (3) jika user tidak dapat menyimpan …le baru, maka system software tidak sedang di-upgrade.
2
Periksa apakah koleksi formula A = f:p ! q; :p $ r; :q $ s; :p ! sg konsisten atau tidak.
3
Pecahkan masalah perampokan bank yang dijelaskan pada slide kuliah 3.LogikaProposisi-3.pdf dengan NuSMV.
MZI (FIF Tel-U)
Model Checker NuSMV
Oktober 2015
30 / 30