დატუმბვის ლემა რეგულარული ენებისთვის

დატუმბვის ლემა რეგულარული ენებისთვის — ლემა ფორმალური ენების თეორიაში. აღწერს რეგულარული ენის აუცილებელ თვისებას: საკმარისად გრძელი ყველა სიტყვა არის „დატუმბვადი“, ანუ გააჩნია შუა ნაწილი, რომლის ნებისმიერ რაოდენობაჯერ განმეორების შემთხვევაში მიიღება იმავე ენის სხვა სიტყვა. იმის ჩვენებით, რომ რაიმე ენას არ აქვს ეს თვისება, მტკიცდება მისი არარეგულარულობა. გამოიყენება უსასრულოდ დიდი ენებისათვის, რადგან ყველა სასრული ენა რეგულარულია. ლემის მიხედვით, ნებისმიერი რეგულარული L {\displaystyle L} ენისათვის არსებობს p {\displaystyle p} მუდმივა და ამ ენაში მასზე სიგრძით არამკაცრად დიდი ყველა სიტყვა w {\displaystyle w} დაიყოფა სამ ქვესტრიქონად ( w = x y z {\displaystyle w=xyz} ), ისე, რომ y {\displaystyle y} -ს განმეორებით მიღებული სიტყვები x z , x y z , x y y z , x y y y z , . . . {\displaystyle xz,xyz,xyyz,xyyyz,...} მაინც L {\displaystyle L} -ს ეკუთვნის. ეს პროცესი ცნობილია დატუმბვის სახელით. ლემისათის აუცილებელია, რომ x y {\displaystyle xy} ქვესტრინგის სიგრძე იყოს მაქსიმუმ p {\displaystyle p} , რაც ამცირებს სიტყვის დაჭრის ვარიანტებს. ყველა სასრული ენა დატუმბვადია და ეს მათთვის p {\displaystyle p} რიცხვად უგრძესი სიტყვის სიგრძეზე ერთით მეტის აღებით ჩანს. L {\displaystyle L} იყოს რეგულარული ენა. მაშინ არსებობს რიცხვი p > 1 {\displaystyle p>1} (დამოკიდებული მხოლოდ L {\displaystyle L} -ზე) და L {\displaystyle L} -ის p {\displaystyle p} -ზე გრძელი ყველა სიტყვა w {\displaystyle w} ჩაიწერება x y z {\displaystyle xyz} ქვესტრიქონების მიმდევრობად ისე რომ: | y | ≥ 1 {\displaystyle |y|\geq 1} | x y | ≤ p {\displaystyle |xy|\leq p} ( ∀ n ≥ 0 ) ( x y n z ∈ L ) {\displaystyle (\forall n\geq 0)(xy^{n}z\in L)} თუკი სრულდება მოცემული პირობები, მაშინ y {\displaystyle y} ქვესტრიქონი იტუმბება (რამდენჯერმე განმეორებით ან წაშლით მიღებული სიტყვა რჩება L {\displaystyle L} ენაში). x {\displaystyle x} და z {\displaystyle z} ქვესტრინგების სიგრძეების არ არის შეზღუდული და შეიძლება 0 {\displaystyle 0} -იც იყოს. ლემა მთლიანად ფორმალურ ენაზე: ( ∀ L ⊆ Σ ∗ ) ( regular ( L ) ⇒ ( ( ∃ p ≥ 1 ) ( ( ∀ w ∈ L ) ( ( | w | ≥ p ) ⇒ ( ( ∃ x , y , z ∈ Σ ∗ ) ( w = x y z ∧ ( | y | ≥ 1 ∧ | x y | ≤ p ∧ ( ∀ n ≥ 0 ) ( x y n z ∈ L ) ) ) ) ) ) ) ) {\displaystyle {\begin{array}{l}(\forall L\subseteq \Sigma ^{*})\\\quad ({\mbox{regular}}(L)\Rightarrow \\\quad ((\exists p\geq 1)((\forall w\in L)((|w|\geq p)\Rightarrow \\\quad ((\exists x,y,z\in \Sigma ^{*})(w=xyz\land (|y|\geq 1\land |xy|\leq p\land (\forall n\geq 0)(xy^{n}z\in L))))))))\end{array}}} ლემის გამოყენება ხდება საწინააღმდეგოს დაშვების მეთოდით რაიმე ენის არარეგულარობის დამტკიცებისას. მაგალითად, Σ = { a , b } {\displaystyle \Sigma =\{a,b\}} ანბანისაგან შედგენილი L = { a n b n : n ≥ 0 } {\displaystyle L=\{a^{n}b^{n}:n\geq 0\}} ენის არარეგულარობა მტკიცდება ასე: ცვლადებს ჰქონდეს იგივე მნიშვნელობა, რაც ზემოთ. განვიხილოთ w = a p b p {\displaystyle w=a^{p}b^{p}} სიტყვები (შედის p {\displaystyle p} -ზე გრძელ სიტყვებში). ლემის მიხედვით თუ ენა რეგულარულია უნდა არსებობდეს w = x y z {\displaystyle w=xyz} დაყოფა ( | y | ≥ 1 {\displaystyle |y|\geq 1} და | x y | ≤ p {\displaystyle |xy|\leq p} პირობებით) რომლისთვისაც ყველა x y i z {\displaystyle xy^{i}z} ( i ≥ 0 {\displaystyle i\geq 0} ) რჩება L {\displaystyle L} ენაში. x {\displaystyle x} -ზე და x y {\displaystyle xy} -ზე დაწესებული შეზღუდვებიდან გამომდინარეობს, რომ y {\displaystyle y} მხოლოდ a {\displaystyle a} -ებს შეიცავს. შესაბამისად y {\displaystyle y} ნაწილის დატუმბვით მიღებულ სიტყვაში მეტი a {\displaystyle a} იქნება და აღებული ენის პირობას აღარ დააკმაყოფილებს. მაშასადამე L {\displaystyle L} ენა არაა რეგულარული. Michael Sipser, Introduction to the theory of computation, Cengage Learning, 2005. — გვ. 77-82.