O idioma é regular.
Dica: expulse nove
Ideia de prova
Para e ,a=9b<9
crie um autômato com estados rotulados de a . é o estado inicial e o único estado final é . Do estado , no dígito , faça a transição para o estado .9080bsd(s+d)mod9
Para manipular outros valores de que são coprime com ,a10
agrupe dígitos em pacotes para encontrar algum tal que divida (por exemplo, pegue se porque ).ka10k−1k=3a=37999=27×37
Para manipular valores de cujos únicos fatores primos são e ,a25
observe que se trata de um número finito de dígitos no final.
Para generalizar para todos os valores de e ,ab
use o fato de que a união e a interseção de idiomas regulares são regulares, que idiomas finitos são regulares e que os múltiplos de são exatamente os múltiplos de ambos quando e são coprimes.a1⋅a2a1a2
Observe que usamos a técnica que for mais conveniente; as três principais técnicas elementares (expressões regulares, autômatos finitos, propriedades da teoria dos conjuntos) estão representadas nesta prova.
Prova detalhada
Seja com coprime com . Seja e . Por aritmética elementar, os números iguais a módulo são exatamente os números iguais a módulo e módulo , então . Como a interseção de idiomas regulares é regular ea=2p5qa′a′10M ″ = { ¯ 2 p 5 qM′={a′x+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯∣x∈Z∧a′x+b≥0}M′′={2p5qx+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯∣x∈Z∧2p5qx+b≥0}baba′b2p5qM∩{x¯¯¯∣x≥b}=M′∩M′′∩{x¯¯¯∣x≥b}{x¯¯¯∣x≥b}é regular porque é o complemento de uma linguagem finita (portanto regular), se e também são regulares, então é regular; e é, portanto, regular, pois é a união dessa linguagem com um conjunto finito. Portanto, para concluir a prova, basta provar que e são regulares.M′M′′M∩{x¯¯¯∣x≥b}MM′M′′
Vamos começar com , ou seja, números módulo . Os números inteiros cuja expansão decimal está em são caracterizados por seus últimos dígitos , pois alterar os dígitos à esquerda significa adicionar um múltiplo de que é um múltiplo de . Portanto, onde é o alfabeto de todos os dígitos e é um conjunto finito de palavras de comprimento e é um idioma comum.M′′2p5qM′′max(p,q)10max(p,q)2p5q0∗M′′=ℵ∗FℵFmax(p,q)M′′=(ℵ∗F)∩((ℵ∖{0})ℵ∗)
Passamos agora para , ou seja, números módulo onde é coprime com . Se então é o conjunto de expansões decimais de todos os naturais, ou seja, , que é um linguagem regular. Agora assumimos . Seja . Pelo pequeno teorema de Fermat, , ou seja, a divide . Construímos um autômato finito determinístico que reconhecerá seguinte maneira:M′a′a′10a′=1M′M′={0}∪((ℵ∖{0})ℵ∗)a′>1k=a′−110a′−1≡1moda′a′10k−10∗M′
- Os estados são . A primeira parte representa uma posição de dígito e a segunda parte representa um módulo numérico .[0,k−1]×[0,10k−2]10k−1
- O estado inicial é .(0,0)
- Existe uma transição rotulada de para se s e .d(i,u)(j,v)v≡d10i+umod10k−1j≡i+1modk
- Um estado é final se (observe que divide ).(i,u)u≡bmoda′a′10k−1
O estado alcançado a partir de uma palavra satisfaz e . Isso pode ser provado por indução sobre a palavra, após as transições no autômato; as transições são calculadas para isso, usando o fato de que . Assim, o autômato reconhece as expansões decimais (permitindo zeros iniciais) dos números da forma com ; Como , o autômato reconhece as expansões decimais dos números iguais a módulo permitindo zeros iniciais, o que é(i,u)x¯¯¯i≡|x¯¯¯|modku≡xmod10k−110k≡1mod10k−1u+y10ku≡bmoda′10k≡1moda′ba′0∗M′ . Esta linguagem é assim provada regular. Finalmente, é uma linguagem comum.M′=(0∗M′)∩((ℵ∖{0})ℵ∗)
Para generalizar para bases diferentes de , substitua e acima por todos os fatores primos da base.1025
Prova formal
Deixado como um exercício para o leitor, no seu provador de teoremas favorito.