2025-11-10T02:38:03.962319

Substitution Without Copy and Paste

Altenkirch, Burke, Wadler
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.
academic

الاستبدال بدون النسخ واللصق

المعلومات الأساسية

  • معرّف الورقة البحثية: 2510.12304
  • العنوان: الاستبدال بدون النسخ واللصق
  • المؤلفون: Thorsten Altenkirch (جامعة نوتنغهام)، Nathaniel Burke (كلية إمبريال لندن)، Philip Wadler (جامعة إدنبرة و Input Output)
  • التصنيف: cs.LO (المنطق في علوم الحاسوب)
  • مؤتمر النشر: LFMTP 2025 (ورشة العمل الدولية للأطر المنطقية واللغات الوصفية: النظرية والممارسة)
  • رابط الورقة: https://arxiv.org/abs/2510.12304

الملخص

عند تعريف عمليات الاستبدال للغات التي تحتوي على رابطات (مثل حساب لامدا من النوع البسيط)، يتطلب الأمر عادة تعريف عمليات الاستبدال وإعادة التسمية بشكل منفصل، مما يؤدي إلى كمية كبيرة من الكود المكرر. للتحقق من الخصائص الفئوية للحساب، يجب تكرار نفس الحجج عدة مرات. تقدم هذه الورقة منهجاً خفيفاً لتجنب هذا التكرار، وتبني فئة Cwf من النوع البسيط متطابقة مع عائلة الفئات الأولية (CwF). تُقدم الورقة في شكل سيناريو برمجة أدبية في Agda.

السياق البحثي والدافع

المشكلة الأساسية

عند تعريف عمليات الاستبدال للغات ذات الرابطات في الإثبات الآلي، تتطلب الطرق التقليدية:

  1. التعريف المنفصل لإعادة تسمية المتغيرات (∆ ⊩v Γ) واستبدال الحدود (∆ ⊩ Γ)
  2. إعادة تنفيذ أربع عمليات استبدال مختلفة: متغير لمتغير، متغير لحد، حد لمتغير، حد لحد
  3. إعادة إثبات جميع قوانين الدوال للمجموعات المختلفة، مما يؤدي إلى 8 حالات إثبات مختلفة

الدافع البحثي

  1. مبادئ الهندسة البرمجية: تجنب نسخ ولصق الكود، وهو أمر بالغ الأهمية في الإثبات الشكلي
  2. الأهمية النظرية: توفير أساس لتعريفات الاستبدال في نظرية النوع المعتمد
  3. التطبيقات العملية: تفسير مسائل الاتساق للأنواع المعتمدة في الفئات ذات الرتبة الأعلى

حدود الطرق الموجودة

  • تكرار الكود: الحاجة إلى تعريف عمليات متشابهة بشكل منفصل للمتغيرات والحدود
  • تكرار الإثبات: تتطلب إثباتات قوانين الفئة تغطية جميع المجموعات، مما يؤدي إلى كمية كبيرة من الحجج المكررة
  • صعوبة الصيانة: تعديل موضع واحد يتطلب تحديث متزامن لعدة تعريفات متشابهة

المساهمات الأساسية

  1. إطار عمل موحد: تقديم عملية استبدال موحدة قائمة على معاملات Sort، دمج معالجة المتغيرات والحدود في تعريف واحد
  2. ضمان الإنهاء: الاستفادة الذكية من الاستقراء البنيوي في Agda والتحقق من الإنهاء بالترتيب القاموسي، مما يضمن سلامة التعريف
  3. التحقق من النظرية الفئوية: إثبات أن الاستبدال المعرف بشكل استقرائي يرضي جميع قوانين CwF من النوع البسيط
  4. نتيجة الأولية: إنشاء علاقة تطابق بين بناء الجملة الاستبدالي الاستقرائي و CwF الأولية
  5. نظرية التطبيع: شكل الاستبدال المعياري لحدود λ يتوافق مع حدود λ بدون استبدال صريح

شرح الطريقة

تعريف المهمة

بناء نظام استبدال موحد بحيث:

  • الإدخال: حدود/متغيرات واستبدال/إعادة تسمية بأي مجموعة
  • الإخراج: نتيجة الاستبدال من النوع المناسب
  • القيود: الحفاظ على سلامة النوع والإنهاء

التقنية الأساسية: نظام Sort

تعريف نوع Sort

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 يتوافق مع الحدود.

بنية الشبكة على Sort

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}

نقاط الابتكار التقني

  1. الاستقراء البنيوي: الاستفادة من ترتيب بنية Sort والقياس بالترتيب القاموسي لضمان الإنهاء
  2. تعدد الأشكال البارامتري: توحيد معالجة حالات المتغيرات والحدود المختلفة من خلال معاملات Sort
  3. تطبيق نظرية الشبكة: استخدام عملية ⊔ بشكل أنيق للتعامل مع رفع النوع
  4. قواعد إعادة الكتابة: الاستفادة من وظيفة REWRITE في Agda لتبسيط الاستدلال بالمساواة

التحقق النظري

إثباتات القوانين الفئوية

قانون الهوية

[id] : x [ id ] ≡ x

يتم الإثبات من خلال الاستقراء البنيوي، والنقطة الأساسية هي الحجة الطبيعية في حالة المتغيرات.

قانون الترابط

[◦] : x [ xs ◦ ys ] ≡ x [ xs ] [ ys ]

يتطلب إثباتاً متبادل الاستقراء مع قانون الهوية الأيسر، مما يعكس الارتباط الداخلي لبنية الفئة.

التحقق من بنية CwF

تثبت الورقة أن الاستبدال الاستقرائي يرضي جميع بديهيات CwF من النوع البسيط:

  • البنية الفئوية: السياقات والاستبدالات تشكل فئة
  • بنية ما قبل الحزمة: كل نوع يتوافق مع حزمة مسبقة
  • الكائن الطرفي: السياق الفارغ
  • توسيع السياق: بنية مشابهة لحاصل الضرب الفئوي

نظرية الأولية

إنشاء تعيينات في اتجاهين:

  1. التطبيع norm : Γ ⊢I A → Γ ⊢ [ T ] A
  2. الدمج ⌜_⌝ : Γ ⊢ [ q ] A → Γ ⊢I A

وإثبات أنها معكوسات لبعضها البعض:

  • الاستقرار norm ⌜ t ⌝ ≡ t
  • الاكتمال ⌜ norm t ⌝ ≡ t

تفاصيل التنفيذ

الاستفادة من ميزات Agda

  1. الأنواع الاستقرائية-الاستقرائية: التعريف المتبادل لـ Sort و IsV
  2. الإنهاء بالترتيب القاموسي: دعم أنماط استقراء معقدة
  3. قواعد إعادة الكتابة: أتمتة الاستدلال بالمساواة
  4. مرادفات الأنماط: تبسيط استخدام الأنواع المعقدة

تحليل الإنهاء

إثبات الإنهاء من خلال تحليل الرسم البياني للاستدعاء، مع قياس كل دالة:

  • _[_]: (r, t)
  • id: (r, Γ)
  • _+_: (r, σ)
  • suc[_]: (q)

في جميع الحلقات، إما أن ينخفض Sort بشكل صارم، أو يبقى Sort ثابتاً بينما تنخفض المعاملات الأخرى.

مقارنة الأعمال ذات الصلة

الاختلافات عن الطرق الموجودة

  1. طريقة Kit18,5: تجريد أنماط مشتركة لإعادة التسمية والاستبدال من خلال kit، لكن لا تزال تتطلب إثباتات متكررة
  2. المنظور الأحادي6,9: ترميز الاستبدال كدالة من المتغيرات إلى الحدود، لكن يصعب توسيعه للأنواع المعتمدة
  3. أدوات الأتمتة21,22: مكتبة Autosubst تولد تلقائياً حجج الاستبدال، لكن الطبقة السفلية لا تزال تحتوي على تكرار

تحليل المزايا

  1. البساطة: أبسط في اللغات التي تدعم الاستقراء بالترتيب القاموسي
  2. الوحدة: تعريف واحد يغطي جميع الحالات
  3. القابلية للتوسع: توضع أساس لمعالجة الأنواع المعتمدة

الخلاصة والنقاش

الاستنتاجات الرئيسية

  1. مساهمة منهجية: إثبات أن معاملات Sort يمكن أن توحد عمليات الاستبدال بشكل أنيق
  2. مساهمة نظرية: إنشاء أولية بناء الجملة الاستبدالي الاستقرائي
  3. مساهمة عملية: توفير حل تقني ملموس لتجنب التكرار

القيود

  1. الاعتماد على ميزات Agda: يتطلب دعم التحقق من الإنهاء بالترتيب القاموسي
  2. نقل التعقيد: على الرغم من تجنب التكرار، يزيد من تعقيد نظام Sort
  3. تحديات التوسع: لا يزال توسيع الأنواع المعتمدة يتطلب بحثاً إضافياً

الاتجاهات المستقبلية

  1. توسيع الأنواع المعتمدة: تطبيق الطريقة على نظرية النوع المعتمد الكاملة
  2. الاتساق ذو الرتبة الأعلى: التطبيقات في الفئات ذات الرتبة الأعلى
  3. مساعدات إثبات أخرى: النقل إلى أنظمة Lean و Coq وغيرها

التقييم المتعمق

المزايا

  1. الابتكار التقني: تصميم نظام Sort يحل بذكاء مشاكل الإنهاء والوحدة
  2. الاكتمال النظري: التطور النظري الكامل من التعريفات الأساسية إلى الأولية
  3. القيمة العملية: توفير حل عملي لمشكلة شائعة في التحقق الشكلي
  4. الوضوح في التعبير: كسيناريو برمجة أدبية، يجمع الكود والشرح بشكل جيد

أوجه القصور

  1. الاعتماد على المنصة: اعتماد شديد على ميزات Agda المحددة، مع قابلية نقل محدودة
  2. توازن التعقيد: على الرغم من تجنب التكرار، يدخل تعقيداً مفاهيمياً جديداً
  3. القابلية للتوسع غير المعروفة: لا يزال توسيع الأنواع الأكثر تعقيداً يتطلب التحقق

تأثير الورقة

  1. المساهمة النظرية: توفير أفكار جديدة لأتمتة نظرية النوع
  2. التوجيه العملي: توفير أدوات مفيدة لممارسي التحقق الشكلي
  3. الإلهام البحثي: وضع أساس لمزيد من البحث في نظرية النوع المعتمد

السيناريوهات المناسبة

  1. التحقق الشكلي: تعريفات اللغة التي تتعامل مع الرابطات
  2. بحث نظرية النوع: دراسة CwF والجبر الأولي
  3. نظرية لغات البرمجة: أتمتة حساب λ وتوسيعاته

المراجع

تستشهد الورقة بأعمال مهمة في هذا المجال، بما في ذلك:

  • الأعمال الأصلية لـ De Bruijn12
  • طريقة Kit لـ McBride18
  • نهج Allais وآخرين الآمن للنوع5
  • سلسلة أعمال Autosubst21,22
  • البحث ذو الصلة حول الأحاديات النسبية6

تعكس هذه الاستشهادات فهماً عميقاً للمؤلفين لتطور المجال والبحث الشامل عن الأعمال الموجودة.