อะไรคือความแตกต่างระหว่างความถูกต้องทั้งหมดและความถูกต้องบางส่วน


ตอบ 1:

ข้อมูลจำเพาะความถูกต้องทั้งหมดยังเป็นข้อกำหนดความถูกต้องบางส่วน ความถูกต้องบางส่วนนั้นอ่อนแอกว่าเพราะต้องการความช่วยเหลือเพิ่มเติมจาก 'S terminates' เพื่อที่จะได้ข้อสรุป: R อยู่ในสถานะสุดท้าย

สำหรับข้อมูลจำเพาะความถูกต้องบางส่วน {Q} S {R} คุณจะได้รับข้อมูลต่อไปนี้: เมื่อได้รับสถานะเริ่มต้นซึ่งเป็นไปตาม Q, S อาจยุติหรือไม่ หาก S สิ้นสุดลงหลังจากการดำเนินการของ S คุณจะไปถึงสถานะสุดท้ายซึ่งเป็นไปตามเงื่อนไขของ R หากไม่ใช่ R จะไร้ประโยชน์เนื่องจากไม่มีสถานะสุดท้าย

ตัวอย่างเช่น:

{x == 10}
ในขณะที่ (y! = 0):
    y = y - 1
x = 0
{x == 0}

มันเป็นข้อกำหนดความถูกต้องบางส่วน หาก y ถูกกำหนดค่าเริ่มต้นด้วยจำนวนที่เท่ากันหรือมากกว่า 0, S จะสิ้นสุดลงและหลังจากนั้น x เป็น 0 ในขณะที่ถ้า y เริ่มต้นด้วยจำนวนลบ S จะวนซ้ำตลอดไปและเนื่องจากไม่สิ้นสุดคุณจะไม่ถึงสถานะ ' หลังจากการดำเนินการของ S

แน่นอน R สามารถเป็นอะไรก็ได้ถ้า S เป็นวงวนตาย ตัวอย่างเช่นสำหรับ Q และ R:

{Q}
ในขณะที่ (จริง):
    y = y - 1
{R}

เป็นข้อกำหนดความถูกต้องบางส่วนเสมอ

หาก Q ไม่แข็งแรงพอคุณไม่สามารถรับประกันการเลิกจ้างของ S ให้เหตุผลเพียงอย่างเดียวเกี่ยวกับสถานะหลังจากการดำเนินการของ S ในกรณีนี้คุณสามารถเพิ่มเงื่อนไขด้วยตนเอง: S สิ้นสุด ด้วย Q และมันเหตุผลสามารถดำเนินการต่อ

สำหรับข้อมูลจำเพาะความถูกต้องทั้งหมด {Q} S {R}, Q มีความแข็งแกร่งเพียงพอที่จะรับประกันการเลิกจ้างของ S ดังนั้นคุณสามารถสรุปได้ว่า S จะยุติและสถานะสุดท้ายเป็นไปตาม R

ตัวอย่างเช่น:

{x == 10}
ในขณะที่ (x! = 0):
    x = x - 1
{x == 0}

เป็นข้อกำหนดความถูกต้องทั้งหมด

BTW: ฉันไม่แน่ใจว่าคำตอบนั้นถูกต้องหรือไม่เพราะคำถามถูกติดแท็กด้วยความถูกต้องทางการเมือง ในขณะที่คำจำกัดความในคำถามมีลักษณะเหมือนกับในวิทยาการคอมพิวเตอร์