MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  modcyc Structured version   Visualization version   GIF version

Theorem modcyc 13257
Description: The modulo operation is periodic. (Contributed by NM, 10-Nov-2008.)
Assertion
Ref Expression
modcyc ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+𝑁 ∈ ℤ) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = (𝐴 mod 𝐵))

Proof of Theorem modcyc
StepHypRef Expression
1 zre 11963 . . . . . . . 8 (𝑁 ∈ ℤ → 𝑁 ∈ ℝ)
2 rpre 12375 . . . . . . . 8 (𝐵 ∈ ℝ+𝐵 ∈ ℝ)
3 remulcl 10599 . . . . . . . 8 ((𝑁 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (𝑁 · 𝐵) ∈ ℝ)
41, 2, 3syl2an 598 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) ∈ ℝ)
5 readdcl 10597 . . . . . . 7 ((𝐴 ∈ ℝ ∧ (𝑁 · 𝐵) ∈ ℝ) → (𝐴 + (𝑁 · 𝐵)) ∈ ℝ)
64, 5sylan2 595 . . . . . 6 ((𝐴 ∈ ℝ ∧ (𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+)) → (𝐴 + (𝑁 · 𝐵)) ∈ ℝ)
763impb 1112 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐴 + (𝑁 · 𝐵)) ∈ ℝ)
8 simp3 1135 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝐵 ∈ ℝ+)
9 modval 13222 . . . . 5 (((𝐴 + (𝑁 · 𝐵)) ∈ ℝ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = ((𝐴 + (𝑁 · 𝐵)) − (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)))))
107, 8, 9syl2anc 587 . . . 4 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = ((𝐴 + (𝑁 · 𝐵)) − (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)))))
11 recn 10604 . . . . . . . . . . . 12 (𝐴 ∈ ℝ → 𝐴 ∈ ℂ)
12113ad2ant1 1130 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝐴 ∈ ℂ)
134recnd 10646 . . . . . . . . . . . 12 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) ∈ ℂ)
14133adant1 1127 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) ∈ ℂ)
15 rpcnne0 12385 . . . . . . . . . . . 12 (𝐵 ∈ ℝ+ → (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0))
16153ad2ant3 1132 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0))
17 divdir 11300 . . . . . . . . . . 11 ((𝐴 ∈ ℂ ∧ (𝑁 · 𝐵) ∈ ℂ ∧ (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0)) → ((𝐴 + (𝑁 · 𝐵)) / 𝐵) = ((𝐴 / 𝐵) + ((𝑁 · 𝐵) / 𝐵)))
1812, 14, 16, 17syl3anc 1368 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) / 𝐵) = ((𝐴 / 𝐵) + ((𝑁 · 𝐵) / 𝐵)))
19 zcn 11964 . . . . . . . . . . . . 13 (𝑁 ∈ ℤ → 𝑁 ∈ ℂ)
20 divcan4 11302 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℂ ∧ 𝐵 ∈ ℂ ∧ 𝐵 ≠ 0) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
21203expb 1117 . . . . . . . . . . . . 13 ((𝑁 ∈ ℂ ∧ (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0)) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
2219, 15, 21syl2an 598 . . . . . . . . . . . 12 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
23223adant1 1127 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
2423oveq2d 7146 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 / 𝐵) + ((𝑁 · 𝐵) / 𝐵)) = ((𝐴 / 𝐵) + 𝑁))
2518, 24eqtrd 2856 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) / 𝐵) = ((𝐴 / 𝐵) + 𝑁))
2625fveq2d 6647 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)) = (⌊‘((𝐴 / 𝐵) + 𝑁)))
27 rerpdivcl 12397 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (𝐴 / 𝐵) ∈ ℝ)
28273adant2 1128 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐴 / 𝐵) ∈ ℝ)
29 simp2 1134 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝑁 ∈ ℤ)
30 fladdz 13178 . . . . . . . . 9 (((𝐴 / 𝐵) ∈ ℝ ∧ 𝑁 ∈ ℤ) → (⌊‘((𝐴 / 𝐵) + 𝑁)) = ((⌊‘(𝐴 / 𝐵)) + 𝑁))
3128, 29, 30syl2anc 587 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘((𝐴 / 𝐵) + 𝑁)) = ((⌊‘(𝐴 / 𝐵)) + 𝑁))
3226, 31eqtrd 2856 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)) = ((⌊‘(𝐴 / 𝐵)) + 𝑁))
3332oveq2d 7146 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵))) = (𝐵 · ((⌊‘(𝐴 / 𝐵)) + 𝑁)))
34 rpcn 12377 . . . . . . . 8 (𝐵 ∈ ℝ+𝐵 ∈ ℂ)
35343ad2ant3 1132 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝐵 ∈ ℂ)
36 reflcl 13149 . . . . . . . . . 10 ((𝐴 / 𝐵) ∈ ℝ → (⌊‘(𝐴 / 𝐵)) ∈ ℝ)
3736recnd 10646 . . . . . . . . 9 ((𝐴 / 𝐵) ∈ ℝ → (⌊‘(𝐴 / 𝐵)) ∈ ℂ)
3827, 37syl 17 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (⌊‘(𝐴 / 𝐵)) ∈ ℂ)
39383adant2 1128 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘(𝐴 / 𝐵)) ∈ ℂ)
40193ad2ant2 1131 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝑁 ∈ ℂ)
4135, 39, 40adddid 10642 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · ((⌊‘(𝐴 / 𝐵)) + 𝑁)) = ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝐵 · 𝑁)))
42 mulcom 10600 . . . . . . . . . 10 ((𝑁 ∈ ℂ ∧ 𝐵 ∈ ℂ) → (𝑁 · 𝐵) = (𝐵 · 𝑁))
4319, 34, 42syl2an 598 . . . . . . . . 9 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) = (𝐵 · 𝑁))
44433adant1 1127 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) = (𝐵 · 𝑁))
4544eqcomd 2827 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · 𝑁) = (𝑁 · 𝐵))
4645oveq2d 7146 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝐵 · 𝑁)) = ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵)))
4733, 41, 463eqtrd 2860 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵))) = ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵)))
4847oveq2d 7146 . . . 4 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) − (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)))) = ((𝐴 + (𝑁 · 𝐵)) − ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵))))
4934adantl 485 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → 𝐵 ∈ ℂ)
5049, 38mulcld 10638 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘(𝐴 / 𝐵))) ∈ ℂ)
51503adant2 1128 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘(𝐴 / 𝐵))) ∈ ℂ)
5212, 51, 14pnpcan2d 11012 . . . 4 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) − ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵))) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
5310, 48, 523eqtrd 2860 . . 3 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
54 modval 13222 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (𝐴 mod 𝐵) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
55543adant2 1128 . . 3 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐴 mod 𝐵) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
5653, 55eqtr4d 2859 . 2 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = (𝐴 mod 𝐵))
57563com23 1123 1 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+𝑁 ∈ ℤ) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = (𝐴 mod 𝐵))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 399  w3a 1084   = wceq 1538  wcel 2115  wne 3007  cfv 6328  (class class class)co 7130  cc 10512  cr 10513  0cc0 10514   + caddc 10517   · cmul 10519  cmin 10847   / cdiv 11274  cz 11959  +crp 12367  cfl 13143   mod cmo 13220
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1797  ax-4 1811  ax-5 1912  ax-6 1971  ax-7 2016  ax-8 2117  ax-9 2125  ax-10 2146  ax-11 2162  ax-12 2178  ax-ext 2793  ax-sep 5176  ax-nul 5183  ax-pow 5239  ax-pr 5303  ax-un 7436  ax-cnex 10570  ax-resscn 10571  ax-1cn 10572  ax-icn 10573  ax-addcl 10574  ax-addrcl 10575  ax-mulcl 10576  ax-mulrcl 10577  ax-mulcom 10578  ax-addass 10579  ax-mulass 10580  ax-distr 10581  ax-i2m1 10582  ax-1ne0 10583  ax-1rid 10584  ax-rnegex 10585  ax-rrecex 10586  ax-cnre 10587  ax-pre-lttri 10588  ax-pre-lttrn 10589  ax-pre-ltadd 10590  ax-pre-mulgt0 10591  ax-pre-sup 10592
This theorem depends on definitions:  df-bi 210  df-an 400  df-or 845  df-3or 1085  df-3an 1086  df-tru 1541  df-ex 1782  df-nf 1786  df-sb 2071  df-mo 2623  df-eu 2654  df-clab 2800  df-cleq 2814  df-clel 2892  df-nfc 2960  df-ne 3008  df-nel 3112  df-ral 3131  df-rex 3132  df-reu 3133  df-rmo 3134  df-rab 3135  df-v 3473  df-sbc 3750  df-csb 3858  df-dif 3913  df-un 3915  df-in 3917  df-ss 3927  df-pss 3929  df-nul 4267  df-if 4441  df-pw 4514  df-sn 4541  df-pr 4543  df-tp 4545  df-op 4547  df-uni 4812  df-iun 4894  df-br 5040  df-opab 5102  df-mpt 5120  df-tr 5146  df-id 5433  df-eprel 5438  df-po 5447  df-so 5448  df-fr 5487  df-we 5489  df-xp 5534  df-rel 5535  df-cnv 5536  df-co 5537  df-dm 5538  df-rn 5539  df-res 5540  df-ima 5541  df-pred 6121  df-ord 6167  df-on 6168  df-lim 6169  df-suc 6170  df-iota 6287  df-fun 6330  df-fn 6331  df-f 6332  df-f1 6333  df-fo 6334  df-f1o 6335  df-fv 6336  df-riota 7088  df-ov 7133  df-oprab 7134  df-mpo 7135  df-om 7556  df-wrecs 7922  df-recs 7983  df-rdg 8021  df-er 8264  df-en 8485  df-dom 8486  df-sdom 8487  df-sup 8882  df-inf 8883  df-pnf 10654  df-mnf 10655  df-xr 10656  df-ltxr 10657  df-le 10658  df-sub 10849  df-neg 10850  df-div 11275  df-nn 11616  df-n0 11876  df-z 11960  df-uz 12222  df-rp 12368  df-fl 13145  df-mod 13221
This theorem is referenced by:  modcyc2  13258  muladdmodid  13262  negmod  13267  modsumfzodifsn  13295  modxai  16381  wilthlem1  25632  wilthlem2  25633  lgsdir2lem1  25888  lgsdir2lem5  25892  lgseisenlem1  25938  dirkerper  42557  sqwvfoura  42689  sqwvfourb  42690  fourierswlem  42691  fouriersw  42692  3exp4mod41  43953  m1modmmod  44753
  Copyright terms: Public domain W3C validator