نظرية S m n

في نظرية الحوسبة، تُعدّ نظرية Smn ، التي   تُكتب أيضًا " نظرية smn " أو " نظرية smn " (وتُسمى أيضًا مبرهنة الإزاحة ، ونظرية المعامل ، ونظرية المعاملية )، نتيجةً أساسيةً تتعلق بلغات البرمجة (وبشكلٍ أعم، بترقيم غودل للدوال القابلة للحوسبة الجزئية ) (Soare 1987، Rogers 1967). وقد أثبتها لأول مرة ستيفن كول كلين (1943).Sمن{\displaystyle S_{m}^{n}}ينشأ ذلك من حدوثS{\displaystyle S}مع رمز سفلين{\displaystyle n}وأعلىم{\displaystyle m}في الصيغة الأصلية للنظرية (انظر أدناه).

من الناحية العملية، تنص النظرية على أنه بالنسبة للغة برمجة معينة وأعداد صحيحة موجبةم{\displaystyle m}ون{\displaystyle n}توجد خوارزمية معينة تقبل كمدخلات شفرة المصدر لبرنامج معم+ن{\displaystyle m+n}المتغيرات الحرة ، بالإضافة إلىم{\displaystyle m}القيم. تُولّد هذه الخوارزمية شفرة مصدرية تستبدل في جوهرها القيم بالقيم الأولى.م{\displaystyle m}المتغيرات الحرة، تاركة بقية المتغيرات حرة.

تفاصيل

ينطبق الشكل الأساسي للنظرية على الدوال ذات المتغيرين (نيس 2009، ص  6). مع الأخذ في الاعتبار ترقيم غودلφ{\displaystyle \varphi }من بين الدوال القابلة للحساب الجزئي، توجد دالة تكرارية أوليةs{\displaystyle s}من وسيطين بالخاصية التالية: لكل عدد غودلهـ{\displaystyle e}دالة قابلة للحساب جزئيًاو{\displaystyle f}باستخدام وسيطين، التعبيراتφs(هـ،x)(y){\displaystyle \varphi _{s(e,x)}(y)}وو(x،y){\displaystyle f(x,y)}يتم تعريفها لنفس مجموعات الأعداد الطبيعيةx{\displaystyle x}وy{\displaystyle y}وتكون قيمها متساوية لأي تركيبة من هذا القبيل. بعبارة أخرى، تتحقق المساواة الامتدادية التالية للدوال لكلx{\displaystyle x}:

φs(هـ،x)λy.φهـ(x،y).{\displaystyle \varphi _{s(e,x)}\simeq \lambda y.\varphi _{e}(x,y).}

وبشكل أعم، بالنسبة لأيم،ن>0{\displaystyle m,n>0}، توجد دالة تكرارية أوليةSنم{\displaystyle S_{n}^{m}}لم+1{\displaystyle m+1}الوسائط التي تتصرف على النحو التالي: لكل عدد غودلهـ{\displaystyle e}دالة قابلة للحساب جزئيًا معم+ن{\displaystyle m+n}الوسائط، وجميع قيمx1،x2،...،xم{\displaystyle x_{1},x_{2},...,x_{m}}:

φSنم(هـ،x1،...،xم)λy1،...،yن.φهـ(x1،...،xم،y1،...،yن).{\displaystyle \varphi _{S_{n}^{m}(e,x_{1},\dots ,x_{m})}\simeq \lambda y_{1},\dots ,y_{n}.\varphi _{e}(x_{1},\dots ,x_{m},y_{1},\dots ,y_{n}).}

الوظيفةs{\displaystyle s}يمكن اعتبار ما سبق ذكرهS11{\displaystyle S_{1}^{1}}.

بيان رسمي

الرتب المعطاةم{\displaystyle m}ون{\displaystyle n}لكل آلة تورينجx{\displaystyle {\text{TM}}_{x}}من التعدديةم+ن{\displaystyle m+n}ولجميع القيم الممكنة للمدخلاتy1،...،yم{\displaystyle y_{1},\dots ,y_{m}}توجد آلة تورينجك{\displaystyle {\text{TM}}_{k}}من التعدديةن{\displaystyle n}بحيث

z1،...،zن:x(y1،...،yم،z1،...،zن)=ك(z1،...،zن).{\displaystyle \forall z_{1},\dots ,z_{n}:{\text{TM}}_{x}(y_{1},\dots ,y_{m},z_{1},\dots ,z_{n})={\text{TM}}_{k}(z_{1},\dots ,z_{n}).}

علاوة على ذلك، توجد آلة تورينجS{\displaystyle S}وهذا يسمحك{\displaystyle k}يتم حسابها منx{\displaystyle x}وy{\displaystyle y}ويُشار إليه بـك=Sنم(x،y1،...،yم){\displaystyle k=S_{n}^{m}(x,y_{1},\dots ,y_{m})}.

بشكل غير رسمي،S{\displaystyle S}يجد آلة تورينجك{\displaystyle {\text{TM}}_{k}}هذا نتيجة لتضمين قيم ثابتة في الكود.y{\displaystyle y}داخلx{\displaystyle {\text{TM}}_{x}}. يمكن تعميم النتيجة على أي نموذج حوسبة كامل تورينج .

مثال

الكود التالي المكتوب بلغة Lisp ينفذ s 11 للغة Lisp.

( defun s11 ( f x ) ( let (( y ( gensym ))) ( list 'lambda ( list y ) ( list f x y ))))

على سبيل المثال، يتم تقييمها إلى ، حيث يمثل رمز "جديد".(s11'(lambda(xy)(+xy))3)(lambda(g42)((lambda(xy)(+xy))3g42))g42

انظر أيضاً

مراجع