Parametricity ที่ไม่ดีเทียบกับไบนารีของพารามิเตอร์


15

เมื่อไม่นานมานี้ฉันสนใจเรื่องพาราเมตริกหลังจากเห็นกระดาษ LICS 2012 ของ Bernardy และ Moulin ( https://dl.acm.org/citation.cfm?id=2359499 ) ในบทความนี้พวกเขาปรับพารามิเตอร์ภายในแบบเอกภาพในระบบชนิดบริสุทธิ์ที่มีชนิดที่ขึ้นต่อกันและบอกใบ้ถึงวิธีการที่คุณสามารถขยายการก่อสร้างไปสู่สิ่งที่ต้องการโดยพลการ

ฉันเคยเห็นพารามิเตอร์เลขฐานสองที่กำหนดไว้ก่อนหน้าเท่านั้น คำถามของฉันคืออะไรตัวอย่างของทฤษฎีบทที่น่าสนใจที่สามารถพิสูจน์ได้โดยใช้เลขฐานสองเป็นเลขคู่ แต่ไม่ใช่กับสมการเชิงอนุพันธ์ มันน่าสนใจที่จะเห็นตัวอย่างของทฤษฎีบทที่พิสูจน์ด้วยพารามิเตอร์ระดับตติยภูมิ แต่ไม่ใช่ด้วยระบบเลขฐานสอง (แม้ว่าฉันเคยเห็นหลักฐานว่า n-parametricity เทียบเท่ากับ n> = 2: ดูhttp: //www.sato.kuis .kyoto-u.ac.jp / ~ takeuti / art / par-tlca.ps.gz )

คำตอบ:


12

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

โดยปกติแล้วคุณใช้โมเดล unary ถ้าสิ่งที่คุณสนใจคือคุณสมบัติของ unary ตัวอย่างเช่นดูฉบับร่างล่าสุดของเรา, Superficially Substructural Typesซึ่งเราพิสูจน์ผลลัพธ์ความสมบูรณ์ของเสียงโดยใช้แบบจำลองแบบเอกนารี เนื่องจากความสมบูรณ์ของการพูดคุยเกี่ยวกับพฤติกรรมของหนึ่งโปรแกรม (ถ้า มันจะเบี่ยงเบนหรือลดลงเป็นค่า ) โมเดล unary ก็เพียงพอแล้ว หากเราต้องการพิสูจน์ว่าโปรแกรมเทียบเท่านอกจากนี้เราจะต้องมีรูปแบบไบนารีv : Aอี:Aโวลต์:A

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

คำจำกัดความของ "ความสัมพันธ์" และ "ความสัมพันธ์แบบตัวตน" ในพารามิเตอร์จริง ๆ แล้วเป็นเพียงเล็กน้อยสำหรับการคว้าและเสรีภาพนี้เป็นสิ่งจำเป็นจริง ๆ ถ้าคุณต้องการที่จะสนับสนุนประเภทแฟนซีเช่นชนิดที่สูงขึ้นหรือประเภทที่พึ่งพาหรือต้องการทำงานกับโครงสร้างความหมาย บัญชีที่สามารถเข้าถึงได้มากที่สุดของฉันรู้ว่านี้อยู่ในบ๊อบ Atkey ร่างกระดาษสัมพันธ์ Parametricity สำหรับชนิดที่สูงขึ้น

หากคุณมีความอยากอาหารที่ดีสำหรับหมวดหมู่ทฤษฎีนี้เป็นสูตรแรกในทางนามธรรมโดย Rosolini ในกระดาษของเขาสะท้อนกราฟและ Parametric Polymorphism มันได้ถูกพัฒนาขึ้นโดย Dunphy และเรดดี้ในกระดาษของพวกเขาขีด จำกัด Parametricและยังตาม Birkedal, Møgelbergและปีเตอร์เสนในโดเมนทฤษฎีสินค้าทุกรุ่นของ Parametric Polymorphism


5

นี่ควรเป็นความเห็นต่อคำตอบของ Neel แต่มันยาวไปหน่อย ได้รับคำแนะนำจาก Rasmus Petersen ฉันพบสิ่งต่อไปนี้ในวิทยานิพนธ์ของMøgelberg (เน้นที่เหมือง):

Ivar Rummelhoff [36] ได้ศึกษาการเข้ารหัสของตัวเลขธรรมชาติในแต่ละแบบจำลองของ PCA ที่แตกต่างกันและแสดงให้เห็นว่าในบางรุ่นเหล่านี้การเข้ารหัสนั้นมีมากกว่าตัวเลขธรรมชาติ ดังนั้นโมเดลเหล่านี้จึงไม่สามารถเป็นพารามิเตอร์ได้ แม้ว่าเขาจะไม่ได้พูดถึงเรื่องนี้แสดงให้เห็นว่าเอกฐานพาราเมตริกนั้นแตกต่างจากพาราเมทริกไบนารี่ (เชิงสัมพันธ์) เนื่องจากเราสามารถแสดงให้เห็นว่าการเข้ารหัสของตัวเลขธรรมชาติในแบบจำลองใด ๆ เป็นแบบเอกภาพ

กระดาษที่อ้างถึงคือPolynat ในรุ่นต่อ


3

nnR(n+1)R'(x,Y)R(x)Y=xผมผม[1 ..n]nn+1n+1n. เนื่องจากความสัมพันธ์ที่มากขึ้นหมายถึงพาราเมตริกที่แข็งแกร่งขึ้นและตระกูลฟังก์ชันที่น้อยลงจึงถูกมองว่าเป็น“ พาราเมทริก” เราเข้าใจว่า“ พาราเมทริกตี้ที่แท้จริง” คือสิ่งที่เราได้รับในขีด จำกัด และแต่ละพารามิเตอร์ยิ่งกว่านั้น

ความสัมพันธ์ของอินฟินิตี้เหล่านี้ได้รับการทำเป็นทางการว่าเป็น "ความสัมพันธ์เชิงตรรกะของ Kripke ที่แตกต่างกันของ arity" ซึ่งเรียกว่า Jung และ Tiuryn ​​ได้แสดงให้เห็นว่าตัวแปรแบบอินฟินิตี้ดังกล่าวนั้นเพียงพอที่จะบ่งบอกลักษณะของแลมบ์ดาได้อย่างชัดเจนและO'Hearn และ Riecke ได้แสดงให้เห็นว่ามันเพียงพอที่จะสร้างแบบจำลองนามธรรมอย่างสมบูรณ์สำหรับภาษาโปรแกรม เหล่านี้เป็นผลลัพธ์พื้นฐานและสวยงาม!

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

เคิร์ต Sieber ได้ศึกษาปัญหาเหล่านี้ในเชิงลึกบางอย่างสำหรับการจัดลำดับและภาษา Algol เหมือน


2

น่าจะเป็นกระดาษที่ง่ายที่สุดในการอ่านสำหรับการใช้งานของตัวแปรฐานสองคือทฤษฎีบทของ Wadler ฟรี! .

ที่จริงแล้วฉันรู้สึกประหลาดใจเล็กน้อยกับคำถามเพราะพาราเมตริกเมทริกสองตัวคือสิ่งที่ถูกกล่าวถึงบ่อยที่สุดในเอกสารพาราเมทริก แม้แต่กระดาษ Reynolds ดั้งเดิมก็มี "ประเภท, นามธรรมและตัวแปรหลากหลาย" ที่กล่าวถึงทุกที่ มันค่อนข้างจะเป็นตัวแปรพาราที่ไม่เป็นที่รู้จักกันอย่างแพร่หลาย


นั่นเป็นกระดาษที่ดี แต่ฉันคุ้นเคยกับเลขฐานสองแบบไบค์ - สิ่งที่ฉันต้องการคือคำอธิบายที่ชัดเจนว่าทำไมพารามิเตอร์แบบเลขฐานสองจึงมีประสิทธิภาพมากกว่าพาราเมตริกแบบเอกภาพ
Christopher Monsanto

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