ขั้นแรกเพื่อขจัดความไม่ลงรอยกันทางปัญญาที่เป็นไปได้: การให้เหตุผลเกี่ยวกับโครงสร้างที่ไม่มีที่สิ้นสุดไม่ใช่ปัญหาเราต้องทำมันตลอดเวลา ตราบใดที่โครงสร้างสามารถอธิบายได้อย่างละเอียดนั่นก็ไม่ใช่ปัญหา นี่คือโครงสร้างอนันต์ทั่วไปสองสามประเภท:
- ภาษา (ชุดของสายอักขระบางตัวซึ่งอาจมี จำกัด );
- ภาษาต้นไม้ (ชุดของต้นไม้มากกว่าตัวอักษรบางตัว);
- ร่องรอยการดำเนินการของระบบที่ไม่ได้กำหนดไว้
- ตัวเลขจริง
- ชุดจำนวนเต็ม
- ชุดฟังก์ชั่นจากจำนวนเต็มถึงจำนวนเต็ม; ...
Coinductivity เป็น fixpoint ที่ใหญ่ที่สุด
ในกรณีที่คำจำกัดความอุปนัยสร้างโครงสร้างจากหน่วยการสร้างพื้นฐานคำจำกัดความเกี่ยวกับเหรียญจะกำหนดโครงสร้างจากวิธีที่สามารถแยกโครงสร้างได้ ตัวอย่างเช่นชนิดของรายการที่มีองค์ประกอบอยู่ในชุดA
จะถูกกำหนดดังต่อไปนี้ใน Coq:
Inductive list (A:Set) : Set :=
| nil : list A
| cons : A -> list A -> list A.
อย่างไม่เป็นทางการlist
ประเภทเป็นประเภทที่เล็กที่สุดที่มีค่าทั้งหมดที่สร้างขึ้นจากnil
และcons
ก่อสร้างด้วยความจริงที่Y ในทางกลับกันเราสามารถกำหนดประเภทที่ใหญ่ที่สุดที่มีค่าทั้งหมดที่สร้างขึ้นจากตัวสร้างเหล่านี้โดยรักษาสัจพจน์การเลือกปฏิบัติ:∀ xY,n ฉันl ≠ c o n sxY
CoInductive colist (A:Set) : Set :=
| conil : colist A
| cocons : A -> colist A -> colist A.
list
เป็น isomorphic colist
ย่อยของ นอกจากนี้ยังcolist
มีรายการที่ไม่มีที่สิ้นสุด: รายการที่มีอยู่บนcocons
cocons
CoFixpoint flipflop : colist ℕ := cocons 1 (cocons 2 flipflop).
CoFixpoint from (n:ℕ) : colist ℕ := cocons n (from (1 + n)).
flipflop
เป็นอนันต์ (รายการกลม) ; เป็นรายการที่ไม่มีที่สิ้นสุดของตัวเลขธรรมชาติ0 : : 1 : : 2 : : ...1 : : 2 : : 1 : : 2 : : ...from 0
0 : : 1 : : 2 : : ...
คำจำกัดความเวียนซ้ำมีรูปแบบที่ดีหากผลลัพธ์ถูกสร้างขึ้นจากบล็อกขนาดเล็ก: การเรียกซ้ำจะต้องทำงานกับอินพุตที่เล็กลง คำจำกัดความการกัดกร่อนนั้นมีรูปแบบที่ดีถ้าผลลัพธ์สร้างวัตถุที่มีขนาดใหญ่ขึ้น การเหนี่ยวนำดูที่ตัวสร้าง โปรดทราบว่าคู่ที่ไม่เพียง แต่เปลี่ยนขนาดเล็กเป็นใหญ่ แต่ยังป้อนข้อมูลไปยังผลลัพธ์ ตัวอย่างเช่นเหตุผลที่flipflop
และfrom
คำจำกัดความข้างต้นมีรูปแบบที่ดีคือการโทรแบบคอร์แซร์เรทีฟนั้นได้รับการปกป้องโดยการเรียกไปยังตัวcocons
สร้างในทั้งสองกรณี
ในกรณีที่คำแถลงเกี่ยวกับวัตถุอุปนัยมีหลักฐานการเหนี่ยวนำ ตัวอย่างเช่นเราจะกำหนดคำจำกัดความไม่สิ้นสุดบน colists; สังหรณ์ใจที่ colists conil
อนันต์เป็นคนที่ไม่ได้จบลงด้วย
CoInductive Infinite A : colist A -> Prop :=
| Inf : forall x l, Infinite l -> Infinite (cocons x l).
เพื่อพิสูจน์ว่า colists ของแบบฟอร์มfrom n
นั้นไม่มีที่สิ้นสุดเราสามารถให้เหตุผลโดยการทำเงิน จะมีค่าเท่ากับfrom n
cocons n (from (1 + n))
นี่แสดงให้เห็นว่าfrom n
มีขนาดใหญ่กว่าfrom (1 + n)
ซึ่งไม่มีที่สิ้นสุดโดยสมมติฐานการสร้างเหรียญดังนั้นจึงfrom n
ไม่มีที่สิ้นสุด
Bisimilarity เป็นสมบัติเชิงเหรียญ
การใช้เทคนิคการพิสูจน์แบบเหรียญก็ใช้กับวัตถุที่มีค่า การพิสูจน์อุปนัยเกี่ยวกับวัตถุนั้นขึ้นอยู่กับวิธีการสร้างวัตถุ หลักฐานเชิงเหรียญขึ้นอยู่กับวิธีที่วัตถุสามารถย่อยสลายได้
เมื่อศึกษาระบบที่กำหนดขึ้นมันเป็นเรื่องธรรมดาที่จะกำหนดความเท่าเทียมกันผ่านกฎอุปนัย: ระบบสองระบบนั้นเทียบเท่ากันถ้าคุณสามารถเปลี่ยนจากระบบหนึ่งไปเป็นอีกระบบหนึ่งได้ คำจำกัดความดังกล่าวมีแนวโน้มที่จะล้มเหลวในการจับวิธีที่แตกต่างกันหลายระบบที่ไม่ได้กำหนดขึ้นสามารถจบลงด้วยพฤติกรรม (สังเกตได้) เดียวกันแม้จะมีโครงสร้างภายในที่แตกต่างกัน (การสะสมเหรียญยังเป็นประโยชน์ในการอธิบายระบบที่ไม่สิ้นสุดแม้ว่าพวกเขาจะกำหนดไว้แล้ว แต่นี่ไม่ใช่สิ่งที่ฉันจะมุ่งเน้นที่นี่)
ระบบ nondeterministic เช่นระบบพร้อมกันมักจะมีรูปแบบโดยระบบการเปลี่ยนแปลงที่มีป้ายกำกับ LTS เป็นกราฟกำกับที่มีการระบุขอบ แต่ละขอบแสดงถึงการเปลี่ยนแปลงที่เป็นไปได้ของระบบ การติดตามของ LTS คือลำดับของเลเบลขอบเหนือเส้นทางในกราฟ
LTS สองตัวสามารถทำงานได้เหมือนกันโดยที่พวกเขามีร่องรอยที่เป็นไปได้เหมือนกันแม้ว่าโครงสร้างภายในของพวกเขาจะแตกต่างกัน กราฟมอร์ฟิซึมมีความแข็งแกร่งเกินกว่าที่จะนิยามความเท่าเทียม แต่จะมีการกล่าวถึงLTS เพื่อจำลอง LTS Bอีกครั้งหากการเปลี่ยนแปลงของ LTS ที่สองยอมรับการเปลี่ยนแปลงที่สอดคล้องกันในครั้งแรก อย่างเป็นทางการให้Sเป็นสหภาพที่แยกจากกันของรัฐของ LTS ทั้งสองชุดL (สามัญ) ของป้ายกำกับและ→ความสัมพันธ์การเปลี่ยนผ่าน ความสัมพันธ์R ⊆ S × Sเป็นการจำลองถ้า
∀ ( p , q ) ∈ RABSL→R ⊆ S× S
∀ ( p , q) ∈ R , ถ้า P →αพี' จากนั้น ∃ q',Q→αQ' และ ( p', คิว') ∈ R
จำลอง Bถ้ามีการจำลองที่ทุกรัฐของ Bที่เกี่ยวข้องกับรัฐใน ถ้า Rเป็นแบบจำลองทั้งสองทิศทางจะเรียกว่าbisimulation การจำลองเป็นสมบัติแบบเหรียญ: การสังเกตใด ๆ ที่ด้านหนึ่งจะต้องมีการจับคู่ที่อีกด้านหนึ่งABBAR
มี bisimulations จำนวนมากที่อาจเกิดขึ้นใน LTS ความแตกต่างที่ต่างกันอาจระบุถึงสถานะที่แตกต่างกัน ให้สอง bisimulations และR 2ความสัมพันธ์ที่กำหนดโดยการรวมกลุ่มของกราฟความสัมพันธ์R 1 ∪ R 2เป็น bisimulation เนื่องจากสถานะที่เกี่ยวข้องทำให้เกิดสถานะที่เกี่ยวข้องสำหรับความสัมพันธ์ทั้งสอง (สิ่งนี้มีไว้สำหรับสหภาพที่ไม่มีที่สิ้นสุดเช่นกันความสัมพันธ์ที่ว่างเปล่าคือ bisimulation ที่ไม่น่าทึ่งเช่นเดียวกับความสัมพันธ์ที่เป็นตัวตน) โดยเฉพาะอย่างยิ่ง ความผิดเพี้ยนเป็นวิธีที่หยาบในการสังเกตระบบที่ไม่แยกความแตกต่างระหว่างรัฐที่แตกต่างกันR1R2R1∪ R2
Bisimilarity เป็นสมบัติแบบเหรียญ มันสามารถนิยามได้ว่าเป็น fixpoint ที่ใหญ่ที่สุดของโอเปอเรเตอร์: มันเป็นความสัมพันธ์ที่ใหญ่ที่สุดซึ่งเมื่อขยายเพื่อระบุสถานะเทียบเท่ายังคงเหมือนเดิม
อ้างอิง