Defining substitution for a language with binders like the simply typed $λ$-calculus requires repetition, defining substitution and renaming separately. To verify the categorical properties of this calculus, we must repeat the same argument many times. We present a lightweight method that avoids repetition and that gives rise to a simply typed category with families (CwF) isomorphic to the initial simply typed CwF. Our paper is a literate Agda script.
معرّف الورقة البحثية : 2510.12304العنوان : الاستبدال بدون النسخ واللصقالمؤلفون : Thorsten Altenkirch (جامعة نوتنغهام)، Nathaniel Burke (كلية إمبريال لندن)، Philip Wadler (جامعة إدنبرة و Input Output)التصنيف : cs.LO (المنطق في علوم الحاسوب)مؤتمر النشر : LFMTP 2025 (ورشة العمل الدولية للأطر المنطقية واللغات الوصفية: النظرية والممارسة)رابط الورقة : https://arxiv.org/abs/2510.12304 عند تعريف عمليات الاستبدال للغات التي تحتوي على رابطات (مثل حساب لامدا من النوع البسيط)، يتطلب الأمر عادة تعريف عمليات الاستبدال وإعادة التسمية بشكل منفصل، مما يؤدي إلى كمية كبيرة من الكود المكرر. للتحقق من الخصائص الفئوية للحساب، يجب تكرار نفس الحجج عدة مرات. تقدم هذه الورقة منهجاً خفيفاً لتجنب هذا التكرار، وتبني فئة Cwf من النوع البسيط متطابقة مع عائلة الفئات الأولية (CwF). تُقدم الورقة في شكل سيناريو برمجة أدبية في Agda.
عند تعريف عمليات الاستبدال للغات ذات الرابطات في الإثبات الآلي، تتطلب الطرق التقليدية:
التعريف المنفصل لإعادة تسمية المتغيرات (∆ ⊩v Γ) واستبدال الحدود (∆ ⊩ Γ)إعادة تنفيذ أربع عمليات استبدال مختلفة: متغير لمتغير، متغير لحد، حد لمتغير، حد لحدإعادة إثبات جميع قوانين الدوال للمجموعات المختلفة، مما يؤدي إلى 8 حالات إثبات مختلفةمبادئ الهندسة البرمجية : تجنب نسخ ولصق الكود، وهو أمر بالغ الأهمية في الإثبات الشكليالأهمية النظرية : توفير أساس لتعريفات الاستبدال في نظرية النوع المعتمدالتطبيقات العملية : تفسير مسائل الاتساق للأنواع المعتمدة في الفئات ذات الرتبة الأعلىتكرار الكود : الحاجة إلى تعريف عمليات متشابهة بشكل منفصل للمتغيرات والحدودتكرار الإثبات : تتطلب إثباتات قوانين الفئة تغطية جميع المجموعات، مما يؤدي إلى كمية كبيرة من الحجج المكررةصعوبة الصيانة : تعديل موضع واحد يتطلب تحديث متزامن لعدة تعريفات متشابهةإطار عمل موحد : تقديم عملية استبدال موحدة قائمة على معاملات Sort، دمج معالجة المتغيرات والحدود في تعريف واحدضمان الإنهاء : الاستفادة الذكية من الاستقراء البنيوي في Agda والتحقق من الإنهاء بالترتيب القاموسي، مما يضمن سلامة التعريفالتحقق من النظرية الفئوية : إثبات أن الاستبدال المعرف بشكل استقرائي يرضي جميع قوانين CwF من النوع البسيطنتيجة الأولية : إنشاء علاقة تطابق بين بناء الجملة الاستبدالي الاستقرائي و CwF الأوليةنظرية التطبيع : شكل الاستبدال المعياري لحدود λ يتوافق مع حدود λ بدون استبدال صريحبناء نظام استبدال موحد بحيث:
الإدخال : حدود/متغيرات واستبدال/إعادة تسمية بأي مجموعةالإخراج : نتيجة الاستبدال من النوع المناسبالقيود : الحفاظ على سلامة النوع والإنهاءdata Sort : Set where
V : Sort
T>V : (s : Sort) → IsV s → Sort
data IsV : Sort → Set where
isV : IsV V
pattern T = T>V V isV
يجعل هذا التعريف V أصغر بنيوياً من T، مما يرضي متطلبات التحقق من الإنهاء في Agda.
data _ ⊢ [_]_ : Con → Sort → Ty → Set where
zero : Γ ▷ A ⊢ [ V ] A
suc : Γ ⊢ [ V ] A → (B : Ty) → Γ ▷ B ⊢ [ V ] A
`_ : Γ ⊢ [ V ] A → Γ ⊢ [ T ] A
_ ·_ : Γ ⊢ [ T ] A ⇒ B → Γ ⊢ [ T ] A → Γ ⊢ [ T ] B
λ_ : Γ ▷ A ⊢ [ T ] B → Γ ⊢ [ T ] A ⇒ B
حيث Γ ⊢ [ V ] A يتوافق مع المتغيرات و Γ ⊢ [ T ] A يتوافق مع الحدود.
data _ ⊑ _ : Sort → Sort → Set where
rfl : s ⊑ s
v⊑t : V ⊑ T
_⊔_ : Sort → Sort → Sort
V ⊔ r = r
T ⊔ r = T
_[_] : Γ ⊢ [ q ] A → ∆ ⊩ [ r ] Γ → ∆ ⊢ [ q ⊔ r ] A
الرؤية الأساسية: sort النتيجة هو الحد الأدنى الأعلى لـ sorts الإدخال، مما يضمن أن النتيجة تكون متغيراً فقط عندما يكون كلا الإدخالين متغيراً/إعادة تسمية.
حل مشكلة الإنهاء من خلال دالة الهوية متعددة الأشكال على Sort:
id-poly : Γ ⊩ [ q ] Γ
id : Γ ⊩ [ V ] Γ
id = id-poly {q = V}
الاستقراء البنيوي : الاستفادة من ترتيب بنية Sort والقياس بالترتيب القاموسي لضمان الإنهاءتعدد الأشكال البارامتري : توحيد معالجة حالات المتغيرات والحدود المختلفة من خلال معاملات Sortتطبيق نظرية الشبكة : استخدام عملية ⊔ بشكل أنيق للتعامل مع رفع النوعقواعد إعادة الكتابة : الاستفادة من وظيفة REWRITE في Agda لتبسيط الاستدلال بالمساواةيتم الإثبات من خلال الاستقراء البنيوي، والنقطة الأساسية هي الحجة الطبيعية في حالة المتغيرات.
[◦] : x [ xs ◦ ys ] ≡ x [ xs ] [ ys ]
يتطلب إثباتاً متبادل الاستقراء مع قانون الهوية الأيسر، مما يعكس الارتباط الداخلي لبنية الفئة.
تثبت الورقة أن الاستبدال الاستقرائي يرضي جميع بديهيات CwF من النوع البسيط:
البنية الفئوية : السياقات والاستبدالات تشكل فئةبنية ما قبل الحزمة : كل نوع يتوافق مع حزمة مسبقةالكائن الطرفي : السياق الفارغتوسيع السياق : بنية مشابهة لحاصل الضرب الفئويإنشاء تعيينات في اتجاهين:
التطبيع norm : Γ ⊢I A → Γ ⊢ [ T ] Aالدمج ⌜_⌝ : Γ ⊢ [ q ] A → Γ ⊢I Aوإثبات أنها معكوسات لبعضها البعض:
الاستقرار norm ⌜ t ⌝ ≡ tالاكتمال ⌜ norm t ⌝ ≡ tالأنواع الاستقرائية-الاستقرائية : التعريف المتبادل لـ Sort و IsVالإنهاء بالترتيب القاموسي : دعم أنماط استقراء معقدةقواعد إعادة الكتابة : أتمتة الاستدلال بالمساواةمرادفات الأنماط : تبسيط استخدام الأنواع المعقدةإثبات الإنهاء من خلال تحليل الرسم البياني للاستدعاء، مع قياس كل دالة:
_[_]: (r, t)id: (r, Γ)_+_: (r, σ)suc[_]: (q)في جميع الحلقات، إما أن ينخفض Sort بشكل صارم، أو يبقى Sort ثابتاً بينما تنخفض المعاملات الأخرى.
طريقة Kit 18,5 : تجريد أنماط مشتركة لإعادة التسمية والاستبدال من خلال kit، لكن لا تزال تتطلب إثباتات متكررةالمنظور الأحادي 6,9 : ترميز الاستبدال كدالة من المتغيرات إلى الحدود، لكن يصعب توسيعه للأنواع المعتمدةأدوات الأتمتة 21,22 : مكتبة Autosubst تولد تلقائياً حجج الاستبدال، لكن الطبقة السفلية لا تزال تحتوي على تكرارالبساطة : أبسط في اللغات التي تدعم الاستقراء بالترتيب القاموسيالوحدة : تعريف واحد يغطي جميع الحالاتالقابلية للتوسع : توضع أساس لمعالجة الأنواع المعتمدةمساهمة منهجية : إثبات أن معاملات Sort يمكن أن توحد عمليات الاستبدال بشكل أنيقمساهمة نظرية : إنشاء أولية بناء الجملة الاستبدالي الاستقرائيمساهمة عملية : توفير حل تقني ملموس لتجنب التكرارالاعتماد على ميزات Agda : يتطلب دعم التحقق من الإنهاء بالترتيب القاموسينقل التعقيد : على الرغم من تجنب التكرار، يزيد من تعقيد نظام Sortتحديات التوسع : لا يزال توسيع الأنواع المعتمدة يتطلب بحثاً إضافياًتوسيع الأنواع المعتمدة : تطبيق الطريقة على نظرية النوع المعتمد الكاملةالاتساق ذو الرتبة الأعلى : التطبيقات في الفئات ذات الرتبة الأعلىمساعدات إثبات أخرى : النقل إلى أنظمة Lean و Coq وغيرهاالابتكار التقني : تصميم نظام Sort يحل بذكاء مشاكل الإنهاء والوحدةالاكتمال النظري : التطور النظري الكامل من التعريفات الأساسية إلى الأوليةالقيمة العملية : توفير حل عملي لمشكلة شائعة في التحقق الشكليالوضوح في التعبير : كسيناريو برمجة أدبية، يجمع الكود والشرح بشكل جيدالاعتماد على المنصة : اعتماد شديد على ميزات Agda المحددة، مع قابلية نقل محدودةتوازن التعقيد : على الرغم من تجنب التكرار، يدخل تعقيداً مفاهيمياً جديداًالقابلية للتوسع غير المعروفة : لا يزال توسيع الأنواع الأكثر تعقيداً يتطلب التحققالمساهمة النظرية : توفير أفكار جديدة لأتمتة نظرية النوعالتوجيه العملي : توفير أدوات مفيدة لممارسي التحقق الشكليالإلهام البحثي : وضع أساس لمزيد من البحث في نظرية النوع المعتمدالتحقق الشكلي : تعريفات اللغة التي تتعامل مع الرابطاتبحث نظرية النوع : دراسة CwF والجبر الأولينظرية لغات البرمجة : أتمتة حساب λ وتوسيعاتهتستشهد الورقة بأعمال مهمة في هذا المجال، بما في ذلك:
الأعمال الأصلية لـ De Bruijn12 طريقة Kit لـ McBride18 نهج Allais وآخرين الآمن للنوع5 سلسلة أعمال Autosubst21,22 البحث ذو الصلة حول الأحاديات النسبية6 تعكس هذه الاستشهادات فهماً عميقاً للمؤلفين لتطور المجال والبحث الشامل عن الأعمال الموجودة.