Metamath Proof Explorer


Theorem zndvds

Description: Express equality of equivalence classes in ZZ / n ZZ in terms of divisibility. (Contributed by Mario Carneiro, 15-Jun-2015)

Ref Expression
Hypotheses zncyg.y 𝑌 = ( ℤ/nℤ ‘ 𝑁 )
zndvds.2 𝐿 = ( ℤRHom ‘ 𝑌 )
Assertion zndvds ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( ( 𝐿𝐴 ) = ( 𝐿𝐵 ) ↔ 𝑁 ∥ ( 𝐴𝐵 ) ) )

Proof

Step Hyp Ref Expression
1 zncyg.y 𝑌 = ( ℤ/nℤ ‘ 𝑁 )
2 zndvds.2 𝐿 = ( ℤRHom ‘ 𝑌 )
3 eqcom ( ( 𝐿𝐴 ) = ( 𝐿𝐵 ) ↔ ( 𝐿𝐵 ) = ( 𝐿𝐴 ) )
4 eqid ( RSpan ‘ ℤring ) = ( RSpan ‘ ℤring )
5 eqid ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) = ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) )
6 4 5 1 2 znzrhval ( ( 𝑁 ∈ ℕ0𝐵 ∈ ℤ ) → ( 𝐿𝐵 ) = [ 𝐵 ] ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) )
7 6 3adant2 ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( 𝐿𝐵 ) = [ 𝐵 ] ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) )
8 4 5 1 2 znzrhval ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ) → ( 𝐿𝐴 ) = [ 𝐴 ] ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) )
9 8 3adant3 ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( 𝐿𝐴 ) = [ 𝐴 ] ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) )
10 7 9 eqeq12d ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( ( 𝐿𝐵 ) = ( 𝐿𝐴 ) ↔ [ 𝐵 ] ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) = [ 𝐴 ] ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) ) )
11 zringring ring ∈ Ring
12 nn0z ( 𝑁 ∈ ℕ0𝑁 ∈ ℤ )
13 12 3ad2ant1 ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → 𝑁 ∈ ℤ )
14 13 snssd ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → { 𝑁 } ⊆ ℤ )
15 zringbas ℤ = ( Base ‘ ℤring )
16 eqid ( LIdeal ‘ ℤring ) = ( LIdeal ‘ ℤring )
17 4 15 16 rspcl ( ( ℤring ∈ Ring ∧ { 𝑁 } ⊆ ℤ ) → ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ∈ ( LIdeal ‘ ℤring ) )
18 11 14 17 sylancr ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ∈ ( LIdeal ‘ ℤring ) )
19 16 lidlsubg ( ( ℤring ∈ Ring ∧ ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ∈ ( LIdeal ‘ ℤring ) ) → ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ∈ ( SubGrp ‘ ℤring ) )
20 11 18 19 sylancr ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ∈ ( SubGrp ‘ ℤring ) )
21 15 5 eqger ( ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ∈ ( SubGrp ‘ ℤring ) → ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) Er ℤ )
22 20 21 syl ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) Er ℤ )
23 simp3 ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → 𝐵 ∈ ℤ )
24 22 23 erth ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( 𝐵 ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) 𝐴 ↔ [ 𝐵 ] ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) = [ 𝐴 ] ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) ) )
25 zringabl ring ∈ Abel
26 15 16 lidlss ( ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ∈ ( LIdeal ‘ ℤring ) → ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ⊆ ℤ )
27 18 26 syl ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ⊆ ℤ )
28 eqid ( -g ‘ ℤring ) = ( -g ‘ ℤring )
29 15 28 5 eqgabl ( ( ℤring ∈ Abel ∧ ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ⊆ ℤ ) → ( 𝐵 ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) 𝐴 ↔ ( 𝐵 ∈ ℤ ∧ 𝐴 ∈ ℤ ∧ ( 𝐴 ( -g ‘ ℤring ) 𝐵 ) ∈ ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) ) )
30 25 27 29 sylancr ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( 𝐵 ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) 𝐴 ↔ ( 𝐵 ∈ ℤ ∧ 𝐴 ∈ ℤ ∧ ( 𝐴 ( -g ‘ ℤring ) 𝐵 ) ∈ ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) ) )
31 simp2 ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → 𝐴 ∈ ℤ )
32 23 31 jca ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( 𝐵 ∈ ℤ ∧ 𝐴 ∈ ℤ ) )
33 32 biantrurd ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( ( 𝐴 ( -g ‘ ℤring ) 𝐵 ) ∈ ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ↔ ( ( 𝐵 ∈ ℤ ∧ 𝐴 ∈ ℤ ) ∧ ( 𝐴 ( -g ‘ ℤring ) 𝐵 ) ∈ ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) ) )
34 df-3an ( ( 𝐵 ∈ ℤ ∧ 𝐴 ∈ ℤ ∧ ( 𝐴 ( -g ‘ ℤring ) 𝐵 ) ∈ ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) ↔ ( ( 𝐵 ∈ ℤ ∧ 𝐴 ∈ ℤ ) ∧ ( 𝐴 ( -g ‘ ℤring ) 𝐵 ) ∈ ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) )
35 33 34 bitr4di ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( ( 𝐴 ( -g ‘ ℤring ) 𝐵 ) ∈ ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ↔ ( 𝐵 ∈ ℤ ∧ 𝐴 ∈ ℤ ∧ ( 𝐴 ( -g ‘ ℤring ) 𝐵 ) ∈ ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) ) )
36 zsubrg ℤ ∈ ( SubRing ‘ ℂfld )
37 subrgsubg ( ℤ ∈ ( SubRing ‘ ℂfld ) → ℤ ∈ ( SubGrp ‘ ℂfld ) )
38 36 37 mp1i ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ℤ ∈ ( SubGrp ‘ ℂfld ) )
39 cnfldsub − = ( -g ‘ ℂfld )
40 df-zring ring = ( ℂflds ℤ )
41 39 40 28 subgsub ( ( ℤ ∈ ( SubGrp ‘ ℂfld ) ∧ 𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( 𝐴𝐵 ) = ( 𝐴 ( -g ‘ ℤring ) 𝐵 ) )
42 38 41 syld3an1 ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( 𝐴𝐵 ) = ( 𝐴 ( -g ‘ ℤring ) 𝐵 ) )
43 42 eqcomd ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( 𝐴 ( -g ‘ ℤring ) 𝐵 ) = ( 𝐴𝐵 ) )
44 dvdsrzring ∥ = ( ∥r ‘ ℤring )
45 15 4 44 rspsn ( ( ℤring ∈ Ring ∧ 𝑁 ∈ ℤ ) → ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) = { 𝑥𝑁𝑥 } )
46 11 13 45 sylancr ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) = { 𝑥𝑁𝑥 } )
47 43 46 eleq12d ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( ( 𝐴 ( -g ‘ ℤring ) 𝐵 ) ∈ ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ↔ ( 𝐴𝐵 ) ∈ { 𝑥𝑁𝑥 } ) )
48 ovex ( 𝐴𝐵 ) ∈ V
49 breq2 ( 𝑥 = ( 𝐴𝐵 ) → ( 𝑁𝑥𝑁 ∥ ( 𝐴𝐵 ) ) )
50 48 49 elab ( ( 𝐴𝐵 ) ∈ { 𝑥𝑁𝑥 } ↔ 𝑁 ∥ ( 𝐴𝐵 ) )
51 47 50 bitrdi ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( ( 𝐴 ( -g ‘ ℤring ) 𝐵 ) ∈ ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ↔ 𝑁 ∥ ( 𝐴𝐵 ) ) )
52 30 35 51 3bitr2d ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( 𝐵 ( ℤring ~QG ( ( RSpan ‘ ℤring ) ‘ { 𝑁 } ) ) 𝐴𝑁 ∥ ( 𝐴𝐵 ) ) )
53 10 24 52 3bitr2d ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( ( 𝐿𝐵 ) = ( 𝐿𝐴 ) ↔ 𝑁 ∥ ( 𝐴𝐵 ) ) )
54 3 53 syl5bb ( ( 𝑁 ∈ ℕ0𝐴 ∈ ℤ ∧ 𝐵 ∈ ℤ ) → ( ( 𝐿𝐴 ) = ( 𝐿𝐵 ) ↔ 𝑁 ∥ ( 𝐴𝐵 ) ) )