Kakšna je razlika med popolno pravilnostjo in delno pravilnostjo?
Odgovor 1:
Delna specifičnost pravilnosti je tudi delna specifičnost pravilnosti. Delna korektnost je šibkejša, ker potrebuje dodatno pomoč „S se konča“, da ugotovi: R drži v končnem stanju.
Za delno specifikacijo pravilnosti {Q} S {R} lahko dobite naslednje podatke: Glede na začetno stanje, ki izpolnjuje Q, se lahko S preneha ali ne. Če S preneha, boste po izvedbi S dosegli končno stanje, ki izpolnjuje R. Če ni, je R neuporaben, ker ni končnega stanja.
Na primer:
{x == 10} medtem ko (y! = 0): y = y - 1 x = 0 {x == 0}
Gre za delno natančnost. Če je y inicializirano z nekim številom, enakim ali večjim od 0, bo S prenehal in po tem je x 0. Čeprav se, če y začne z negativnim številom, S zaveže za vedno in ker ne preneha, ne boste dosegli stanja. ' po izvršbi S-ja '.
V resnici je R lahko karkoli, če je S mrtva zanka. Na primer za kateri koli Q in R:
{Q} medtem ko (resnično): y = y - 1 {R}
je vedno delna specifičnost pravilnosti.
Če Q ni dovolj močan, ne morete garantirati S-ovega prenehanja, kaj šele razloga o stanju po izvršbi S-a. V tem primeru lahko ročno dodate pogoj: S preneha. S Q in njim se sklepanje lahko nadaljuje.
Za popolno specifikacijo pravilnosti {Q} S {R} je Q dovolj močan, da zagotavlja prekinitev S, zato lahko sklepate, da bo S prenehal in končno stanje izpolnjuje R.
Na primer:
{x == 10} medtem ko (x! = 0): x = x - 1 {x == 0}
je popolna specifičnost pravilnosti.
BTW: Nisem prepričan, če je odgovor pravilen, ker je vprašanje označeno s politično korektnostjo. Čeprav je definicija v vprašanju videti popolnoma enaka kot v računalništvu.