La lingua è regolare
Suggerimento: scartare nove
Idea di prova
Per un = 9 e b < 9 ,a=9b<9
costruire un automa con 9 stati etichettati da 0 a 8 . 0 è lo stato iniziale e l'unico stato finale è b . Dallo stato s , sulla cifra d , transizione allo stato ( s + d )9080bsdm o d9 .(s+d)mod9
Per gestire altri valori di a che sono coprime con 10 ,a10
raggruppare le cifre in pacchetti per trovare alcuni k tali che a divida 10 k - 1 (ad esempio prendere k = 3 se a = 37 perché 999 = 27 × 37 ).ka10k−1k=3a=37999=27×37
Per gestire i valori di a i cui unici fattori primi sono 2 e 5 ,a25
nota che si tratta di un numero finito di cifre alla fine.
Per generalizzare a tutti i valori di un e B ,ab
utilizzare il fatto che l'unione e intersezione di linguaggi regolari sono regolari, che le lingue finite sono regolari, e che i multipli di un 1 ⋅ un 2 sono esattamente i multipli di sia quando un 1 e un 2 sono coprimi.a1⋅a2a1a2
Si noti che utilizziamo qualsiasi tecnica sia conveniente; le tre principali tecniche elementari (espressioni regolari, automi finiti, proprietà set-teoriche) sono tutte rappresentate in questa dimostrazione.
Prova dettagliata
Lascia a = 2 p 5 q a ′ con a ′ coprime con 10 . Sia M ′ = { ¯ a ′a=2p5qa′a′10x + b ∣x∈Z∧a′x + b ≥ 0 } e M ″ = { ¯ 2 p 5 qM′={a′x+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯∣x∈Z∧a′x+b≥0}x + b ∣x∈Z∧2p5qx + b ≥ 0 } . Per aritmetica elementare, i numeri uguali a b modulo a sono esattamente i numeri uguali a b modulo a ′ e b modulo 2 p 5 q , quindi M ∩ { ¯ x ∣ x ≥ b } = M ′ ∩ M ″ ∩ { ¯ x ∣ x ≥ b } . Poiché l'intersezione delle lingue normali è regolare eM′′={2p5qx+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯∣x∈Z∧2p5qx+b≥0}baba′b2p5qM∩{x¯¯¯∣x≥b}=M′∩M′′∩{x¯¯¯∣x≥b}{ ¯ x ∣ x ≥ b } è regolare perché è il complemento di una lingua finita (quindi regolare), se anche M ′ e M ″ sono regolari, allora M ∩ { ¯ x ∣ x ≥ b } è regolare; e M è quindi regolare poiché è l'unione di quella lingua con un insieme finito. Quindi per concludere la prova è sufficiente dimostrare che M ′ e M ″ sono regolari.{x¯¯¯∣x≥b}M′M′′M∩{x¯¯¯∣x≥b}MM′M′′
Cominciamo con M ″ , cioè numeri modulo 2 p 5 q . Gli interi la cui espansione decimale è in M ″ sono caratterizzati dalle loro ultime cifre m a x ( p , q ) , poiché cambiare le cifre più a sinistra significa aggiungere un multiplo di 10 m a x ( p , q ) che è un multiplo di 2 p 5 q . Quindi 0 ∗ M ″ = ℵ ∗ F doveM′′2p5qM′′max(p,q)10max(p,q)2p5q0∗M′′=ℵ∗Fℵ è l'alfabeto di tutte le cifre e F è un insieme finito di parole di lunghezza m a x ( p , q ) e M ″ = ( ℵ ∗ F ) ∩ ( ( ℵ ∖ { 0 } ) ℵ ∗ ) è un normale linguaggio.ℵFmax(p,q)M′′=(ℵ∗F)∩((ℵ∖{0})ℵ∗)
Passiamo ora a M ′ , ovvero numeri modulo a ′ dove a ′ è coprime con 10 . Se a ′ = 1, allora M ′ è l'insieme delle espansioni decimali di tutti i naturali, ovvero M ′ = { 0 } ∪ ( ( ℵ ∖ { 0 } ) ℵ ∗ ) , che è un linguaggio regolare. Ora assumiamo un ′ > 1 . Sia k = a ′ -M′a′a′10a′=1M′M′={0}∪((ℵ∖{0})ℵ∗)a′>11 . Secondo il piccolo teorema di Fermat, 10 a ′ - 1 ≡ 1k=a′−1moda ′ , vale a dire che a ′ divide 10 k - 1 . Costruiamo un automa finito deterministico che riconoscerà 0 ∗ M ′ come segue:10a′−1≡1moda′a′10k−10∗M′
- Gli stati sono [ 0 , k - 1 ] × [ 0 , 10 k - 2 ] . La prima parte rappresenta una posizione della cifra e la seconda parte rappresenta un numero modulo 10 k - 1 .[0,k−1]×[0,10k−2]10k−1
- Lo stato iniziale è ( 0 , 0 ) .(0,0)
- Esiste una transizione etichettata d da ( i , u ) a ( j , v ) iff v ≡ d 10 i + umod10 k - 1 e j ≡ i + 1modk .
- Uno stato ( i , u ) è definitiva se e solo se u ≡ bmoda ′ (nota che a ′ divide 10 k - 1 ).
Lo stato ( i , u ) raggiunto da una parola ¯ x soddisfa i ≡ | ¯ x |modk ed u ≡ xmod10 k - 1 . Ciò può essere dimostrato dall'induzione sulla parola, seguendo le transizioni sull'automa; le transizioni sono calcolate per questo, usando il fatto che 10 k ≡ 1mod10 k - 1 . Pertanto l'automa riconosce le espansioni decimali (consentendo gli zeri iniziali) dei numeri della forma u + y 10 k con u ≡ bmoda ′ ; da 10 k ≡ 1moda ′ , l'automa riconosce le espansioni decimali dei numeri pari a b modulo a ′ consentendo zeri iniziali, che è 0 ∗ M ′ . Questa lingua è quindi dimostrata regolare. Infine, M ′ = ( 0 ∗ M ′ ) ∩ ( ( ℵ ∖ { 0 } ) ℵ ∗ ) è una lingua normale.
Per generalizzare a basi diverse da 10 , sostituire 2 e 5 sopra con tutti i fattori primi della base.
Prova formale
Lasciato come esercizio per il lettore, nel tuo proverore teorema preferito.