What Monads Can and Cannot Do with a Few Extra Pages
Møgelberg, Zwart
The delay monad provides a way to introduce general recursion in type theory. To write programs that use a wide range of computational effects directly in type theory, we need to combine the delay monad with the monads of these effects. Here we present a first systematic study of such combinations.
We study both the coinductive delay monad and its guarded recursive cousin, giving concrete examples of combining these with well-known computational effects. We also provide general theorems stating which algebraic effects distribute over the delay monad, and which do not. Lastly, we salvage some of the impossible cases by considering distributive laws up to weak bisimilarity.
academic
ما يمكن للأحاديات أن تفعله وما لا تستطيع فعله مع بضع صفحات إضافية
توفر أحادية التأخير (delay monad) طريقة لإدخال التكرار العام في نظرية الأنواع. لكتابة البرامج التي تستخدم تأثيرات حسابية واسعة النطاق مباشرة في نظرية الأنواع، نحتاج إلى دمج أحادية التأخير مع أحاديات هذه التأثيرات. تدرس هذه الورقة هذا الدمج بشكل منهجي للمرة الأولى. تبحث المقالة في أحادية التأخير المرافقة (coinductive) وتغييراتها المحمية بالتكرار، وتقدم أمثلة ملموسة لدمج هذه الأحاديات مع التأثيرات الحسابية المعروفة. كما توفر نظريات عامة توضح أي التأثيرات الجبرية توزع على أحادية التأخير وأيها لا توزع. وأخيراً، يتم إنقاذ بعض الحالات المستحيلة من خلال النظر في قوانين التوزيع تحت المحاكاة الضعيفة ثنائية الاتجاه.
المشكلة المراد حلها: تتطلب نظرية Martin-Löf للأنواع أن تنهي جميع البرامج لحفظ صحة التفسير المنطقي، لكن البرمجة العملية تحتاج إلى تكرار عام. تحل أحادية التأخير هذه المشكلة بتغليف التكرار، لكن تفتقر إلى نظرية لدمج أحادية التأخير مع التأثيرات الحسابية الأخرى بشكل منهجي.
أهمية المشكلة: تحتاج لغات البرمجة الوظيفية الحديثة إلى التعامل مع تأثيرات حسابية متعددة (الاستثناءات، الحالة، عدم التحديد، إلخ). البرمجة والاستدلال المباشر على هذه التأثيرات في نظرية الأنواع يتطلب نظرية رياضية تصف التفاعل بين أحادية التأخير والأحاديات الأخرى.
قيود الأساليب الموجودة:
غياب الدراسة المنهجية لدمج أحادية التأخير مع أحاديات أخرى
النتائج ذات الصلة في نظرية المجالات معقدة جداً وغير مناسبة لإعدادات نظرية الأنواع
من المعروف أن بعض الدمجات (مثل أحادية المجموعة الجزئية المحدودة) غير ممكنة، لكن تفتقر إلى نظرية عامة
الدافع البحثي: إنشاء نظرية رياضية كاملة لدمج أحادية التأخير مع التأثيرات الحسابية الأخرى، مما يوفر أساساً نظرياً للبرمجة الوظيفية المتقدمة في نظرية الأنواع.
إطار الدراسة المنهجية: أول دراسة منهجية لدمج أحادية التأخير مع أحاديات أخرى، تغطي متغيرات المرافقة والتكرار المحمي.
أمثلة دمج ملموسة: توضح كيفية دمج أحادية التأخير مع التأثيرات الحسابية القياسية (الاستثناءات، القارئ، الحالة العامة، الاستمرارية، الاختيار).
نظريات عامة لقوانين التوزيع:
إثبات أن التوزيع المتسلسل يعمل على الأحاديات الجبرية ذات المعادلات المتوازنة
إثبات أن الأحاديات ذات العمليات الإدماجية التبادلية لا تملك قوانين توزيع
إنشاء مراسلة بين نوع المعادلة ووجود قوانين التوزيع
نظرية المحاكاة الضعيفة ثنائية الاتجاه: من خلال العمل على فئة المجموعات، إثبات أنه يمكن بناء قوانين توزيع للأحاديات الجبرية بدون معادلات حذف تحت معنى المحاكاة الضعيفة ثنائية الاتجاه.
التحقق الرسمي: تم تشكيل بعض النتائج في Agda، مما يوفر تطبيقات قابلة للتحقق.
دراسة وجود قوانين التوزيع TD → DT، حيث T هي أحادية عشوائية و D هي أحادية التأخير. توزع قوانين التوزيع عمليات T على خطوات الحساب، مما يجعل التركيب DT له بنية أحادية.
تستشهد هذه الورقة بـ 69 مرجعاً مهماً، تغطي أعمالاً كلاسيكية في نظرية الأنواع، نظرية الفئات، والتأثيرات الحسابية، وخاصة نظرية قوانين التوزيع من Beck (1969)، أحادية التأخير من Capretta (2005)، والتكرار المحمي من Nakano (2000) وغيرها من الأعمال الأساسية.