Metamath Proof Explorer


Theorem modlt0b

Description: An integer with an absolute value less than a positive integer is 0 modulo the positive integer iff it is 0. (Contributed by AV, 21-Nov-2025)

Ref Expression
Assertion modlt0b ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ∧ ( abs ‘ 𝑋 ) < 𝑁 ) → ( ( 𝑋 mod 𝑁 ) = 0 ↔ 𝑋 = 0 ) )

Proof

Step Hyp Ref Expression
1 pm3.22 ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ) → ( 𝑋 ∈ ℤ ∧ 𝑁 ∈ ℕ ) )
2 1 3adant3 ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ∧ ( abs ‘ 𝑋 ) < 𝑁 ) → ( 𝑋 ∈ ℤ ∧ 𝑁 ∈ ℕ ) )
3 mod0mul ⊢ ( ( 𝑋 ∈ ℤ ∧ 𝑁 ∈ ℕ ) → ( ( 𝑋 mod 𝑁 ) = 0 → ∃ 𝑧 ∈ ℤ 𝑋 = ( 𝑧 · 𝑁 ) ) )
4 2 3 syl ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ∧ ( abs ‘ 𝑋 ) < 𝑁 ) → ( ( 𝑋 mod 𝑁 ) = 0 → ∃ 𝑧 ∈ ℤ 𝑋 = ( 𝑧 · 𝑁 ) ) )
5 simpr ⊢ ( ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ∧ ( abs ‘ 𝑋 ) < 𝑁 ) ∧ 𝑧 ∈ ℤ ) ∧ 𝑋 = ( 𝑧 · 𝑁 ) ) → 𝑋 = ( 𝑧 · 𝑁 ) )
6 fveq2 ⊢ ( 𝑋 = ( 𝑧 · 𝑁 ) → ( abs ‘ 𝑋 ) = ( abs ‘ ( 𝑧 · 𝑁 ) ) )
7 6 adantl ⊢ ( ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) ∧ 𝑋 = ( 𝑧 · 𝑁 ) ) → ( abs ‘ 𝑋 ) = ( abs ‘ ( 𝑧 · 𝑁 ) ) )
8 7 breq1d ⊢ ( ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) ∧ 𝑋 = ( 𝑧 · 𝑁 ) ) → ( ( abs ‘ 𝑋 ) < 𝑁 ↔ ( abs ‘ ( 𝑧 · 𝑁 ) ) < 𝑁 ) )
9 zcn ⊢ ( 𝑧 ∈ ℤ → 𝑧 ∈ ℂ )
10 nncn ⊢ ( 𝑁 ∈ ℕ → 𝑁 ∈ ℂ )
11 absmul ⊢ ( ( 𝑧 ∈ ℂ ∧ 𝑁 ∈ ℂ ) → ( abs ‘ ( 𝑧 · 𝑁 ) ) = ( ( abs ‘ 𝑧 ) · ( abs ‘ 𝑁 ) ) )
12 9 10 11 syl2anr ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( abs ‘ ( 𝑧 · 𝑁 ) ) = ( ( abs ‘ 𝑧 ) · ( abs ‘ 𝑁 ) ) )
13 nnre ⊢ ( 𝑁 ∈ ℕ → 𝑁 ∈ ℝ )
14 nnnn0 ⊢ ( 𝑁 ∈ ℕ → 𝑁 ∈ ℕ0 )
15 14 nn0ge0d ⊢ ( 𝑁 ∈ ℕ → 0 ≤ 𝑁 )
16 13 15 absidd ⊢ ( 𝑁 ∈ ℕ → ( abs ‘ 𝑁 ) = 𝑁 )
17 16 adantr ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( abs ‘ 𝑁 ) = 𝑁 )
18 17 oveq2d ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( ( abs ‘ 𝑧 ) · ( abs ‘ 𝑁 ) ) = ( ( abs ‘ 𝑧 ) · 𝑁 ) )
19 12 18 eqtrd ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( abs ‘ ( 𝑧 · 𝑁 ) ) = ( ( abs ‘ 𝑧 ) · 𝑁 ) )
20 19 breq1d ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( ( abs ‘ ( 𝑧 · 𝑁 ) ) < 𝑁 ↔ ( ( abs ‘ 𝑧 ) · 𝑁 ) < 𝑁 ) )
21 9 abscld ⊢ ( 𝑧 ∈ ℤ → ( abs ‘ 𝑧 ) ∈ ℝ )
22 21 adantl ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( abs ‘ 𝑧 ) ∈ ℝ )
23 13 adantr ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → 𝑁 ∈ ℝ )
24 nngt0 ⊢ ( 𝑁 ∈ ℕ → 0 < 𝑁 )
25 13 24 jca ⊢ ( 𝑁 ∈ ℕ → ( 𝑁 ∈ ℝ ∧ 0 < 𝑁 ) )
26 25 adantr ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( 𝑁 ∈ ℝ ∧ 0 < 𝑁 ) )
27 ltmuldiv ⊢ ( ( ( abs ‘ 𝑧 ) ∈ ℝ ∧ 𝑁 ∈ ℝ ∧ ( 𝑁 ∈ ℝ ∧ 0 < 𝑁 ) ) → ( ( ( abs ‘ 𝑧 ) · 𝑁 ) < 𝑁 ↔ ( abs ‘ 𝑧 ) < ( 𝑁 / 𝑁 ) ) )
28 22 23 26 27 syl3anc ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( ( ( abs ‘ 𝑧 ) · 𝑁 ) < 𝑁 ↔ ( abs ‘ 𝑧 ) < ( 𝑁 / 𝑁 ) ) )
29 nnne0 ⊢ ( 𝑁 ∈ ℕ → 𝑁 ≠ 0 )
30 10 29 dividd ⊢ ( 𝑁 ∈ ℕ → ( 𝑁 / 𝑁 ) = 1 )
31 30 adantr ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( 𝑁 / 𝑁 ) = 1 )
32 31 breq2d ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( ( abs ‘ 𝑧 ) < ( 𝑁 / 𝑁 ) ↔ ( abs ‘ 𝑧 ) < 1 ) )
33 28 32 bitrd ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( ( ( abs ‘ 𝑧 ) · 𝑁 ) < 𝑁 ↔ ( abs ‘ 𝑧 ) < 1 ) )
34 zabs0b ⊢ ( 𝑧 ∈ ℤ → ( ( abs ‘ 𝑧 ) < 1 ↔ 𝑧 = 0 ) )
35 34 adantl ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( ( abs ‘ 𝑧 ) < 1 ↔ 𝑧 = 0 ) )
36 oveq1 ⊢ ( 𝑧 = 0 → ( 𝑧 · 𝑁 ) = ( 0 · 𝑁 ) )
37 10 mul02d ⊢ ( 𝑁 ∈ ℕ → ( 0 · 𝑁 ) = 0 )
38 36 37 sylan9eqr ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 = 0 ) → ( 𝑧 · 𝑁 ) = 0 )
39 38 ex ⊢ ( 𝑁 ∈ ℕ → ( 𝑧 = 0 → ( 𝑧 · 𝑁 ) = 0 ) )
40 39 adantr ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( 𝑧 = 0 → ( 𝑧 · 𝑁 ) = 0 ) )
41 35 40 sylbid ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( ( abs ‘ 𝑧 ) < 1 → ( 𝑧 · 𝑁 ) = 0 ) )
42 33 41 sylbid ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( ( ( abs ‘ 𝑧 ) · 𝑁 ) < 𝑁 → ( 𝑧 · 𝑁 ) = 0 ) )
43 20 42 sylbid ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) → ( ( abs ‘ ( 𝑧 · 𝑁 ) ) < 𝑁 → ( 𝑧 · 𝑁 ) = 0 ) )
44 43 adantr ⊢ ( ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) ∧ 𝑋 = ( 𝑧 · 𝑁 ) ) → ( ( abs ‘ ( 𝑧 · 𝑁 ) ) < 𝑁 → ( 𝑧 · 𝑁 ) = 0 ) )
45 8 44 sylbid ⊢ ( ( ( 𝑁 ∈ ℕ ∧ 𝑧 ∈ ℤ ) ∧ 𝑋 = ( 𝑧 · 𝑁 ) ) → ( ( abs ‘ 𝑋 ) < 𝑁 → ( 𝑧 · 𝑁 ) = 0 ) )
46 45 expl ⊢ ( 𝑁 ∈ ℕ → ( ( 𝑧 ∈ ℤ ∧ 𝑋 = ( 𝑧 · 𝑁 ) ) → ( ( abs ‘ 𝑋 ) < 𝑁 → ( 𝑧 · 𝑁 ) = 0 ) ) )
47 46 adantr ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ) → ( ( 𝑧 ∈ ℤ ∧ 𝑋 = ( 𝑧 · 𝑁 ) ) → ( ( abs ‘ 𝑋 ) < 𝑁 → ( 𝑧 · 𝑁 ) = 0 ) ) )
48 47 com23 ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ) → ( ( abs ‘ 𝑋 ) < 𝑁 → ( ( 𝑧 ∈ ℤ ∧ 𝑋 = ( 𝑧 · 𝑁 ) ) → ( 𝑧 · 𝑁 ) = 0 ) ) )
49 48 3impia ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ∧ ( abs ‘ 𝑋 ) < 𝑁 ) → ( ( 𝑧 ∈ ℤ ∧ 𝑋 = ( 𝑧 · 𝑁 ) ) → ( 𝑧 · 𝑁 ) = 0 ) )
50 49 impl ⊢ ( ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ∧ ( abs ‘ 𝑋 ) < 𝑁 ) ∧ 𝑧 ∈ ℤ ) ∧ 𝑋 = ( 𝑧 · 𝑁 ) ) → ( 𝑧 · 𝑁 ) = 0 )
51 5 50 eqtrd ⊢ ( ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ∧ ( abs ‘ 𝑋 ) < 𝑁 ) ∧ 𝑧 ∈ ℤ ) ∧ 𝑋 = ( 𝑧 · 𝑁 ) ) → 𝑋 = 0 )
52 51 ex ⊢ ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ∧ ( abs ‘ 𝑋 ) < 𝑁 ) ∧ 𝑧 ∈ ℤ ) → ( 𝑋 = ( 𝑧 · 𝑁 ) → 𝑋 = 0 ) )
53 52 rexlimdva ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ∧ ( abs ‘ 𝑋 ) < 𝑁 ) → ( ∃ 𝑧 ∈ ℤ 𝑋 = ( 𝑧 · 𝑁 ) → 𝑋 = 0 ) )
54 4 53 syld ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ∧ ( abs ‘ 𝑋 ) < 𝑁 ) → ( ( 𝑋 mod 𝑁 ) = 0 → 𝑋 = 0 ) )
55 oveq1 ⊢ ( 𝑋 = 0 → ( 𝑋 mod 𝑁 ) = ( 0 mod 𝑁 ) )
56 nnrp ⊢ ( 𝑁 ∈ ℕ → 𝑁 ∈ ℝ+ )
57 0mod ⊢ ( 𝑁 ∈ ℝ+ → ( 0 mod 𝑁 ) = 0 )
58 56 57 syl ⊢ ( 𝑁 ∈ ℕ → ( 0 mod 𝑁 ) = 0 )
59 58 3ad2ant1 ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ∧ ( abs ‘ 𝑋 ) < 𝑁 ) → ( 0 mod 𝑁 ) = 0 )
60 55 59 sylan9eqr ⊢ ( ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ∧ ( abs ‘ 𝑋 ) < 𝑁 ) ∧ 𝑋 = 0 ) → ( 𝑋 mod 𝑁 ) = 0 )
61 60 ex ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ∧ ( abs ‘ 𝑋 ) < 𝑁 ) → ( 𝑋 = 0 → ( 𝑋 mod 𝑁 ) = 0 ) )
62 54 61 impbid ⊢ ( ( 𝑁 ∈ ℕ ∧ 𝑋 ∈ ℤ ∧ ( abs ‘ 𝑋 ) < 𝑁 ) → ( ( 𝑋 mod 𝑁 ) = 0 ↔ 𝑋 = 0 ) )