عملية التوليد النقدي

في علوم الحاسوب ، يعتبر الاستقراء المشترك أسلوباً لتحديد وإثبات خصائص أنظمة الكائنات المتفاعلة المتزامنة .

الاستقراء المشترك هو المقابل الرياضي للاستقراء البنيوي . تُعرف أنواع البيانات المُعرَّفة بالاستقراء المشترك باسم البيانات المشتركة ، وهي عادةً هياكل بيانات لا نهائية ، مثل التدفقات .

كتعريف أو تحديد ، يصف الاستقراء المشترك كيفية "ملاحظة" أو "تفكيك" أو "تحليل" كائن ما إلى كائنات أبسط. وكأسلوب إثبات ، يمكن استخدامه لإظهار أن معادلة ما تتحقق من خلال جميع التطبيقات الممكنة لهذا التحديد.

لإنشاء ومعالجة البيانات المشفرة، يُستخدم عادةً الدوال المتكررة ، بالإضافة إلى التقييم الكسول . وبشكل غير رسمي، بدلاً من تعريف دالة عن طريق مطابقة الأنماط على كل من المُنشئات الاستقرائية، يتم تعريف كل من "المدمرات" أو "المراقبين" على نتيجة الدالة.

في البرمجة، تُعدّ البرمجة المنطقية المشتركة (co-LP اختصارًا) تعميمًا طبيعيًا للبرمجة المنطقية والبرمجة المنطقية الاستقرائية المشتركة، والتي بدورها تُعمّم امتدادات أخرى للبرمجة المنطقية، مثل الأشجار اللانهائية، والمسندات الكسولة، والمسندات المتزامنة المتصلة. وتُستخدم البرمجة المنطقية المشتركة في تطبيقاتٍ مثل الأشجار العقلانية، والتحقق من الخصائص اللانهائية، والتقييم الكسول، والبرمجة المنطقية المتزامنة ، والتحقق من النماذج ، وإثباتات التماثل الثنائي ، وغيرها. [ 1 ] تتوفر تطبيقات تجريبية للبرمجة المنطقية المشتركة من جامعة تكساس في دالاس [ 2 ] ، وفي لغة Logtalk (للاطلاع على أمثلة، انظر [ 3 ] )، ولغة SWI-Prolog .

وصف

في كتابه "الأنواع ولغات البرمجة" [ 4 ] ، يُقدّم بنجامين سي. بيرس بيانًا موجزًا ​​لمبدأ الاستقراء ومبدأ الاستقراء المشترك . مع أن هذه المقالة لا تُعنى بالاستقراء بشكل أساسي ، إلا أنه من المفيد النظر في صيغهما العامة نوعًا ما. ولبيان هذه المبادئ، لا بد من بعض المقدمات.

التصفيات

يتركيو{\displaystyle U}كن مجموعة وF{\displaystyle F}لتكن دالة رتيبة2يو2يو{\displaystyle 2^{U}\rightarrow 2^{U}}، إنه:

XYF(X)F(Y){\displaystyle X\subseteq Y\Rightarrow F(X)\subseteq F(Y)}

ما لم يُنص على خلاف ذلك،F{\displaystyle F}سيفترض أن يكون رتيبًا.

  • تكون X مغلقة من النوع F إذاF(X)X{\displaystyle F(X)\subseteq X}
  • يكون X متسقًا مع F إذاXF(X){\displaystyle X\subseteq F(X)}
  • تكون النقطة X نقطة ثابتة إذاX=F(X){\displaystyle X=F(X)}

يمكن فهم هذه المصطلحات بشكل بديهي على النحو التالي. لنفترض أنX{\displaystyle X}هي مجموعة من التأكيدات، وF(X){\displaystyle F(X)}هي العملية التي تُنتج نتائجX{\displaystyle X}. ثمX{\displaystyle X}تكون العبارة مغلقة من النوع F عندما لا يمكن استنتاج أي شيء أكثر مما تم تأكيده بالفعل، بينماX{\displaystyle X}يكون متسقًا مع F عندما تكون جميع التأكيدات مدعومة بتأكيدات أخرى (أي لا توجد "افتراضات غير منطقية F ").

تنص نظرية كناستر-تارسكي على أن أصغر نقطة ثابتة لـF{\displaystyle F}(يشار إليه)μF{\displaystyle \mu F}يُعطى ) بتقاطع جميع المجموعات المغلقة من النوع F ، بينما تُعطى أكبر نقطة ثابتة (يرمز لها بـνF{\displaystyle \nu F}يُعطى ) باتحاد جميع المجموعات المتسقة مع F. يمكننا الآن ذكر مبادئ الاستقراء والاستقراء المشترك.

تعريف

  • مبدأ الاستقراء : إذاX{\displaystyle X}إذا كانت F مغلقة ، فـμFX{\displaystyle \mu F\subseteq X}
  • مبدأ الاستقراء المشترك : إذاX{\displaystyle X}إذا كان متسقًا مع F ، فـXνF{\displaystyle X\subseteq \nu F}

مناقشة

إن المبادئ، كما هي مذكورة، مبهمة إلى حد ما، ولكن يمكن التفكير فيها بشكل مفيد على النحو التالي. لنفترض أنك ترغب في إثبات خاصية من خصائصμF{\displaystyle \mu F}. وفقًا لمبدأ الاستقراء ، يكفي إظهار مجموعة مغلقة من النوع FX{\displaystyle X}والتي تنطبق عليها هذه الخاصية. وبالمثل، لنفترض أنك ترغب في إثبات ذلك.xνF{\displaystyle x\in \nu F}ثم يكفي إظهار مجموعة متسقة من النوع F والتيx{\displaystyle x}من المعروف أنه عضو في.

أمثلة

تحديد مجموعة من أنواع البيانات

ضع في اعتبارك قواعد أنواع البيانات التالية:

تي=||تي×تي{\displaystyle T=\bot \;|\;\top \;|\;T\times T}

أي أن مجموعة الأنواع تتضمن "النوع الأدنى".{\displaystyle \bot }، النوع "الأعلى"{\displaystyle \top }وأنواع المنتجات. ويمكن تحديد هذه الأنواع باستخدام سلاسل نصية فوق الأبجدية.Σ={،،×}{\displaystyle \Sigma =\{\bot ,\top ,\times \}}. يتركΣω{\displaystyle \Sigma ^{\leq \omega }}تشير إلى جميع السلاسل (التي قد تكون لانهائية) علىΣ{\displaystyle \Sigma }ضع في اعتبارك الدالةF:2Σω2Σω{\displaystyle F:2^{\Sigma ^{\leq \omega }}\rightarrow 2^{\Sigma ^{\leq \omega }}}:

F(X)={،}{x×y:x،yX}{\displaystyle F(X)=\{\bot ,\top \}\cup \{x\times y:x,y\in X\}}

في هذا السياق،x×y{\displaystyle x\times y}يعني "تسلسل السلسلة"x{\displaystyle x}، الرمز×{\displaystyle \times }، وسلسلةy{\displaystyle y}ينبغي لنا الآن تعريف مجموعة أنواع البيانات لدينا كنقطة ثابتة لـF{\displaystyle F}لكن الأمر يختلف باختلاف ما إذا كنا نختار نقطة ثابتة صغيرة أم كبيرة .

لنفترض أننا نأخذμF{\displaystyle \mu F}باعتبارها مجموعة أنواع البيانات لدينا. باستخدام مبدأ الاستقراء ، يمكننا إثبات الادعاء التالي:

جميع أنواع البيانات فيμF{\displaystyle \mu F}محدودة

للوصول إلى هذه النتيجة، ضع في اعتبارك مجموعة جميع السلاسل المنتهية علىΣ{\displaystyle \Sigma }من الواضحF{\displaystyle F}لا يمكن أن ينتج سلسلة لانهائية، لذلك اتضح أن هذه المجموعة مغلقة من النوع F، ويترتب على ذلك النتيجة.

لنفترض الآن أننا نأخذνF{\displaystyle \nu F}كمجموعة من أنواع البيانات لدينا. نود استخدام مبدأ الاستقراء المشترك لإثبات الادعاء التالي:

النوع××νF{\displaystyle \bot \times \bot \times \cdots \in \nu F}

هنا××{\displaystyle \bot \times \bot \times \cdots }يشير إلى السلسلة اللانهائية(،×،،×،...){\displaystyle (\bot ,\times ,\bot ,\times ,\ldots )}لاستخدام مبدأ الاستقراء المشترك ، ضع في اعتبارك المجموعة التالية:

S={،××}{\displaystyle S=\{\bot ,\;\bot \times \bot \times \cdots \}}

هذه المجموعة متسقة مع F. أولاً،{،}F(S){\displaystyle \bot \in \{\bot ,\top \}\subseteq F(S)}ثانيًا، بما أنS{\displaystyle \bot \in S}و××S{\displaystyle \bot \times \bot \times \cdots \in S}لدينا×(××)F(S){\displaystyle \bot \times (\bot \times \bot \times \cdots )\in F(S)}تفسير السلاسل النصية كمتواليات (دوال منشمالΣ{\displaystyle \mathbb {N} \rightarrow \Sigma }), إضافة البادئة المحدودة×{\displaystyle \bot \times }إلى السلسلة اللانهائية××{\displaystyle \bot \times \bot \times \cdots }العائد××{\displaystyle \bot \times \bot \times \cdots }لذا، بنفسها××F(S){\displaystyle \bot \times \bot \times \cdots \in F(S)}. لذلكSF(S){\displaystyle S\subseteq F(S)}وبحسب مبدأ الاستقراء المشترك ،××νF{\displaystyle \bot \times \bot \times \cdots \in \nu F}.

ملاحظة. تمثيل الأنواع كسلاسل نصية علىΣ{\displaystyle \Sigma }لا يلتزم ببنية الشجرة الأساسية. السلاسل المحدودة مثل××{\displaystyle \bot \times \top \times \bot }تكون غامضة بدون استخدام الأقواس، ولأي سلسلة لا نهائيةs{\displaystyle s}التسلسلs×ت=s{\displaystyle s\times t=s}للجميعت{\displaystyle t}وبالتالي، يمكن تحديد أشجار متميزة. لا يؤثر هذا على الحجة المذكورة أعلاه، والتي توضح فقط مبدأ الاستقراء المشترك عبر الاتساق F ، ولكنه سيكون مهمًا في الحالات التي يجب فيها الحفاظ على بنية المُنشئ. يُمثل المعالجة الهيكلية القياسية الأنواع عبر التماثل.تي1+1+(تي×تي){\displaystyle T\cong 1+1+(T\times T)}انظر إلى الجبر F لمزيد من التفاصيل.

أنواع البيانات الاستقرائية في لغات البرمجة

لنأخذ تعريف التدفق التالي في لغة هاسكل : [ 5 ]

بيانات التدفق أ = S أ ( التدفق أ )-- رأس "المدمرات" للتدفق :: التدفق أ -> أ رأس ( S أ astream ) = أ ذيل :: التدفق أ -> التدفق أ ذيل ( S أ astream ) = أstream

يُشير السطر الأول إلى أن التدفق يتكون من عنصر متبوع بتدفق آخر (حيث S دالة إنشاء للعناصر، و a يُمثل نوعًا عشوائيًا للعناصر). وبما أنه لا توجد حالة أساسية ، يبدو هذا التعريف غير دقيق ، ولكنه مع ذلك مفيد في البرمجة ويمكن تبريره. على أي حال، التدفق هو قائمة لا نهائية من العناصر، حيث يمكنك ملاحظة العنصر الأول، أو وضع عنصر قبل عنصر آخر للحصول على تدفق آخر.

العلاقة مع الجبر المشترك F

ضع في اعتبارك الوظيفة الداخليةF{\displaystyle F}في فئة المجموعات :

F(x)=أ×xF(و)=أنادأ،و{\displaystyle {\begin{align}F(x)&=A\times x\\F(f)&=\langle \mathrm {id} _{A},f\rangle \end{محاذاة}}}

الجبر المشترك النهائي FνF{\displaystyle \nu F}يرتبط بها التشاكل التالي:

ouت:νFF(νF)=أ×νF{\displaystyle \mathrm {out} :\nu F\rightarrow F(\nu F)=A\times \nu F}

وهذا يؤدي إلى جبر مشترك آخرF(νF){\displaystyle F(\nu F)}مع التشكل المرتبطF(ouت){\displaystyle F(\mathrm {out} )}. لأنνF{\displaystyle \nu F}نهائي ، يوجد تشاكل فريد

F(ouت)¯:F(νF)νF{\displaystyle {\overline {F(\mathrm {out} )}}:F(\nu F)\rightarrow \nu F}

بحيث

ouتF(ouت)¯=F(F(ouت)¯)F(ouت)=F(F(ouت)¯ouت){\displaystyle \mathrm {out} \circ {\overline {F(\mathrm {out} )}}=F\left({\overline {F(\mathrm {out} )}}\right)\circ F(\mathrm {out} )=F\left({\overline {F(\mathrm {out} )}}\circ \mathrm {out} \right)}

التركيبF(ouت)¯ouت{\displaystyle {\overline {F(\mathrm {out} )}}\circ \mathrm {out} }يُنتج تشاكلًا آخر في الجبر المشترك FνFνF{\displaystyle \nu F\rightarrow \nu F}. منذνF{\displaystyle \nu F}إذا كان هذا التشاكل نهائيًا، فهو فريد، وبالتاليأنادνF{\displaystyle \mathrm {id} _{\nu F}}إجمالاً لدينا:

F(ouت)¯ouت=أنادνFouتF(ouت)¯=F(F(ouت)¯ouت)=أنادF(νF){\displaystyle {\begin{aligned}{\overline {F(\mathrm {out} )}}\circ \mathrm {out} &=\mathrm {id} _{\nu F}\\[0.5ex]\mathrm {out} \circ {\overline {F(\mathrm {out} )}}=F {\bigl (}{\overline {F(\mathrm {out} )}}\circ \mathrm {out} {\bigr )}&=\mathrm {id} _{F(\nu F)}\end{محاذاة}}}

وهذا يشهد على التماثلνFF(νF){\displaystyle \nu F\simeq F(\nu F)}وهذا يشير بشكل قاطع إلى أنνF{\displaystyle \nu F}هي نقطة ثابتة لـF{\displaystyle F}ويبرر هذا الترميز. [ 6 ]

التدفق كجبر مشترك نهائي

سنبين أن هذا Stream Aهو الجبر المشترك النهائي للدالةF(x)=أ×x{\displaystyle F(x)=A\times x}ضع في اعتبارك التطبيقات التالية:

out astream = ( head astream , tail astream ) out' ( a , astream ) = S a astream

من السهل ملاحظة أن هاتين المعادلتين معكوسة لبعضهما البعض، مما يدل على التماثل. راجع المرجع لمزيد من التفاصيل.

العلاقة بالاستقراء الرياضي

سنوضح كيف يشمل مبدأ الاستقراء الاستقراء الرياضي.P{\displaystyle P}لنفترض أن لدينا خاصية من خواص الأعداد الطبيعية . سنعتمد التعريف التالي للاستقراء الرياضي:

0P(نPن+1P)شمالP{\displaystyle 0\in P\land (n\in P\Rightarrow n+1\in P)\Rightarrow \mathbb {N} \subseteq P}

والآن لننظر في الدالةF:2شمال2شمال{\displaystyle F:2^{\mathbb {N} }\rightarrow 2^{\mathbb {N} }}:

F(X)={0}{x+1:xX}{\displaystyle F(X)=\{0\}\cup \{x+1:x\in X\}}

لا ينبغي أن يكون من الصعب رؤية ذلكμF=شمال{\displaystyle \mu F=\mathbb {N} }لذلك، وفقًا لمبدأ الاستقراء ، إذا أردنا إثبات خاصية ماP{\displaystyle P}لشمال{\displaystyle \mathbb {N} }يكفي أن نبين أنP{\displaystyle P}مغلق من النوع F. بالتفصيل، نحتاج إلى:

F(P)P{\displaystyle F(P)\subseteq P}

إنه،

{0}{x+1:xP}P{\displaystyle \{0\}\cup \{x+1:x\in P\}\subseteq P}

هذا هو الاستقراء الرياضي كما هو مذكور.

انظر أيضاً

مراجع

  1. "برمجة المنطق المشترك | لامدا هي الحل الأمثل" .
  2. "الصفحة الرئيسية لجوبال جوبتا" .
  3. "Logtalk3/Examples/Coinduction at master · LogtalkDotOrg/Logtalk3" . GitHub .
  4. بيرس، بنجامين سي. الأنواع ولغات البرمجة . مطبعة معهد ماساتشوستس للتكنولوجيا.
  5. ^ كوزين، دكستر ؛ سيلفا، الكسندرا . “العملة العملية”. سيتيسيركس 10.1.1.252.3961 . 
  6. هينز، رالف (2012). "البرمجة العامة مع الإضافات" . البرمجة العامة والمفهرسة . سلسلة محاضرات في علوم الحاسوب. المجلد 7470. سبرينغر. الصفحات 47-129 . doi : 10.1007/978-3-642-32202-0_2 . ISBN   978-3-642-32201-3.

للمزيد من القراءة

الكتب الدراسية
  • دافيد سانجيورجي (2012). مقدمة في التماثل الثنائي والاستقراء المشترك . مطبعة جامعة كامبريدج.
  • دافيد سانجيورجي ويان روتن (2011). مواضيع متقدمة في المحاكاة الثنائية والاستقراء المشترك . مطبعة جامعة كامبريدج.
النصوص التمهيدية
تاريخ
متنوع