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

Theorem modcyc 13277
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 11988 . . . . . . . 8 (𝑁 ∈ ℤ → 𝑁 ∈ ℝ)
2 rpre 12400 . . . . . . . 8 (𝐵 ∈ ℝ+𝐵 ∈ ℝ)
3 remulcl 10624 . . . . . . . 8 ((𝑁 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (𝑁 · 𝐵) ∈ ℝ)
41, 2, 3syl2an 597 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) ∈ ℝ)
5 readdcl 10622 . . . . . . 7 ((𝐴 ∈ ℝ ∧ (𝑁 · 𝐵) ∈ ℝ) → (𝐴 + (𝑁 · 𝐵)) ∈ ℝ)
64, 5sylan2 594 . . . . . 6 ((𝐴 ∈ ℝ ∧ (𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+)) → (𝐴 + (𝑁 · 𝐵)) ∈ ℝ)
763impb 1111 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐴 + (𝑁 · 𝐵)) ∈ ℝ)
8 simp3 1134 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝐵 ∈ ℝ+)
9 modval 13242 . . . . 5 (((𝐴 + (𝑁 · 𝐵)) ∈ ℝ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = ((𝐴 + (𝑁 · 𝐵)) − (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)))))
107, 8, 9syl2anc 586 . . . 4 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = ((𝐴 + (𝑁 · 𝐵)) − (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)))))
11 recn 10629 . . . . . . . . . . . 12 (𝐴 ∈ ℝ → 𝐴 ∈ ℂ)
12113ad2ant1 1129 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝐴 ∈ ℂ)
134recnd 10671 . . . . . . . . . . . 12 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) ∈ ℂ)
14133adant1 1126 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) ∈ ℂ)
15 rpcnne0 12410 . . . . . . . . . . . 12 (𝐵 ∈ ℝ+ → (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0))
16153ad2ant3 1131 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0))
17 divdir 11325 . . . . . . . . . . 11 ((𝐴 ∈ ℂ ∧ (𝑁 · 𝐵) ∈ ℂ ∧ (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0)) → ((𝐴 + (𝑁 · 𝐵)) / 𝐵) = ((𝐴 / 𝐵) + ((𝑁 · 𝐵) / 𝐵)))
1812, 14, 16, 17syl3anc 1367 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) / 𝐵) = ((𝐴 / 𝐵) + ((𝑁 · 𝐵) / 𝐵)))
19 zcn 11989 . . . . . . . . . . . . 13 (𝑁 ∈ ℤ → 𝑁 ∈ ℂ)
20 divcan4 11327 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℂ ∧ 𝐵 ∈ ℂ ∧ 𝐵 ≠ 0) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
21203expb 1116 . . . . . . . . . . . . 13 ((𝑁 ∈ ℂ ∧ (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0)) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
2219, 15, 21syl2an 597 . . . . . . . . . . . 12 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
23223adant1 1126 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
2423oveq2d 7174 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 / 𝐵) + ((𝑁 · 𝐵) / 𝐵)) = ((𝐴 / 𝐵) + 𝑁))
2518, 24eqtrd 2858 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) / 𝐵) = ((𝐴 / 𝐵) + 𝑁))
2625fveq2d 6676 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)) = (⌊‘((𝐴 / 𝐵) + 𝑁)))
27 rerpdivcl 12422 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (𝐴 / 𝐵) ∈ ℝ)
28273adant2 1127 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐴 / 𝐵) ∈ ℝ)
29 simp2 1133 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝑁 ∈ ℤ)
30 fladdz 13198 . . . . . . . . 9 (((𝐴 / 𝐵) ∈ ℝ ∧ 𝑁 ∈ ℤ) → (⌊‘((𝐴 / 𝐵) + 𝑁)) = ((⌊‘(𝐴 / 𝐵)) + 𝑁))
3128, 29, 30syl2anc 586 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘((𝐴 / 𝐵) + 𝑁)) = ((⌊‘(𝐴 / 𝐵)) + 𝑁))
3226, 31eqtrd 2858 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)) = ((⌊‘(𝐴 / 𝐵)) + 𝑁))
3332oveq2d 7174 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵))) = (𝐵 · ((⌊‘(𝐴 / 𝐵)) + 𝑁)))
34 rpcn 12402 . . . . . . . 8 (𝐵 ∈ ℝ+𝐵 ∈ ℂ)
35343ad2ant3 1131 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝐵 ∈ ℂ)
36 reflcl 13169 . . . . . . . . . 10 ((𝐴 / 𝐵) ∈ ℝ → (⌊‘(𝐴 / 𝐵)) ∈ ℝ)
3736recnd 10671 . . . . . . . . 9 ((𝐴 / 𝐵) ∈ ℝ → (⌊‘(𝐴 / 𝐵)) ∈ ℂ)
3827, 37syl 17 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (⌊‘(𝐴 / 𝐵)) ∈ ℂ)
39383adant2 1127 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘(𝐴 / 𝐵)) ∈ ℂ)
40193ad2ant2 1130 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝑁 ∈ ℂ)
4135, 39, 40adddid 10667 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · ((⌊‘(𝐴 / 𝐵)) + 𝑁)) = ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝐵 · 𝑁)))
42 mulcom 10625 . . . . . . . . . 10 ((𝑁 ∈ ℂ ∧ 𝐵 ∈ ℂ) → (𝑁 · 𝐵) = (𝐵 · 𝑁))
4319, 34, 42syl2an 597 . . . . . . . . 9 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) = (𝐵 · 𝑁))
44433adant1 1126 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) = (𝐵 · 𝑁))
4544eqcomd 2829 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · 𝑁) = (𝑁 · 𝐵))
4645oveq2d 7174 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝐵 · 𝑁)) = ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵)))
4733, 41, 463eqtrd 2862 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵))) = ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵)))
4847oveq2d 7174 . . . 4 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) − (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)))) = ((𝐴 + (𝑁 · 𝐵)) − ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵))))
4934adantl 484 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → 𝐵 ∈ ℂ)
5049, 38mulcld 10663 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘(𝐴 / 𝐵))) ∈ ℂ)
51503adant2 1127 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘(𝐴 / 𝐵))) ∈ ℂ)
5212, 51, 14pnpcan2d 11037 . . . 4 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) − ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵))) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
5310, 48, 523eqtrd 2862 . . 3 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
54 modval 13242 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (𝐴 mod 𝐵) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
55543adant2 1127 . . 3 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐴 mod 𝐵) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
5653, 55eqtr4d 2861 . 2 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = (𝐴 mod 𝐵))
57563com23 1122 1 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+𝑁 ∈ ℤ) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = (𝐴 mod 𝐵))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 398  w3a 1083   = wceq 1537  wcel 2114  wne 3018  cfv 6357  (class class class)co 7158  cc 10537  cr 10538  0cc0 10539   + caddc 10542   · cmul 10544  cmin 10872   / cdiv 11299  cz 11984  +crp 12392  cfl 13163   mod cmo 13240
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1796  ax-4 1810  ax-5 1911  ax-6 1970  ax-7 2015  ax-8 2116  ax-9 2124  ax-10 2145  ax-11 2161  ax-12 2177  ax-ext 2795  ax-sep 5205  ax-nul 5212  ax-pow 5268  ax-pr 5332  ax-un 7463  ax-cnex 10595  ax-resscn 10596  ax-1cn 10597  ax-icn 10598  ax-addcl 10599  ax-addrcl 10600  ax-mulcl 10601  ax-mulrcl 10602  ax-mulcom 10603  ax-addass 10604  ax-mulass 10605  ax-distr 10606  ax-i2m1 10607  ax-1ne0 10608  ax-1rid 10609  ax-rnegex 10610  ax-rrecex 10611  ax-cnre 10612  ax-pre-lttri 10613  ax-pre-lttrn 10614  ax-pre-ltadd 10615  ax-pre-mulgt0 10616  ax-pre-sup 10617
This theorem depends on definitions:  df-bi 209  df-an 399  df-or 844  df-3or 1084  df-3an 1085  df-tru 1540  df-ex 1781  df-nf 1785  df-sb 2070  df-mo 2622  df-eu 2654  df-clab 2802  df-cleq 2816  df-clel 2895  df-nfc 2965  df-ne 3019  df-nel 3126  df-ral 3145  df-rex 3146  df-reu 3147  df-rmo 3148  df-rab 3149  df-v 3498  df-sbc 3775  df-csb 3886  df-dif 3941  df-un 3943  df-in 3945  df-ss 3954  df-pss 3956  df-nul 4294  df-if 4470  df-pw 4543  df-sn 4570  df-pr 4572  df-tp 4574  df-op 4576  df-uni 4841  df-iun 4923  df-br 5069  df-opab 5131  df-mpt 5149  df-tr 5175  df-id 5462  df-eprel 5467  df-po 5476  df-so 5477  df-fr 5516  df-we 5518  df-xp 5563  df-rel 5564  df-cnv 5565  df-co 5566  df-dm 5567  df-rn 5568  df-res 5569  df-ima 5570  df-pred 6150  df-ord 6196  df-on 6197  df-lim 6198  df-suc 6199  df-iota 6316  df-fun 6359  df-fn 6360  df-f 6361  df-f1 6362  df-fo 6363  df-f1o 6364  df-fv 6365  df-riota 7116  df-ov 7161  df-oprab 7162  df-mpo 7163  df-om 7583  df-wrecs 7949  df-recs 8010  df-rdg 8048  df-er 8291  df-en 8512  df-dom 8513  df-sdom 8514  df-sup 8908  df-inf 8909  df-pnf 10679  df-mnf 10680  df-xr 10681  df-ltxr 10682  df-le 10683  df-sub 10874  df-neg 10875  df-div 11300  df-nn 11641  df-n0 11901  df-z 11985  df-uz 12247  df-rp 12393  df-fl 13165  df-mod 13241
This theorem is referenced by:  modcyc2  13278  muladdmodid  13282  negmod  13287  modsumfzodifsn  13315  modxai  16406  wilthlem1  25647  wilthlem2  25648  lgsdir2lem1  25903  lgsdir2lem5  25907  lgseisenlem1  25953  dirkerper  42388  sqwvfoura  42520  sqwvfourb  42521  fourierswlem  42522  fouriersw  42523  3exp4mod41  43788  m1modmmod  44588
  Copyright terms: Public domain W3C validator