การผลิตเหรียญคืออะไร


68

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

แต่สิ่งที่เกี่ยวกับการผลิตเหรียญ? มันทำงานยังไง? เราจะพูดอะไรข้อสรุปเกี่ยวกับโครงสร้างอนันต์

มีอย่างน้อยสองมุมที่จะกล่าวคือการทำเงินเป็นวิธีการกำหนดสิ่งต่าง ๆ และเป็นเทคนิคการพิสูจน์

เกี่ยวกับการจ่ายเงินเป็นเทคนิคการพิสูจน์ความสัมพันธ์ระหว่างการจ่ายเงินกับการแบ่งเงิน bisimulation คืออะไร?


4
ที่จริงผมอยากจะรู้คำตอบ :) นี้
Suresh

1
ดูเพิ่มเติมที่cs.cornell.edu/~kozen/papers/Structural.pdfสำหรับเอกสารการสอน
mrp

คำตอบ:


60

ขั้นแรกเพื่อขจัดความไม่ลงรอยกันทางปัญญาที่เป็นไปได้: การให้เหตุผลเกี่ยวกับโครงสร้างที่ไม่มีที่สิ้นสุดไม่ใช่ปัญหาเราต้องทำมันตลอดเวลา ตราบใดที่โครงสร้างสามารถอธิบายได้อย่างละเอียดนั่นก็ไม่ใช่ปัญหา นี่คือโครงสร้างอนันต์ทั่วไปสองสามประเภท:

  • ภาษา (ชุดของสายอักขระบางตัวซึ่งอาจมี จำกัด );
  • ภาษาต้นไม้ (ชุดของต้นไม้มากกว่าตัวอักษรบางตัว);
  • ร่องรอยการดำเนินการของระบบที่ไม่ได้กำหนดไว้
  • ตัวเลขจริง
  • ชุดจำนวนเต็ม
  • ชุดฟังก์ชั่นจากจำนวนเต็มถึงจำนวนเต็ม; ...

Coinductivity เป็น fixpoint ที่ใหญ่ที่สุด

ในกรณีที่คำจำกัดความอุปนัยสร้างโครงสร้างจากหน่วยการสร้างพื้นฐานคำจำกัดความเกี่ยวกับเหรียญจะกำหนดโครงสร้างจากวิธีที่สามารถแยกโครงสร้างได้ ตัวอย่างเช่นชนิดของรายการที่มีองค์ประกอบอยู่ในชุดAจะถูกกำหนดดังต่อไปนี้ใน Coq:

Inductive list (A:Set) : Set :=
  | nil : list A
  | cons : A -> list A -> list A.

อย่างไม่เป็นทางการlistประเภทเป็นประเภทที่เล็กที่สุดที่มีค่าทั้งหมดที่สร้างขึ้นจากnilและconsก่อสร้างด้วยความจริงที่Y ในทางกลับกันเราสามารถกำหนดประเภทที่ใหญ่ที่สุดที่มีค่าทั้งหมดที่สร้างขึ้นจากตัวสร้างเหล่านี้โดยรักษาสัจพจน์การเลือกปฏิบัติ:xy,nilconsxy

CoInductive colist (A:Set) : Set :=
  | conil : colist A
  | cocons : A -> colist A -> colist A.

listเป็น isomorphic colistย่อยของ นอกจากนี้ยังcolistมีรายการที่ไม่มีที่สิ้นสุด: รายการที่มีอยู่บนcoconscocons

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 00::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 ) RABSLRS×S

(p,q)R, if pαp then q,qαq and (p,q)R

จำลอง Bถ้ามีการจำลองที่ทุกรัฐของ Bที่เกี่ยวข้องกับรัฐใน ถ้า Rเป็นแบบจำลองทั้งสองทิศทางจะเรียกว่าbisimulation การจำลองเป็นสมบัติแบบเหรียญ: การสังเกตใด ๆ ที่ด้านหนึ่งจะต้องมีการจับคู่ที่อีกด้านหนึ่งABBAR

มี bisimulations จำนวนมากที่อาจเกิดขึ้นใน LTS ความแตกต่างที่ต่างกันอาจระบุถึงสถานะที่แตกต่างกัน ให้สอง bisimulations และR 2ความสัมพันธ์ที่กำหนดโดยการรวมกลุ่มของกราฟความสัมพันธ์R 1R 2เป็น bisimulation เนื่องจากสถานะที่เกี่ยวข้องทำให้เกิดสถานะที่เกี่ยวข้องสำหรับความสัมพันธ์ทั้งสอง (สิ่งนี้มีไว้สำหรับสหภาพที่ไม่มีที่สิ้นสุดเช่นกันความสัมพันธ์ที่ว่างเปล่าคือ bisimulation ที่ไม่น่าทึ่งเช่นเดียวกับความสัมพันธ์ที่เป็นตัวตน) โดยเฉพาะอย่างยิ่ง ความผิดเพี้ยนเป็นวิธีที่หยาบในการสังเกตระบบที่ไม่แยกความแตกต่างระหว่างรัฐที่แตกต่างกันR1R2R1R2

Bisimilarity เป็นสมบัติแบบเหรียญ มันสามารถนิยามได้ว่าเป็น fixpoint ที่ใหญ่ที่สุดของโอเปอเรเตอร์: มันเป็นความสัมพันธ์ที่ใหญ่ที่สุดซึ่งเมื่อขยายเพื่อระบุสถานะเทียบเท่ายังคงเหมือนเดิม

อ้างอิง

  • Coq และแคลคูลัสของการสร้างอุปนัย

    • Yves Bertot และ Pierre Castéran การพิสูจน์ทฤษฎีบทเชิงโต้ตอบและการพัฒนาโปรแกรม - ศิลปะ: แคลคูลัสของการสร้างอุปนัย . Springer, 2004 Ch. 13. [ เว็บไซต์ ] [ Amazon ]
    • Eduardo Giménez แอปพลิเคชันประเภท co-inductive ใน coq: การตรวจสอบโปรโตคอลบิตที่สลับกัน ในการประชุมเชิงปฏิบัติการเรื่องประเภทการพิสูจน์และโปรแกรมหมายเลข 1158 ในบันทึกการบรรยายทางวิทยาการคอมพิวเตอร์หน้า 135–152 Springer-Verlag, 1995. [ Google Books ]
    • Eduardo Giménezและ Pierre Castéran บทช่วยสอนเกี่ยวกับ [Co-] อุปนัยประเภทใน Coq 2550 [ PDF ]
  • ระบบการเปลี่ยนผ่านและการติดฉลากแบบแบ่งส่วน

    • Robin Milner การสื่อสารและเห็นพ้องด้วย ศิษย์โถง 2532
    • Davide Sangiorgi เกี่ยวกับต้นกำเนิดของ bisimulation และ coinduction ธุรกรรม ACM เกี่ยวกับภาษาโปรแกรมและระบบ (TOPLAS) เล่มที่ 31 ฉบับที่ 4 พฤษภาคม 2009 [ PDF ] [ ACM ] สไลด์ของหลักสูตรที่เกี่ยวข้อง: [ PDF ] [ CiteSeer ]
    • Davide Sangiorgi พี่แคลคูลัส: ทฤษฎีกระบวนการมือถือ สำนักพิมพ์มหาวิทยาลัยเคมบริดจ์, 2003 [ Amazon ]

      • การอ้างอิงเพิ่มเติมที่แนะนำโดยAnton Trunov
    • บทในการเขียนโปรแกรมได้รับการรับรองด้วยขึ้นอยู่กับประเภทโดย A. Chlipala

    • D. Sangiorgi "ความรู้เบื้องต้นเกี่ยวกับ Bisimulation และการสร้างเหรียญ" 2554 [ PDF ]
    • D. Sangiorgi และ J. Rutten หัวข้อขั้นสูงใน Bisimulation และ Coinduction สำนักพิมพ์มหาวิทยาลัยเคมบริดจ์, 2555 [ CUP ]

21

ให้เราพิจารณาคำนิยามอุปนัยต่อไปนี้:

εTwTawTawTbawT

Tb

T={ε,a,aa,ba,aaa,aba,}=L((baa))Σ.

TT={a,b}

f:2Σ2Σ

f(T)=T{ε}{awwT}{bawawT}

Tff(2Σ,){ε}T

wawawwTTΣbbT=L((baa)ω)

fTT{ε}Σ


โน้ต:

  • Σ=ΣΣω
  • ΣωΣ

wTawT
{ε}


2
ฉันหวังว่าคำอธิบายอุปนัยเหมาะสม
Raphael

ω

ωΣ

คำอธิบายที่ดี อย่างไรก็ตามฉันไม่เข้าใจประโยคWe can not turn the anchor around, so it goes awayนี้
hengxin

εTεT
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.