La langue est régulière.
Astuce: éliminer les neuf
Idée de preuve
Pour a = 9 et b < 9 ,a=9b<9
construire un automate avec 9 états étiquetés de 0 à 8 . 0 est l'état initial et le dernier état final est b . De l'état s , sur le chiffre d , transition vers l'état ( s + d )9080bsdm o d9 .(s+d)mod9
Pour gérer d'autres valeurs de a qui sont coprimes avec 10 ,a10
regrouper les chiffres en paquets pour trouver des k tels que a divise 10 k - 1 (par exemple, prendre k = 3 si a = 37 car 999 = 27 × 37 ).ka10k−1k=3a=37999=27×37
Pour gérer les valeurs de a dont les seuls facteurs premiers sont 2 et 5 ,a25
notez qu'il s'agit d'un nombre fini de chiffres à la fin.
Pour généraliser à toutes les valeurs de a et b ,ab
utiliser le fait que l'union et l'intersection des langues régulières sont régulières, que les langues finies sont régulières et que les multiples de a 1 ⋅ a 2 sont exactement les multiples des deux quand a 1 et a 2 sont premiers.a1⋅a2a1a2
Notez que nous utilisons la technique qui vous convient; les trois principales techniques élémentaires (expressions régulières, automates finis, propriétés de la théorie des ensembles) sont toutes représentées dans cette preuve.
Preuve détaillée
Soit a = 2 p 5 q a ' avec un ' premier avec 10 . Soit M ′ = { ¯ a ′a=2p5qa′a′10x + b ∣x∈Z∧a′x + b ≥ 0 } et M ″ = { ¯ 2 p 5 qM′={a′x+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯∣x∈Z∧a′x+b≥0}x + b ∣x∈Z∧2p5qx + b ≥ 0 } . Par arithmétique élémentaire, les nombres égaux à b modulo a sont exactement les nombres égaux à b modulo a ′ et à b modulo 2 p 5 q , donc M ∩ { ¯ x ∣ x ≥ b } = M ′ ∩ M ″ ∩ { ¯ x ∣ x ≥ b } . Étant donné que l'intersection des langues régulières est régulière, etM′′={2p5qx+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯∣x∈Z∧2p5qx+b≥0}baba′b2p5qM∩{x¯¯¯∣x≥b}=M′∩M′′∩{x¯¯¯∣x≥b}{ ¯ x ∣ x ≥ b } est régulier car c'est le complément d'un langage fini (donc régulier), si M ′ et M ″ sont également réguliers, alors M ∩ { ¯ x ∣ x ≥ b } est régulier; et M est donc régulier puisqu'il s'agit de l'union de cette langue avec un ensemble fini. Donc pour conclure la preuve il suffit de prouver que M ′ et M ″ sont réguliers.{x¯¯¯∣x≥b}M′M′′M∩{x¯¯¯∣x≥b}MM′M′′
Commençons par M ″ , soit les nombres modulo 2 p 5 q . Les entiers dont l'expansion décimale est en M " sont caractérisés par leurs derniers m a x ( p , q ) chiffres, car changer les chiffres plus à gauche signifie ajouter un multiple de 10 m a x ( p , q ) qui est un multiple de 2 p 5 q . D'où 0 ∗ M ″ = ℵ ∗ F oùM′′2p5qM′′max(p,q)10max(p,q)2p5q0∗M′′=ℵ∗Fℵ est l'alphabet de tous les chiffres et F est un ensemble fini de mots de longueur m a x ( p , q ) , et M ″ = ( ℵ ∗ F ) ∩ ( ( ℵ ∖ { 0 } ) ℵ ∗ ) est un régulier Langue.ℵFmax(p,q)M′′=(ℵ∗F)∩((ℵ∖{0})ℵ∗)
Passons maintenant à M ′ , c'est-à-dire les nombres modulo a ′ où a ′ est coprime avec 10 . Si a ′ = 1 alors M ′ est l'ensemble des expansions décimales de tous les naturels, c'est-à-dire M ′ = { 0 } ∪ ( ( ℵ ∖ { 0 } ) ℵ ∗ ) , qui est une langue régulière. Nous supposons maintenant un ′ > 1 . Soit k = a ′ -M′a′a′10a′=1M′M′={0}∪((ℵ∖{0})ℵ∗)a′>11 . Par le petit théorème de Fermat, 10 a ′ - 1 ≡ 1k=a′−1moda ′ , c'est-à-dire que a ′ divise 10 k - 1 . Nous construisons un automate fini déterministe qui reconnaîtra 0 ∗ M ′ comme suit:10a′−1≡1moda′a′10k−10∗M′
- Les états sont [ 0 , k - 1 ] × [ 0 , 10 k - 2 ] . La première partie représente une position numérique et la seconde partie représente un nombre modulo 10 k - 1 .[0,k−1]×[0,10k−2]
- L'état initial est ( 0 , 0 ) .
- Il y a une transition étiquetée d de ( i , u ) à ( j , v ) ssi v ≡ d 10 i + umod10 k - 1 et j ≡ i + 1modk .
- Un état ( i , u ) est final si u ≡ bmoda ′ (notez que a ′ divise 10 k - 1 ).
L'état ( i , u ) atteint par un mot ¯ x satisfait i ≡ | ¯ x |modk et u ≡ xmod10 k - 1 . Cela peut être prouvé par induction sur le mot, en suivant les transitions sur l'automate; les transitions sont calculées pour cela, en utilisant le fait que 10 k ≡ 1mod10 k - 1 . Ainsi l'automate reconnaît les expansions décimales (permettant les zéros initiaux) des nombres de la forme u + y 10 k avec u ≡ bmoda ′ ; depuis 10 k ≡ 1moda ' , l'automate reconnaît les expansions décimales des nombres égaux à b modulo a ' permettant des zéros initiaux, qui est 0 ∗ M ' . Cette langue s'est donc avérée régulière. Enfin, M ′ = ( 0 ∗ M ′ ) ∩ ( ( ℵ ∖ { 0 } ) ℵ ∗ ) est un langage régulier.
Pour généraliser aux bases autres que 10 , remplacer 2 et 5 ci-dessus par tous les facteurs premiers de la base.
Preuve formelle
À gauche comme exercice pour le lecteur, dans votre prouveur de théorème préféré.