Toplam doğruluk ile kısmi doğruluk arasındaki fark nedir?


cevap 1:

Toplam doğruluk spesifikasyonu da kısmi doğruluk spesifikasyonudur. Kısmi doğruluk daha zayıftır, çünkü sonuca varmak için 'S sonlandırır' ek yardımına ihtiyaç duyar: R nihai durumda kalır.

Kısmi doğruluk spesifikasyonu {Q} S {R} için, aşağıdaki bilgileri alabilirsiniz: Q'yı karşılayan bir başlangıç ​​durumu verildiğinde, S sonlanabilir veya sonlanmayabilir. Eğer S feshedilirse, S'nin infazından sonra, R'yi tatmin eden bir son duruma ulaşacaksınız. Aksi takdirde, R, nihai bir durum olmadığı için işe yaramaz.

Örneğin:

{X == 10}
süre (y! = 0):
    y = y - 1
x = 0
{X == 0}

Kısmi doğruluk özelliğidir. Y, 0'a eşit veya daha büyük bir sayı ile başlatılırsa, S sona erer ve bundan sonra x 0 olur. Y negatif bir sayıyla başlarsa, S sonsuza kadar döngü yapar ve sona ermediği için bir duruma erişemezsiniz ' S'nin infazından sonra '.

Gerçekten, S ölü bir döngü ise R herhangi bir şey olabilir. Örneğin, herhangi bir Q ve R için:

{S}
while (true):
    y = y - 1
{R}

her zaman kısmi doğruluk özelliğidir.

Eğer Q yeterince güçlü değilse, S'nin infazından sonra devlet hakkında bir neden olmasın, S'nin sona ermesini garanti edemezsiniz. Bu durumda manuel olarak bir koşul ekleyebilirsiniz: S sona erer. Q ve onunla akıl yürütme devam edebilir.

Toplam doğruluk spesifikasyonu {Q} S {R} için Q, S'nin sonlandırılmasını garanti edecek kadar güçlüdür, bu nedenle S'nin sona ereceği ve nihai durumun R'yi tatmin ettiği sonucuna varabilirsiniz.

Örneğin:

{x == 10}
süre (x! = 0):
    x = x - 1
{x == 0}

toplam doğruluk belirtimidir.

BTW: Cevabın doğru olup olmadığından emin değilim çünkü soru Politik Doğrulama ile etiketlendi. Sorunun tanımı Bilgisayar Biliminde olduğu gibi görünüyor.