ระบบประเภทขึ้นอยู่กับทฤษฎีเซตไร้เดียงสา


11

ดังที่ฉันเข้าใจในประเภทข้อมูลวิทยาศาสตร์คอมพิวเตอร์ไม่ได้ตั้งอยู่บนทฤษฎีเซตเนื่องจากสิ่งต่าง ๆ เช่นความขัดแย้งของรัสเซล แต่ในภาษาการเขียนโปรแกรมโลกแห่งความจริงเราไม่สามารถแสดงชนิดข้อมูลที่ซับซ้อนเช่น "ชุดที่ไม่มีตัวเอง" ได้ไหม พูดว่าในประเภทการปฏิบัติเป็นชุดที่ไม่มีที่สิ้นสุดของสมาชิกที่เป็นสมาชิกอินสแตนซ์ที่ถูกกำหนดโดยจำนวนของคุณสมบัติที่อยู่ภายในประเภท / ชุดนี้ (มีคุณสมบัติบางอย่างวิธีการ)? ถ้าไม่มีตัวอย่างแบบ counter จะเป็นอย่างไร


1
ความขัดแย้งของรัสเซลไม่มีส่วนเกี่ยวข้องโดยตรง
Andrej Bauer

คำตอบ:


11

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

เพื่อความแม่นยำมากขึ้นค่าที่กำหนดแบบวนซ้ำของประเภทτ (โดยทั่วไปτเป็นประเภทฟังก์ชั่น) ถูกกำหนดโดยสมการจุดคงที่v = Φ ( v )โดยที่Φ : τ τสามารถโปรแกรมใด ๆ ถ้าτถูกตีความว่าเป็นชุดTแล้วเราจะคาดหวังว่าทุก: T Tจะมีจุดคงที่ แต่ชุดTเดียวที่มีคุณสมบัตินี้คือซิงเกิลโวลต์ττโวลต์=Φ(โวลต์)Φ:τττT:TTT

แน่นอนคุณอาจตระหนักได้ว่าผู้กระทำผิดเป็นตรรกะดั้งเดิม หากคุณทำงานกับทฤษฎีเซต intuitionistic ก็ถือว่าสอดคล้องกันว่ามีหลายชุดที่มีคุณสมบัติจุดคงที่ ในความเป็นจริงสิ่งนี้ถูกใช้เพื่อให้ความหมายของภาษาโปรแกรมดูตัวอย่าง

Alex Simpson ความเพียงพอในการคำนวณสำหรับประเภทแบบเรียกซ้ำในแบบจำลองของทฤษฎีเซต Intuitionisticในพงศาวดารของตรรกะที่บริสุทธิ์และประยุกต์, 130: 207-275, 2004


7

การพิมพ์ย่อยความหมายขึ้นอยู่กับการตีความทางทฤษฎีที่กำหนดพื้นฐานของประเภทที่พิมพ์ย่อยเป็นส่วนย่อย ฉันเชื่อว่างานต้นฉบับโดย Castagna ในบริบทของ CDuce ภาษาการประมวลผล XML ประเภทสอดคล้องกับชุดของเอกสาร XML ความคิดที่ได้รับตั้งแต่นำมาใช้กับแคลคูลัสและในวัตถุแคลคูลัสและการเรียนπ


1
มีสารตั้งต้นของ Castagna เมื่อนานมาแล้วผู้คนได้ใช้ความสัมพันธ์ของเซ็ตย่อยสำหรับการสร้างโมเดลย่อยใน PER โมเดลแล้ว มีประเภทที่สอดคล้องกับความสัมพันธ์ความเท่าเทียมบางส่วน (PER) และการพิมพ์ย่อยเป็นเพียงการรวมความสัมพันธ์ดังกล่าว
Andrej Bauer

4

ด้วยข้อยกเว้นบางประการ (ข้อที่ Dave Clarke อ้างอิง) ความหมายเชิงทฤษฎีเซตแบบง่าย ๆ นั้นยากที่จะใช้ เหตุผลก็คือข้อมูลนามธรรมไม่ได้เล่นอย่างมีนัยสำคัญกับความหมาย set-theoretic

α.ααยู

[[α.αα]]=ΠXยู.XX

ยูยูXXXยูα

α.αα


ไม่ฉันไม่คิดว่าคำตอบนี้สมเหตุสมผล หากความหมายของภาษานั้นเป็นความหมายแบบมาตรฐาน F แล้วคอมไพเลอร์สามารถทำการปรับให้เหมาะสมได้ดีขึ้นอยู่กับระบบประเภท หากซีแมนทิกส์เป็นซีแมนทิกส์ของทฤษฎีเซตดังนั้นการปรับให้เหมาะสมจะไม่ปลอดภัย รูปแบบที่คุณใช้สำหรับประเภทไม่ได้ใส่เข้าไป
Sam Tobin-Hochstadt

แซมฉันไม่เข้าใจประเด็นของคุณ: มันอ่านเหมือนที่คุณเห็นด้วยกับฉันอย่างสมบูรณ์! ความหมาย set-theoretic มาตรฐานไม่สามารถพิสูจน์ได้ว่าผู้อยู่อาศัยประเภทนั้นเท่านั้นคือตัวตนดังนั้นคุณจึงต้องมีความหมายที่แตกต่างกัน
Neel Krishnaswami

1
@Neel: ปัญหาที่คุณอธิบายยังคงมีอยู่แม้ว่าเราจะย้ายออกไปจากชุด การแก้ปัญหาคือไม่เปลี่ยนหมวดหมู่ของเซ็ตเป็นอย่างอื่น แต่เป็นการเปลี่ยนพารามิเตอร์แบบจำลองแตกต่างกัน สิ่งหนึ่งคือต้องใช้ความสัมพันธ์เชิงอนุพันธ์อย่างที่ฉันแน่ใจว่าคุณรู้ แต่สิ่งต่าง ๆ ก็เป็นไปด้วยดีเช่นกันถ้าฉันไม่เข้าใจผิด ปัญหา "เฉพาะ" กับชุดคือการขาดคะแนนคงที่ (ทั้งในระดับของค่าซ้ำและประเภทซ้ำ)
Andrej Bauer

1
อ่าฉันคิดว่าฉันเข้าใจว่าทำไมฉันถึงทำให้คุณและแซมสับสน! ฉันไม่ได้ตั้งใจจะบอกเป็นนัยว่ามันไม่สมควรที่จะใช้แบบจำลองทางทฤษฎีที่ไร้เดียงสาเพียงว่าแบบจำลองนี้มักจะให้คำตอบที่ไม่ช่วยเหลือ - นั่นคือเหตุผลที่ฉันพูดว่า "ใช้งานยาก" และ "ผิด" แน่นอนว่าคุณสามารถใช้ชุดเพื่อสร้างแบบจำลองที่มีประโยชน์ (เช่นสัมพันธ์) แต่จากนั้นเราจะไม่บุกรุกประเภทชุดตามที่แนะนำไว้ในคำถามอีกต่อไป (นอกจากนี้ที่คุณรู้ว่ามีความแตกต่าง impredicative ไม่มีรูปแบบที่ไร้เดียงสา แต่ parametricity ยังคงมีความ predicatively.)
Neel Krishnaswami

1
ฉันคิดว่าประเด็นของคุณเกี่ยวกับการติดต่อระหว่างซีแมนทิกส์ - ความหมายเซตเชิงทฤษฎีนั้นไม่เหมาะสำหรับความหลากหลายของรูปแบบระบบ F เพราะมันมีคนอาศัยอยู่ที่อธิบายไม่ได้ แต่นั่นไม่ใช่จุดกับการตั้งทฤษฎีความหมายเพียงแค่คำว่าความหมายของเราควรยอมรับ หากภาษาของเราให้เราแสดงฟังก์ชั่นที่คุณกำลังพูดถึง (เช่น Typed Racket ทำเช่นนั้น) เราอาจต้องการซีแมนทิกส์ตามทฤษฎี
Sam Tobin-Hochstadt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.