تُكيّف هذه الورقة نهج إعادة الكتابة الشرطية للكشف عن عدم الإنهاء غير الدوري وتطبيقه على البرمجة المنطقية من خلال تقديم تقنية بسط جديدة تولد أنماطاً تمثل مجموعات لانهائية من تسلسلات إعادة الكتابة المحدودة، والتي تم تقييمها تجريبياً باستخدام أداة NTI.
تخيل أنك تشاهد روبوتًا يحاول حل لغز ما. في بعض الأحيان، يعلق الروبوت في حلقة مفرغة: يقوم بالخطوة (أ)، ثم الخطوة (ب)، ثم يعود للخطوة (أ) مرة أخرى، وهكذا إلى الأبد. الأمر يشبه هامستر يركض على عجلة؛ إنه يتحرك، لكنه لا يصل إلى أي مكان. في عالم علوم الحاسوب، وتحديداً في مجال يُسمى البرمجة المنطقية، هذه الروبوتات هي برامج تحاول الإجابة على أسئلة من خلال اتباع مجموعة من القواعد. إذا علق البرنامج في حلقة، فإنه لن ينهي مهمته أبداً، وهو ما يُعد خطأً برمجياً (bug) يسعى المبرمجون لاكتشافه.
لكن هناك نوعاً أكثر تعقيداً من المشكلات. أحياناً، لا يعلق البرنامج في دائرة متكررة ومنظمة؛ بل يتخذ خطوة، ثم خطوة مختلفة قليلاً، ثم خطوة تبدو مشابهة جداً ولكنها ليست هي تماماً، ويستمر في ذلك إلى الأبد دون أن يكرر النمط نفسه بدقة أبداً. يشبه هذا راقصاً لا يكرر حركته أبداً، لكنه لا يتوقف عن الرقص أيضاً. يُسمى هذا عدم الإنهاء غير الدوري (non-looping non-termination). إن اكتشاف هذه المتواليات اللانهائية وغير المتكررة أمر صعب للغاية لأنه لا يوجد "حلقة" واضحة يمكن الإشارة إليها. إن كشف هذه المتواليات اللانهائية وغير المتكررة يمثل تحدياً كبيراً لعلماء الحاسوب الذين يريدون إثبات أن برنامجاً ما سينتهي من العمل في النهاية، أو العثور على نقطة البداية المحددة التي تسبب استمراره في العمل إلى الأبد.
تقدم هذه الورقة البحثية طريقة جديدة وذكية لاكتشاف هذه الحلقات اللانهائية المراوغة وغير المتكررة. لقد صمم المؤلف، إتيان باييت، أداة تُسمى NTI تعمل مثل محقق خارق للبرامج المنطقية. وبدلاً من محاولة مراقبة البرنامج أثناء تشغيله خطوة بخطوة (وهو أمر سيستغرق وقتاً طويلاً جداً)، تستخدم الأداة تقنية تُسمى "بسط القواعد" (unfolding). فكر في "البسط" كعملية أخذ طائر أوريغامي معقد وفرد طياته لترى نمط الطيات الكامن تحته. من خلال بسط قواعد البرنامج، تنشئ الأداة "أنماطاً" — وهي مخططات تجريدية لا تصف مساراً واحداً محدداً فحسب، بل تصف عائلة لانهائية من المسارات الممكنة التي قد يتخذها البرنامج.
اكتشاف الورقة الرئيسي هو أنه من خلال استخدام هذه المخططات، وتحديداً نسخة مبسطة تُسمى "الأنماط البسيطة"، يمكن للأداة أن تثبت رياضياً أن برنامجاً ما سيعمل إلى الأبد دون أن يعلق في حلقة بسيطة. اختبر المؤلف هذه الأداة على 41 برنامجاً منطقياً مختلفاً كانت معروفة بصعوبتها. نجحت أداته في تحديد المسارات اللانهائية غير المتكررة في العديد منها، بما في ذلك أربعة برامج لم تتمكن أي أداة موجودة أخرى من إثبات عدم انتهائها من قبل. ومع ذلك، فإن الورقة صريحة بشأن حدودها: لم تحل الأداة كل الحالات، وفي بعض البرامج، تعطلت الأداة أو توقفت عن العمل بعد مرور 10 ثوانٍ. يقترح المؤلف أنه بينما تعد طريقتهم إضافة قوية جديدة إلى حقيبة أدوات المحقق، إلا أنها ليست عصا سحرية تحل كل الألغاز بعد. وهم يخططون لجعل الأداة أكثر ذكاءً في المستقبل، آملين في اصطياد المزيد من هذه الحلقات اللانهائية والمراوغة وغير المتكررة.
ملخص تقني: عدم الإنهاء في البرامج المنطقية باستخدام الأنماط
بيان المشكلة تتناول هذه الورقة البحثية الكشف التلقائي عن عدم الإنهاء (non-termination) في البرامج المنطقية (LPs). وبينما يركز الكثير من الأبحاث الحالية على كشف "الحلقات" (loops) (وهي سلاسل إعادة كتابة متناهية يمكن تكرارها إلى ما لا نهاية)، يستهدف هذا العمل "عدم الإنهاء غير الدوري" (non-looping non-termination). هذه السلاسل هي سلاسل إعادة كتابة لانهائية لا تتضمن أي حلقة، مما يجعلها غير دورية بطبيعتها ويصعب اكتشافها. يشير المؤلف إلى أن مثل هذه السلاسل يمكن أن تنشأ من برامج منطقية بسيطة، ومع ذلك تفشل طرق كشف الحلقات القياسية في تحديدها. الدافع وراء ذلك هو مزدوج: نظري (دراسة أشكال رائعة من السلاسل اللانهائية) وعملي (مساعدة المبرمجين في تحديد الاستعلامات التي تعمل إلى الأبد).
المنهجية قام المؤلف بتكييف نهج تم تقديمه في الأصل لـ "إعادة كتابة الحدود" (term rewriting) بواسطة إيميس وآخرون (2012) ليناسب مجال البرمجة المنطقية. وتتمثل المنهجية الجور في تعريف تقنية "توسيع" (unfolding) جديدة تولد "أنماطًا" (patterns) تصف مجموعات محتملة من سلاسل إعادة الكتابة المتناهية.
تعريفات الأنماط:
تعويضات الأنماط (Pattern Substitutions): تُعرف كأزواج θ=(σ,μ)، ويُرمز لها بـ σ⋆μ، وهي تصف مجموعة من التعويضات {θ(n)=σnμ∣n∈N}.
حدود الأنماط (Pattern Terms): أزواج (s,θ) تصف المجموعة {sθ(n)∣n∈N}.
قواعد الأنماط (Pattern Rules): أزواج من حدود الأنماط (p,q) تصف مجموعة من القواعد الثنائية {(p(n),q(n))∣n∈N}.
الصحة والتوسيع:
تُعتبر قاعدة النمط صحيحة بالنسبة لبرنامج P إذا كانت مجموعة القواعد التي تصفها هي مجموعة جزئية من التوسيع الثنائي لـ P ($binunf(P)$).
يقدم المؤلف عامل توسيع جديد TP,Bπ يقوم بحساب قواعد الأنماط من برنامج P ومجموعة أساسية من قواعد الأنماط الصحيحة B. يستخدم هذا العامل خوارزمية توحيد (unification) لحدود الأنماط لدمج القواعد، مما يؤدي فعليًا إلى "توسيع" البرنامج بشكل أسرع من التوسيع الثنائي التقليدي عبر التقاط مجموعات لانهائية من $binunf(P)$ في تمثيلات متناهية.
الأنماط البسيطة والتوحيد:
لجعل النهج قابلًا للأتمتة، قصر المؤلف المجال على حدود الأنماط البسيطة، حيث تتبع التعويضات بنية محددة تتضمن سياقات أحادية (unary contexts).
تم تقديم خوارماية توحيد لحدود الأنماط البسيطة؛ حيث تقوم بخرائط حدود الأنماط البسيطة إلى حدود فوق توقيع متخصص Υ (باستخدام رموز أحادية ca,b لتمثيل عمليات التضمين المتكررة) وتطبق خوارزميات التوحيد الكلاسيكية (مثل روبنسون، أو مارتيلي-مونتاناري).
تم إثبات أن الخوارزمية صحيحة جزئيًا: إذا انتهت بنجاح، فإنها تنتج موحدًا عامًا (mgu) لسلاسل الأنماط المدخلة.
معايير عدم الإنهاء:
المعيار العام (النظرية 3): مقتبس من إيميس وآخرون، وينص على أنه إذا احتوى توسيع النمط على قاعدة على شكل (u⋆σ⋆μ,uσa⋆σbσ′⋆μμ′) حيث تتبادل σ′ مع σ و μ، فإن هناك سلسلة لانهائية.
المعيار الخاص (النظرية 5): شرط أسهل في التحقق من قواعد الأنماط الخاصة (وهي مجموعة جزئية من الأنماط البسيطة). إذا وجدت مثل هذه القاعدة في التوسيع، تثبت الورقة وجود سلسلة لانهائية تبدأ من حالات محددة للجانب الأيسر من القاعدة.
المساهمات الرئيسية تقدم الورقة أربع مساهمات رئيسية:
تقنية توسيع جديدة: طريقة لإنتاج قواعد أنماط صحيحة للبرمجة المنطقية، مما يوفر عرضًا أكثر إيجازًا من قواعد الاستنتاج التسعة المستخدمة في إعادة كتابة الحدود، وتلغي الحاجة إلى استراتيجيات تطبيق معقدة.
حدود الأنماط البسيطة والتوحيد: تعريف شكل مقيد من حدود الأنماط ("البسيطة") وخوارزمية توحيد مقابلة لها أُثبتت صحتها.
شرط كافٍ قابل للأتمتة: شرط سهل التحقق (النظرية 5) للكشف عن عدم الإنهاء غير الدوري من قواعد الأنماط البسيطة.
التنفيذ (NTI): تنفيذ هذا النهج في أداة تسمى NTI.
النتائج التجريبية قام المؤلف بتقييم NTI على 41 برنامجًا منطقيًا مستمدًا من أنظمة إعادة كتابة الحدود (TRSs) غير المنتهية وغير الدورية من قاعدة بيانات مشكلة الإنهاء (TPDB).
النجاح: نجحت الأداة في إثبات عدم الإنهاء لـ 36 من أصل 41 برنامجًا. ومن الجدير بالذكر أنها نجحت في 4 برامج (المميزة بعلامة † في الجداول) لم يثبت أي محلل آخر لـ TRS عدم إنهائها في المسابقة الدولية للإنهاء حتى عام 2024.
الفشل: فشلت الأداة في 5 برامج، ويرجع ذلك أساسًا إلى عدم اكتمال خوارماية التوحيد عند استخدام "الخيار الطبيعي" لتمثيلات الحدود (كما هو موضح في المثال 12) أو بسبب القيد المفروض على الأنماط البسيطة (المثال 9).
الأداء: كانت أوقات التنفيذ منخفضة عمومًا (أقل من 300 مللي ثانية في حالات النجاح)، رغم أن بعض الحالات المعقدة أدت إلى انتهاء الوقت المحدد (timeouts).
الأهمية والادعاءات يزعم المؤلف أن نهجه هو الأداة الوحيدة المشاركة في مسابقة الإنهاء الدولية القادرة على دحض الإنهاء في البرامج المنطقية. ويشير إلى أنه بينما يوجد نهج آخر بواسطة باييت (2024) لإثبات عدم الإنهاء غير الدوري، إلا أنه يعالج فئة مختلفة من عدم الدورية وغير قادر على دحض إنهاء البرامج المحددة المختبرة في هذه الورقة (الجداول 1 و 2). وعلى العكس من ذلك، يمكن لنهج باييت (2024) دحض إنهاء البرامج التي يفشل هذا النهج فيها. وبناءً على ذلك، يتم تقديم النهجين كنهجين متكاملين.
تختتم الورقة بتواضع، حيث تقر بأن خوارماية التوحيد غير مكتملة حاليًا وأن القيد المفروض على الأنماط البسيطة يحد من النطاق (على سبيل المثال، الفشل في البرامج التي تتطلب سياقات 1-context مع متغيرات). ومن المخطط للعمل المستقبلي معالجة الاكتمال، وتوسيع توليد الأنماط الأولي (الخاصية 2)، وتكييف النهج مع أنظمة إعادة كتابة الحدود (TRSs) للمقارنة المباشرة مع إيميس وآخرون (2012).