3
วางเฟรมกฎไว้เป็นการเปลี่ยนเซิร์ฟเวอร์หรือไม่
กฎกรอบเช่นหนึ่งที่ระบุด้านล่างจับความคิดที่ว่าได้รับโปรแกรมcที่มีเงื่อนไขpที่ถือก่อนที่จะเรียกและ postcondition qที่ถือหลังจากนั้นบางสภาพเคล็ดrควรถือทั้งก่อนและหลังcวิ่ง (ความ*เกี่ยวพันจำเป็นต้องมีการขัดแย้งกัน) บ่อยครั้งที่ก่อนและหลังมีสถานะของกองและcเป็นโปรแกรมที่มีประสิทธิภาพที่ปรับเปลี่ยนกองในทางใดทางหนึ่ง {p} c {q} ----------------- (where no free variable in r is modified by c) {p * r} c {q * r} การสนทนาเกี่ยวกับกฎของเฟรมที่ฉันได้เห็นดูเหมือนจะเน้นไปที่วิธีการแยกส่วนของกองrไว้ให้คงอยู่ สิ่งนี้ทำให้ "การใช้เหตุผลในท้องถิ่น": เมื่อให้เหตุผลเกี่ยวกับผลกระทบที่cมีเราสามารถเพิกเฉยต่อrส่วนของฮีปและเกี่ยวข้องกับตัวเราเองกับส่วนที่เปลี่ยนแปลงจริงเท่านั้น แต่วิธีการที่จะมองมันอีกอย่างก็คือว่าการเปลี่ยนแปลงจากpการqถูกเก็บรักษาไว้แม้ว่าrตอนนี้นั่งอยู่ที่นั่น ในคำอื่น ๆ มันเป็นสิ่งสำคัญที่เราจบลงด้วย postcondition {q * r}มากกว่าสำหรับบางคนอื่น ๆ{q' * r}q' ดังนั้นคำถามของฉันคือว่ามีการรักษากฎกรอบใด ๆ ที่กล่าวถึงหรือทำให้การใช้การเก็บรักษาของการเปลี่ยนแปลง from- p-to- qสิ่ง