عملية التوليد النقدي
في علوم الحاسوب ، يعتبر الاستقراء المشترك أسلوباً لتحديد وإثبات خصائص أنظمة الكائنات المتفاعلة المتزامنة .
الاستقراء المشترك هو المقابل الرياضي للاستقراء البنيوي . تُعرف أنواع البيانات المُعرَّفة بالاستقراء المشترك باسم البيانات المشتركة ، وهي عادةً هياكل بيانات لا نهائية ، مثل التدفقات .
كتعريف أو تحديد ، يصف الاستقراء المشترك كيفية "ملاحظة" أو "تفكيك" أو "تحليل" كائن ما إلى كائنات أبسط. وكأسلوب إثبات ، يمكن استخدامه لإظهار أن معادلة ما تتحقق من خلال جميع التطبيقات الممكنة لهذا التحديد.
لإنشاء ومعالجة البيانات المشفرة، يُستخدم عادةً الدوال المتكررة ، بالإضافة إلى التقييم الكسول . وبشكل غير رسمي، بدلاً من تعريف دالة عن طريق مطابقة الأنماط على كل من المُنشئات الاستقرائية، يتم تعريف كل من "المدمرات" أو "المراقبين" على نتيجة الدالة.
في البرمجة، تُعدّ البرمجة المنطقية المشتركة (co-LP اختصارًا) تعميمًا طبيعيًا للبرمجة المنطقية والبرمجة المنطقية الاستقرائية المشتركة، والتي بدورها تُعمّم امتدادات أخرى للبرمجة المنطقية، مثل الأشجار اللانهائية، والمسندات الكسولة، والمسندات المتزامنة المتصلة. وتُستخدم البرمجة المنطقية المشتركة في تطبيقاتٍ مثل الأشجار العقلانية، والتحقق من الخصائص اللانهائية، والتقييم الكسول، والبرمجة المنطقية المتزامنة ، والتحقق من النماذج ، وإثباتات التماثل الثنائي ، وغيرها. [ 1 ] تتوفر تطبيقات تجريبية للبرمجة المنطقية المشتركة من جامعة تكساس في دالاس [ 2 ] ، وفي لغة Logtalk (للاطلاع على أمثلة، انظر [ 3 ] )، ولغة SWI-Prolog .
وصف
في كتابه "الأنواع ولغات البرمجة" [ 4 ] ، يُقدّم بنجامين سي. بيرس بيانًا موجزًا لمبدأ الاستقراء ومبدأ الاستقراء المشترك . مع أن هذه المقالة لا تُعنى بالاستقراء بشكل أساسي ، إلا أنه من المفيد النظر في صيغهما العامة نوعًا ما. ولبيان هذه المبادئ، لا بد من بعض المقدمات.
التصفيات
يترككن مجموعة ولتكن دالة رتيبة، إنه:
ما لم يُنص على خلاف ذلك،سيفترض أن يكون رتيبًا.
- تكون X مغلقة من النوع F إذا
- يكون X متسقًا مع F إذا
- تكون النقطة X نقطة ثابتة إذا
يمكن فهم هذه المصطلحات بشكل بديهي على النحو التالي. لنفترض أنهي مجموعة من التأكيدات، وهي العملية التي تُنتج نتائج. ثمتكون العبارة مغلقة من النوع F عندما لا يمكن استنتاج أي شيء أكثر مما تم تأكيده بالفعل، بينمايكون متسقًا مع F عندما تكون جميع التأكيدات مدعومة بتأكيدات أخرى (أي لا توجد "افتراضات غير منطقية F ").
تنص نظرية كناستر-تارسكي على أن أصغر نقطة ثابتة لـ(يشار إليه)يُعطى ) بتقاطع جميع المجموعات المغلقة من النوع F ، بينما تُعطى أكبر نقطة ثابتة (يرمز لها بـيُعطى ) باتحاد جميع المجموعات المتسقة مع F. يمكننا الآن ذكر مبادئ الاستقراء والاستقراء المشترك.
تعريف
- مبدأ الاستقراء : إذاإذا كانت F مغلقة ، فـ
- مبدأ الاستقراء المشترك : إذاإذا كان متسقًا مع F ، فـ
مناقشة
إن المبادئ، كما هي مذكورة، مبهمة إلى حد ما، ولكن يمكن التفكير فيها بشكل مفيد على النحو التالي. لنفترض أنك ترغب في إثبات خاصية من خصائص. وفقًا لمبدأ الاستقراء ، يكفي إظهار مجموعة مغلقة من النوع Fوالتي تنطبق عليها هذه الخاصية. وبالمثل، لنفترض أنك ترغب في إثبات ذلك.ثم يكفي إظهار مجموعة متسقة من النوع F والتيمن المعروف أنه عضو في.
أمثلة
تحديد مجموعة من أنواع البيانات
ضع في اعتبارك قواعد أنواع البيانات التالية:
أي أن مجموعة الأنواع تتضمن "النوع الأدنى".، النوع "الأعلى"وأنواع المنتجات. ويمكن تحديد هذه الأنواع باستخدام سلاسل نصية فوق الأبجدية.. يتركتشير إلى جميع السلاسل (التي قد تكون لانهائية) علىضع في اعتبارك الدالة:
في هذا السياق،يعني "تسلسل السلسلة"، الرمز، وسلسلةينبغي لنا الآن تعريف مجموعة أنواع البيانات لدينا كنقطة ثابتة لـلكن الأمر يختلف باختلاف ما إذا كنا نختار نقطة ثابتة صغيرة أم كبيرة .
لنفترض أننا نأخذباعتبارها مجموعة أنواع البيانات لدينا. باستخدام مبدأ الاستقراء ، يمكننا إثبات الادعاء التالي:
للوصول إلى هذه النتيجة، ضع في اعتبارك مجموعة جميع السلاسل المنتهية علىمن الواضحلا يمكن أن ينتج سلسلة لانهائية، لذلك اتضح أن هذه المجموعة مغلقة من النوع F، ويترتب على ذلك النتيجة.
لنفترض الآن أننا نأخذكمجموعة من أنواع البيانات لدينا. نود استخدام مبدأ الاستقراء المشترك لإثبات الادعاء التالي:
هنايشير إلى السلسلة اللانهائيةلاستخدام مبدأ الاستقراء المشترك ، ضع في اعتبارك المجموعة التالية:
هذه المجموعة متسقة مع F. أولاً،ثانيًا، بما أنولديناتفسير السلاسل النصية كمتواليات (دوال من), إضافة البادئة المحدودةإلى السلسلة اللانهائيةالعائدلذا، بنفسها. لذلكوبحسب مبدأ الاستقراء المشترك ،.
ملاحظة. تمثيل الأنواع كسلاسل نصية علىلا يلتزم ببنية الشجرة الأساسية. السلاسل المحدودة مثلتكون غامضة بدون استخدام الأقواس، ولأي سلسلة لا نهائيةالتسلسلللجميعوبالتالي، يمكن تحديد أشجار متميزة. لا يؤثر هذا على الحجة المذكورة أعلاه، والتي توضح فقط مبدأ الاستقراء المشترك عبر الاتساق F ، ولكنه سيكون مهمًا في الحالات التي يجب فيها الحفاظ على بنية المُنشئ. يُمثل المعالجة الهيكلية القياسية الأنواع عبر التماثل.انظر إلى الجبر F لمزيد من التفاصيل.
أنواع البيانات الاستقرائية في لغات البرمجة
لنأخذ تعريف التدفق التالي في لغة هاسكل : [ 5 ]
بيانات التدفق أ = S أ ( التدفق أ )-- رأس "المدمرات" للتدفق :: التدفق أ -> أ رأس ( S أ astream ) = أ ذيل :: التدفق أ -> التدفق أ ذيل ( S أ astream ) = أstreamيُشير السطر الأول إلى أن التدفق يتكون من عنصر متبوع بتدفق آخر (حيث S دالة إنشاء للعناصر، و a يُمثل نوعًا عشوائيًا للعناصر). وبما أنه لا توجد حالة أساسية ، يبدو هذا التعريف غير دقيق ، ولكنه مع ذلك مفيد في البرمجة ويمكن تبريره. على أي حال، التدفق هو قائمة لا نهائية من العناصر، حيث يمكنك ملاحظة العنصر الأول، أو وضع عنصر قبل عنصر آخر للحصول على تدفق آخر.
العلاقة مع الجبر المشترك F
ضع في اعتبارك الوظيفة الداخليةفي فئة المجموعات :
الجبر المشترك النهائي Fيرتبط بها التشاكل التالي:
:\nu F\rightarrow F(\nu F)=A\times \nu F}
وهذا يؤدي إلى جبر مشترك آخرمع التشكل المرتبط. لأننهائي ، يوجد تشاكل فريد
بحيث
التركيبيُنتج تشاكلًا آخر في الجبر المشترك F. منذإذا كان هذا التشاكل نهائيًا، فهو فريد، وبالتاليإجمالاً لدينا:
وهذا يشهد على التماثلوهذا يشير بشكل قاطع إلى أنهي نقطة ثابتة لـويبرر هذا الترميز. [ 6 ]
التدفق كجبر مشترك نهائي
سنبين أن هذا Stream Aهو الجبر المشترك النهائي للدالةضع في اعتبارك التطبيقات التالية:
out astream = ( head astream , tail astream ) out' ( a , astream ) = S a astreamمن السهل ملاحظة أن هاتين المعادلتين معكوسة لبعضهما البعض، مما يدل على التماثل. راجع المرجع لمزيد من التفاصيل.
العلاقة بالاستقراء الرياضي
سنوضح كيف يشمل مبدأ الاستقراء الاستقراء الرياضي.لنفترض أن لدينا خاصية من خواص الأعداد الطبيعية . سنعتمد التعريف التالي للاستقراء الرياضي:
والآن لننظر في الدالة:
لا ينبغي أن يكون من الصعب رؤية ذلكلذلك، وفقًا لمبدأ الاستقراء ، إذا أردنا إثبات خاصية ماليكفي أن نبين أنمغلق من النوع F. بالتفصيل، نحتاج إلى:
إنه،
هذا هو الاستقراء الرياضي كما هو مذكور.
انظر أيضاً
مراجع
- ↑ "برمجة المنطق المشترك | لامدا هي الحل الأمثل" .
- ↑ "الصفحة الرئيسية لجوبال جوبتا" .
- ↑ "Logtalk3/Examples/Coinduction at master · LogtalkDotOrg/Logtalk3" . GitHub .
- ↑ بيرس، بنجامين سي. الأنواع ولغات البرمجة . مطبعة معهد ماساتشوستس للتكنولوجيا.
- ^ كوزين، دكستر ؛ سيلفا، الكسندرا . “العملة العملية”. سيتيسيركس 10.1.1.252.3961 .
- ↑ هينز، رالف (2012). "البرمجة العامة مع الإضافات" . البرمجة العامة والمفهرسة . سلسلة محاضرات في علوم الحاسوب. المجلد 7470. سبرينغر. الصفحات 47-129 . doi : 10.1007/978-3-642-32202-0_2 . ISBN 978-3-642-32201-3.
للمزيد من القراءة
- الكتب الدراسية
- دافيد سانجيورجي (2012). مقدمة في التماثل الثنائي والاستقراء المشترك . مطبعة جامعة كامبريدج.
- دافيد سانجيورجي ويان روتن (2011). مواضيع متقدمة في المحاكاة الثنائية والاستقراء المشترك . مطبعة جامعة كامبريدج.
- النصوص التمهيدية
- أندرو د. جوردون (1994). "دليل تعليمي حول الاستقراء المشترك والبرمجة الوظيفية". 1994. ص 78-95 . CiteSeerX 10.1.1.37.3914 . — وصف ذو توجه رياضي
- بارت جاكوبس ويان روتن (1997). دليل تعليمي حول الجبر (المشترك) والاستقراء (المشترك) ( رابط بديل ) - يصف الاستقراء والاستقراء المشترك في آن واحد
- إدواردو جيمينيز وبيير كاستيران (2007). "برنامج تعليمي عن الأنواع الاستقرائية [المشتركة] في Coq"
- مقدمة قصيرة
- تاريخ
- دافيد سانجيورجي . " حول أصول المحاكاة الثنائية والاستقراء المشترك "، معاملات ACM في لغات البرمجة والأنظمة ، المجلد 31، العدد 4، مايو 2009.
- متنوع
- البرمجة المنطقية المشتركة: توسيع البرمجة المنطقية باستخدام الاستقراء المشترك — يصف نموذج البرمجة المنطقية المشتركة
- علوم الحاسوب النظرية
- البرمجة المنطقية
- البرمجة الوظيفية
- نظرية الفئات
- الاستقراء الرياضي
