Metamath Proof Explorer


Theorem submodlt

Description: The difference of an element of a half-open range of nonnegative integers and the upper bound of this range modulo an integer greater than the upper bound. (Contributed by AV, 1-Sep-2025)

Ref Expression
Assertion submodlt ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → A − B mod N = N + A - B

Proof

Step Hyp Ref Expression
1 elfzoel2 ⊢ A ∈ 0 ..^ B → B ∈ ℤ
2 1 zcnd ⊢ A ∈ 0 ..^ B → B ∈ ℂ
3 elfzoelz ⊢ A ∈ 0 ..^ B → A ∈ ℤ
4 3 zcnd ⊢ A ∈ 0 ..^ B → A ∈ ℂ
5 2 4 jca ⊢ A ∈ 0 ..^ B → B ∈ ℂ ∧ A ∈ ℂ
6 5 3ad2ant2 ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → B ∈ ℂ ∧ A ∈ ℂ
7 negsubdi2 ⊢ B ∈ ℂ ∧ A ∈ ℂ → − B − A = A − B
8 6 7 syl ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → − B − A = A − B
9 8 eqcomd ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → A − B = − B − A
10 9 oveq1d ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → A − B mod N = − B − A mod N
11 1 3 zsubcld ⊢ A ∈ 0 ..^ B → B − A ∈ ℤ
12 11 zred ⊢ A ∈ 0 ..^ B → B − A ∈ ℝ
13 12 3ad2ant2 ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → B − A ∈ ℝ
14 nnrp ⊢ N ∈ ℕ → N ∈ ℝ +
15 14 3ad2ant1 ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → N ∈ ℝ +
16 negmod ⊢ B − A ∈ ℝ ∧ N ∈ ℝ + → − B − A mod N = N − B − A mod N
17 13 15 16 syl2anc ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → − B − A mod N = N − B − A mod N
18 10 17 eqtrd ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → A − B mod N = N − B − A mod N
19 nnz ⊢ N ∈ ℕ → N ∈ ℤ
20 19 3ad2ant1 ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → N ∈ ℤ
21 11 3ad2ant2 ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → B − A ∈ ℤ
22 20 21 zsubcld ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → N − B − A ∈ ℤ
23 22 zred ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → N − B − A ∈ ℝ
24 1 zred ⊢ A ∈ 0 ..^ B → B ∈ ℝ
25 24 3ad2ant2 ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → B ∈ ℝ
26 nnre ⊢ N ∈ ℕ → N ∈ ℝ
27 26 3ad2ant1 ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → N ∈ ℝ
28 elfzo0suble ⊢ A ∈ 0 ..^ B → B − A ≤ B
29 28 3ad2ant2 ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → B − A ≤ B
30 simp3 ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → B < N
31 leltletr ⊢ B − A ∈ ℝ ∧ B ∈ ℝ ∧ N ∈ ℝ → B − A ≤ B ∧ B < N → B − A ≤ N
32 31 imp ⊢ B − A ∈ ℝ ∧ B ∈ ℝ ∧ N ∈ ℝ ∧ B − A ≤ B ∧ B < N → B − A ≤ N
33 13 25 27 29 30 32 syl32anc ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → B − A ≤ N
34 27 13 subge0d ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → 0 ≤ N − B − A ↔ B − A ≤ N
35 33 34 mpbird ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → 0 ≤ N − B − A
36 elfzo0 ⊢ A ∈ 0 ..^ B ↔ A ∈ ℕ 0 ∧ B ∈ ℕ ∧ A < B
37 nn0re ⊢ A ∈ ℕ 0 → A ∈ ℝ
38 nnre ⊢ B ∈ ℕ → B ∈ ℝ
39 posdif ⊢ A ∈ ℝ ∧ B ∈ ℝ → A < B ↔ 0 < B − A
40 37 38 39 syl2an ⊢ A ∈ ℕ 0 ∧ B ∈ ℕ → A < B ↔ 0 < B − A
41 40 biimp3a ⊢ A ∈ ℕ 0 ∧ B ∈ ℕ ∧ A < B → 0 < B − A
42 36 41 sylbi ⊢ A ∈ 0 ..^ B → 0 < B − A
43 42 3ad2ant2 ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → 0 < B − A
44 13 27 ltsubposd ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → 0 < B − A ↔ N − B − A < N
45 43 44 mpbid ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → N − B − A < N
46 modid ⊢ N − B − A ∈ ℝ ∧ N ∈ ℝ + ∧ 0 ≤ N − B − A ∧ N − B − A < N → N − B − A mod N = N − B − A
47 23 15 35 45 46 syl22anc ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → N − B − A mod N = N − B − A
48 nncn ⊢ N ∈ ℕ → N ∈ ℂ
49 48 3ad2ant1 ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → N ∈ ℂ
50 2 3ad2ant2 ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → B ∈ ℂ
51 4 3ad2ant2 ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → A ∈ ℂ
52 49 50 51 subsub3d ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → N − B − A = N + A - B
53 18 47 52 3eqtrd ⊢ N ∈ ℕ ∧ A ∈ 0 ..^ B ∧ B < N → A − B mod N = N + A - B