Đó là một thiết bị nhằm chứng minh rằng một ngôn ngữ nhất định không thể thuộc một lớp nhất định.
Chúng ta hãy xem xét ngôn ngữ của dấu ngoặc cân đối (có nghĩa là các ký hiệu '(' và ')', và bao gồm tất cả các chuỗi được cân bằng theo nghĩa thông thường và không có chuỗi nào là không). Chúng ta có thể sử dụng bổ đề bơm để chỉ ra điều này không thường xuyên.
(Một ngôn ngữ là một tập hợp các chuỗi có thể có. Trình phân tích cú pháp là một số loại cơ chế mà chúng ta có thể sử dụng để xem liệu một chuỗi có trong ngôn ngữ hay không, vì vậy nó phải có khả năng phân biệt giữa một chuỗi trong ngôn ngữ hay một chuỗi bên ngoài ngôn ngữ. Một ngôn ngữ là "thông thường" (hoặc "không theo ngữ cảnh" hoặc "phân biệt ngữ cảnh" hoặc bất cứ thứ gì) nếu có một trình phân tích cú pháp thông thường (hoặc bất cứ thứ gì) có thể nhận ra nó, phân biệt giữa các chuỗi trong ngôn ngữ và các chuỗi không có trong ngôn ngữ.)
LFSR Consulting đã cung cấp một mô tả tốt. Chúng ta có thể vẽ trình phân tích cú pháp cho một ngôn ngữ thông thường dưới dạng một tập hợp hữu hạn các hộp và mũi tên, với các mũi tên đại diện cho các ký tự và các hộp kết nối chúng (hoạt động như "trạng thái"). (Nếu nó phức tạp hơn thế, nó không phải là một ngôn ngữ thông thường.) Nếu chúng ta có thể nhận được một chuỗi dài hơn số hộp, điều đó có nghĩa là chúng ta đã xem qua một hộp nhiều hơn một lần. Điều đó có nghĩa là chúng ta đã có một vòng lặp và chúng ta có thể đi qua vòng lặp bao nhiêu lần tùy ý.
Do đó, đối với một ngôn ngữ thông thường, nếu chúng ta có thể tạo một chuỗi dài tùy ý, chúng ta có thể chia nó thành xyz, trong đó x là các ký tự chúng ta cần để bắt đầu vòng lặp, y là vòng lặp thực tế và z là bất kỳ thứ gì chúng ta cần làm cho chuỗi hợp lệ sau vòng lặp. Điều quan trọng là tổng độ dài của x và y là có giới hạn. Rốt cuộc, nếu chiều dài lớn hơn số hộp, rõ ràng chúng ta đã đi qua một hộp khác trong khi thực hiện việc này, và do đó, có một vòng lặp.
Vì vậy, trong ngôn ngữ cân bằng của chúng ta, chúng ta có thể bắt đầu bằng cách viết bất kỳ số lượng dấu ngoặc đơn nào bên trái. Đặc biệt, đối với bất kỳ trình phân tích cú pháp nào đã cho, chúng ta có thể viết nhiều parens bên trái hơn là có các hộp, và do đó, trình phân tích cú pháp không thể biết có bao nhiêu parens bên trái. Do đó, x là một số parens bên trái, và điều này được cố định. y cũng là một số parens bên trái và điều này có thể tăng lên vô thời hạn. Chúng ta có thể nói rằng z là một số parens bên phải.
Điều này có nghĩa là chúng ta có thể có một chuỗi 43 parens trái và 43 parens phải được bộ phân tích cú pháp của chúng tôi nhận dạng, nhưng trình phân tích cú pháp không thể biết được điều đó từ một chuỗi 44 parens trái và 43 parens phải, không có trong ngôn ngữ của chúng ta, vì vậy trình phân tích cú pháp không thể phân tích cú pháp ngôn ngữ của chúng tôi.
Vì bất kỳ trình phân tích cú pháp thông thường nào có thể có một số lượng ô cố định, chúng ta luôn có thể viết nhiều ô bên trái hơn số đó và bằng bổ đề bơm, sau đó chúng tôi có thể thêm nhiều ô phân tích trái theo cách mà trình phân tích cú pháp không thể biết được. Do đó, ngôn ngữ trong dấu ngoặc cân bằng không thể được phân tích bằng trình phân tích cú pháp thông thường, và do đó không phải là một biểu thức chính quy.