Первая нормальная форма.
Определение 19 (Конъюнктивно-множественные регулярные выражения) Конъюнктивно-множественные (к.-м.) регулярные выражения над множеством E (regKM(E))определяются следующим образом:
Определение 20 (Первая нормальная форма) Схема S=(T,E,A,p,a,r) представлена в первой нормальной форме (эквивалентная форма), если :
e E p(e)=r0|..|rn , где i ri regKM({id(E),T})Teoрема 5 (Существование первой нормальной формы) Для любой схемы S=(T,E,A,p,a,r) существует схема эквивалентная ей, которая представлена в первой нормальной форме.
Для доказательства этой теоремы следует воспользоваться следствием 1 из теоремы 3. Пусть e - некий элемент схемы S=(T,E,A,p,a,r). Соответственно p(e) - регулярное выражение. Используя эквивалентные преобразования регулярных выражений r?
r|? (3.1.2) и r+ r*,r (3.1.3) мы приходим к регулярному выражению, соответствующему исходному, но не содержащему операций ? и +. После чего следует воспользоваться преобразованиями (r1| r2),r3 ( r1, r3)|( r1, r2) (3.1.6) и (r1| r2)* ( r1*, r2*)* (3.1.8) , после которых операция конкатенации ("|") "поднимается". Таким образом, для любого типа элемента e, p(e) преобразуется в выражение p'(e) вида r0|..|rn , где i ri regKM({id(E),T}). В силу следствия 1 новая схема S'=(T,E,A,p',a,r) , представленная в первой нормальной форме, эквивалентна схеме SСледует заметить, что для регулярных выражений с использованием операции позитивного замыкания ("+") вместо операции Клини ("*")теорема о существовании нормальной формы также верна.
Определение 19' (Конъюнктивно-множественные регулярные выражения) Конъюнктивно-множественные (к.-м.) регулярные выражения над множеством E (regKM(E))определяются следующим образом:
Если r1 и r2- к.-м. регулярные выражения, то r1, r2 - к.-м. регулярные выражения
Принимая альтернативное определение конъюнктивно-множественных регулярных выражений, доказательство теоремы 5 частично меняется. Так, вместо преобразования r+ r*,r используется r* r+|? (3.1.9). А вместо преобразования (r1| r2)* ( r1*, r2*)* для поднятия конкатенации применяется (r1|r2)+ ( r1+,r2+)+|( r2+, r1+)+| r1+| r2+|( r1+, r2+)+,r1+|( r2+, r1+),r2+ (3.1.17)
Пример 6
Приведем к первой форме r0|..|rn , где i ri regKM({id(E),T}) следующее регулярное выражение: ((b|c)?,(f?,b*)*), используя эквивалентные преобразования
(b|c)?,(f?,b*)* (b|c|? ),((f|? ),b*)* (b|c|? ),((f,b*)|(b*))* (b|c|? ),((f,b*)*,(b**))*
(b|c|? ),((f,b*)*,b*)* (b|c|? ),((f,b*)*)* (b|c|? ),(f,b*)* b,(f,b*)*| c,(f,b*)*| (f,b*)*