Wikipedia에서 일반 언어의 펌핑 언어 는 다음과 같습니다.
정규 언어로 하자 . 이어서 정수 존재 (단에 따라 모든 문자열되도록) 에서 길이 중 적어도 ( 은 "펌핑 길이"라고한다)가과 같이 쓸 수있다 , 즉 ( 될 수 다음 조건을 만족하는 세 개의 하위 문자열로 나뉩니다.p ≥ 1 L w L p p w = x y z wLp≥1LwLppw=xyzw
- |y|≥1
- |xy|≤p 와
- 모든 , . 는 펌핑 할 수있는 하위 문자열입니다 (여러 번 제거 또는 반복되며 결과 문자열은 항상 ). x y i z ∈ L y Li≥0xyiz∈L
yL
(1) 펌핑 될 루프 y가 적어도 하나의 길이 여야 함을 의미하고; (2)는 첫 번째 p 문자 내에서 루프가 발생해야 함을 의미합니다. x와 z에는 제한이 없습니다.
간단하게 말하면, 정규 언어 L의 경우, 어떤 워드 충분히 긴 3 개 부분으로 분할 될 수있다. 즉, 모든 문자열이되도록, 에 대한 도이다 .w = x y z x y k z k ≥ 0 Lw∈Lw=xyzxykzk≥0L
이제 예제를 보자 . 이라고합시다 .L={(01)n2n∣n≥0}
이것이 규칙적이지 않다는 것을 보여주기 위해, 모든 분해 어떻게 생겼는지 고려해야합니다. 따라서 x, y, z는 (우리는 길이가 인 이 특정 단어를 , 여기서 는 펌핑 길이입니다. 문자열 의 부분이 어디에서 발생 하는지 고려해야 합니다. 그것은 첫 번째 부분과 중첩하고 있었다 것이다 이와 동일 하나 , , 또는 일부, ( 잊지 마십시오 ). 두 번째 부분과 겹칠 수 있습니다. 이는의 X , Y의 Z = ( 01 ) , P (2) P (3) P ( 01 ) K + 1 ( 10 ) K + 1 1 ( 01 ) (K) 0 ( 10 ) K K ≥ 0 | y | ≥ 1 , Y = 2 유전율 (K) > 0 ( 01 ) K + 1 (2)w=xyzxyz=(01)p2p3pYpy(01)k+1(10)k+11(01)k0(10)kk≥0|y|≥1y=2k일부 대한 . 또는 단어의 두 부분에 겹칠 수 있으며 , , 또는 , 및 입니다.k>0 ( 10 ) k + 1 2 l 1 ( 01 ) k 2 l 0 ( 10 ) k 2 l k ≥ 0 l ≥ 1(01)k+12l(10)k+12l1(01)k2l0(10)k2lk≥0l≥1
이제 모순을 얻기 위해 각각을 펌핑하십시오. 모국어가 아닌 단어가 될 것입니다. 예를 들어, 을 취 하면 펌핑 보조기구는 예를 들어 는 언어로되어 있어야합니다 와 적절히 선택하십시오 . 그러나이 단어는 앞에 가 표시 되므로 언어로되어있을 수 없습니다 . x y 2 z = x 0 ( 10 ) k 2 l 0 ( 10 ) k 2 l z x z 2 1y=0(10)k2lxy2z=x0(10)k2l0(10)k2lzxz21
다른 경우는 의 수가 의 수보다 크 거나 그 반대가되거나 , 예를 들어 다음과 같이 구조를 갖지 않는 단어가됩니다 . 행에 두 개의 있습니다.2 ( 01 ) n 2 n 0(01)2(01)n2n0
잊지 마세요 . 여기에서 증거를 줄이는 것이 유용합니다. 위의 많은 분해는 부분이 너무 길어질 수 없기 때문에 불가능 합니다.z|xy|≤pz
위의 각 사례는 그러한 모순으로 이어질 필요가 있으며, 이는 펌핑 보조의 모순이 될 것입니다. 짜잔! 언어는 규칙적이지 않습니다.