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

Theorem modcyc 13626
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 12323 . . . . . . . 8 (𝑁 ∈ ℤ → 𝑁 ∈ ℝ)
2 rpre 12738 . . . . . . . 8 (𝐵 ∈ ℝ+𝐵 ∈ ℝ)
3 remulcl 10956 . . . . . . . 8 ((𝑁 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (𝑁 · 𝐵) ∈ ℝ)
41, 2, 3syl2an 596 . . . . . . 7 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) ∈ ℝ)
5 readdcl 10954 . . . . . . 7 ((𝐴 ∈ ℝ ∧ (𝑁 · 𝐵) ∈ ℝ) → (𝐴 + (𝑁 · 𝐵)) ∈ ℝ)
64, 5sylan2 593 . . . . . 6 ((𝐴 ∈ ℝ ∧ (𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+)) → (𝐴 + (𝑁 · 𝐵)) ∈ ℝ)
763impb 1114 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐴 + (𝑁 · 𝐵)) ∈ ℝ)
8 simp3 1137 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝐵 ∈ ℝ+)
9 modval 13591 . . . . 5 (((𝐴 + (𝑁 · 𝐵)) ∈ ℝ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = ((𝐴 + (𝑁 · 𝐵)) − (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)))))
107, 8, 9syl2anc 584 . . . 4 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = ((𝐴 + (𝑁 · 𝐵)) − (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)))))
11 recn 10961 . . . . . . . . . . . 12 (𝐴 ∈ ℝ → 𝐴 ∈ ℂ)
12113ad2ant1 1132 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝐴 ∈ ℂ)
134recnd 11003 . . . . . . . . . . . 12 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) ∈ ℂ)
14133adant1 1129 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) ∈ ℂ)
15 rpcnne0 12748 . . . . . . . . . . . 12 (𝐵 ∈ ℝ+ → (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0))
16153ad2ant3 1134 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0))
17 divdir 11658 . . . . . . . . . . 11 ((𝐴 ∈ ℂ ∧ (𝑁 · 𝐵) ∈ ℂ ∧ (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0)) → ((𝐴 + (𝑁 · 𝐵)) / 𝐵) = ((𝐴 / 𝐵) + ((𝑁 · 𝐵) / 𝐵)))
1812, 14, 16, 17syl3anc 1370 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) / 𝐵) = ((𝐴 / 𝐵) + ((𝑁 · 𝐵) / 𝐵)))
19 zcn 12324 . . . . . . . . . . . . 13 (𝑁 ∈ ℤ → 𝑁 ∈ ℂ)
20 divcan4 11660 . . . . . . . . . . . . . 14 ((𝑁 ∈ ℂ ∧ 𝐵 ∈ ℂ ∧ 𝐵 ≠ 0) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
21203expb 1119 . . . . . . . . . . . . 13 ((𝑁 ∈ ℂ ∧ (𝐵 ∈ ℂ ∧ 𝐵 ≠ 0)) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
2219, 15, 21syl2an 596 . . . . . . . . . . . 12 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
23223adant1 1129 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝑁 · 𝐵) / 𝐵) = 𝑁)
2423oveq2d 7291 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 / 𝐵) + ((𝑁 · 𝐵) / 𝐵)) = ((𝐴 / 𝐵) + 𝑁))
2518, 24eqtrd 2778 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) / 𝐵) = ((𝐴 / 𝐵) + 𝑁))
2625fveq2d 6778 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)) = (⌊‘((𝐴 / 𝐵) + 𝑁)))
27 rerpdivcl 12760 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (𝐴 / 𝐵) ∈ ℝ)
28273adant2 1130 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐴 / 𝐵) ∈ ℝ)
29 simp2 1136 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝑁 ∈ ℤ)
30 fladdz 13545 . . . . . . . . 9 (((𝐴 / 𝐵) ∈ ℝ ∧ 𝑁 ∈ ℤ) → (⌊‘((𝐴 / 𝐵) + 𝑁)) = ((⌊‘(𝐴 / 𝐵)) + 𝑁))
3128, 29, 30syl2anc 584 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘((𝐴 / 𝐵) + 𝑁)) = ((⌊‘(𝐴 / 𝐵)) + 𝑁))
3226, 31eqtrd 2778 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)) = ((⌊‘(𝐴 / 𝐵)) + 𝑁))
3332oveq2d 7291 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵))) = (𝐵 · ((⌊‘(𝐴 / 𝐵)) + 𝑁)))
34 rpcn 12740 . . . . . . . 8 (𝐵 ∈ ℝ+𝐵 ∈ ℂ)
35343ad2ant3 1134 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝐵 ∈ ℂ)
36 reflcl 13516 . . . . . . . . . 10 ((𝐴 / 𝐵) ∈ ℝ → (⌊‘(𝐴 / 𝐵)) ∈ ℝ)
3736recnd 11003 . . . . . . . . 9 ((𝐴 / 𝐵) ∈ ℝ → (⌊‘(𝐴 / 𝐵)) ∈ ℂ)
3827, 37syl 17 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (⌊‘(𝐴 / 𝐵)) ∈ ℂ)
39383adant2 1130 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (⌊‘(𝐴 / 𝐵)) ∈ ℂ)
40193ad2ant2 1133 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → 𝑁 ∈ ℂ)
4135, 39, 40adddid 10999 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · ((⌊‘(𝐴 / 𝐵)) + 𝑁)) = ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝐵 · 𝑁)))
42 mulcom 10957 . . . . . . . . . 10 ((𝑁 ∈ ℂ ∧ 𝐵 ∈ ℂ) → (𝑁 · 𝐵) = (𝐵 · 𝑁))
4319, 34, 42syl2an 596 . . . . . . . . 9 ((𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) = (𝐵 · 𝑁))
44433adant1 1129 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝑁 · 𝐵) = (𝐵 · 𝑁))
4544eqcomd 2744 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · 𝑁) = (𝑁 · 𝐵))
4645oveq2d 7291 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝐵 · 𝑁)) = ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵)))
4733, 41, 463eqtrd 2782 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵))) = ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵)))
4847oveq2d 7291 . . . 4 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) − (𝐵 · (⌊‘((𝐴 + (𝑁 · 𝐵)) / 𝐵)))) = ((𝐴 + (𝑁 · 𝐵)) − ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵))))
4934adantl 482 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → 𝐵 ∈ ℂ)
5049, 38mulcld 10995 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘(𝐴 / 𝐵))) ∈ ℂ)
51503adant2 1130 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐵 · (⌊‘(𝐴 / 𝐵))) ∈ ℂ)
5212, 51, 14pnpcan2d 11370 . . . 4 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) − ((𝐵 · (⌊‘(𝐴 / 𝐵))) + (𝑁 · 𝐵))) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
5310, 48, 523eqtrd 2782 . . 3 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
54 modval 13591 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+) → (𝐴 mod 𝐵) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
55543adant2 1130 . . 3 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → (𝐴 mod 𝐵) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))))
5653, 55eqtr4d 2781 . 2 ((𝐴 ∈ ℝ ∧ 𝑁 ∈ ℤ ∧ 𝐵 ∈ ℝ+) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = (𝐴 mod 𝐵))
57563com23 1125 1 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+𝑁 ∈ ℤ) → ((𝐴 + (𝑁 · 𝐵)) mod 𝐵) = (𝐴 mod 𝐵))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 396  w3a 1086   = wceq 1539  wcel 2106  wne 2943  cfv 6433  (class class class)co 7275  cc 10869  cr 10870  0cc0 10871   + caddc 10874   · cmul 10876  cmin 11205   / cdiv 11632  cz 12319  +crp 12730  cfl 13510   mod cmo 13589
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1798  ax-4 1812  ax-5 1913  ax-6 1971  ax-7 2011  ax-8 2108  ax-9 2116  ax-10 2137  ax-11 2154  ax-12 2171  ax-ext 2709  ax-sep 5223  ax-nul 5230  ax-pow 5288  ax-pr 5352  ax-un 7588  ax-cnex 10927  ax-resscn 10928  ax-1cn 10929  ax-icn 10930  ax-addcl 10931  ax-addrcl 10932  ax-mulcl 10933  ax-mulrcl 10934  ax-mulcom 10935  ax-addass 10936  ax-mulass 10937  ax-distr 10938  ax-i2m1 10939  ax-1ne0 10940  ax-1rid 10941  ax-rnegex 10942  ax-rrecex 10943  ax-cnre 10944  ax-pre-lttri 10945  ax-pre-lttrn 10946  ax-pre-ltadd 10947  ax-pre-mulgt0 10948  ax-pre-sup 10949
This theorem depends on definitions:  df-bi 206  df-an 397  df-or 845  df-3or 1087  df-3an 1088  df-tru 1542  df-fal 1552  df-ex 1783  df-nf 1787  df-sb 2068  df-mo 2540  df-eu 2569  df-clab 2716  df-cleq 2730  df-clel 2816  df-nfc 2889  df-ne 2944  df-nel 3050  df-ral 3069  df-rex 3070  df-rmo 3071  df-reu 3072  df-rab 3073  df-v 3434  df-sbc 3717  df-csb 3833  df-dif 3890  df-un 3892  df-in 3894  df-ss 3904  df-pss 3906  df-nul 4257  df-if 4460  df-pw 4535  df-sn 4562  df-pr 4564  df-op 4568  df-uni 4840  df-iun 4926  df-br 5075  df-opab 5137  df-mpt 5158  df-tr 5192  df-id 5489  df-eprel 5495  df-po 5503  df-so 5504  df-fr 5544  df-we 5546  df-xp 5595  df-rel 5596  df-cnv 5597  df-co 5598  df-dm 5599  df-rn 5600  df-res 5601  df-ima 5602  df-pred 6202  df-ord 6269  df-on 6270  df-lim 6271  df-suc 6272  df-iota 6391  df-fun 6435  df-fn 6436  df-f 6437  df-f1 6438  df-fo 6439  df-f1o 6440  df-fv 6441  df-riota 7232  df-ov 7278  df-oprab 7279  df-mpo 7280  df-om 7713  df-2nd 7832  df-frecs 8097  df-wrecs 8128  df-recs 8202  df-rdg 8241  df-er 8498  df-en 8734  df-dom 8735  df-sdom 8736  df-sup 9201  df-inf 9202  df-pnf 11011  df-mnf 11012  df-xr 11013  df-ltxr 11014  df-le 11015  df-sub 11207  df-neg 11208  df-div 11633  df-nn 11974  df-n0 12234  df-z 12320  df-uz 12583  df-rp 12731  df-fl 13512  df-mod 13590
This theorem is referenced by:  modcyc2  13627  muladdmodid  13631  negmod  13636  modsumfzodifsn  13664  modxai  16769  wilthlem1  26217  wilthlem2  26218  lgsdir2lem1  26473  lgsdir2lem5  26477  lgseisenlem1  26523  dirkerper  43637  sqwvfoura  43769  sqwvfourb  43770  fourierswlem  43771  fouriersw  43772  3exp4mod41  45068  m1modmmod  45867
  Copyright terms: Public domain W3C validator