Вы путаете два разных понятия: языки / строки и алфавиты / символы.
Языки - это наборы строк.Алфавиты - это (непустые конечные) наборы символов.Строки - это (обычно конечные) последовательности символов.
Вы говорите, что L1 определяется двумя буквами, но затем пишете L1 = {aa, b}.Таким образом, вы можете иметь в виду две вещи:
- L1 - это набор строк над алфавитом {aa, b}, где aa и b понимаются как символы.
- L1 - это языкиз двух строк aa и b, где a и b понимаются как символы подразумеваемого алфавита.
При первом толковании S1 и S2 имеют длины 2 и 4 символа соответственно.Согласно второй интерпретации, S1 и S2 имеют длину 3 и 6 символов соответственно.Важно то, что значение * (звездочка Клини) перегружено:
- E *, где E - алфавит, это набор всех строк над символами в алфавите.
- L *, где L - язык, - это набор всех строк, образованных путем объединения строк в L друг с другом.
Часто, когда это не вызывает путаницы, алфавиты могут рассматриваться как по существутак же, как (конечные, непустые) языки строк длиной одна.
ОДНАКО, они не одно и то же, и отбрасывание этого различия смутило вас (и многих других людей) ... так что это может бытьупрощение сомнительного значения.