Ãëàâà 1 Ìèíèìàøèíû Ìèíèìàøèíà (ÌÌ), èíîãäà íàçûâàåìàÿ çäåñü ïðîñòî ìàøèíîé, èìååò • áåñêîíå÷íîå ñåìåéñòâî îñíîâíûõ ðåãèñòðîâ R0 , R1 , R2 . . ., • áåñêîíå÷íîå ñåìåéñòâî âñïîìîãàòåëüíûõ ðåãèñòðîâ S0 , S1 , S2 . . ., • êîìàíäíûé ðåãèñòð (èëè ðåãèñòð êîìàíä) ÊÐ • ïðîãðàììó, ïðåäñòàâëÿþùóþ ñîáîé (âîçìîæíî ïóñòîé) ñïèñîê êîìàíä, ïðîíóìåðîâàííûõ ïîñëåäîâàòåëüíûìè ÷èñëàìè, íà÷èíàÿ ñ 0: 0: Êîìàíäà0 1: Êîìàíäà1 ··· k: Êîìàíäàk Âñå âûøåóïîìÿíóòûå ðåãèñòðû Ri , Si è ÊÐ ïðåäíàçíà÷åíû äëÿ õðàíåíèÿ íàòóðàëüíûõ ÷èñåë.  ëþáîé ìîìåíò âðåìåíè â êàæäîì ðåãèñòðå çàïèñàíî ðîâíî îäíî ÷èñëî. Èìååòñÿ øåñòü ëåãêî çàïîìèíàåìûõ òèïîâ êîìàíä, åñòåñòâåííî ðàçäåë¼ííûõ íà 3 ãðóïïû, îïèñàíèå êîòîðûõ ïðèâåäåíî â ñëåäóþùåé òàáëèöå. 1 2 Ãëàâà 1. G:=m G:=H inc G dec H if F=0 goto m goto m Ìèíèìàøèíû Êîìàíäû ïðèñâàèâàíèÿ çàïèñûâàåò â ðåãèñòð G íàòóðàëüíîå ÷èñëî m è óâåëè÷èâàåò ñîäåðæèìîå ðåãèñòðà êîìàíä íà 1 (ò.å., ÌÌ ïåðåõîäèò ê èñïîëíåíèþ ñëåäóþùåé ïî ñïèñêó êîìàíäû) çàïèñûâàåò â ðåãèñòð G çíà÷åíèå, ñîäåðæàùååñÿ â ðåãèñòðå H, è óâåëè÷èâàåò ñîäåðæèìîå ðåãèñòðà êîìàíä íà 1 Àðèôìåòè÷åñêèå êîìàíäû óâåëè÷èâàåò ñîäåðæèìîå ðåãèñòðà G íà 1 è óâåëè÷èâàåò ñîäåðæèìîå ðåãèñòðà êîìàíä íà 1 óìåíüøàåò ñîäåðæèìîå ðåãèñòðà H íà 1, åñëè îíî áîëüøå íóëÿ, è óâåëè÷èâàåò ñîäåðæèìîå ðåãèñòðà êîìàíä íà 1 Êîìàíäû ïåðåõîäà åñëè ñîäåðæèìîå ðåãèñòðà F ðàâíî 0, òî çàíîñèò â êîìàíäíûé ðåãèñòð ÷èñëî m, â ïðîòèâíîì ñëó÷àå óâåëè÷èâàåò çíà÷åíèå êîìàíäíîãî ðåãèñòðà íà 1 çàíîñèò â ðåãèñòð êîìàíä ÷èñëî m Î÷åâèäíî, ÷òî ëþáàÿ ìèíèìàøèíà ïîëíîñòüþ çàäà¼òñÿ ñâîåé ïðîãðàììîé, è ïîýòîìó èìååò ñìûñë ïðîñòî îòîæäåñòâëÿòü ìèíèìàøèíû èõ ñ ïðîãðàììàìè. Ïåðåä íà÷àëîì ðàáîòû ìèíèìàøèíû â å¼ îñíîâíûå è âñïîìîãàòåëüíûå ðåãèñòðû çàíîñÿòñÿ íåêîòîðûå èñõîäíûå äàííûå íàòóðàëüíûå ÷èñëà, à â ðåãèñòð ÊÐ çàíîñèòñÿ ÷èñëî 0. Ìèíèìàøèíà ðàáîòàåò, ïîñëåäîâàòåëüíî èñïîëíÿÿ øàãè. Øàã ðàáîòû ìàøèíû ñîñòîèò â âûïîëíåíèè êîìàíäû, íîìåð êîòîðîé â äàííûé ìîìåíò çàïèñàí â ÊÐ â ñîîòâåòñòâèè ñ âûøåîïèñàííîé èíñòðóêöèåé. Âûïîëíèâ øàã, ìèíèìàøèíà ïåðåõîäèò ê ñëåäóþùåìó øàãó è ò.ä.  ñëó÷àå, êîãäà â ÊÐ îêàæåòñÿ ÷èñëî, íå ÿâëÿþùååñÿ íîìåðîì êàêîéëèáî êîìàíäû èç ïðîãðàììû, ìàøèíà çàâåðøàåò ñâîþ ðàáîòó è îñòàíàâëèâàåòñÿ. Îòìåòèì, ÷òî êîìàíäû ïåðåõîäà ìîãóò îñóùåñòâëÿòü êàê ïåðåõîä ê âûïîëíåíèþ êîíêðåòíûõ êîìàíä òàê è îñòàíîâêó ðàáîòû ìàøèíû â ñëó÷àå, êîãäà êîìàíäà ñ ñîîòâåòñòâóþùèì íîìåðîì îòñóòñòâóåò. Çàìåòèì, ÷òî êàæäàÿ ïðîãðàììà ìîæåò èçìåíÿòü çíà÷åíèÿ òîëüêî â òåõ ðåãèñòðàõ, êîòîðûå ÿâíî óïîìÿíóòû â å¼ òåêñòå. Çíà÷åíèÿ â îñòàëü- 3 íûõ ðåãèñòðàõ îíà èçìåíèòü íå ìîæåò. Ñ êàæäîé ÌÌ P è íàòóðàëüíûì ÷èñëîì n ìîæíî ñâÿçàòü ôóíêöèþ n AP : Nn → N, çíà÷åíèå êîòîðîé íà x1 , . . . , xn îïðåäåëÿåòñÿ ñëåäóþùèì îáðàçîì: çàíîñèì â ðåãèñòðû R1 , . . . , Rn ñîîòâåòñòâåííî çíà÷åíèÿ x1 , . . ., xn , âî âñå îñòàëüíûå ðåãèñòðû çàíîñèì íóëè, â ÊÐ çàíîñèì 0 è çàïóñêàåì ïðîãðàììó P . Êîãäà ìàøèíà çàâåðøèò ñâîþ ðàáîòó (îñòàíàâëèâàåòñÿ), çíà÷åíèå ôóíêöèè AnP (x1 , . . . , xn ) âîçüì¼ì èç ðåãèñòðà R0 . Åñëè ìàøèíà íèêîãäà íå çàâåðøèò ñâîþ ðàáîòó, òî ýòî çíà÷åíèå ñ÷èòàåòñÿ íåîïðåäåë¼ííûì. Çàìåòèì, ÷òî ñîäåðæèìîå ðåãèñòðîâ, íå óïîìÿíóòûõ â ïðîãðàììå (çà èñêëþ÷åíèåì R0 ), íå èñïîëüçóåòñÿ ýòîé ïðîãðàììîé è íå âëèÿåò íà ðåçóëüòàò ðàáîòû ýòîé ïðîãðàììû ñîäåðæèìîå ðåãèñòðà R0 â êîíöå å¼ ðàáîòû. Îïðåäåëåíèå 1.0.1 ×àñòè÷íàÿ ôóíêöèÿ èç Nn â N íàçûâàåòñÿ âû÷èñ- ëèìûîé íà ìèíèìàøèíå, åñëè îíà ñîâïàäàåò ñ ôóíêöèåé âèäà AnP , äëÿ ïîäõîäÿùåé ïðîãðàììû P . Ïðèâåä¼ì ïðèìåð ïðîñòîé ïðîãðàììû, âû÷èñëÿþùåé ñóììó ÷èñåë (ïðåäëàãàåì ÷èòàòåëþ ñàìîñòîÿòåëüíî óáåäèòüñÿ â ýòîì): 0: 1: 2: 3: 4: R0 :=R1 if R2 =0 goto 5 dec R2 inc R0 goto 1 Òàêèì îáðàçîì, ñëîæåíèå íàòóðàëüíûõ ÷èñåë ÿâëÿåòñÿ áèíàðíîé ôóíêöèåé, âû÷èñëèìîé íà ÌÌ.  äàëüíåéøåì äëÿ íàñ áóäåò âàæíåå äîêàçûâàòü ñóùåñòâîâàíèå ïðîãðàìì äëÿ âû÷èñëåíèÿ îïðåäåëåííûõ ôóíêöèé, ÷åì ïîëó÷àòü èõ êîíêðåòíûé òåêñò. Äëÿ îáëåã÷åíèÿ òàêèõ äîêàçàòåëüñòâ ìû áóäåì èñïîëüçîâàòü òàê íàçûâàåìûå ðàñøèðåííûå ìèíèìàøèíû (ÐÌÌ). Îíè îòëè÷àþòñÿ îò ìèíèìàøèí òîëüêî òåì, ÷òî â ïðîãðàììàõ äëÿ ýòèõ ìàøèí êðîìå îáû÷íûõ êîìàíä ðàçðåøåíî èñïîëüçîâàòü äîïîëíèòåëüíûå êîìàíäû âèäà H:=f (H1 ,...,Hk ), äëÿ ïðîèçâîëüíûõ (âîîáùå ãîâîðÿ, ÷àñòè÷íûõ) 4 Ãëàâà 1. Ìèíèìàøèíû ôóíêöèé f . Èñïîëíåíèå òàêîé êîìàíäû ñîñòîèò â âû÷èñëåíèè çíà÷åíèÿ f íà çíà÷åíèÿõ ðåãèñòðîâ H1 , . . . , Hk , ïîìåùåíèè ðåçóëüòàòà â ðåãèñòð H ñ ïîñëåäóþùèì óâåëè÷åíèåì çíà÷åíèÿ ÊÐ íà 1. Çíà÷åíèÿ âñåõ îñòàëüíûõ ðåãèñòðîâ ðàñøèðåííîé ìàøèíû ïðè ýòîì íå èçìåíÿþòñÿ. Åñëè f íå îïðåäåëåíà íà äàííûõ çíà÷åíèÿõ, òî ñ÷èòàåòñÿ, ÷òî âû÷èñëåíèå çíà÷åíèÿ f ïðîäîëæàåòñÿ áåñêîíå÷íî, è ïðè ýòîì, ðàçóìååòñÿ, ðàñøèðåííàÿ ìàøèíà, âûïîëíÿþùàÿ ýòó êîìàíäó, íèêîãäà íå çàâåðøèò ñâîþ ðàáîòó. Ëåãêî çàìåòèòü, ÷òî ìèíèìàøèíû ÿâëÿþòñÿ ÷àñòíûì ñëó÷àåì ðàñøèðåííûõ ìèíèìàøèí. Îïðåäåëåíèå 1.0.2 Äâå ðàñøèðåííûõ ìèíèìàøèíû íàçîâ¼ì ýêâèâà- ëåíòíûìè, åñëè, áóäó÷è çàïóùåíûìè ñ ëþáûìè îäèíàêîâûìè íàáîðàìè çíà÷åíèé îñíîâíûõ ðåãèñòðîâ è íóëåâûìè çíà÷åíèÿìè âñåõ âñïîìîãàòåëüíûõ ðåãèñòðîâ, îíè ëèáî îáå íèêîãäà íå çàâåðøàò ñâîþ ðàáîòó ëèáî îáå êîãäàíèáóäü çàâåðøàò ñâîþ ðàáîòó è ïîñëå ýòîãî çíà÷åíèÿ âî âñåõ îñíîâíûõ ðåãèñòðàõ ó íèõ ñîâïàäóò. Îïðåäåëåíèå ôóíêöèé, âû÷èñëèìûõ íà ÐÌÌ ôîðìóëèðóåòñÿ àíàëîãè÷íûì îáðàçîì. Ïðåäëîæåíèå 1.0.3 (Ýëèìèíàöèÿ1 äîïîëíèòåëüíûõ êîìàíä) Åñëè âñå ôóíêöèè, ó÷àñòâóþùèå â ðàñøèðåííûõ êîìàíäàõ íåêîòîðîé ðàñøèðåííîé ìèíèìàøèíû, âû÷èñëèìû íà ìèíèìàøèíàõ, òî ýòà ðàñøèðåííàÿ ìàíèìàøèíà ýêâèâàëåíòíà íåêîòîðîé îáû÷íîé ìèíèìàøèíå. Äîêàçàòåëüñòâî. Äëÿ äîêàçàòåëüñòâà äîñòàòî÷íî óêàçàòü ìåòîä ïðåîá- ðàçîâàíèÿ ëþáîé ïðîãðàììû äëÿ ÐÌÌ â ýêâèâàëåíòíóþ åé ïðîãðàììó äëÿ ÐÌÌ, â êîòîðîé ÷èñëî äîïîëíèòåëüíûõ êîìàíä áóäåò íà åäèíèöó ìåíüøå. Äåéñòâèòåëüíî ïóñòü P ïðîãðàììà äëÿ ÐÌÌ, ñîäåðæàùàÿ äîïîëíèòåëüíûå êîìàíäû. Çàôèêñèðóåì â íåé íåêîòîðóþ äîïîëíèòåëüíóþ êîìàíäó H:=f (H1 ,...,Hk ), ãäå ôóíêöèÿ f âû÷èñëÿåòñÿ íåêîòîðîé ïðîãðàììîé Pf , èñïîëüçóþùåé ïîïàðíî ðàçëè÷íûå îñíîâíûå ðåãèñòðû R0 , R1 , . . ., Rk , è äîïîëíèòåëüíûå ðåãèñòðû S1 , . . ., Sl . Âûáåðåì ñðåäè äîïîëíèòåëüíûõ ðåãèñòðîâ ïîïàðíî ðàçëè÷íûå ðåãèñòðû R0∗ , R1∗ , . . . , Rk∗ è S1∗ , . . . , Sl∗ , íå óïîìèíàåìûå â ïðîãðàììàõ P è Pf . Îïðåäåëèì ïðîãðàììó Pf∗ êàê ðåçóëüòàò îäíîâðåìåííîé çàìåíû â Pf âñåõ ðåãèñòðîâ R0 , R1 , . . . , Rk è S1 , . . . , Sl ñîîòâåòñòâåííî íà R0∗ , R1∗ , . . . , Rk∗ è S1∗ , . . . , Sl∗ . Íà ìåñòî çàôèêñèðîâàííîé íàìè êîìàíäû H:=f(H1 ,...,Hk ) âñòàâèì â ïðîãðàììó P ïîñëåäîâàòåëüíîñòü êîìàíä 5 R∗1 :=H1 R∗2 :=H2 ... R∗k :=Hk P∗f H:=R∗0 , çàíîâî ïðîíóìåðóåì ïîëó÷èâøèéñÿ ñïèñîê íàòóðàëüíûìè ÷èñëàìè, íà÷èíàÿ ñ 0, ïîñëå ÷åãî êàê â ÷àñòè Pf∗ òàê è â îñòàâøåéñÿ ÷àñòè ïðîãðàììû P çàìåíèì âî âñåõ îïåðàòîðàõ ïåðåõîäà if . . . goto m è goto m ÷èñëà m íà äðóãèå ÷èñëà òàê, ÷òîáû îíè çàäàâàëè • ïåðåõîä íà òå æå êîìàíäû, ÷òî è ðàíüøå â ñëó÷àå, åñëè îíè çàäàâàëè ïåðåõîä íà êîíêðåòíûå êîìàíäû, • ïåðåõîä íà êîìàíäó, ñëåäóþùóþ çà âñåìè êîìàíäàìè ôðàãìåíòà P∗f â ñëó÷àå, êîãäà êîìàíäà ïåðåõîäà ïðåäíàçíà÷åíà äëÿ âûõîäà èç P∗f , • ïåðåõîä íà íåñóùåñòâóþùóþ êîìàíäó, åñëè êîìàíäà ïåðåõîäà ïðåäíàçíà÷åíà äëÿ çàâåðøåíèå ðàáîòû ïðîãðàììû. Íåòðóäíî óáåäèòüñÿ, ÷òî ïîëó÷åííàÿ òàêèì ñïîñîáîì ïðîãðàììà ýêâèâàëåíòíà èñõîäíîé è ïðè ýòîì ñîäåðæèò íà åäèíèöó ìåíüøå äîïîëíèòåëüíûõ êîìàíä. Òàêèì îáðàçîì, äëÿ äîêàçàòåëüñòâà ñóùåñòâîâàíèÿ ïðîãðàìì äëÿ ÌÌ, âû÷èñëÿþùèõ íåêîòîðóþ ôóíêöèþ, äîñòàòî÷íî äîêàçàòü ñóùåñòâîâàíèå ïðîãðàìì äëÿ ÐÌÌ, âû÷èñëÿþùèõ òó æå ñàìóþ ôóíêöèþ, ÷òî, êàê ïðàâèëî, íàìíîãî ïðîùå. Òåîðåìà 1.0.4 Âñå ÷àñòè÷íî ðåêóðñèâíûå ôóíêöèè âû÷èñëèìû íà ÌÌ. Äîêàçàòåëüñòâî. Íàì äîñòàòî÷íî ñíà÷àëà äîêàçàòü âû÷èñëèìîñòü íà ÌÌ ïðîñòåéøèõ ôóíêöèé, à ïîòîì äîêàçàòü, ÷òî ïðèìåíåíèå îïåðàòîðîâ S, R è M ê âû÷èñëèìûì íà ÌÌ ôóíêöèÿì ñíîâà ïðèâîäèò ê ôóíêöèÿì, âû÷èñëèìûì íà ÌÌ. Çäåñü ìû áóäåì ïîëüçîâàòüñÿ òîëüêî ÷òî äîêàçàííûì ðåçóëüòàòîì îá ýëèìèíàöèè äîïîëíèòåëüíûõ êîìàíä äëÿ ÐÌÌ. Ïðîñòåéøèå ôóíêöèè âû÷èñëèìû íà ÌÌ. Äåéñòâèòåëüíî, ôóíêöèÿ s(x) = x + 1 âû÷èñëÿåòñÿ ïðîãðàììîé èç äâóõ êîìàíä 0: R0 :=R1 è 1: inc 6 Ãëàâà 1. Ìèíèìàøèíû R0 , ôóíêöèÿ 0(x) = 0 âû÷èñëÿåòñÿ ïðîãðàììîé 0: R0 :=0, à ôóíêöèÿ n Im (x1 , . . . , xn ) âû÷èñëÿåòñÿ ïðîãðàììîé 0: R0 :=Rm . Äîêàæåì âû÷èñëèìîñòü êîìïîçèöèè ôóíêöèé, âû÷èñëèìûõ íà ÌÌ, ò.å., ÷òî ïðèìåíåíèå îïåðàòîðà ñóïåðïîçèöèè S ê ôóíêöèÿì, âû÷èñëèìûì íà ÌÌ, ñíîâà äàåò ôóíêöèþ, âû÷èñëèìóþ íà ÌÌ. Ïðåäïîëîæèì, ÷òî ôóíêöèè h1 (x1 , . . . , xn ), . . . , hk (x1 , . . . , xn ) è g(y1 , . . . , yk ) âû÷èñëèìû íà ÌÌ. Òîãäà èõ êîìïîçèöèÿ âû÷èñëèìà íà ÐÌÌ ïðè ïîìîùè ñëåäóþùåé ïðîãðàììû, â êîòîðîé âî âñåõ ðàñøèðåííûõ îïåðàòîðàõ ó÷àñòâóþò âû÷èñëèìûå íà ÌÌ ôóíêöèè: 0: 1: ··· k-1: k: S1 :=h1 (R1 ,...,Rn ) S2 :=h2 (R1 ,...,Rn ) Sk :=hk (R1 ,...,Rn ) R0 :=g (S1 ,...,Sk ). Ïîêàæåì, ÷òî ôóíêöèÿ, ïîëó÷àþùàÿñÿ èç ôóíêöèé, âû÷èñëèìûõ íà ÌÌ, ñ ïîìîùüþ îïåðàòîðà R ïðèìèòèâíîé ðåêóðñèè òàêæå âû÷èñëèìà íà ÌÌ. Ïðåäïîëîæèì, ÷òî ôóíêöèÿ f (y, x1 , . . . , xn ) çàäà¼òñÿ ïðèìèòèâíî ðåêóðñèâíîé ñõåìîé f (0, x1 , . . . , xn ) = g(x1 , . . . , xn ) f (y + 1, x1 , . . . , xn ) = h(x1 , . . . , xn , y, f (y, x1 , . . . , xn )), è ôóíêöèè g è h âû÷èñëèìû íà ÌÌ. Òîãäà, êàê íåòðóäíî óáåäèòüñÿ, ôóíêöèÿ f âû÷èñëÿåòñÿ ñëåäóþùåé ïðîãðàììîé äëÿ ÐÌÌ: 0: 1: 2: 3: 4: 5: 6: R0 :=g (R2 ,...,Rn+1 ) S0 :=0 if R1 =0 goto 7 R0 :=h(R2 ,...,Rn+1 ,S0 ,R0 ) inc S0 dec R1 goto 2 Ïîêàæåì, ÷òî ïðèìåíåíèå îïåðàòîðà ìèíèìèçàöèè M ê ôóíêöèè, âû÷èñëèìîé íà ÌÌ, ñíîâà ïðèâîäèò ê ôóíêöèè, âû÷èñëèìîé íà ÌÌ. Ïðåäïîëîæèì, ÷òî ôóíêöèÿ f ïîëó÷àåòñÿ ïðè ïîìîùè îïåðàòîðà ìèíèìèçàöèè èç âû÷èñëèìîé íà ÌÌ ôóíêöèè g êàê f (x1 , . . . , xn ) = µy(g(x1 , . . . , xn , y) = 0). 7 Òîãäà f ìîæíî âû÷èñëèòü ïðè ïîìîùè ñëåäóþùåé ïðîãðàììû äëÿ ÐÌÌ: 0: 1: 2: 3: 4: R0 :=0 S0 :=g (R1 ,...,Rn ,R0 ) if S0 =0 goto 5 inc R0 goto 1 Òàêèì îáðàçîì, ìû ïîêàçàëè, ÷òî ëþáàÿ ÷.ð.ô. âû÷èñëèìà íà ÌÌ, è òåîðåìà äîêàçàíà. Òåîðåìà 1.0.5 Ëþáàÿ âû÷èñëèìàÿ íà ÌÌ ôóíêöèÿ ÿâëÿåòñÿ ÷.ð.ô. Äîêàçàòåëüñòâî. Ñíà÷àëà ìû îïðåäåëèì êîäèðîâêè íåêîòîðûõ îáúåêòîâ, îòíîñÿùèõñÿ ê ÌÌ, â òîì ÷èñëå è ñàìèõ ÌÌ è óñòàíîâèì èõ íåêîòîðûå ñâîéñòâà. Ôàêòè÷åñêè, ìû äîêàæåì, ÷òî íåêîòîðûå äåéñòâèÿ è ïîíÿòèÿ, îòíîñÿùèåñÿ ê ÌÌ, ìîæíî âûðàçèòü ñ ïîìîùüþ ïðèìèòèâíî ðåêóðñèâíûõ ôóíêöèé, îòêóäà ïîòîì ïîëó÷èì ñàìó òåîðåìó. Êîä îáúåêòà a ëþáîé ïðèðîäû (ðåãèñòðà, êîìàíäû è ïð.) ñîîòâåòñòâóþùåå åìó íàòóðàëüíîå ÷èñëî áóäåì îáîçíà÷àòü ÷åðåç γ(a). Ïîñëåäîâàòåëüíî îïðåäåëèì êîäû ðàçëè÷íûõ îáúåêòîâ ñëåäóþùèì îáðàçîì: Êîäèðîâàíèå ðåãèñòðîâ: γ(Ri ) = 2i, γ(Si ) = 2i + 1. Êîäèðîâàíèå êîìàíä: γ(Q := m) γ(Q := H) γ(inc Q) γ(dec Q) γ(if F = 0 goto m) γ(goto m) = = = = = = h0, γ(Q), mi, h1, γ(Q), γ(H)i, h2, γ(Q)i, h3, γ(Q)i, h4, γ(F ), mi, h5, mi. Óïðàæíåíèå. Äîêàçàòü, ÷òî ìíîæåñòâî êîäîâ êîìàíä ïðèìèòèâíî ðåêóðñèâíî. 8 Ãëàâà 1. Ìèíèìàøèíû Êîäèðîâàíèå ìàøèí: åñëè 0:c0 , 1:c1 , . . . , k-1:ck−1 ñïèñîê êîìàíä íåêîòîðîé ÌÌ M , òî êîäîì ýòîé ìàøèíû áóäåì íàçûâàòü ÷èñëî γ(M ) = hγ(c0 ), . . . , γ(ck−1 )i. Óïðàæíåíèå. Äîêàçàòü, ÷òî ìíîæåñòâî âñåâîçìîæíûõ êîäîâ ìèíèìàøèí ïðèìèòèâíî ðåêóðñèâíî. Êàê óæå îòìå÷àëîñü, åñëè êàêîé-ëèáî ðåãèñòð (çà èñêëþ÷åíèåì R0 ) íå óïîìèíàåòñÿ â ïðîãðàììå, òî ðåçóëüòàò âû÷èñëåíèÿ ÷èñëî, ñîäåðæàùååñÿ â ðåãèñòðå R0 ïîñëå çàâåðøåíèÿ ýòîé ïðîãðàììû íå çàâèñèò îò ñîäåðæèìîãî ýòîãî ðåãèñòðà â íà÷àëå ðàáîòû ïðîãðàììû. Ïîýòîìó ïðè ðàññìîòðåíèè ðàáîòû ìèíèìàøèíû èìååò ñìûñë ñëåäèòü çà çíà÷åíèÿìè íå âñåõ å¼ ðåãèñòðîâ, à òîëüêî òåõ, êîòîðûå óïîìÿíóòû â å¼ ïðîãðàììå. Åñëè ðåãèñòð Ri èëè Si óïîìÿíóò â ïðîãðàììå, òî, ïî ñâîéñòâàì êîäèðîâàíèÿ êîíå÷íûõ ïîñëåäîâàòåëüíîñòåé, åãî êîä (ñîîòâåòñòâåííî 2i èëè 2i + 1) íå ïðåâîñõîäèò êîäà êîìàíäû, â êîòîðîé îí óïîìÿíóò, à ýòîò êîä, â ñâîþ î÷åðåäü, íå ïðåâîñõîäèò êîä âñåé ïðîãðàììû. Òàêèì îáðàçîì, ìàêñèìàëüíûé íîìåð ðåãèñòðà, ñîäåðæèìîå êîòîðîãî íàì âîîáùå èìååò ñìûñë îòñëåæèâàòü, ìîæíî õîòü è ãðóáî, íî çàòî ïðîñòî îöåíèòü ñâåðõó êîäîì ïðîãðàììû. Ýòî íàáëþäåíèå îáúÿñíÿåò ñëåäóþùåå îïðåäåëåíèå: Îïðåäåëåíèå 1.0.6 Êîíôèãóðàöèåé ìàøèíû c êîäîì a â íåêîòîðûé ìîìåíò âðåìåíè íàçîâ¼ì ïàðó, ñîñòîÿùóþ èç ñîäåðæèìîãî êîìàíäíîãî ðåãèñòðà c è ïîñëåäîâàòåëüíîñòè çíà÷åíèé ðåãèñòðîâ R0 , S0 , . . . , Ra , Sa , êîòîðûå ìû îáîçíà÷èì ñîîòâåòñòâåííî ÷åðåç [R0 ], [S0 ], . . . , [Ra ], [Sa ]. Åñëè C òàêàÿ êîíôèãóðàöèÿ, òî å¼ êîäîì íàçîâ¼ì ÷èñëî γ(C) = hc, h[R0 ], [S0 ], . . . , [Ra ], [Sa ]ii . Åñëè â ïðîöåññå çàâåðøèâøåãîñÿ âû÷èñëåíèÿ ìèíèìàøèíà ïîñëåäîâàòåëüíî íàõîäèëàñü â êîíôèãóðàöèÿõ C0 , C1 , . . . , Ck−1 , òî òàêóþ ïîñëåäîâàòåëüíîñòü áóäåì íàçûâàòü âû÷èñëåíèåì íà ýòîé ÌÌ, à êîäîì ýòîãî âû÷èñëåíèÿ íàçîâ¼ì ÷èñëî hγ(C0 ), γ(C1 ), . . . , γ(Ck−1 )i. Òåïåðü âñå íåîáõîäèìûå êîäû îïðåäåëåíû, è ìû ìîæåì îïðåäåëèòü îòíîøåíèå T (a, x, y), èãðàþùåå âàæíåéøóþ ðîëü â òåîðèè âû÷èñëèìîñòè. 9 Îïðåäåëåíèå 1.0.7 Îïðåäåëèì îòíîøåíèå T (a, x, y) êàê T (a, x, y) ⇔ (a íîìåð íåêîòîðîé ÌÌ) ∧ (seq (x)) ∧ (y êîä âû÷èñëåíèÿ, íà÷àòîãî ïðè ñîäåðæèìûõ ðåãèñòðîâ Ri , 1 6 i 6 min(a, `h (x)) ðàâíûõ ñîîòâåòñòâåííî (x)0 , (x)1 , . . . è íóëåâûõ çíà÷åíèÿõ âî âñåõ îñòàëüíûõ ðåãèñòðàõ) Ëåììà 1.0.8 Îòíîøåíèå T (a, x, y), ïðèìèòèâíî ðåêóðñèâíî.  îïðåäåëåíèè ýòîãî îòíîøåíèÿ ó÷àñòâóþò òðè êîíúþíêòèâíûõ ÷ëåíà, ïðè÷¼ì ïðèìèòèâíàÿ ðåêóðñèâíîñòü ïåðâûõ äâóõ ñëåäóåò èç óæå äîêàçàííîãî. Îñòàâøèéñÿ êîíúþíêòèâíûé ÷ëåí ìîæíî â ñâîþ î÷åðåäü ïðåäñòàâèòü, êàê êîíúþíêöèþ ñëåäóþùèõ óñëîâèé (ñíà÷àëà ïðèâîäèòñÿ íåôîðìàëüíîå îïèñàíèå, ïîòîì âûïèñûâàåòñÿ óñëîâèå, ãàðàíòèðóþùåå åãî ïðèìèòèâíóþ ðåêóðñèâíîñòü): • y êîä ïîñëåäîâàòåëüíîñòè: seq (y), • (y)0 íîìåð ïîñëåäîâàòåëüíîñòè äëèíû 2, âòîðîé ýëåìåíò êîòîðîé êîäèðóåò ïîñëåäîâàòåëüíîñòü äëèíû 2a + 2: seq ((y)0 ) ∧ `h ((y)0 ) = 2 ∧ seq (((y)0 )1 ) ∧ `h (((y)0 )1 ) = 2a + 2. •  íà÷àëüíîé êîíôèãóðàöèè âñå çíà÷åíèÿ ðåãèñòðîâ Ri , êîäèðóþùèå âõîäíûå äàííûå, ðàâíû ñîîòâåòñòâåííî (x)0 , (x)1 , . . .: ∀i 6 min(a, `h (x))(i 6= 0 → (((y)0 )1 )2i = (x)i−̇1 ). •  íà÷àëüíîé êîíôèãóðàöèè â îñòàëüíûõ Ri ñîäåðæàòñÿ íóëè: (((y)0 )1 )0 = 0 ∧ ∀i 6 a(i > min(a, `h (x)) → (((y)0 )1 )2i = 0). •  íà÷àëüíîé êîíôèãóðàöèè âñå âñïîìîãàòåëüíûå ðåãèñòðû ñîäåðæàò 0: ∀i 6 a((((y)0 )1 )2i+1 = 0). Ïðåæäå, ÷åì ïðîäîëæèòü ïåðå÷èñëåíèå óñëîâèé, ïðåäïîëîæèì, ÷òî ìû óæå äîêàçàëè ïðèìèòèâíóþ ðåêóðñèâíîñòü ôóíêöèè Next(u, a), âûäàþùåé êîä êîíôèãóðàöèè, ïîëó÷àþùåéñÿ èç êîíôèãóðàöèè ñ êîäîì u çà îäèí øàã âû÷èñëåíèÿ íà ìàøèíå ñ êîäîì a, åñëè a êîä ìàøèíû è u 10 Ãëàâà 1. Ìèíèìàøèíû êîä êîíôèãóðàöèè, è êàêîåíèáóäü (íåâàæíî êàêîå) ÷èñëî, â ïðîòèâíîì ñëó÷àå. Ýòî ìû ñäåëàåì ÷óòü ïîçæå. Òîãäà ê íàøèì óñëîâèÿì îñòàíåòñÿ äîáàâèòü åùå ñëåäóþùèå êîíúþíêòèâíûå ÷ëåíû: • Êàæäàÿ ñëåäóþùàÿ êîíôèãóðàöèÿ ïîëó÷àåòñÿ èç ïðåäûäóùåé â ðåçóëüòàòå èñïîëíåíèÿ øàãà âû÷èñëåíèÿ: ∀i < `h (y)(i + 1 < `h (y) → (y)i+1 = Next((y)i , a). •  ñàìîé ïîñëåäíåé êîíôèãóðàöèè íîìåð êîìàíäû äëÿ èñïîëíåíèÿ íå ñîâïàäàåò íè ñ îäíèì íîìåðîì êîìàíäû â ïðîãðàììå: ((y)`h (y)−̇1 )0 > `h (a) Ïðèâåä¼ííàÿ âûøå çàïèñü îòíîøåíèÿ T (a, x, y) ïîëó÷àåòñÿ èç îòíîøåíèé è ôóíêöèé, ïðèìèòèâíàÿ ðåêóðñèâíîñòü êîòîðûõ óæå äîêàçàíà, ñ ïîìîùüþ ëîãè÷åñêèõ ñâÿçîê ∧, ∨, ¬, → è íàâåøèâàíèÿ îãðàíè÷åííûõ êâàíòîðîâ. Ýòî ãàðàíòèðóåò ïðèìèòèâíóþ ðåêóðñèâíîñòü ýòîãî îòíîøåíèÿ. Îñòàëîñü ïîêàçàòü ïðèìèòèâíóþ ðåêóðñèâíîñòü ôóíêöèè Next(u, a). Çàìåòèì, ÷òî êîä êîìàíäû, èñïîëíÿåìîé â êîíôèãóðàöèè ñ êîäîì u (ò.å., ñîäåðæèìîå êîìàíäíîãî ðåãèñòðà), ðàâåí Êîì (a, u) = (a)(u)0 . Íàì ïîíàäîáÿòñÿ òàêæå îïèñàííûå íèæå ïðèìèòèâíî ðåêóðñèâíûå ôóíêöèè. ÇàìÐåã (k, m, u): åñëè k êîä ðåãèñòðà â êîíôèãóðàöèè ñ êîäîì u, òî ýòà ôóíêöèÿ âûäà¼ò êîä êîíôèãóðàöèè, ïîëó÷åííîé èç êîíôèãóðàöèè ñ êîäîì u çàìåíîé ñîäåðæèìîãî ðåãèñòðà ñ êîäîì k íà m. Òàêóþ ôóíêöèþ ìîæíî îïðåäåëèòü, íàïðèìåð, òàê: ïîñêîëüêó ((u)1 )k ñîäåðæèìîå ðåãèñòðà ñ êîäîì k , äëÿ ïîëó÷åíèÿ òðåáóåìîãî êîäà ñîñòîÿíèÿ ðåãèñòðîâ ìîæíî â ðàçëîæåíèè ÷èñëà (u)1 (ò.å., êîäà ñîñòîÿíèÿ ðåãèñòðîâ) íà ïðîñòûå ñîìíîæèòåëè óáðàòü âñþ ñòåïåíü ïðîñòîãî pk , ò.å., ((u) ) +1 ñîìíîæèòåëü pk 1 k è çàìåíèòü åãî íà pm+1 , ïîëó÷èâ íîâûé êîä ñîñòîk (u) ·pm+1 ÿíèÿ ðåãèñòðîâ ((u)1 1 )kk +1 à çàòåì `ñîáðàòü' êîä ïîëó÷åííîé êîíôèãóðàpk (u)1 ·pm+1 k öèè â âèäå (u)0 , ((u)1 )k +1 . Ïîñëåäíåå âûðàæåíèå êàê ðàç ãîäèòñÿ â pk êà÷åñòâå îïðåäåëåíèÿ äëÿ ôóíêöèè ÇàìÐåã (k, m, u), ãàðàíòèðóþùåå å¼ ïðèìèòèâíóþ ðåêóðñèâíîñòü. Ìû îñòàâëÿåì ÷èòàòåëþ íåñëîæíûå äîêàçàòåëüñòâà ñóùåñòâîâàíèÿ ïðèìèòèâíî ðåêóðñèâíûõ ôóíêöèé ñî ñëåäóþùèìè ñâîéñòâàìè: 11 ÇàìÊÐ (m, u): åñëè u êîä êîíôèãóðàöèè, òî ýòà ôóíêöèÿ âûäà¼ò êîä êîíôèãóðàöèè, ïîëó÷åííîé èç êîíôèãóðàöèè ñ êîäîì u çàìåíîé ñîäåðæèìîãî êîìàíäíîãî ðåãèñòðà íà m. Ðåã (u, i): åñëè u êîä êîíôèãóðàöèè, òî çíà÷åíèå ýòîé ôóíêöèè ðàâíî ñîäåðæèìîìó ðåãèñòðà ñ êîäîì i â ýòîé êîíôèãóðàöèè. ÊÐ (u): åñëè u êîä êîíôèãóðàöèè, òî çíà÷åíèå ýòîé ôóíêöèè ðàâíî ñîäåðæèìîìó êîìàíäíîãî ðåãèñòðà â ýòîé êîíôèãóðàöèè. Çàìåòèì, ÷òî åñëè u êîä íåêîòîðîé êîíôèãóðàöèè, òî ïî íåìó ìîæíî îïðåäåëèòü òèï êîìàíäû, èñïîëíÿåìîé â ýòîé êîíôèãóðàöèè. Îí ïîëíîñòüþ îïðåäåë¼í ÷èñëîì (Êîì (a, u))0 (åñëè ýòî 0, òî êîìàíäà èìååò âèä R:=m, åñëè 1, òî R:=H è ò.ä.). Ôóíêöèþ Next(u, a) ìîæíî îïðåäåëèòü ìåòîäîì ðàçáîðà ñëó÷àåâ ñëåäóþùèì îáðàçîì. Êîä èñïîëíÿåìîé êîìàíäû áóäåò ðàâåí Êîì (a, u). Åñëè ýòà êîìàíäà ÿâëÿåòñÿ êîìàíäîé ïðèñâàèâàíèÿ âèäà G:=m, ò.å., (Êîì (a, u))0 = 0, òî â êîäå íîâîé êîíôèãóðàöèè íóæíî çàìåíèòü ñîäåðæèìîå ðåãèñòðà G, ò.å., ðåãèñòðà ñ êîäîì (Êîì (a, u))1 íà (Êîì (a, u))2 (â ðåçóëüòàòå ïîëó÷èì ÇàìÐåã ((Êîì (a, u))1 , (Êîì (a, u))2 , u)); êðîìå òîãî, íóæíî áóäåò ïðèáàâèòü ê ñîäåðæèìîìó ÊÐ åäèíèöó. Ó÷èòûâàÿ óñòðîéñòâî êîäèðîâêè êîíôèãóðàöèé, ìû âèäèì, ÷òî äëÿ ýòîãî äîñòàòî÷íî óìíîæèòü ïîëó÷åííîå âûðàæåíèå íà p0 . Èòàê, â ñëó÷àå (Êîì (a, u))0 = 0 çíà÷åíèå ôóíêöèè Next(u, a) ìîæíî âû÷èñëèòü, êàê p0 · ÇàìÐåã ((Êîì (a, u))1 , (Êîì (a, u))2 , u). Àíàëîãè÷íî, åñëè ýòà êîìàíäà ÿâëÿåòñÿ êîìàíäîé ïðèñâàèâàíèÿ âèäà G:=H, ò.å., (Êîì (a, u))0 = 1, òî â êîäå íîâîé êîíôèãóðàöèè íóæíî çàìåíèòü ñîäåðæèìîå ðåãèñòðà G, ò.å., ðåãèñòðà ñ êîäîì (Êîì (a, u))1 íà ñîäåðæèìîå ðåãèñòðà ñ êîäîì (Êîì (a, u))2 , ò.å. íà Ðåã (u, (Êîì (a, u))2 ) ((u)1 )(Êîì (a,u)2 ) (â ðåçóëüòàòå ïîëó÷èì ÇàìÐåã ((Êîì (a, u))1 , Ðåã (u, (Êîì (a, u))2 ), u)); ïðèáàâëÿÿ, êàê è ðàíüøå, åäèíèöó ê ÊÐ, ïîëó÷èì, ÷òî êîä êîíôèãóðàöèè ïîñëå âûïîëíåíèÿ ýòîãî øàãà áóäåò ðàâåí p0 · ÇàìÐåã ((Êîì (a, u))1 , Ðåã (u, (Êîì (a, u))2 ), u). Âûïèñàâ àíàëîãè÷íûì îáðàçîì âûðàæåíèÿ äëÿ îñòàëüíûõ (âçàèìîèñêëþ÷àþùèõ) ñëó÷àåâ, êîãäà êîìàíäà èìååò âèä 12 Ãëàâà 1. Ìèíèìàøèíû • inc Q (ò.å., (Êîì (a, u))0 = 2) • dec Q (ò.å., (Êîì (a, u))0 = 3) • if F=0 goto m è ïðè ýòîì ñîäåðæèìîå ðåãèñòðà F ðàâíî 0 (ò.å., (Êîì (a, u))0 = 4 è Ðåã (u, (Êîì (a, u))1 ) = 0) • if F=0 goto m è ïðè ýòîì ñîäåðæèìîå ðåãèñòðà F íå ðàâíî 0 (ò.å., • (Êîì (a, u))0 = 4 è Ðåã (u, (Êîì (a, u))1 ) 6= 0) goto m (ò.å., (Êîì (a, u))0 = 5), ìû ïîëó÷èì ïðèìåðíî ñëåäóþùåå îïðåäåëåíèå äëÿ ôóíêöèè Next(u, a) ìåòîäîì ðàçáîðà ñëó÷àåâ (íå ñëåäóåò ïóãàòüñÿ êîíêðåòíîãî âèäà äàííîé ôóíêöèè, ãîðàçäî âàæíåå òî, ÷òî å¼ â ïðèíöèïå ìîæíî çàïèñàòü â òàêîì âèäå): Next(u, a) = p0 · ÇàìÐåã ((Êîì (a, u))1 , (Êîì (a, u))2 , u), åñëè (Êîì (a, u))0 = 0 p0 · ÇàìÐåã ((Êîì (a, u))1 , Ðåã (u, (Êîì (a, u))2 ), u), åñëè (Êîì (a, u))0 = 1 p0 · ÇàìÐåã ((Êîì (a, u))1 , Ðåã (u, (Êîì (a, u))1 ) + 1, u), åñëè (Êîì (a, u))0 = 2 p0 · ÇàìÐåã ((Êîì (a, u))1 , Ðåã (u, (Êîì (a, u))1 )−̇1, u), åñëè (Êîì (a, u))0 = 3 = ÇàìÊÐ ((Êîì (a, u))2 , u), åñëè (Êîì (a, u))0 = 4 ∧ Ðåã (u, (Êîì (a, u))1 ) = 0 ÇàìÊÐ (ÊÐ (u) + 1, u), åñëè (Êîì (a, u))0 = 4 ∧ Ðåã (u, (Êîì (a, u))1 ) 6= 0 ÇàìÊÐ ((Êîì (a, u))1 , u), åñëè (Êîì (a, u))0 = 5 0, â îñòàëüíûõ ñëó÷àÿõ. Ïðèâåä¼ííàÿ çàïèñü ãàðàíòèðóåò ïðèìèòèâíóþ ðåêóðñèâíîñòü ôóíêöèè Next(u, a). Ëåììà äîêàçàíà. Åñëè y êîä âû÷èñëåíèÿ, òî, ïðîñìàòðèâàÿ îïðåäåëåíèÿ, ìû âèäèì, ÷òî ðåçóëüòàò âû÷èñëåíèÿ ñîäåðæèìîå ðåãèñòðà R0 îïðåäåëÿåòñÿ ñ ïîìîùüþ ïðèìèòèâíî ðåêóðñèâíîé ôóíêöèè U (y) = (((y)`h (y)−̇1 )1 )0 . 13 Òàêèì îáðàçîì, ìû ïîëó÷àåì, ÷òî åñëè f (x1 , . . . , xn ) âû÷èñëÿåòñÿ íà ÌÌ, òî ó ýòîé ÌÌ åñòü íîìåð, ñêàæåì, m, è ïîýòîìó f (x1 , . . . , xn ) ' U (µyT (m, hx1 , . . . , xn i, y)). Îòñþäà ñëåäóåò, ÷òî âñÿêàÿ âû÷èñëèìàÿ íà ÌÌ ôóíêöèÿ ÿâëÿåòñÿ ÷.ð.ô. Òåîðåìà äîêàçàíà. Òàêèì îáðàçîì, êëàññû ÷.ð.ô. è ôóíêöèé, âû÷èñëèìûõ íà ÌÌ, ñîâïàäàþò. Ïðîñìàòðèâàÿ äîêàçàòåëüñòâî òåîðåìû, ñ ó÷¼òîì ýòîãî ìû ïîëó÷àåì ñëåäóþùóþ òåîðåìó: Òåîðåìà 1.0.9 (Òåîðåìà Êëèíè î íîðìàëüíîé ôîðìå) Ñóùåñòâóþò ïðèìèòèâíî ðåêóðñèâíàÿ ôóíêöèÿ U (y) è ïðèìèòèâíî ðåêóðñèâíîå îòíîøåíèå T (m, x, y) òàêèå, ÷òî äëÿ ëþáîãî n ∈ N è ëþáîé ÷.ð.ô. f (x1 , . . . , xn ) íàéä¼òñÿ m ∈ N òàêîå, ÷òî f (x1 , . . . , xn ) ' U (µyT (m, hx1 , . . . , xn i, y)). (1.1) Òåîðåìà 1.0.10 (Òåîðåìà îá óíèâåðñàëüíîé ôóíêöèè) Äëÿ ëþáî- ãî n ∈ N ñóùåñòâóåò n + 1ìåñòíàÿ ÷.ð.ô. ψ(m, x1 , . . . , xn ) òàêàÿ, ÷òî äëÿ ëþáîé ÷.ð.ô. f (x1 , . . . , xn ) íàéä¼òñÿ m ∈ N òàêîå, ÷òî f (x1 , . . . , xn ) ' ψ(m, x1 , . . . , xn ). Äîêàçàòåëüñòâî.  êà÷åñòâå ψ(m, x1 , . . . , xn ) ãîäèòñÿ, íàïðèìåð, ôóíêöèÿ U (µyT (m, hx1 , . . . , xn i, y)). Òàêèì îáðàçîì, âñå ÷.ð.ô. ñ ôèêñèðîâàííûì ÷èñëîì àðãóìåíòîâ ìîæíî ¾ñîáðàòü¿ â îäíó åäèíñòâåííóþ ôóíêöèþ ñ ÷èñëîì àðãóìåíòîâ íà 1 áîëüøå è ïîëó÷àòü èç îäíîé ýòîé ôóíêöèè âñå ôóíêöèè, ïðîñòî ôèêñèðóÿ ïåðâûé àðãóìåíò. Ïðè ýòîì åñòåñòâåííî äåðæàòü â óìå àíàëîãèþ, ñîãëàñíî êîòîðîé ýòà ôóíêöèÿ ÿâëÿåòñÿ óíèâåðñàëüíûì âû÷èñëèòåëüíûì óñòðîéñòâîì, â ïåðâûé àðãóìåíò ïðîãðàììîé; èçìåíÿÿ ïðîãðàììó, ìîæíî âû÷èñëÿòü ëþáóþ ôóíêöèþ. Åñëè m íîìåð ïðîãðàììû P , òî ïîëîæèì {m}(x1 , . . . , xn ) ' AnP (x1 , . . . , xn ), 14 Ãëàâà 1. Ìèíèìàøèíû åñëè æå m íå ÿâëÿåòñÿ íîìåðîì íèêàêîé ïðîãðàììû, òî {m}(x1 , . . . , xn ) ñ÷èòàåì íåîïðåäåë¼ííûì.  ëþáîì ñëó÷àå, ïî äàííîìó m ìîæíî âû÷èñëèòü çíà÷åíèå {m}(x1 , . . . , xn ) ñëåäóþùèì îáðàçîì: ïåðåáèðàåì ïî ïîðÿäêó íàòóðàëüíûå ÷èñëà y = 0, 1, . . . äî òåõ ïîð, ïîêà íå âûïîëíèòñÿ T (m, hx1 , . . . , xn i, y), è ïîñëå ýòîãî íàõîäèì ðåçóëüòàò â âèäå U (y). Åñëè m íå êîä êàêîéëèáî ÌÌ, òî ýòî òîæå âûïîëíåíî: â ýòîì ñëó÷àå îáà çíà÷åíèÿ {m}(x1 , . . . , xn ) è T (m, hx1 , . . . , xn i, y) íå îïðåäåëåíû. Çíà÷èò, èìååò ìåñòî ðàâåíñòâî {m}(x1 , . . . , xn ) ' U (µyT (m, hx1 , . . . , xn i, y)) . Íàðÿäó ñ ïðèâåä¼ííûìè âûøå òåîðåìàìè, ñëåäóþùàÿ òåîðåìà òàêæå ÿâëÿåòñÿ îäíèì èç âàæíåéøèõ ðåçóëüòàòîâ î âû÷èñëèìîñòè. Òåîðåìà 1.0.11 (Òåîðåìà î ïàðàìåòðèçàöèè (smnòåîðåìà)) Äëÿ ëþáîé âû÷èñëèìîé ôóíêöèè F (y1 , . . . , ym , x1 , . . . , xn ) ñóùåñòâóåò ðàçíîçíà÷íàÿ ïðèìèòèâíî ðåêóðñèâíàÿ ôóíêöèÿ s(y1 , . . . , ym ) òàêàÿ, ÷òî äëÿ ëþáûõ y1 , . . . , ym âûïîëíåíî {s(y1 , . . . , ym )}(x1 , . . . , xn ) ' F (y1 , . . . , ym , x1 , . . . , xn ). Äîêàçàòåëüñòâî. Ôóíêöèÿ F 0 (x1 , . . . , xn , y1 , . . . , ym ) ' F (y1 , . . . , ym , x1 , . . . , xn ) òàêæå âû÷èñëèìà, è îíà âû÷èñëÿåòñÿ íà ÌÌ íåêîòîðîé ïðîãðàììîé P . Çàôèêñèðîâàâ ïðîèçâîëüíûå y1 , . . . , ym , ìîæíî ïîñòðîèòü ïðîãðàììó äëÿ âû÷èñëåíèÿ ôóíêöèè F 0 (x1 , . . . , xn , y1 , . . . , ym ) îò îñòàâøèõñÿ ïåðåìåííûõ x1 , . . . , xn ñëåäóþùèì îáðàçîì: ñíà÷àëà èäóò îïåðàòîðû 0: 1: Rn+1 :=y1 Rn+2 :=y2 ... m-1:Rn+m := ym , ïîñëå ýòîãî çàïèøåì ïîñëåäîâàòåëüíîñòü êîìàíä P 0 , êîòîðàÿ ïîëó÷àåòñÿ èç ïîñëåäîâàòåëüíîñòè êîìàíä ïðîãðàììû P çàìåíîé âñåõ êîìàíä if ... goto k íà êîìàíäû if ... goto k+m è êîìàíä goto k íà êîìàíäû goto k+m è â ïîëó÷èâøåìñÿ ñïèñêå êîìàíä ðàññòàâèì íîìåðà ïî ïîðÿäêó, íà÷èíàÿ ñ 0. Íåòðóäíî óáåäèòüñÿ, ÷òî ïðè ëþáûõ y1 , . . . , ym , ïîëó÷åííàÿ òàêèì ñïîñîáîì ïðîãðàììà âû÷èñëèò íàì çíà÷åíèå F 0 (x1 , . . . , xn , y1 , . . . , ym ). 15 Ïóñòü P 0 ïîñëåäîâàòåëüíîñòü êîìàíä c0 , . . . , cl (áåç íîìåðîâ ñëåâà). Òîãäà ñ ó÷¼òîì îïðåäåëåíèÿ êîäîâ ïîñëåäîâàòåëüíîñòåé, ìû ïîëó÷àåì, ÷òî êîä ïîëó÷èâøåéñÿ â ðåçóëüòàòå ïðîãðàììû áóäåò ðàâåí γ(c )+1 0 )+1 ·. . .·pm+ll hh0, 2(n + 1), y1 i , h0, 2(n + 2), y2 i , . . . , h0, 2(n + m), ym ii·pγ(c m Ïîñëåäíåå âûðàæåíèå äà¼ò íàì ï.ð. ô. s(y1 , . . . , ym ) ñî ñâîéñòâîì F (x̄, ȳ) ' F 0 (ȳ, x̄) ' {s(ȳ)}(x̄). Ôóíêöèÿ s ðàçíîçíà÷íà, ò.ê. ïî çíà÷åíèþ s(y1 , . . . , ym ) ìîæíî ëåãêî âîññòàíîâèòü èñõîäíûå àðãóìåíòû y1 , . . . , ym , íàïðèìåð, y1 = ((s(y1 , . . . , ym ))0 )2 , y2 = ((s(y1 , . . . , ym ))1 )2 , y3 = ((s(y1 , . . . , ym ))2 )2 , . . . Îòñþäà ñëåäóåò, ÷òî s îáëàäàåò òðåáóåìûìè ñâîéñòâàìè.