Estou interessado em provar que é regular se é regular, mas parece que não estou chegando a lugar algum. Se possível, eu estava esperando uma dica para me levar na direção certa. Obrigado pela ajuda.
Minha idéia para demonstrar a regularidade da linguagem raiz quadrada foi tentar considerar duas máquinas rodando em conjunto. Um deles aceita o idioma originale o outro executa a mesma máquina ao contrário (espero que seja um NFA). Eu queria aceitar as palavras que se encontravam no meio (isto é, Onde são os estados do DFA que aceitam ) No entanto, não acho que isso funcione.
Respostas:
Aqui está como implementar sua solução. DeixeiA=⟨Q,q0,F,δ⟩ ser um DFA para L . Vamos construir uma NFAA′=⟨Q′,q′0,F′,δ′⟩ do seguinte modo:
Deixamos ao leitor a prova formal de queL(A′)=L(A)−−−−√ .
Aqui está outra solução, que cria um DFA. Agora corremos|Q| cópias de A em paralelo, começando em cada estado de A :
Qual é o significado da condiçãof(f(q0))∈F ? Depois de ler uma palavraw , o autômato A′ está em um estado f dado por f(q)=δ(q,w) . portantof(f(q0))=δ(δ(q0,w),w)=δ(q0,w2) .
fonte