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.