Морфизмы и конечные подстановки
Пусть и — некоторые алфавиты (в частности, ). Морфизм — это произвольное отображение , такое, что и
Иначе говоря, морфизм (в данном контексте) — это гомоморфизм свободного моноида в свободный моноид (см. пример 2.7,д).
Теорема 7.11. Любой морфизм однозначно определяется конечным отображением
Обычно такое отображение задается в форме, напоминающей запись правил вывода порождающей грамматики:
где . Чтобы найти образ некоторого непустого слова , достаточно вместо каждой буквы подставить слово .
Например, если задается в виде , то и
Морфизм называется λ-свободным морфизмом, если Для всякого слова есть . Морфизм предыдущего примера не является λ-свободным.
Если — морфизм, то соответствие (обратное к ) из в называют инверсным морфизмом (инверсией морфизма, обратным морфизмом).
Таким образом, из определений сразу следует, что имеется . Для рассмотренного выше примера
Определение 7.11. Пусть — морфизм. Тогда для языка язык называют морфизмом языка , а для языка язык — инверсным морфизмом языка .
Таким образом, язык есть не что иное, как образ языка при отображении , а — прообраз языка при отображении .
Соответствие а называют конечной подстановкой, если:
1) а(А) = {А}; 2) для каждого  множество  конечно; 3) для любых цепочек  имеем  (т.е. множество слов  есть соединение языков  и  ).
Иначе говоря, конечная подстановка — это своего рода многозначный морфизм, на любой букве алфавита принимающий лишь конечное множество значений.
Точно так же как и для морфизма, легко показать, что конечная подстановка полностью определяется своими значениями на буквах алфавита и, следовательно, может быть задана, как и морфизм, в виде системы "правил замены", в которой одной и той же букве алфавита сопоставляется, вообще говоря, несколько цепочек в алфавите . Например:
или в более короткой записи: , как мы записывали правила вывода грамматик и системы команд конечных автоматов.
Для нашего примера .
Если — конечная подстановка, то обратное соответствие называется инверсной (обратной) конечной подстановкой (или инверсией конечной подстановки).
Заметим, что для фиксированного , согласно определениям обратного соответствия и сечения соответствия,
Если — конечная подстановка, то .
Если же , то .
Нетрудно заметить, что, согласно определению области определения и области значения соответствия, , a . Подчеркнем, что не все цепочки множества при содержатся в языке , но найдется хотя бы одна цепочка в , которая принадлежит .
Формулируемая далее теорема связывает конечную подстановку с основными операциями над языками: объединением языков, соединением языков и итерацией языка.
Теорема 7.12. Если и — языки в алфавите , а — конечная подстановка, то
![\begin{aligned}&{\scriptstyle{\mathsf{1)}}}\quad \sigma(K\cup L)= \sigma(K)\cup \sigma(L);\\[2pt] &{\scriptstyle{\mathsf{2)}}}\quad \sigma(KL)= \sigma(K) \sigma(L);\\[2pt] &{\scriptstyle{\mathsf{3)}}}\quad \sigma(L^{\ast})= (\sigma(L))^{\ast}. \end{aligned}](data:image/png;base64,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)
Основной результат, рассматриваемый в этом дополнении, составляет следующая теорема.
Теорема 7.13. Если и — регулярные языки, — конечная подстановка, то и — регулярные языки в алфавитах и соответственно.
Регулярность языка легко доказывается индукцией по построению регулярного выражения с привлечением теоремы 7.12, и детали этого доказательства нетрудно восстановить.
Доказательство регулярности языка значительно труднее. Мы используем "технику буферов", которая оказывается полезной в теории формальных языков при доказательстве многих утверждений. Пусть — конечный автомат, допускающий язык . Построим конечный автомат следующим образом. 1. , где .
С интуитивной точки зрения множество состояний конечного автомата включает "новое" состояние и конечное множество упорядоченных пар из , где — наибольшая длина среди всех длин слов из образов букв алфавита по подстановке . Образно говоря, каждое состояние нового автомата определяется состоянием старого автомата (допускающего ) и содержимым "буфера" конечной длины для слов из , длина которых не превышает .
2. .
3. Система команд содержит команды следующих видов:
![(i)~ s_0a\to [q_0,x]](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAAAWCAMAAAAsCCRTAAAAM1BMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADbQS4qAAAAEHRSTlMAEDEhwEGZAYHpYcGxUdBxHyOsoAAAAmFJREFUSMfFVomypCAM5Ew4hf//2k04dFRmyzdvttaqUUcC6XQ6ASH+1YWIjy33VwX7q1FfwlGre2Zpa7UTxybbk+/KyO8AMfjY1E0gvr9on+hezJeAPLedQFwcxPjAtHj7n4Bg839c8Ckl+pdAbNUX8XymEtx+CcT5JisJo2BkzbsJfUznMtJgnMzL9ZK+A2nmoBfWCkwQzoQDSOpTooKOCI+6kz5g9q/yV75g8HVZETbegJDssHi/MLdJympy4HR0IGja/ODE5vsScQfi6EviZXQebHnuODWuKQ5wATLM0yqPkiJOwnu5A+l+rdaDCYy7H6hQNFnmZKH0DwRIHZRld7o2Y09AgONVy86WeaAIrcUFyJjVPkydofK1enLtaYQljJXpCXsnvAHZ8iuQbl7IXNLgrQRKVa9iHakhb+OJcVIptcxA8ajKw4FjgIYYn6XGNvNE5sRUuCUoTe1MsXYAuYYuMPRuSpVFQ/8sezZuskyI06rCVcQrEMfLGaE5kt4Vcqddm4AcuU4HkNKBuSqL6+U7GlwTjaK0WF7HtEWBCXHSPCrfaU5BMhDb0jG9lcB8teYwgKgOVXmAS4ODzcGmxAFEWA8xw7bcohcNjc0NAeDqEy2+3MqkeYs02jV1afFSTffHarbPqnMdgZqLWT9t8aibRA4gAhOOQuAfnja9cCIa/b1vUuXIHzb+2eJZIpSQmRohNny7++Jpvw2L/GdjIXy0+2KugIPSxlgJ748BJPcjWu1XvEurPzsYmRgNFcZmR4AS/nYwEsp9/6jo40vsEhy8S62K3zkBvT87/+jw/AeU3BT1qJVmrAAAAABJRU5ErkJggg==) ,  ; ![(ii)~ [q,ax]\to[p,x]](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJ0AAAAWBAMAAAAof4P+AAAAMFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlTPQ5AAAAD3RSTlMAgcBBIdoQMaGRUfBhsHFbXX/jAAACjElEQVQ4y62VTWgTQRTH/2uS3SRu2hXRq2moivFrwQa8SBethwolMWJA0kPw4tehSxAJiDSgBj0lBPTioemhBxFJCULpwTaePaQI6knIyaNttMG2NMaXmd0Nm4SmhywJ83b4z2/mfcxbYOCPVzGMywk2NP09REJT7ZxyNJXOCaZJEoZ+Irwc5O+564FuntK1aUsj3gCcH4FiFS8HwRNovTQNLOgIawPgHSxY7z5lfzxtL14x0X6P7IvnXNuLd4RC+EXHk++k2DR4kyP3dKaYHLkPvA/eDdrON2rykplUkE+lzgjnOC9Ae6ciYuws2X84T1oZWmUqaUVehZwZP/nGxrto8MRYPRNm4ZJOzExXNMY7BXxyRYQCpRg1znuQxm+2hBm3Ec7VbTyPwnnyzwZcLDyuxHAkznnXgbHZquzdbfOyupNZZEg1XEFFfcR53kP8KamM57i2i2HGkxFWJmDyMKfBt9jm1SEzz00ja+bD5EU5D55NzBrpq6hGPshfkK8zaYsnbcG9waLS4Ea0o148aSMfrgjWq3wua+aX8iHvuLD+kKpgh/NqrahcIF7L+JYc28a8jXfJzC8dIp6QqRynqiVMWfUibPzCV6EAx1/u7zKyirNJslvIHvVn52viaO96KfrlJVSoao8dbuAp540n4FhO4x1dXmGR80L586oYJ0dC+bdRfeHF57zeu57nfjzX8fgDcDUfelXmPBcV0B0S0XF8aaOeNYqGXGY3awKiBt0WP9G6bzdbq/CM/npLw/tB2hK2+wFlwK317Qfilr0h8X61ZCmsfuXdprbYv7/I/1rjkGLjtRc6YiYvEFjD6/68fCBHo9veD7r6fSnXo73Ip7t50bJ9QjquDvxj9B8KrKORu7yoPQAAAABJRU5ErkJggg==) в том и только в том случае, когда  содержит команду  ; ![(iii)~[q,\lambda]a\to [q,x]](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKMAAAAWBAMAAABeRTF1AAAAMFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlTPQ5AAAAD3RSTlMAgQFcp0JBwdohEJHwMXESFIWAAAAC8klEQVQ4y62VT2jTYBjGn31pu7W1tf5lyMAwlc2DLHpxh2ECGwyHUAUPIkIr7OBtdhM7t8PKGDgcuh6GMpg0h8EqCOtg4EUpzh1UUIoIgggWvXmRmemcMvTN9yVp+mdjgh80aZOnv7zv9z7vG6DWYnLFhWYZ2xTyo5QrXfFp/BRbqfjnn0htZF+F0CeEJ+mjAwE6yVjgd865Hh4coMORTZCXK6PkwsALCpQephYR3ECDwpFu1Uicnr4ZsvKC1xR6KFfvbaC9gOAQpNEqpKr9K3K+YG8qX8+qkA1LNZD+rZAd5dvRVYUMGjWQU1shu4FQVwFveyBd08EaZYH0dX8R1UdoVSCnEnddoes20t99QAinEuGEQA4D2TnNPzSG3rYi+UcXyI549KrloEndREpG3fMSUtJspKo85vvvv5G9E4ubSEbF/rxD81z8jaGPJvIsR3oNxOxk84qJzEQCq64MFyykfwUZjq9Pt6ZG0jZSURUpvAEln3aQrUtQ41ZAk6OEZCO6zzB/Ht/FV9N1gWz5RXFyGeZz07CROCOjYRRsGQ4ypiEq6sY65tYJ6V+T69ZdyEYLmemHGQl3myLKw56S2ykjSloySsivRXZTIKVX1Ai+iHcF9SlX4otW4rEIG7c8k9fhlCe8MYf8fe3w0ilCpgUyTpsk0XemxgM/ZUIamNdKTK9dnphCAZnC2d3jctYxkSe1B0lPfKfWAzQJE2WU7HeoVEoz9GiBEn/Novu1ahPNKLMG+l5SLE/W0OlYXVrOob0TwTEFzLJ6eGLwGz5Q+2doTvVpVPH2xt6b6WqrSxPJdcz8ICc+urRYFMiH1JDTZCuSv3c15NHWfrDTovNCFCXYG37fWg+c7jnWQoXdRztUIIU1NnLuhjqUshsyQzf7nTm4xdho01xCjvTfKpsR9nBjB08gHNkGkqmfXFOcI9l5t2avPYLfJRPwlE/W2iP4XnIYQb1cKEWqXhQXBsoGHtjgJsgrA+aroLRCQtj8n19nfwHRCMVekwSOLAAAAABJRU5ErkJggg==) , где  .
Неформально работа конечного автомата может быть описана следующим образом.
Если входная цепочка , то допускает цепочку . Это соответствует команде вида при (при условии, конечно, что , т.е. что ). Если , то прочитает символ и по команде вида "заполнит буфер" какой-то цепочкой из множества , т.е. перейдет в одно из состояний , где . Далее начинает "моделировать" работу конечного автомата (согласно командам вида ), "читая содержимое буфера" и не обращая внимания на вход, т.е. делая λ-такты. Исчерпав цепочку перейдет в состояние , где в . Если и , то и . Иначе автомат может допустить другую цепочку из и т.д. В том случае, если ни из одного состояния нельзя попасть в состояние , однобуквенная цепочка и "зависает" в незаключительном состоянии.
Если цепочка имеет второй символ , то по команде вида будет обеспечена "подкачка буфера" некоторой цепочкой v и опять начнет работать за конечный автомат , читая буфер, и т.д.
Нетрудно видеть, что
при для всех и тогда и только тогда, когда цепочка читается на некотором пути из в , т.е. когда и .
Строгое доказательство равенства основано на индукции по длине пути в графе автомата. Это доказательство мы не приводим.
Следствие 7.5. Если и — регулярные языки, — морфизм, то и — регулярные языки в алфавитах и соответственно.
С интуитивной точки зрения доказанные результаты означают "устойчивость" множества регулярных языков относительно преобразований, задаваемых конечными подстановками (в частности, морфизмами).
Если заметили ошибку, опечатку или есть предложения, напишите в комментариях.
|