Apa perbedaan antara kebenaran total dan kebenaran parsial?
Jawaban 1:
Spesifikasi kebenaran total juga spesifikasi kebenaran parsial. Ketepatan sebagian lebih lemah karena itu membutuhkan bantuan tambahan dari 'S berakhir' untuk sampai pada kesimpulan: R berlaku dalam keadaan akhir.
Untuk spesifikasi kebenaran parsial {Q} S {R}, Anda bisa mendapatkan informasi berikut: Diberikan status awal yang memenuhi Q, S dapat berakhir atau tidak. Jika S berakhir, setelah eksekusi S, Anda akan mencapai keadaan akhir yang memuaskan R. Jika tidak, R tidak berguna karena tidak ada keadaan akhir.
Sebagai contoh:
{x == 10} sementara (y! = 0): y = y - 1 x = 0 {x == 0}
Ini adalah spesifikasi kebenaran parsial. Jika y diinisialisasi dengan beberapa angka yang sama atau lebih besar dari 0, S akan berakhir dan setelah itu x adalah 0. Sementara jika y dimulai dengan angka negatif, S akan berulang selamanya dan karena itu tidak berakhir, Anda tidak akan mencapai status ' setelah eksekusi S '.
Memang, R bisa menjadi apa saja jika S adalah dead-loop. Misalnya, untuk setiap Q dan R:
{Q} sementara (benar): y = y - 1 {R}
selalu spesifikasi kebenaran parsial.
Jika Q tidak cukup kuat, Anda tidak dapat menjamin penghentian S, apalagi alasan tentang keadaan setelah eksekusi S. Dalam hal ini Anda dapat secara manual menambahkan kondisi: S berakhir. Dengan Q dan itu, alasannya bisa berlanjut.
Untuk spesifikasi total kebenaran {Q} S {R}, Q cukup kuat untuk menjamin penghentian S, sehingga Anda dapat menyimpulkan bahwa S akan berakhir dan keadaan akhir memuaskan R.
Sebagai contoh:
{x == 10} sementara (x! = 0): x = x - 1 {x == 0}
adalah spesifikasi total kebenaran.
BTW: Saya tidak yakin apakah jawabannya benar karena pertanyaannya ditandai dengan Political Correctness. Sedangkan definisi dalam pertanyaan terlihat persis sama dengan Ilmu Komputer.