Khái niệm tích không nhập nhằng được đề xuất bởi Marcel-Paul Schützenberger [14] và được nghiên cứu mở rộng bởi Jean-Eric Pin [12, 21]. Trong [19], Pascal Weil đã sử dụng otomat nhập nhằng, vị nhóm quan hệ nhập
nhằng để làm công cụ thiết lập tích quan hệ Z = X Y, với X, Y là mã hữu hạn
trong quan hệ lý thuyết đa tạp của ngôn ngữ. Trong [5, 6], Phan Trung Huy và
Đỗ Long Vân đã thiết lập được kết quả biểu diễn -ngôn ngữ chính quy của
các từ được đoán nhận bởi -otomat Büchi không nhập nhằng.
Sau đây, ta nhắc lại khái niệm tích không nhập nhằng của hai ngôn ngữ:
Định nghĩa 2.1. Cho bảng chữ A và X, Y A*. Cặp (X,Y) được gọi là có tích
không nhập nhằng (hay tích X Y là không nhập nhằng) nếu, với mọi w X Y, có duy nhất một cặp (x, y), với x X, y Y sao cho w = xy.
Hay nói cách khác, tích X Y là không nhập nhằng nếu với mọi x, x X ,
y, y Y, từ đẳng thức x y = xy suy ra x = x và y = y. Trong trường hợp ngược
lại thì ta gọi tích X Y là nhập nhằng. Từ Định nghĩa 5.1, ta có các mệnh đề sau:
Mệnh đề 2.2. Cho X, Y A*. Khi đó, tích X Y là không nhập nhằng khi và chỉ khi
X–1X Y Y–1 {} =
Chứng minh. () Ta chứng minh, nếu tích X Y là không nhập nhằng thì
Phản chứng, giả sử, tích X Y là nhập nhằng, khi đó ta có x, x X và y, y Y, với x x, y y sao cho x y = xy. Không làm mất tính tổng quát, giả sử
|x| < |x|, khi đó sẽ tồn tại một từ u A+ sao cho x u = x và y = u y. Suy ra X– 1
X Y Y–1 {} , mâu thuẫn.
() Ta chứng minh, nếu X–1X Y Y–1 {} = thì tích X Y là không nhập
nhằng.
Phản chứng, giả sử X–1X Y Y–1 {} , khi đó sẽ tồn tại từ u A+ và x, x X, y, y Y sao cho x u = x và y = u y. Do đó x y = x u y = xy, với x
x, y y, nghĩa là tích X Y là nhập nhằng, mâu thuẫn.
Mệnh đề sau cho ta mối quan hệ giữa mã, mã prefix, mã suffix với tích
không nhập nhằng:
Mệnh đề 2.3. Cho X A+. Khi đó
(i) X là mã khi và chỉ khi tích X*X (hoặc tích X X*) là không nhập nhằng. (ii) X là mã prefix khi và chỉ khi tích XA* là không nhập nhằng.
(iii) X là mã suffix khi và chỉ khi tích A*X là không nhập nhằng.
Chứng minh. (i) Chứng minh X là mã khi và chỉ khi tích X*X (hoặc tích X X*) là không nhập nhằng.
Giả sử X là mã. Theo Định nghĩa 2.1 thì sẽ không xảy ra đẳng thức u x = ux (hoặc x u = xu), với x, x X (x x) và u, u X*. Nghĩa là tích X*X,
(hoặc tích X X*) là không nhập nhằng.
Ngược lại, giả sử tích X*X (hoặc tích X X*) là không nhập nhằng. Nếu X
không là mã, thì tồn tại từ w X*X (hoặc w X X*) có độ dài gắn nhất, w có
hai phân tích thành các từ trong X: w = u x = ux (hoặc w = x u = xu), với x, x X, u, u X* và x x, mâu thuẫn với giả thiết tích X*X (hoặc tích X X*) là không nhập nhằng.
(ii) Chứng minh X là mã prefix khi và chỉ khi tích XA* là không nhập nhằng.
Phản chứng, giả sử X không là mã prefix ta có XA+ X , khi đó tồn
tại x, x X (x x), u A+ sao cho x = xu. Hay ta có thể viết x = xv, mâu
thuẫn với giả thiết tích XA* là không nhập nhằng.
Ngược lại, giả sử tích XA* là nhập nhằng, khi đó ta có x, x X và u, u
A*, với x x, u u sao cho x u = xu. Không làm mất tính tổng quát, giả sử
|u| < |u|, khi đó sẽ tồn tại một từ v A+ sao cho vu = u, suy ra x = xv. Do đó
XA+ X , suy ra mâu thuẫn.
(iii) Chứng minh X là mã suffix khi và chỉ khi tích A*X là không nhập nhằng.
Ta chứng minh tương tự như trong (ii)
Qua mệnh đề 2.3 (i) cho ta thấy, đặc trưng của mã có thể được biểu diễn
qua khái niêm tích không nhập nhằng, vì vậy có thể xem tích không nhập
nhằng như trường hợp tổng quát của biểu diễn tích đối với mã. Từ đó, dựa vào khái niệm tích không nhập nhằng, ta có thể xây dựng nhiều lớp mã mới, sẽ được trình bày trong các phần tiếp theo.