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

Theorem modcyc 12916
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 11630 . . . . . . . 8 (𝑁 ∈ ℤ → 𝑁 ∈ ℝ)
2 rpre 12039 . . . . . . . 8 (𝐵 ∈ ℝ+𝐵 ∈ ℝ)
3 remulcl 10276 . . . . . . . 8 ((𝑁 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (𝑁 · 𝐵) ∈ ℝ)
41, 2, 3syl2an 589 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) ∈ ℝ)
5 readdcl 10274 . . . . . . 7 ((𝐴 ∈ ℝ ∧ (𝑁 · 𝐵) ∈ ℝ) → (𝐴 + (𝑁 · 𝐵)) ∈ ℝ)
64, 5sylan2 586 . . . . . 6 ((𝐴 ∈ ℝ ∧ (𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+)) → (𝐴 + (𝑁 · 𝐵)) ∈ ℝ)
763impb 1143 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐴 + (𝑁 · 𝐵)) ∈ ℝ)
8 simp3 1168 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝐵 ∈ ℝ+)
9 modval 12881 . . . . 5 (((𝐴 + (𝑁 · 𝐵)) ∈ ℝ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = ((𝐴 + (𝑁 · 𝐵)) − (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)))))
107, 8, 9syl2anc 579 . . . 4 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = ((𝐴 + (𝑁 · 𝐵)) − (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)))))
11 recn 10281 . . . . . . . . . . . 12 (𝐴 ∈ ℝ → 𝐴 ∈ ℂ)
12113ad2ant1 1163 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝐴 ∈ ℂ)
134recnd 10324 . . . . . . . . . . . 12 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) ∈ ℂ)
14133adant1 1160 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) ∈ ℂ)
15 rpcnne0 12051 . . . . . . . . . . . 12 (𝐵 ∈ ℝ+ → (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0))
16153ad2ant3 1165 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0))
17 divdir 10966 . . . . . . . . . . 11 ((𝐴 ∈ ℂ ∧ (𝑁 · 𝐵) ∈ ℂ ∧ (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0)) → ((𝐴 + (𝑁 · 𝐵)) / 𝐵) = ((𝐴 / 𝐵) + ((𝑁 · 𝐵) / 𝐵)))
1812, 14, 16, 17syl3anc 1490 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) / 𝐵) = ((𝐴 / 𝐵) + ((𝑁 · 𝐵) / 𝐵)))
19 zcn 11631 . . . . . . . . . . . . 13 (𝑁 ∈ ℤ → 𝑁 ∈ ℂ)
20 divcan4 10968 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℂ ∧ 𝐵 ∈ ℂ ∧ 𝐵 ≠ 0) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
21203expb 1149 . . . . . . . . . . . . 13 ((𝑁 ∈ ℂ ∧ (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0)) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
2219, 15, 21syl2an 589 . . . . . . . . . . . 12 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
23223adant1 1160 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
2423oveq2d 6860 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 / 𝐵) + ((𝑁 · 𝐵) / 𝐵)) = ((𝐴 / 𝐵) + 𝑁))
2518, 24eqtrd 2799 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) / 𝐵) = ((𝐴 / 𝐵) + 𝑁))
2625fveq2d 6381 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)) = (⌊‘((𝐴 / 𝐵) + 𝑁)))
27 rerpdivcl 12062 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (𝐴 / 𝐵) ∈ ℝ)
28273adant2 1161 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐴 / 𝐵) ∈ ℝ)
29 simp2 1167 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝑁 ∈ ℤ)
30 fladdz 12837 . . . . . . . . 9 (((𝐴 / 𝐵) ∈ ℝ ∧ 𝑁 ∈ ℤ) → (⌊‘((𝐴 / 𝐵) + 𝑁)) = ((⌊‘(𝐴 / 𝐵)) + 𝑁))
3128, 29, 30syl2anc 579 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘((𝐴 / 𝐵) + 𝑁)) = ((⌊‘(𝐴 / 𝐵)) + 𝑁))
3226, 31eqtrd 2799 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)) = ((⌊‘(𝐴 / 𝐵)) + 𝑁))
3332oveq2d 6860 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵))) = (𝐵 · ((⌊‘(𝐴 / 𝐵)) + 𝑁)))
34 rpcn 12043 . . . . . . . 8 (𝐵 ∈ ℝ+𝐵 ∈ ℂ)
35343ad2ant3 1165 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝐵 ∈ ℂ)
36 reflcl 12808 . . . . . . . . . 10 ((𝐴 / 𝐵) ∈ ℝ → (⌊‘(𝐴 / 𝐵)) ∈ ℝ)
3736recnd 10324 . . . . . . . . 9 ((𝐴 / 𝐵) ∈ ℝ → (⌊‘(𝐴 / 𝐵)) ∈ ℂ)
3827, 37syl 17 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (⌊‘(𝐴 / 𝐵)) ∈ ℂ)
39383adant2 1161 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘(𝐴 / 𝐵)) ∈ ℂ)
40193ad2ant2 1164 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝑁 ∈ ℂ)
4135, 39, 40adddid 10320 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · ((⌊‘(𝐴 / 𝐵)) + 𝑁)) = ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝐵 · 𝑁)))
42 mulcom 10277 . . . . . . . . . 10 ((𝑁 ∈ ℂ ∧ 𝐵 ∈ ℂ) → (𝑁 · 𝐵) = (𝐵 · 𝑁))
4319, 34, 42syl2an 589 . . . . . . . . 9 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) = (𝐵 · 𝑁))
44433adant1 1160 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) = (𝐵 · 𝑁))
4544eqcomd 2771 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · 𝑁) = (𝑁 · 𝐵))
4645oveq2d 6860 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝐵 · 𝑁)) = ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵)))
4733, 41, 463eqtrd 2803 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵))) = ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵)))
4847oveq2d 6860 . . . 4 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) − (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)))) = ((𝐴 + (𝑁 · 𝐵)) − ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵))))
4934adantl 473 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → 𝐵 ∈ ℂ)
5049, 38mulcld 10316 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘(𝐴 / 𝐵))) ∈ ℂ)
51503adant2 1161 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘(𝐴 / 𝐵))) ∈ ℂ)
5212, 51, 14pnpcan2d 10686 . . . 4 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) − ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵))) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
5310, 48, 523eqtrd 2803 . . 3 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
54 modval 12881 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (𝐴 mod 𝐵) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
55543adant2 1161 . . 3 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐴 mod 𝐵) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
5653, 55eqtr4d 2802 . 2 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = (𝐴 mod 𝐵))
57563com23 1156 1 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+𝑁 ∈ ℤ) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = (𝐴 mod 𝐵))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 384  w3a 1107   = wceq 1652  wcel 2155  wne 2937  cfv 6070  (class class class)co 6844  cc 10189  cr 10190  0cc0 10191   + caddc 10194   · cmul 10196  cmin 10522   / cdiv 10940  cz 11626  +crp 12031  cfl 12802   mod cmo 12879
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1890  ax-4 1904  ax-5 2005  ax-6 2070  ax-7 2105  ax-8 2157  ax-9 2164  ax-10 2183  ax-11 2198  ax-12 2211  ax-13 2352  ax-ext 2743  ax-sep 4943  ax-nul 4951  ax-pow 5003  ax-pr 5064  ax-un 7149  ax-cnex 10247  ax-resscn 10248  ax-1cn 10249  ax-icn 10250  ax-addcl 10251  ax-addrcl 10252  ax-mulcl 10253  ax-mulrcl 10254  ax-mulcom 10255  ax-addass 10256  ax-mulass 10257  ax-distr 10258  ax-i2m1 10259  ax-1ne0 10260  ax-1rid 10261  ax-rnegex 10262  ax-rrecex 10263  ax-cnre 10264  ax-pre-lttri 10265  ax-pre-lttrn 10266  ax-pre-ltadd 10267  ax-pre-mulgt0 10268  ax-pre-sup 10269
This theorem depends on definitions:  df-bi 198  df-an 385  df-or 874  df-3or 1108  df-3an 1109  df-tru 1656  df-ex 1875  df-nf 1879  df-sb 2063  df-mo 2565  df-eu 2582  df-clab 2752  df-cleq 2758  df-clel 2761  df-nfc 2896  df-ne 2938  df-nel 3041  df-ral 3060  df-rex 3061  df-reu 3062  df-rmo 3063  df-rab 3064  df-v 3352  df-sbc 3599  df-csb 3694  df-dif 3737  df-un 3739  df-in 3741  df-ss 3748  df-pss 3750  df-nul 4082  df-if 4246  df-pw 4319  df-sn 4337  df-pr 4339  df-tp 4341  df-op 4343  df-uni 4597  df-iun 4680  df-br 4812  df-opab 4874  df-mpt 4891  df-tr 4914  df-id 5187  df-eprel 5192  df-po 5200  df-so 5201  df-fr 5238  df-we 5240  df-xp 5285  df-rel 5286  df-cnv 5287  df-co 5288  df-dm 5289  df-rn 5290  df-res 5291  df-ima 5292  df-pred 5867  df-ord 5913  df-on 5914  df-lim 5915  df-suc 5916  df-iota 6033  df-fun 6072  df-fn 6073  df-f 6074  df-f1 6075  df-fo 6076  df-f1o 6077  df-fv 6078  df-riota 6805  df-ov 6847  df-oprab 6848  df-mpt2 6849  df-om 7266  df-wrecs 7612  df-recs 7674  df-rdg 7712  df-er 7949  df-en 8163  df-dom 8164  df-sdom 8165  df-sup 8557  df-inf 8558  df-pnf 10332  df-mnf 10333  df-xr 10334  df-ltxr 10335  df-le 10336  df-sub 10524  df-neg 10525  df-div 10941  df-nn 11277  df-n0 11541  df-z 11627  df-uz 11890  df-rp 12032  df-fl 12804  df-mod 12880
This theorem is referenced by:  modcyc2  12917  muladdmodid  12921  negmod  12926  modsumfzodifsn  12954  modxai  16054  wilthlem1  25088  wilthlem2  25089  lgsdir2lem1  25344  lgsdir2lem5  25348  lgseisenlem1  25394  dirkerper  40953  sqwvfoura  41085  sqwvfourb  41086  fourierswlem  41087  fouriersw  41088  3exp4mod41  42212  m1modmmod  42988
  Copyright terms: Public domain W3C validator