دالة تكرارية بدائية

في نظرية الحوسبة ، تُعرَّف الدالة التكرارية الأولية ، بشكل عام، بأنها دالة يمكن حسابها بواسطة برنامج حاسوبي تكون جميع حلقاته عبارة عن حلقات "for" (أي أن الحد الأعلى لعدد تكرارات كل حلقة مُحدد مسبقًا). تُشكل الدوال التكرارية الأولية مجموعة فرعية صارمة من الدوال التكرارية العامة التي تُعد أيضًا دوالًا كلية .

تكمن أهمية الدوال الاسترجاعية الأولية في كون معظم الدوال القابلة للحساب التي تُدرس في نظرية الأعداد (وبشكل أعم في الرياضيات) دوال استرجاعية أولية. على سبيل المثال، الجمع والقسمة ، ودالة المضروب والدالة الأسية ، والدالة التي تُعيد العدد الأولي النوني ، كلها دوال استرجاعية أولية. [ 1 ] في الواقع، لإثبات أن دالة قابلة للحساب هي دالة استرجاعية أولية، يكفي إثبات أن تعقيدها الزمني محدود من الأعلى بدالة استرجاعية أولية لحجم المُدخل. [ 2 ] لذا ، ليس من السهل ابتكار دالة قابلة للحساب ليست استرجاعية أولية؛ بعض الأمثلة موضحة في القسم § القيود أدناه. 

تُعرف مجموعة الدوال التكرارية الأولية باسم PR في نظرية التعقيد الحسابي .

تعريف

تأخذ الدالة التكرارية الأولية عددًا ثابتًا من الوسائط، كل منها عدد طبيعي (عدد صحيح غير سالب: {0، 1، 2، ...})، وتعيد عددًا طبيعيًا. إذا أخذت الدالة n وسيطًا، فإنها تُسمى دالة n - ary .

تُعطى الدوال التكرارية الأولية الأساسية بهذه البديهيات :

  1. الدوال الثابتةجنك{\displaystyle C_{n}^{k}}لكل عدد طبيعين{\displaystyle n}وكلك{\displaystyle k}، الدالة الثابتة من الرتبة k ، المعرفة بواسطةجنك(x1،...،xك) =دهـو ن{\displaystyle C_{n}^{k}(x_{1},\ldots ,x_{k})\ {\stackrel {\mathrm {def} }{=}}\ n}، هي دالة تكرارية بدائية.
  2. دالة الخلف : دالة الخلف من الرتبة الأولى S ، والتي تُرجع خلف وسيطها (انظر مسلمات بيانو )، أيS(x) =دهـو x+1{\displaystyle S(x)\ {\stackrel {\mathrm {def} }{=}}\ x+1}، هي دالة تكرارية بدائية.
  3. دوال الإسقاطPأناك{\displaystyle P_{i}^{k}}: لجميع الأعداد الطبيعيةأنا،ك{\displaystyle i,k}بحيث1أناك{\displaystyle 1\leq i\leq k}، الدالة k -ary المعرفة بواسطةPأناك(x1،...،xك) =دهـو xأنا{\displaystyle P_{i}^{k}(x_{1},\ldots ,x_{k})\ {\stackrel {\mathrm {def} }{=}}\ x_{i}}هي دالة تكرارية بدائية.

يمكن الحصول على دوال تكرارية أولية أكثر تعقيدًا من خلال تطبيق العمليات التي تحددها هذه البديهيات:

  1. عامل التركيب{\displaystyle \circ \,}(يُسمى أيضًا عامل الاستبدال ): بالنظر إلى دالة من الرتبة mح(x1،...،xم){\displaystyle h(x_{1},\ldots ,x_{m})\,}و m k -ary functionsز1(x1،...،xك)،...،زم(x1،...،xك){\displaystyle g_{1}(x_{1},\ldots ,x_{k}),\ldots ,g_{m}(x_{1},\ldots ,x_{k})}:ح(ز1،...،زم) =دهـو و،أينو(x1،...،xك)=ح(ز1(x1،...،xك)،...،زم(x1،...،xك)).{\displaystyle h\circ (g_{1},\ldots ,g_{m})\ {\stackrel {\mathrm {def} }{=}}\ f,\quad {\text{where}}\quad f(x_{1},\ldots ,x_{k})=h(g_{1}(x_{1},\ldots ,x_{k}),\ldots ,g_{m}(x_{1},\ldots ,x_{k})).} لم=1{\displaystyle m=1}، تركيب الدوال العاديةحز1{\displaystyle h\circ g_{1}}يتم الحصول عليه.
  2. عامل التكرار البدائيρ{\displaystyle \rho }: بالنظر إلى الدالة k -aryز(x1،...،xك){\displaystyle g(x_{1},\ldots ,x_{k})\,}و(ك+2){\displaystyle (k+2)}دالة -aryح(y،z،x1،...،xك){\displaystyle h(y,z,x_{1},\ldots ,x_{k})\,}:
    ρ(ز،ح) =دهـو و،حيث (ك+1)دالة -ary و يتم تعريفها بواسطةو(y،x1،...،xك)={ز(x1،...،xك)لو y=0،ح(y،و(y،x1،...،xك)،x1،...،xك)لو y=S(y) لـ yشمال.{\displaystyle {\begin{aligned}\rho (g,h)&\ {\stackrel {\mathrm {def} }{=}}\ f,\quad {\text{where the }}(k+1){\text{-ary function }}f{\text{ is defined by}}\\f(y,x_{1},\dots ,x_{k})&={\begin{cases}g(x_{1},\dots ,x_{k})&{\text{if }}y=0,\\h(y',f(y',x_{1},\dots ,x_{k}),x_{1},\dots ,x_{k})&{\text{if }}y=S(y'){\text{ for a }}y'\in \mathbb {N} .\end{cases}}\end{aligned}}}

    تفسير:

    الوظيفةو{\displaystyle f}يعمل كحلقة تكرار من0{\displaystyle 0}حتى قيمة وسيطها الأول. أما باقي الوسائط لـو{\displaystyle f}، المشار إليها هنا بـx1،...،xك{\displaystyle x_{1},\ldots ,x_{k}}، هي مجموعة من الشروط الأولية لحلقة التكرار التي يمكن استخدامها أثناء العمليات الحسابية ولكنها غير قابلة للتغيير.ز{\displaystyle g}وح{\displaystyle h}على الجانب الأيمن من المعادلات التي تحددو{\displaystyle f}يمثل هذا الجزء جسم الحلقة، الذي يُجري العمليات الحسابية. الدالةز{\displaystyle g}يُستخدم مرة واحدة فقط لإجراء الحسابات الأولية. أما حسابات الخطوات اللاحقة للحلقة فتُجرى بواسطةح{\displaystyle h}المعامل الأول لـح{\displaystyle h}يتم إدخال القيمة "الحالية" لفهرس حلقة التكرار. المعامل الثاني لـح{\displaystyle h}يتم إدخال نتيجة حسابات حلقة التكرار السابقة، من الخطوات السابقة. أما باقي المعاملات لـح{\displaystyle h}هي تلك الشروط الأولية الثابتة لحلقة التكرار المذكورة سابقًا. ويمكن استخدامها بواسطةح{\displaystyle h}لإجراء الحسابات، لكنها لن تتغير هي نفسها بواسطةح{\displaystyle h}.

الدوال التكرارية الأولية هي الدوال الأساسية وتلك التي يتم الحصول عليها من الدوال الأساسية عن طريق تطبيق هذه العمليات عددًا محدودًا من المرات.

خاصية الاستدعاء الذاتي البدائي للدوال ذات القيم المتجهة

دالة (متجهة القيمة) [ 5 ]و:شمالمشمالن{\displaystyle f:\mathbb {N} ^{m}\to \mathbb {N} ^{n}}تكون الدالة بدائية تكرارية إذا أمكن كتابتها على النحو التالي

و(x1،...،xم)=(و1(x1،...،xم)،...،ون(x1،...،xم)){\displaystyle f(x_{1},\dots ,x_{m})=(f_{1}(x_{1},\dots ,x_{m}),\dots ,f_{n}(x_{1},\dots ,x_{m}))}

حيث كل مكونوأنا:شمالمشمال{\displaystyle f_{i}:\mathbb {N} ^{m}\to \mathbb {N} }هي دالة تكرارية أولية (ذات قيمة عددية). [ 6 ]

أمثلة

  • ج01{\displaystyle C_{0}^{1}}هي دالة أحادية المعامل تُرجع0{\displaystyle 0}لكل مدخل:ج01(x)=0{\displaystyle C_{0}^{1}(x)=0}.
  • ج11{\displaystyle C_{1}^{1}}هي دالة أحادية المعامل تُرجع1{\displaystyle 1}لكل مدخل:ج11(x)=1{\displaystyle C_{1}^{1}(x)=1}.
  • ج30{\displaystyle C_{3}^{0}}هي دالة من الرتبة الصفرية، أي ثابتة:ج30=3{\displaystyle C_{3}^{0}=3}.
  • P11{\displaystyle P_{1}^{1}}هي دالة التطابق على الأعداد الطبيعية:P11(x)=x{\displaystyle P_{1}^{1}(x)=x}.
  • P12{\displaystyle P_{1}^{2}}وP22{\displaystyle P_{2}^{2}}يمثل الإسقاط الأيسر والإسقاط الأيمن على أزواج الأعداد الطبيعية، على التوالي:P12(x،y)=x{\displaystyle P_{1}^{2}(x,y)=x}وP22(x،y)=y{\displaystyle P_{2}^{2}(x,y)=y}.
  • SS{\displaystyle S\circ S}هي دالة أحادية المعامل تضيف 2 إلى مدخلاتها،(SS)(x)=x+2{\displaystyle (S\circ S)(x)=x+2}.
  • Sج01{\displaystyle S\circ C_{0}^{1}}هي دالة أحادية المعامل تُرجع القيمة 1 لكل مُدخل:(Sج01)(x)=S(ج01(x))=S(0)=1{\displaystyle (S\circ C_{0}^{1})(x)=S(C_{0}^{1}(x))=S(0)=1}. إنه،Sج01{\displaystyle S\circ C_{0}^{1}}وج11{\displaystyle C_{1}^{1}}لها نفس الوظيفة:Sج01=ج11{\displaystyle S\circ C_{0}^{1}=C_{1}^{1}}وبالمثل، كلجنك{\displaystyle C_{n}^{k}}يمكن التعبير عنها كتركيب من عدد مناسب منS{\displaystyle S}وج0ك{\displaystyle C_{0}^{k}}. علاوة على ذلك،ج0ك{\displaystyle C_{0}^{k}}يساويج01P1ك{\displaystyle C_{0}^{1}\circ P_{1}^{k}}، منذج0ك(x1،...،xك)=0=ج01(x1)=ج01(P1ك(x1،...،xك))=(ج01P1ك)(x1،...،xك){\displaystyle C_{0}^{k}(x_{1},\ldots ,x_{k})=0=C_{0}^{1}(x_{1})=C_{0}^{1}(P_{1}^{k}(x_{1},\ldots ,x_{k}))=(C_{0}^{1}\circ P_{1}^{k})(x_{1},\ldots ,x_{k})}لهذه الأسباب، يُعرّف بعض المؤلفين [ 7 ]جنك{\displaystyle C_{n}^{k}}فقط لـن=0{\displaystyle n=0}وك=1{\displaystyle k=1}.

إضافة

تعريف الدالة الثنائيةيضيف{\displaystyle \operatorname {Add} }يمكن الحصول على ، لحساب مجموع وسيطاتها، باستخدام عامل الاستدعاء الذاتي البدائيρ{\displaystyle \rho }ولتحقيق هذه الغاية، المعادلات المعروفة

0+y=y،S(x)+y=S(x+y){\displaystyle {\begin{aligned}0+y&=y,\\S(x)+y&=S(x+y)\end{aligned}}}

"أعيدت صياغتها بمصطلحات الدوال التكرارية الأولية": في تعريفρ(ز،ح){\displaystyle \rho (g,h)}تشير المعادلة الأولى إلى اختيارز=P11{\displaystyle g=P_{1}^{1}}للحصول علىيضيف(0،y)=ز(y)=y{\displaystyle \operatorname {Add} (0,y)=g(y)=y}تشير المعادلة الثانية إلى اختيارح=SP23{\displaystyle h=S\circ P_{2}^{3}}للحصول علىيضيف(S(x)،y)=ح(x،يضيف(x،y)،y)=(SP23)(x،يضيف(x،y)،y)=S(يضيف(x،y)){\displaystyle \operatorname {Add} (S(x),y)=h(x,\operatorname {Add} (x,y),y)=(S\circ P_{2}^{3})(x,\operatorname {Add} (x,y),y)=S(\operatorname {Add} (x,y))}لذلك، يمكن تعريف دالة الجمع على النحو التالي:يضيف=ρ(P11،SP23){\displaystyle \operatorname {Add} =\rho (P_{1}^{1},S\circ P_{2}^{3})}كمثال على الحساب،

يضيف(1،7)=ρ(P11،SP23)(S(0)،7) بواسطة ديف. يضيف،S=(SP23)(0،يضيف(0،7)،7) حسب الحالة ρ(ز،ح)(S(...)،...)=S(يضيف(0،7)) بواسطة ديف. ،P23=S(ρ(P11،SP23)(0،7)) بواسطة ديف. يضيف=S(P11(7)) حسب الحالة ρ(ز،ح)(0،...)=S(7) بواسطة ديف. P11=8 بواسطة ديف. S.{\displaystyle {\begin{aligned}\operatorname {Add} (1,7)&=\rho (P_{1}^{1},S\circ P_{2}^{3})(S(0),7)&&{\text{ by Def. }}\operatorname {Add} ,S\\&=(S\circ P_{2}^{3})(0,\operatorname {Add} (0,7),7)&&{\text{ by case }}\rho (g,h)(S(...),...)\\&=S(\operatorname {Add} (0,7))&&{\text{ by Def. }}\circ ,P_{2}^{3}\\&=S(\rho (P_{1}^{1},S\circ P_{2}^{3})(0,7))&&{\text{ by Def. }}\operatorname {Add} \\&=S(P_{1}^{1}(7))&&{\text{ by case }}\rho (g,h)(0,...)\\&=S(7)&&{\text{ by Def. }}P_{1}^{1}\\&=8&&{\text{ by Def. }}S.\\\end{aligned}}}

مضاعفة

منحيضيف{\displaystyle \operatorname {Add} }، الدالة أحادية الأصليضيف(P11،P11){\displaystyle \operatorname {Add} \circ (P_{1}^{1},P_{1}^{1})}يضاعف حجته،(يضيف(P11،P11))(x)=يضيف(x،x)=x+x.{\displaystyle (\operatorname {Add} \circ (P_{1}^{1},P_{1}^{1}))(x)=\operatorname {Add} (x,x)=x+x.}

الضرب

وبطريقة مشابهة للجمع، يمكن تعريف الضرب بواسطةمول=ρ(ج01،يضيف(P23،P33)){\displaystyle \operatorname {Mul} =\rho (C_{0}^{1},\operatorname {Add} \circ (P_{2}^{3},P_{3}^{3}))}وهذا يعيد إنتاج معادلات الضرب المعروفة:

مول(0،y)=ρ(ج01،يضيف(P23،P33))(0،y) بواسطة ديف. مول=ج01(y) حسب الحالة ρ(ز،ح)(0،...)=0 بواسطة ديف. ج01.{\displaystyle {\begin{aligned}\operatorname {Mul} (0,y)&=\rho (C_{0}^{1},\operatorname {Add} \circ (P_{2}^{3},P_{3}^{3}))(0,y)&&{\text{ by Def. }}\operatorname {Mul} \\&=C_{0}^{1}(y)&&{\text{ by case }}\rho (g,h)(0,...)\\&=0&&{\text{ by Def. }}C_{0}^{1}.\end{aligned}}}

و

مول(S(x)،y)=ρ(ج01،يضيف(P23،P33))(S(x)،y) بواسطة ديف. مول=(يضيف(P23،P33))(x،مول(x،y)،y) حسب الحالة ρ(ز،ح)(S(...)،...)=يضيف(مول(x،y)،y) بواسطة ديف. ،P23،P33=مول(x،y)+y ملكية يضيف.{\displaystyle {\begin{aligned}\operatorname {Mul} (S(x),y)&=\rho (C_{0}^{1},\operatorname {Add} \circ (P_{2}^{3},P_{3}^{3}))(S(x),y)&&{\text{ by Def. }}\operatorname {Mul} \\&=(\operatorname {Add} \circ (P_{2}^{3},P_{3}^{3}))(x,\operatorname {Mul} (x,y),y)&&{\text{ by case }}\rho (g,h)(S(...),...)\\&=\operatorname {Add} (\operatorname {Mul} (x,y),y)&&{\text{ by Def. }}\circ ,P_{2}^{3},P_{3}^{3}\\&=\operatorname {Mul} (x,y)+y&&{\text{ by property of }}\operatorname {Add} .\end{aligned}}}

السلف

تُعتبر الدالة السابقة بمثابة "عكس" الدالة اللاحقة، ويتم تعريفها بشكل متكرر بواسطة القواعد.المفترس(0)=0{\displaystyle \operatorname {Pred} (0)=0}والمفترس(S(ن))=ن{\displaystyle \operatorname {Pred} (S(n))=n}التعريف التكراري الأولي هوالمفترس=ρ(ج00،P12){\displaystyle \operatorname {Pred} =\rho (C_{0}^{0},P_{1}^{2})}كمثال على الحساب،

المفترس(8)=ρ(ج00،P12)(S(7)) بواسطة ديف. المفترس،S=P12(7،المفترس(7)) حسب الحالة ρ(ز،ح)(S(...)،...)=7 بواسطة ديف. P12.{\displaystyle {\begin{aligned}\operatorname {Pred} (8)&=\rho (C_{0}^{0},P_{1}^{2})(S(7))&&{\text{ by Def. }}\operatorname {Pred} ,S\\&=P_{1}^{2}(7,\operatorname {Pred} (7))&&{\text{ by case }}\rho (g,h)(S(...),...)\\&=7&&{\text{ by Def. }}P_{1}^{2}.\end{aligned}}}

الطرح المقتطع

دالة الطرح المحدودة (وتسمى أيضًا " monus "، ويرمز لها بـ "-˙{\displaystyle \mathbin {\dot {-}} }يمكن تعريف ") من الدالة السابقة. وهي تحقق المعادلات

y-˙0=y،y-˙S(x)=المفترس(y-˙x).{\displaystyle {\begin{aligned}y\mathbin {\dot {-}} 0&=y,\\y\mathbin {\dot {-}} S(x)&=\operatorname {Pred} (y\mathbin {\dot {-}} x).\end{aligned}}}

بما أن الاستدعاء الذاتي يعمل على الوسيط الثاني، فإننا نبدأ بتعريف استدعاء ذاتي بدائي لعملية الطرح المعكوسة.RSub(y،x)=x-˙y{\displaystyle \operatorname {RSub} (y,x)=x\mathbin {\dot {-}} y}ثم يتم تطبيق التكرار على الوسيط الأول، وبالتالي يمكن الحصول على تعريفه التكراري الأولي، على غرار الجمع، كما يلي:RSub=ρ(P11،المفترسP23){\displaystyle \operatorname {RSub} =\rho (P_{1}^{1},\operatorname {Pred} \circ P_{2}^{3})}للتخلص من ترتيب الوسائط المعكوس، قم بتعريففرعي=RSub(P22،P12){\displaystyle \operatorname {Sub} =\operatorname {RSub} \circ (P_{2}^{2},P_{1}^{2})}كمثال على الحساب،

فرعي(8،1)=(RSub(P22،P12))(8،1) بواسطة ديف. فرعي=RSub(1،8) بواسطة ديف. ،P22،P12=ρ(P11،المفترسP23)(S(0)،8) بواسطة ديف. RSub،S=(المفترسP23)(0،RSub(0،8)،8) حسب الحالة ρ(ز،ح)(S(...)،...)=المفترس(RSub(0،8)) بواسطة ديف. ،P23=المفترس(ρ(P11،المفترسP23)(0،8)) بواسطة ديف. RSub=المفترس(P11(8)) حسب الحالة ρ(ز،ح)(0،...)=المفترس(8) بواسطة ديف. P11=7 ملكية المفترس.{\displaystyle {\begin{aligned}\operatorname {Sub} (8,1)&=(\operatorname {RSub} \circ (P_{2}^{2},P_{1}^{2}))(8,1)&&{\text{ by Def. }}\operatorname {Sub} \\&=\operatorname {RSub} (1,8)&&{\text{ by Def. }}\circ ,P_{2}^{2},P_{1}^{2}\\&=\rho (P_{1}^{1},\operatorname {Pred} \circ P_{2}^{3})(S(0),8)&&{\text{ by Def. }}\operatorname {RSub} ,S\\&=(\operatorname {Pred} \circ P_{2}^{3})(0,\operatorname {RSub} (0,8),8)&&{\text{ by case }}\rho (g,h)(S(...),...)\\&=\operatorname {Pred} (\operatorname {RSub} (0,8))&&{\text{ by Def. }}\circ ,P_{2}^{3}\\&=\operatorname {Pred} (\rho (P_{1}^{1},\operatorname {Pred} \circ P_{2}^{3})(0,8))&&{\text{ by Def. }}\operatorname {RSub} \\&=\operatorname {Pred} (P_{1}^{1}(8))&&{\text{ by case }}\rho (g,h)(0,...)\\&=\operatorname {Pred} (8)&&{\text{ by Def. }}P_{1}^{1}\\&=7&&{\text{ by property of }}\operatorname {Pred} .\end{aligned}}}

تحويل المسندات إلى دوال عددية

في بعض السياقات، من الطبيعي النظر في الدوال التكرارية الأولية التي تأخذ كمدخلات أزواجًا مرتبة تجمع بين الأرقام وقيم الصواب (أي،ت{\displaystyle t}صحيح، وو{\displaystyle f}(للقيم الخاطئة)، أو التي تُنتج قيمًا صحيحة كمخرجات. [ 8 ] يمكن تحقيق ذلك من خلال تحديد القيم الصحيحة بأرقام بطريقة ثابتة. على سبيل المثال، من الشائع تحديد القيمة الصحيحةت{\displaystyle t}مع الرقم1{\displaystyle 1}وقيمة الحقيقةو{\displaystyle f}مع الرقم0{\displaystyle 0}بمجرد تحديد هذه الهوية، تصبح الدالة المميزة لمجموعة ماأ{\displaystyle A}، وهو ما يعود دائمًا1{\displaystyle 1}أو0{\displaystyle 0}يمكن اعتبارها بمثابة مسند يحدد ما إذا كان الرقم موجودًا في المجموعةأ{\displaystyle A}. سيتم افتراض هذا التحديد للمسندات مع الدوال العددية لبقية هذا المقال.

المسند "يساوي صفرًا"

كمثال على المسند الاستدعائي الأولي، الدالة أحادية المعاملIsZero{\displaystyle \operatorname {IsZero} }يُعرَّف بحيثIsZero(x)=1{\displaystyle \operatorname {IsZero} (x)=1}لوx=0{\displaystyle x=0}، وIsZero(x)=0{\displaystyle \operatorname {IsZero} (x)=0}وإلا. يمكن تحقيق ذلك عن طريق تحديدIsZero=ρ(ج10،ج02){\displaystyle \operatorname {IsZero} =\rho (C_{1}^{0},C_{0}^{2})}. ثمIsZero(0)=ρ(ج10،ج02)(0)=ج10()=1{\displaystyle \operatorname {IsZero} (0)=\rho (C_{1}^{0},C_{0}^{2})(0)=C_{1}^{0}()=1}و على سبيل المثالIsZero(8)=ρ(ج10،ج02)(S(7))=ج02(7،IsZero(7))=0{\displaystyle \operatorname {IsZero} (8)=\rho (C_{1}^{0},C_{0}^{2})(S(7))=C_{0}^{2}(7,\operatorname {IsZero} (7))=0}.

المسند "أقل من أو يساوي"

استخدام الخاصيةxyx-˙y=0{\displaystyle x\leq y\iff x\mathbin {\dot {-}} y=0}، الدالة الثنائيةLeq{\displaystyle \operatorname {Leq} }يمكن تعريفها بواسطةLeq=IsZeroفرعي{\displaystyle \operatorname {Leq} =\operatorname {IsZero} \circ \operatorname {Sub} }. ثمLeq(x،y)=1{\displaystyle \operatorname {Leq} (x,y)=1}لوxy{\displaystyle x\leq y}، وLeq(x،y)=0{\displaystyle \operatorname {Leq} (x,y)=0}وإلا. كمثال حسابي،

Leq(8،3)=IsZero(فرعي(8،3)) بواسطة ديف. Leq=IsZero(5) ملكية فرعي=0 ملكية IsZero{\displaystyle {\begin{aligned}\operatorname {Leq} (8,3)&=\operatorname {IsZero} (\operatorname {Sub} (8,3))&&{\text{ by Def. }}\operatorname {Leq} \\&=\operatorname {IsZero} (5)&&{\text{ by property of }}\operatorname {Sub} \\&=0&&{\text{ by property of }}\operatorname {IsZero} \\\end{aligned}}}

المسند "أكبر من أو يساوي"

تعريف سابق لـLeq{\displaystyle \operatorname {Leq} }إذا تم الحصول على ذلك، يمكن تعريف المسند العكسي على النحو التالي:Geq=Leq(P22،P12){\displaystyle \operatorname {Geq} =\operatorname {Leq} \circ (P_{2}^{2},P_{1}^{2})}. ثم،Geq(x،y)=Leq(y،x){\displaystyle \operatorname {Geq} (x,y)=\operatorname {Leq} (y,x)}يكون صحيحًا (أو بتعبير أدق: قيمته 1) إذا وفقط إذاxy{\displaystyle x\geq y}.

إذا-ثم-وإلا

يمكن تعريف عامل الشرط الثلاثي if-then-else المعروف في لغات البرمجة بواسطةلو=ρ(P22،P34){\displaystyle \operatorname {If} =\rho (P_{2}^{2},P_{3}^{4})}ثم، لأيx{\displaystyle x}،

لو(S(x)،y،z)=ρ(P22،P34)(S(x)،y،z) بواسطة ديف. لو=P34(x،لو(x،y،z)،y،z) حسب الحالة ρ(S(...)،...)=y بواسطة ديف. P34{\displaystyle {\begin{aligned}\operatorname {If} (S(x),y,z)&=\rho (P_{2}^{2},P_{3}^{4})(S(x),y,z)&&{\text{ by Def. }}\operatorname {If} \\&=P_{3}^{4}(x,\operatorname {If} (x,y,z),y,z)&&{\text{ by case }}\rho (S(...),...)\\&=y&&{\text{ by Def. }}P_{3}^{4}\end{aligned}}}

و

لو(0،y،z)=ρ(P22،P34)(0،y،z) بواسطة ديف. لو=P22(y،z) حسب الحالة ρ(0،...)=z بواسطة ديف. P22.{\displaystyle {\begin{aligned}\operatorname {If} (0,y,z)&=\rho (P_{2}^{2},P_{3}^{4})(0,y,z)&&{\text{ by Def. }}\operatorname {If} \\&=P_{2}^{2}(y,z)&&{\text{ by case }}\rho (0,...)\\&=z&&{\text{ by Def. }}P_{2}^{2}.\end{aligned}}}

إنه،لو(x،y،z){\displaystyle \operatorname {If} (x,y,z)}يُعيد الجزء اللاحق (y{\displaystyle y}) إذا كان الجزء الشرطي (x{\displaystyle x}) صحيح، والجزء else (z{\displaystyle z}) خلاف ذلك.

التقاطعات

بناءً علىلو{\displaystyle \operatorname {If} }من السهل تعريف الوصلات المنطقية في الدالة. على سبيل المثال، تعريفو=لو(P12،P22،ج02){\displaystyle \operatorname {And} =\operatorname {If} \circ (P_{1}^{2},P_{2}^{2},C_{0}^{2})}، يحصل المرءو(x،y)=لو(x،y،0){\displaystyle \operatorname {And} (x,y)=\operatorname {If} (x,y,0)}، إنه،و(x،y){\displaystyle \operatorname {And} (x,y)}يكون صحيحاً إذا وفقط إذا كان كلاهماx{\displaystyle x}وy{\displaystyle y}صحيح ( الاقتران المنطقي لـx{\displaystyle x}وy{\displaystyle y}).

بصورة مماثلة،أو=لو(P12،ج12،P22){\displaystyle \operatorname {Or} =\operatorname {If} \circ (P_{1}^{2},C_{1}^{2},P_{2}^{2})}ولا=لو(P11،ج01،ج11){\displaystyle \operatorname {Not} =\operatorname {If} \circ (P_{1}^{1},C_{0}^{1},C_{1}^{1})}يؤدي ذلك إلى تعريفات مناسبة للفصل والنفي :أو(x،y)=لو(x،1،y){\displaystyle \operatorname {Or} (x,y)=\operatorname {If} (x,1,y)}ولا(x)=لو(x،0،1){\displaystyle \operatorname {Not} (x)=\operatorname {If} (x,0,1)}.

مسند المساواة

باستخدام الوظائف المذكورة أعلاهLeq{\displaystyle \operatorname {Leq} }،Geq{\displaystyle \operatorname {Geq} }وو{\displaystyle \operatorname {And} }التعريفمعادلة=و(Leq،Geq){\displaystyle \operatorname {Eq} =\operatorname {And} \circ (\operatorname {Leq} ,\operatorname {Geq} )}يطبق شرط المساواة. في الواقع،معادلة(x،y)=و(Leq(x،y)،Geq(x،y)){\displaystyle \operatorname {Eq} (x,y)=\operatorname {And} (\operatorname {Leq} (x,y),\operatorname {Geq} (x,y))}يكون صحيحاً إذا وفقط إذاx{\displaystyle x}يساويy{\displaystyle y}.

وبالمثل، التعريفالملازم=لاGeq{\displaystyle \operatorname {Lt} =\operatorname {Not} \circ \operatorname {Geq} }يطبق المسند "أقل من"، وجي تي=لاLeq{\displaystyle \operatorname {Gt} =\operatorname {Not} \circ \operatorname {Leq} }يطبق "أكبر من".

عمليات أخرى على الأعداد الطبيعية

تُعتبر عمليات الأسس واختبار أولية الأعداد من الدوال التكرارية الأولية. بالنظر إلى الدوال التكرارية الأوليةهـ{\displaystyle e}،و{\displaystyle f}،ز{\displaystyle g}، وح{\displaystyle h}، دالة تُعيد قيمةز{\displaystyle g}متىهـو{\displaystyle e\leq f}وقيمةح{\displaystyle h}وإلا فهو بدائي تكراري.

العمليات على الأعداد الصحيحة والأعداد النسبية

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

بعض الدوال التكرارية الأولية الشائعة

الأمثلة والتعريفات التالية مأخوذة من كتاب كلين (1974) ، الصفحات 222-231 . يُرفق العديد منها ببراهين. كما تظهر معظمها بأسماء مشابهة، إما كبرهان أو كأمثلة، في كتاب بولوس، بورغيس، وجيفري (2002) ، الصفحات 63-70، حيث يُضاف اللوغاريتم lo(x, y) أو lg(x, y) حسب الاشتقاق الدقيق.  

فيما يلي، تُشير العلامة " ' "، مثل a'، إلى العلامة الأولية التي تعني "اللاحق لـ"، والتي تُعرف عادةً باسم "+1"، مثل a +1 = def a'. وتُعدّ الدوال من 16 إلى 20 و#G ذات أهمية خاصة فيما يتعلق بتحويل المسندات التكرارية الأولية إلى شكلها "الحسابي" المُعبَّر عنه بأعداد غودل ، واستخراجها منه .

  1. الجمع: أ + ب
  2. الضرب: أ × ب
  3. الأسس: أ ب
  4. المضروب a!  : 0! = 1، a'! = a!×a'
  5. pred(a): (السابق أو النقصان): إذا كانت a > 0 فإن a−1 وإلا 0
  6. عملية الطرح الصحيحة a ∸ b: إذا كان a ≥ b فإن a−b يساوي صفرًا، وإلا فإن a ∸ b يساوي صفرًا.
  7. الحد الأدنى (أ 1 ، ... أ ن )
  8. القيمة القصوى (a 1 , ... a n )
  9. الفرق المطلق: | أ - ب | = تعريف (أ ∸ ب) + (ب ∸ أ)
  10. ~sg(a): NOT[signum(a)]: إذا كانت a=0 فإن 1 وإلا 0
  11. sg(a): signum(a): إذا كانت a=0 فإن 0 وإلا 1
  12. أ | ب: (أ يقسم ب): إذا كان ب = ك × أ لبعض قيم ك، فإن الناتج 0، وإلا فإن الناتج 1
  13. باقي قسمة (أ، ب): هو الناتج المتبقي إذا لم يقسم ب أ بالتساوي. ويُسمى أيضاً باقي قسمة (أ، ب).
  14. a = b: sg | a − b | (كان اصطلاح كلين هو تمثيل الصواب بـ 0 والخطأ بـ 1؛ في الوقت الحاضر، وخاصة في أجهزة الكمبيوتر، فإن الاصطلاح الأكثر شيوعًا هو العكس، أي تمثيل الصواب بـ 1 والخطأ بـ 0، وهو ما يعادل تغيير sg إلى ~sg هنا وفي البند التالي)
  15. a < b: sg( a' ∸ b )
  16. احتمال (أ): أ عدد أولي. احتمال (أ) = تعريف أ > 1 و ليس (يوجد ج) 1 < ج < أ [ ج | أ ]
  17. p i : العدد الأولي رقم i+1
  18. (أ) i : أس p i في a: x الوحيد الذي يحقق p i x |a & NOT(p i x' |a)
  19. lh(a): "طول" أو عدد الأسس غير الصفرية في a
  20. lo(a, b): (لوغاريتم a للأساس b): إذا كان a و b > 1، فإن أكبر قيمة لـ x بحيث يكون b x | a، وإلا فإن 0
فيما يلي، يمكن استخدام الاختصار x = def x 1 , ... x n ; ويمكن تطبيق الرموز السفلية إذا اقتضى المعنى ذلك.
  • #أ: الدالة φ التي يمكن تعريفها بشكل صريح من الدوال Ψ والثوابت q 1 ، ... q n هي دالة بدائية تكرارية في Ψ.
  • #B: المجموع المحدود Σ y<z ψ( x , y) والمنتج Π y<z ψ( x , y) متكرران بدائيان في ψ.
  • #C: المسند P الذي تم الحصول عليه عن طريق استبدال الدوال χ 1 ,..., χ m بالمتغيرات المقابلة للمسند Q هو بدائي تكراري في χ 1 ,..., χ m , Q.
  • #D: المسندات التالية بدائية تكرارية في Q و R:
  • NOT_Q( x ) .
  • Q OR R: Q( x ) VR( x ),
  • Q AND R: Q( x ) & R( x ),
  • Q تستلزم R: Q( x ) → R( x )
  • Q مكافئ لـ R: Q( x ) ≡ R( x )
  • #E: المسندات التالية بدائية تكرارية في المسند R:
  • (Ey) y<z R( x , y) حيث (Ey) y<z تعني "يوجد على الأقل قيمة واحدة لـ y أقل من z بحيث"
  • (y) y<z R( x , y) حيث (y) y<z تعني "لكل y أقل من z، يكون صحيحًا أن"
  • μy y<z R( x , y). المؤثر μy y<z R( x , y) هو شكل محدود لما يسمى بمؤثر التصغير أو مؤثر mu : يُعرَّف بأنه "أصغر قيمة لـ y أقل من z بحيث تكون R( x , y) صحيحة؛ أو z إذا لم تكن هناك مثل هذه القيمة".
  • #F: التعريف حسب الحالات: الدالة المعرفة على هذا النحو، حيث Q 1 ، ...، Q m عبارة عن مسندات متنافية (أو "ψ( x ) لها القيمة المعطاة بواسطة العبارة الأولى التي تنطبق")، هي دالة بدائية تكرارية في φ 1 ، ...، Q 1 ، ... Q m :
φ( x ) =
  • φ 1 ( x ) إذا كانت Q 1 ( x ) صحيحة،
  • . . . . . . . . . . . . . . . . . . .
  • φ m ( x ) إذا كانت Q m ( x ) صحيحة
  • φ m+1 ( x ) خلاف ذلك
  • #G: إذا كانت φ تحقق المعادلة:
إذا كانت φ(y, x ) = χ(y, COURSE-φ(y; x 2 , ... x n ), x 2 , ... x n) ، فإن φ دالة تكرارية أولية في χ. وتُشفّر قيمة COURSE-φ(y; x 2 to n ) لدالة مسار القيم تسلسل القيم φ(0, x 2 to n ), ..., φ(y-1, x 2 to n ) للدالة الأصلية.

العلاقة بالدوال التكرارية

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

كل دالة تكرارية أولية هي دالة تكرارية كلية، ولكن ليست كل الدوال التكرارية الكلية هي دوال تكرارية أولية. تُعد دالة أكرمان A ( m , n ) مثالًا معروفًا لدالة تكرارية كلية (بل كلية قابلة للإثبات)، وهي ليست دالة تكرارية أولية. يوجد توصيف للدوال التكرارية الأولية كمجموعة جزئية من الدوال التكرارية الكلية باستخدام دالة أكرمان. ينص هذا التوصيف على أن الدالة تكون تكرارية أولية إذا وفقط إذا وُجد عدد طبيعي m بحيث يمكن حساب الدالة بواسطة آلة تورينج تتوقف دائمًا خلال A( m , n ) خطوة أو أقل، حيث n هو مجموع وسائط الدالة التكرارية الأولية. [ 9 ]

من الخصائص المهمة للدوال التكرارية الأولية أنها مجموعة جزئية قابلة للتعداد التكراري من مجموعة جميع الدوال التكرارية الكلية (التي لا يمكن تعدادها تكراريًا). وهذا يعني وجود دالة تكرارية واحدة f ( m , n ) تُحصي الدوال التكرارية الأولية، وهي:

  • لكل دالة تكرارية أولية أحادية g ، يوجد m بحيث يكون g ( n ) = f ( m , n ) لجميع قيم n ، و
  • لكل m ، تكون الدالة h ( n ) = f ( m , n ) بدائية تكرارية.
  • يمكن ترميز الدوال التكرارية الأولية ذات وسيطين أو أكثر كدوال تكرارية أولية أحادية باستخدام دالة اقتران تكرارية أولية مع معكوسين تكراريين أوليين.

يمكن بناء الدالة f بشكل صريح من خلال تكرار جميع الطرق الممكنة لإنشاء الدوال التكرارية الأولية. وبالتالي، يمكن إثبات أنها دالة كلية. يمكن استخدام حجة القطرية لإثبات أن f ليست دالة تكرارية أولية في حد ذاتها: فلو كانت كذلك، لكانت h ( n ) = f ( n , n ) + 1 كذلك. ولكن إذا كانت هذه الدالة تساوي دالة تكرارية أولية، فسيوجد عدد m بحيث تكون h ( n ) = f ( m , n ) لجميع قيم n ، وبالتالي h ( m ) = f ( m , m )، مما يؤدي إلى تناقض.

مع ذلك، فإن مجموعة الدوال الاسترجاعية الأولية ليست أكبر مجموعة فرعية قابلة للتعداد الاسترجاعي من مجموعة جميع الدوال الاسترجاعية الكلية. على سبيل المثال، مجموعة الدوال الكلية القابلة للإثبات (في حساب بيانو) قابلة للتعداد الاسترجاعي أيضًا، إذ يمكن تعداد جميع براهين النظرية. في حين أن جميع الدوال الاسترجاعية الأولية كلية قابلة للإثبات، فإن العكس ليس صحيحًا.

القيود

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

يمكن حساب تعداد الدوال التكرارية الأولية ذات الوسيط الواحد (أي الدوال الأحادية) . يستخدم هذا التعداد تعريفات الدوال التكرارية الأولية (وهي في الأساس مجرد تعابير تحتوي على عمليات التركيب والتكرار الأولي كعوامل، والدوال التكرارية الأولية الأساسية كعناصر)، ويمكن افتراض احتواء كل تعريف مرة واحدة، على الرغم من أن الدالة نفسها ستظهر عدة مرات في القائمة (نظرًا لأن العديد من التعريفات تُعرّف الدالة نفسها؛ في الواقع، يُولّد التركيب باستخدام دالة التطابق عددًا لا نهائيًا من تعريفات أي دالة تكرارية أولية). هذا يعني أنن{\displaystyle n}يمكن تحديد تعريف الدالة التكرارية الأولية رقم -th في هذا التعداد بشكل فعال منن{\displaystyle n}في الواقع، إذا استخدم المرء ترقيم غودل لترميز التعريفات كأرقام، فإن هذان{\displaystyle n}يتم حساب التعريف رقم - في القائمة بواسطة دالة تكرارية بدائية لـن{\displaystyle n}. يتركون{\displaystyle f_{n}}لنرمز إلى الدالة التكرارية الأولية الأحادية المعطاة بهذا التعريف.

والآن، عرّف "دالة التقييم".هـv{\displaystyle ev}مع حجتين، بواسطةهـv(أنا،ج)=وأنا(ج){\displaystyle ev(i,j)=f_{i}(j)}من الواضحهـv{\displaystyle ev}هو كلي وقابل للحساب، حيث يمكن للمرء تحديد تعريفه بشكل فعالوأنا{\displaystyle f_{i}}وكونها دالة تكرارية بدائيةوأنا{\displaystyle f_{i}}هو نفسه كلي وقابل للحساب، لذلكوأنا(ج){\displaystyle f_{i}(j)}تكون الدالة مُعرَّفة دائمًا وقابلة للحساب فعليًا. ومع ذلك، فإن الوسيط القطري سيُظهر أن الدالةهـv{\displaystyle ev}إن استخدام وسيطين ليس استدعاءً تكراريًا بدائيًا.

يفترضهـv{\displaystyle ev}إذا كانت الدوال بدائية تكرارية، فإن الدالة الأحاديةز{\displaystyle g}محدد بواسطةز(أنا)=S(هـv(أنا،أنا)){\displaystyle g(i)=S(ev(i,i))}سيكون أيضًا بدائيًا تكراريًا، لأنه مُعرَّف بالتركيب من دالة الخلف وهـv{\displaystyle ev}لكن بعد ذلكز{\displaystyle g}يحدث ذلك في عملية التعداد، لذا يوجد عدد مان{\displaystyle n}بحيثز=ون{\displaystyle g=f_{n}}لكن الآنز(ن)=S(هـv(ن،ن))=S(ون(ن))=S(ز(ن)){\displaystyle g(n)=S(ev(n,n))=S(f_{n}(n))=S(g(n))}هذا يُعطي تناقضاً.

يمكن تطبيق هذه الحجة على أي فئة من الدوال القابلة للحساب (الكلي) التي يمكن تعدادها بهذه الطريقة، كما هو موضح في مقال " الآلة التي تتوقف دائمًا ". مع ذلك، تجدر الإشارة إلى أنه يمكن تعداد الدوال القابلة للحساب جزئيًا (تلك التي لا يلزم تعريفها لجميع الوسائط) بشكل صريح، على سبيل المثال عن طريق تعداد ترميزات آلة تورينج.

توجد أمثلة أخرى معروفة للدوال التكرارية الكلية ولكن ليس الدوال التكرارية الأولية:

  • الدالة التي تأخذ m إلى Ackermann ( m , m ) هي دالة تكرارية كلية أحادية وليست تكرارية بدائية.
  • تتضمن نظرية باريس -هارينغتون دالة تكرارية كلية ليست تكرارية بدائية.
  • وظيفة السودان
  • وظيفة غودستين

المتغيرات

الدوال الثابتة

بدلاً منجنك{\displaystyle C_{n}^{k}}تستخدم التعريفات البديلة دالة صفرية واحدة فقط.ج00{\displaystyle C_{0}^{0}}كدالة أولية تُرجع دائمًا الصفر، وبناء الدوال الثابتة من دالة الصفر، ودالة الخلف، وعامل التركيب.

الدوال التكرارية

درس روبنسون [ 10 ] قيودًا مختلفة على قاعدة الاستدعاء الذاتي. أحدها ما يسمى بقاعدة التكرار حيث لا يمكن للدالة h الوصول إلى المعاملات x i (في هذه الحالة، يمكننا أن نفترض دون فقدان للعمومية أن الدالة g هي دالة التطابق، حيث يمكن الحصول على الحالة العامة عن طريق التعويض):

و(0،x)=x،و(S(y)،x)=ح(y،و(y،x)).{\displaystyle {\begin{aligned}f(0,x)&=x,\\f(S(y),x)&=h(y,f(y,x)).\end{aligned}}}

لقد أثبت أنه لا يزال من الممكن الحصول على فئة جميع الدوال التكرارية الأولية بهذه الطريقة.

الاستدعاء الذاتي البحت

هناك قيد آخر أخذه روبنسون في الاعتبار [ 10 ] وهو الاستدعاء الذاتي البحت ، حيث لا يمكن لـ h الوصول إلى متغير الاستقراء y :

و(0،x1،...،xك)=ز(x1،...،xك)،و(S(y)،x1،...،xك)=ح(و(y،x1،...،xك)،x1،...،xك).{\displaystyle {\begin{aligned}f(0,x_{1},\ldots ,x_{k})&=g(x_{1},\ldots ,x_{k}),\\f(S(y),x_{1},\ldots ,x_{k})&=h(f(y,x_{1},\ldots ,x_{k}),x_{1},\ldots ,x_{k}).\end{aligned}}}

أثبت غلادستون [ 11 ] أن هذه القاعدة كافية لتوليد جميع الدوال التكرارية الأولية. وقد حسّن غلادستون [ 12 ] هذا الأمر بحيث يكفي حتى الجمع بين هذين القيدين، أي قاعدة التكرار البحتة أدناه.

و(0،x)=x،و(S(y)،x)=ح(و(y،x)).{\displaystyle {\begin{aligned}f(0,x)&=x,\\f(S(y),x)&=h(f(y,x)).\end{aligned}}}

من الممكن إجراء المزيد من التحسينات: أثبت سيفرين [ 13 ] أن حتى قاعدة التكرار البحتة بدون معلمات ، أي

و(0)=0،و(S(y))=ح(و(y))،{\displaystyle {\begin{aligned}f(0)&=0,\\f(S(y))&=h(f(y)),\end{aligned}}}

يكفي لتوليد جميع الدوال التكرارية الأولية الأحادية إذا قمنا بتوسيع مجموعة الدوال الأولية بإضافة عملية الطرح المقتطع x ∸ y . ونحصل على جميع الدوال التكرارية الأولية إذا أضفنا إليها دالة الجمع (+) كدالة أولية.

أشكال تكرارية بدائية إضافية

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

إنّ الدوال التي يمكن برمجتها في لغة البرمجة LOOP هي تحديدًا الدوال التكرارية الأولية. وهذا يُعطي توصيفًا مختلفًا لقوة هذه الدوال. أما القيد الرئيسي للغة LOOP، مقارنةً بلغة كاملة تورينج ، فهو أن عدد مرات تنفيذ كل حلقة في لغة LOOP يُحدد قبل بدء تنفيذها.

تعريف لغة الحاسوب

من أمثلة لغات البرمجة التكرارية البدائية تلك التي تحتوي على عوامل حسابية أساسية (مثل الجمع والطرح)، وعبارات شرطية ومقارنة (مثل IF-THEN، وEQUALS، وLESS-THAN)، وحلقات محدودة، مثل حلقة for الأساسية ، حيث يوجد حد أعلى معروف أو قابل للحساب لجميع الحلقات (FOR i FROM 1 TO n، مع عدم إمكانية تعديل i أو n بواسطة جسم الحلقة). لا يُسمح باستخدام هياكل تحكم ذات عمومية أكبر، مثل حلقات while أو IF-THEN متبوعة بـ GOTO ، في لغة التكرار البدائية.

لغة LOOP ، التي طُرحت في ورقة بحثية عام 1967 من قِبل ألبرت ر. ماير ودينيس م. ريتشي ، [ 14 ] هي إحدى هذه اللغات. تتطابق قدرتها الحاسوبية مع الدوال التكرارية الأساسية. ومن بين متغيرات لغة LOOP لغة BlooP التي ابتكرها دوغلاس هوفستاتر في كتابه Gödel, Escher, Bach . إن إضافة حلقات غير محدودة (WHILE، GOTO) تجعل اللغة تكرارية عامة وكاملة تورينج ، كما هو الحال في جميع لغات برمجة الحاسوب المستخدمة في العالم الحقيقي.

يُشير تعريف الدوال التكرارية الأولية إلى أن حسابها يتوقف عند كل مُدخل (بعد عدد محدود من الخطوات). من ناحية أخرى، تُعدّ مسألة التوقف غير قابلة للحل بالنسبة للدوال التكرارية العامة.

نتائج التناهي والاتساق

ترتبط الدوال الاسترجاعية الأولية ارتباطًا وثيقًا بالنهائية الرياضية ، وتُستخدم في سياقات متعددة في المنطق الرياضي حيث يُراد نظام بنائي خاص. ويُستخدم الحساب الاسترجاعي الأولي (PRA)، وهو نظام بديهي رسمي للأعداد الطبيعية والدوال الاسترجاعية الأولية عليها، غالبًا لهذا الغرض.

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

إذا كانت T نظرية حسابية تحقق فرضيات معينة، مع جملة غودل G T ، فإن PRA تثبت الاستلزام Con( T )→ G T .

وبالمثل، يمكن إثبات العديد من النتائج النحوية في نظرية البرهان في PRA، مما يعني وجود وظائف تكرارية أولية تقوم بتنفيذ التحويلات النحوية المقابلة للبراهين.

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

تاريخ

استُخدمت التعريفات الاسترجاعية بشكل رسمي أو شبه رسمي في الرياضيات سابقًا، ولكن يُعزى بناء الاسترجاع الأولي إلى نظرية ريتشارد ديديكيند رقم 126 من كتابه "ما هي الأرقام وما ينبغي أن تكون عليه؟" (1888). كان هذا العمل أول من قدم برهانًا على أن بناءً استرجاعيًا معينًا يُعرّف دالة فريدة. [ 15 ] [ 16 ] [ 17 ]

تم اقتراح الحساب التكراري البدائي لأول مرة من قبل ثورالف سكوليم [ 18 ] في عام 1923.

صاغ روزا بيتر (1934) المصطلحات الحالية بعد أن أثبت أكرمان في عام 1928 أن الدالة التي سُميت باسمه اليوم لم تكن دالة تكرارية بدائية، وهو حدث استدعى إعادة تسمية ما كان يُطلق عليه حتى ذلك الحين ببساطة اسم الدوال التكرارية. [ 16 ] [ 17 ]

انظر أيضاً

ملحوظات

  1. ^ برينرد ولاندويبر 1974 .
  2. هارتمانيس 1989 .
  3. ^ فاشيني وماجيولو سكيتيني 1979 .
  4. ^ فاشيني وماجيولو -سكيتيني 1982 .
  5. تُعرف أيضًا باسم "دالة التسلسل" . [ 3 ] [ 4 ]
  6. بلانيت ماث .
  7. ^ على سبيل المثال: هينك باريندريجت (1990)، “البرمجة الوظيفية وحساب التفاضل والتكامل لامدا”، في جان فان ليوين (محرر)، النماذج الرسمية وعلم الدلالة ، دليل علوم الكمبيوتر النظرية، المجلد.  ب، إلسفير، ص 321 – 364، ISBN  0-444-88074-7هنا: 2.2.6 الدوال الأولية ، Def.2.2.7 الاستدعاء الذاتي البدائي ، ص.331-332.
  8. Kleene 1974 ، ص 226-227.
  9. يستنتج هذا من حقيقة أن الدوال من هذا الشكل هي أسرع الدوال التكرارية الأولية نموًا، وأن الدالة تكون تكرارية أولية إذا وفقط إذا كان تعقيدها الزمني محدودًا بدالة تكرارية أولية. للاطلاع على المعلومة الأولى، انظر: لينز، بيتر (2011)، مقدمة في اللغات الرسمية والأتمتة ، جونز وبارتليت للنشر، ص 332، ISBN  9781449615529للاطلاع على الجزء الأخير، انظر: مور، كريستوفر ؛ ميرتنز، ستيفان (2011)، طبيعة الحوسبة ، مطبعة جامعة أكسفورد، ص 287، ISBN  9780191620805
  10. 1 2 روبنسون 1947 .
  11. غلادستون 1967 .
  12. غلادستون 1971 .
  13. سيفيرين 2008 .
  14. Meyer, Albert R.; Ritchie, Dennis M. (1967), "The complexity of loop programs", ACM '67: Proceedings of the 1967 22nd national conference, pp. 465–469, doi:10.1145/800196.806014
  15. Peter Smith (2013), An Introduction to Gödel's Theorems (2nd ed.), Cambridge University Press, pp. 98–99, ISBN 978-1-107-02284-3
  16. 12George Tourlakis (2003), Lectures in Logic and Set Theory: Volume 1, Mathematical Logic, Cambridge University Press, p. 129, ISBN 978-1-139-43942-8
  17. 12Rod Downey, ed. (2014), Turing's Legacy: Developments from Turing's Ideas in Logic, Cambridge University Press, p. 474, ISBN 978-1-107-04348-0
  18. Thoralf Skolem (1923) "The foundations of elementary arithmetic" in Jean van Heijenoort, translator and ed. (1967) From Frege to Gödel: A Source Book in Mathematical Logic, 1879-1931. Harvard Univ. Press: 302-33.

References

  • Brainerd, W.S.; Landweber, L.H. (1974), Theory of Computation, Wiley, ISBN 0471095850
  • Fachini, Emanuela; Maggiolo-Schettini, Andrea (1982), "Comparing Hierarchies of Primitive Recursive Sequence Functions", Zeitschrift für mathematische Logik und Grundlagen der Mathematik, 28 (27–32): 431–445, doi:10.1002/malq.19820282705
  • غلادستون، دكتور في الطب (1971)، "تبسيطات مخطط الاستدعاء الذاتي"، مجلة المنطق الرمزي ، 36 (4): 653-665 ، doi : 10.2307/2272468 ، JSTOR 2272468 ، MR 0305993  
  • هارتمانيس، جوريس (1989)، "نظرة عامة على نظرية التعقيد الحسابي"، نظرية التعقيد الحسابي ، وقائع الندوات في الرياضيات التطبيقية، المجلد  38، الجمعية الأمريكية للرياضيات، الصفحات 1-17 ، ISBN  978-0-8218-0131-4MR 1020807 
  • سواري، روبرت آي. (1987)، المجموعات والدرجات القابلة للتعداد بشكل متكرر ، سبرينغر-فيرلاغ، ISBN 0-387-15299-7