ภาษาใดที่มีทฤษฎีของการเทียบเท่าเชิงสังเกตการณ์อยู่แล้ว?


11

สำหรับการพิสูจน์ความถูกต้องฉันกำลังมองหาแนวคิดที่ใช้งานได้ของความเท่าเทียมโปรแกรมสำหรับระบบพิมพ์บริสุทธิ์ (PTS) ของ Barendregt; หายไปนั้นสำหรับระบบประเภทที่เฉพาะเจาะจงเพียงพอ เป้าหมายของฉันคือใช้ความคิดไม่ใช่เพื่อตรวจสอบเพื่อประโยชน์ของตัวเอง

ความคิดนี้ควรจะเป็น " extensional " - โดยเฉพาะอย่างยิ่งเพื่อพิสูจน์ว่ามันควรจะเพียงพอที่จะพิสูจน์ว่าสำหรับค่าทั้งหมดของประเภทที่เหมาะสมt 1t1t2vt1vt2โวลต์โวลต์

ความเท่าเทียมกันทาง Denotational

ความเท่าเทียมกันทาง Denotational สามารถตอบสนองความต้องการทั้งหมดได้อย่างง่ายดาย แต่ความหมายเชิง Denotational สำหรับ PTS ตามอำเภอใจนั้นค่อนข้างท้าทาย - มันดูเหมือนยากสำหรับระบบ F

บริบท / การเทียบเท่าเชิงสังเกตการณ์

ทางเลือกที่ชัดเจนคือรูปแบบต่าง ๆ ของการเทียบเคียงบริบท (สองเงื่อนไขเทียบเท่าหากไม่มีบริบทพื้นดินสามารถแยกแยะพวกเขาได้) แต่คำจำกัดความนั้นไม่สามารถใช้งานได้ทันที บทแทรกที่หลากหลายนั้นไม่สำคัญมากที่จะพิสูจน์ พวกเขาได้รับการพิสูจน์แล้วสำหรับ PTS หรือไม่? อีกทางหนึ่งทฤษฎีจะเป็น "ส่วนขยายที่ชัดเจน" หรือมีเหตุผลที่เชื่อว่าทฤษฎีจะแตกต่างกันอย่างมีนัยสำคัญหรือไม่?

แก้ไข: ฉันไม่ได้พูดสิ่งที่ยากข้างต้น

ส่วนที่ง่าย: ความหมาย

การนิยามความเท่าเทียมไม่ยากเกินไปและคำจำกัดความปรากฏในเอกสารหลายฉบับ (เริ่มต้นอย่างน้อยจากการศึกษาของ PCF ของ Plotkin 1975 หากไม่ใช่ก่อนหน้านี้แหล่งที่มาอาจเป็นวิทยานิพนธ์ปริญญาเอกของ Morris จากปี 1968) เราถ้าสำหรับทุกพื้นบริบท , - นั่นคือและให้เดียวกันผล คุณมีตัวเลือกไม่กี่ตัวเลือกที่นี่พร้อมทางเลือกมากมาย: ตัวอย่างเช่นในภาษาที่ใช้บรรทัดคำสั่งปกติถ้าคุณมีชนิดของธรรมชาติคุณสามารถพูดได้ว่าบริบททางพื้นเป็นตัวที่คืนค่าธรรมชาติแล้วหมายความว่าและ C C [ t 1 ] C [ t 2 ] C [ t 1 ] C [ t 2 ] a b a bเสื้อ1เสื้อ2[เสื้อ1][เสื้อ2][เสื้อ1][เสื้อ2]aaประเมินเป็นจำนวนเดียวกัน ด้วยการไม่ระบุคำสำหรับภาษาที่สมเหตุสมผลมันก็เพียงพอที่จะใช้ "X terminates" เป็นการสังเกตการณ์เพราะถ้าหากโปรแกรมสองโปรแกรมเทียบเท่ากันเมื่อทำการสังเกตการยุติพวกเขาก็ยังเทียบเท่ากันเมื่อสังเกตผลลัพธ์

ส่วนที่ยาก: การพิสูจน์

อย่างไรก็ตามเอกสารเหล่านั้นมักจะไม่อธิบายว่าการใช้คำจำกัดความนี้ยากเพียงใด การอ้างอิงทั้งหมดด้านล่างแสดงวิธีจัดการกับปัญหานี้ แต่ทฤษฎีที่ต้องการนั้นยากกว่าที่คิด เราจะพิสูจน์ได้อย่างไรว่า ? จริงๆแล้วเราทำการวิเคราะห์กรณีและการเหนี่ยวนำในบริบท? คุณไม่ต้องการทำเช่นนั้นเสื้อ1เสื้อ2

ในขณะที่มาร์ตินเบอร์เกอร์ชี้ให้เห็นคุณต้องการใช้แทน bisimulation (ทำโดย Pitts) หรือความสัมพันธ์เชิงตรรกะเชิงตรรกะ (ฮาร์เปอร์เรียกง่ายๆว่า "ตรรกะเชิงสมดุล")

ท้ายสุดคุณจะพิสูจน์ความยืดเยื้อได้อย่างไร

ฮาร์เปอร์แก้คำถามเหล่านี้ใน 10 หน้าสำหรับ System T ผ่านความฉลาดและความสัมพันธ์เชิงตรรกะ พิตต์ใช้เวลามากขึ้น บางภาษามีความซับซ้อนมากขึ้น

วิธีจัดการกับสิ่งนี้

จริง ๆ แล้วฉันถูกล่อลวงให้ทำการพิสูจน์ตามเงื่อนไขบนทฤษฎีที่คาดคะเนของความเท่าเทียมกันสำหรับ PTS แต่ทฤษฎีที่แท้จริงจำเป็นต้องมีข้อโต้แย้งที่ไม่น่าสนใจดังนั้นฉันจึงไม่แน่ใจว่าการคาดเดาดังกล่าวจะเกิดขึ้นได้อย่างไร

ฉันรู้ (แม้ว่าจะไม่ได้อยู่ในรายละเอียด) ของงานดังต่อไปนี้:

  • Andrew Pitts (ตัวอย่างเช่นใน ATTAPL สำหรับ System F ที่ขยายออกมาและในเอกสารสองสามฉบับเช่นหน้า 58 "ทฤษฎีการปฏิบัติงานตามความเท่าเทียมกันของโปรแกรม")
  • พื้นฐานการเขียนโปรแกรมภาษา (บทที่ 47-48) ซึ่งได้รับแรงบันดาลใจจากพิตส์ (แต่อ้างว่ามีหลักฐานที่ง่ายกว่า)
  • การศึกษาเชิงตรรกะของความเท่าเทียมโปรแกรม ฉันไม่สามารถหาบทคัดย่อภาษาอังกฤษได้ แต่ดูเหมือนว่าจะใช้ความพยายามอย่างมากกับผลข้างเคียง (การอ้างอิง) ซึ่งดูเหมือนว่าจะมีความซับซ้อนในมุมฉาก

1
สำหรับทฤษฎีประเภทกำหนดความสอดคล้องบริบทการดำเนินงานควรเป็นเรื่องง่ายเนื่องจากโปรแกรมทั้งหมดสิ้นสุดลง กำหนดแนวคิดของการสังเกตที่ประเภทฐาน (เช่นการเลิก, การเขียน , ที่หน่วยประเภท), แล้วพูดว่าสำหรับทุกประเภทที่พิมพ์และปิดบริบทประเภทฐานเรามี IFF\ ด้วย PTS มันซับซ้อนกว่าเล็กน้อยเนื่องจากอาจไม่สิ้นสุด P Q C [ ] C [ P ] C [ Q ] PQ[][P][Q]
Martin Berger

@MartinBerger: นั่นเป็นความคิดที่ฉันพูดเป็นนัย แต่การพิสูจน์โดยตรงนั้นยากมากเพราะคุณต้องทำข้อพิสูจน์สำหรับ C ทั้งหมด (ฉันจะอธิบายให้ดีกว่านี้ในคำถาม) นอกจากนี้หากโปรแกรมทั้งหมดสิ้นสุดข้อกำหนดที่คุณใช้ตามที่ระบุจะระบุโปรแกรมทั้งหมด
Blaisorblade

PTS ของคุณมีฟังก์ชันเป็นประเภทการคำนวณเท่านั้นหรือไม่ ถ้าเช่นนั้นคำถามยอดเยี่ยมนี้ (และคำตอบ)ดูเหมือนจะบ่งบอกว่า equivalence นั้นเพียงพอสำหรับการยุติระบบชนิดบริสุทธิ์ - และมันอธิบายวิธีการกำหนดความเท่าเทียมเชิงบริบทสำหรับการยุติแคลคูลัสอย่างชัดเจน ฉันคิดว่าการใช้ค่าภาคพื้นดินเป็นวิธีที่เหมาะสมในการกำหนดความเท่าเทียมกันทางบริบทและการเลิกจ้างเป็นเพียงทางลัดที่สะดวกในการทำบุญที่น่าสงสัย βη
gasche

1
@Blaisorblade ขออภัยใช่ถ้าคุณใช้การบอกเลิกเป็นที่สังเกตได้แสดงว่าคุณพูดถูก ขออภัยฉันตัดและวางคำจำกัดความของภาษาที่กำหนดอย่างสมบูรณ์ หากคุณมีการยกเลิกฟังก์ชั่นคุณสามารถใช้พื้นฐานที่สังเกตได้อื่น ยกตัวอย่างเช่นที่ booleans: ... IFFจริง ปริมาณในทุกบริบทมักเป็นปัญหาเสมอ วิธีการมาตรฐานในการจัดการกับมันคือการกำหนดความสัมพันธ์ที่สองที่ (1) เป็นเสียง wrtและ (2) ง่ายต่อการจัดการเช่นความคิดของความผิดปกติบางอย่างหรือความสัมพันธ์เชิงตรรกะ ขึ้นอยู่กับแอพพลิเคชั่น ซี[ Q ] ทีอาร์ยูอี[P]เสื้อRยูอี[Q]เสื้อRยูอี
Martin Berger

1
@Blaisorblade อาจเป็นไปได้ นักทฤษฎีเห็นพ้องต้องกันได้ทำสิ่งนี้อย่างเข้มข้นมาเป็นเวลานานเพราะด้วยกระบวนการที่เกิดขึ้นพร้อมกันมันมีความชัดเจนน้อยกว่าความคิดเรื่องความเท่าเทียมกันที่จะใช้ สิ่งนี้นำไปสู่การแบ่งงาน: ใช้การลดความหมายตามบริบทด้วยการกำหนดปริมาณเหนือบริบทเพื่อกำหนดแนวคิดของความเท่าเทียมและจากนั้นใช้ bisimulations หรือร่องรอยเหนือการเปลี่ยนฉลากเพื่อพิสูจน์ความเท่าเทียม (หรือขาด) คำถามการวิจัยแบบเปิดขนาดใหญ่ในทฤษฎีการทำงานพร้อมกันคือการเดินทางจากอดีตสู่ขั้นตอนวิธี
Martin Berger

คำตอบ:


4

ความหมายของการเขียนเรียงความ compositional denotationalของภาษาโปรแกรม (โดเมน - ทฤษฎีหรือทฤษฎี - เกม - ทฤษฎีหนึ่งเช่น) เพียงพอถ้าความหมายเท่ากับศัพท์หมายถึงความหมายเทียบเท่า: มันมักจะเกิดขึ้นว่ามันง่ายกว่าที่จะคำนวณ denotations เพื่อพิสูจน์ความเท่าเทียมเชิงสังเกตการณ์ นี่เป็นเทคนิคทั่วไปที่มีหลายสายพันธุ์ที่รู้จัก มีการกำหนดความเพียงพอในกระดาษ PCF ของ Plotkin แล้ว[[[-]]

[[เสื้อ1]]=[[เสื้อ2]]เสื้อ1เสื้อ2.

ไม่จำเป็นต้องมีความหมายที่เพียงพอที่จะใช้พิธีการอื่น ๆ นอกจากนี้คุณยังสามารถประมาณภายในภาษาการเขียนโปรแกรมภายใต้การสนทนาเช่นใช้วิธีการปฏิบัติงาน
Martin Berger

ขอบคุณสำหรับคำตอบ แต่ -1: ในขณะที่ฉันเห็นด้วยคำถามกล่าวถึงระบบประเภทบริสุทธิ์ - AFAICS ความหมายเชิง Denotational สำหรับระบบแบบบริสุทธิ์เป็นปัญหาแบบเปิดดังนั้นฉันคิดว่าคำตอบควรชี้ไปที่ความหมายเชิง Denotational (อันที่จริงถ้าฉันมีความหมายเชิง Denotational ฉันจะจ่ายให้กับการปฏิบัติการหนึ่งอย่างทั้งหมดตามที่กล่าวไว้ในคำถาม) (แต่ขออภัยสำหรับคำถามที่ยาวเกินไป)
Blaisorblade

@ มาร์ตินเบอเกอร์ฉันไม่เข้าใจคำวิจารณ์ของคุณ OP ขอวิธีการแสดงความเท่าเทียมเชิงสังเกตการณ์ฉันพูดถึงวิธีการทั่วไปแล้วคุณคัดค้านว่ามีวิธีอื่นที่มีอยู่ซึ่งหลีกเลี่ยงวิธีการนั้นหรือไม่
Andrej Bauer

2
@Blaisorblade ถ้างั้นคุณก็ต้องประดิษฐ์ความหมายเชิง Denotational สำหรับระบบแบบบริสุทธิ์ใช่ไหม? :-) แต่อย่างจริงจังกว่านี้ฉันจะถาม Alex Simpson เขาจะรู้ดีกว่าเกี่ยวกับความหมายเชิงลบสำหรับสิ่งต่าง ๆ
Andrej Bauer

@ AndrejBauer มันไม่ได้หมายถึงการวิจารณ์มากขึ้นในฐานะภาคผนวก
Martin Berger

2

ทฤษฎีโดเมนและโมเดลของ PTSes ยังไม่ได้รับการสำรวจทั้งหมดที่ฉันกลัว แหล่งข่าวคนหนึ่งที่มีรายละเอียดเป็นงานปริญญาเอกโทมัส Streicher ของ: ความหมายของประเภททฤษฎี เขาให้ความหมายเชิงทฤษฎีหมวดหมู่สำหรับ PTS ทั้งหมด แต่ฉันไม่แน่ใจว่าเขาพูดถึง -conversionη


1
ฉันไม่คิดว่าปริญญาเอกของ Streicher นั้นเกี่ยวกับ PTS มันเกี่ยวกับความหมายของแคลคูลัสของสิ่งปลูกสร้างและผลลัพธ์ที่เป็นอิสระผ่านซีแมนติกที่น่าเชื่อถือ ดูที่นี่
Martin Berger

ขอขอบคุณสำหรับการชี้แจง! ฉันกลัวว่าลิงก์จะใช้งานไม่ได้ (และแก้ไขได้ยากด้วยลิงก์ขนาดย่อ)
ดี้

การเชื่อมโยงเป็นไปยังตารางของเนื้อหาของหนังสือเล่มนี้ที่นี่ ฉันหวังว่าอันนี้จะทำงานได้ดีขึ้น
Martin Berger

λ* * * *

@MartinBerger: คุณหมายถึงความหมายที่ใช้งานได้จริงหรือไม่?
Dominique Devriese

0

คำตอบนี้แนะนำวิธีการแก้ไขปัญหา (ข้อเสนอแนะยินดีต้อนรับ)

PFPL บทที่ 49 กล่าวถึงความเห็นที่เท่าเทียมกันของความเท่าเทียมเชิงสังเกตการณ์และความเท่าเทียมเชิงตรรกะ ความเท่าเทียมกันทางลอจิคัลคือความสัมพันธ์แบบเดียวกับที่ใช้ในการระบุสถานะพารามิเตอร์ดังนั้นหลักของบทนี้จึงเป็นข้อพิสูจน์ถึงพารามิเตอร์สำหรับระบบ F

การทำงานเกี่ยวกับตัวแปรสำหรับ PTS AFAICT ไม่ได้พูดถึงความสัมพันธ์กับความเท่าเทียมเชิงสังเกตการณ์ ในความเป็นจริงเพื่อกำหนดความเท่าเทียมกันของการสังเกตการณ์เว้นแต่คุณจะมีการทำลายล้างคุณจำเป็นต้องมีประเภทพื้นดินบวก (ธรรมชาติ, บูลีน) เพื่อใช้สำหรับการสังเกต

อย่างไรก็ตามทฤษฎีบทหลัก (PFPL 47.6, 48.3, 49.2) เพื่อเชื่อมโยงความสัมพันธ์ทั้งสองได้รับการพิสูจน์โดยอิสระจากภาษาที่ระบุ:

ความเท่าเทียมกันของการสังเกตคือความสอดคล้องที่สอดคล้องกันหยาบในนิพจน์

จากนั้นเพื่อแสดงให้เห็นว่าการเทียบเท่าเชิงตรรกะหมายถึงความเท่าเทียมเชิงสังเกตการณ์เพียงอย่างเดียวต้องแสดงให้เห็นว่าการเทียบเท่าตรรกะเป็นความสอดคล้องที่สอดคล้องกัน อย่างไรก็ตามในอีกทางหนึ่งต้องการงานเพิ่มเติม: โดยเฉพาะอย่างยิ่งเพื่อแสดงให้เห็นว่าความเท่าเทียมกันทางตรรกะเป็นความสอดคล้องกันอย่างใดอย่างหนึ่งดำเนินการโดยการปฐมนิเทศในบริบท

n + 1 = 1 + nVecN nnVecNVecNn+1=1+nVec (n + 1)Vec (1 + n)n + 11 + n

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