อะไรคือความแตกต่างระหว่างความถูกต้องทั้งหมดและความถูกต้องบางส่วน
ตอบ 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: ฉันไม่แน่ใจว่าคำตอบนั้นถูกต้องหรือไม่เพราะคำถามถูกติดแท็กด้วยความถูกต้องทางการเมือง ในขณะที่คำจำกัดความในคำถามมีลักษณะเหมือนกับในวิทยาการคอมพิวเตอร์