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

Theorem sadadd3 15810
Description: Sum of initial segments of the sadd sequence. (Contributed by Mario Carneiro, 9-Sep-2016.)
Hypotheses
Ref Expression
sadval.a (𝜑𝐴 ⊆ ℕ0)
sadval.b (𝜑𝐵 ⊆ ℕ0)
sadval.c 𝐶 = seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))
sadcp1.n (𝜑𝑁 ∈ ℕ0)
sadcadd.k 𝐾 = (bits ↾ ℕ0)
Assertion
Ref Expression
sadadd3 (𝜑 → ((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) mod (2↑𝑁)) = (((𝐾‘(𝐴 ∩ (0..^𝑁))) + (𝐾‘(𝐵 ∩ (0..^𝑁)))) mod (2↑𝑁)))
Distinct variable groups:   𝑚,𝑐,𝑛   𝐴,𝑐,𝑚   𝐵,𝑐,𝑚   𝑛,𝑁
Allowed substitution hints:   𝜑(𝑚,𝑛,𝑐)   𝐴(𝑛)   𝐵(𝑛)   𝐶(𝑚,𝑛,𝑐)   𝐾(𝑚,𝑛,𝑐)   𝑁(𝑚,𝑐)

Proof of Theorem sadadd3
Dummy variable 𝑘 is distinct from all other variables.
StepHypRef Expression
1 2nn 11711 . . . . . . . . 9 2 ∈ ℕ
21a1i 11 . . . . . . . 8 (𝜑 → 2 ∈ ℕ)
3 sadcp1.n . . . . . . . 8 (𝜑𝑁 ∈ ℕ0)
42, 3nnexpcld 13607 . . . . . . 7 (𝜑 → (2↑𝑁) ∈ ℕ)
54nnzd 12087 . . . . . 6 (𝜑 → (2↑𝑁) ∈ ℤ)
6 iddvds 15623 . . . . . 6 ((2↑𝑁) ∈ ℤ → (2↑𝑁) ∥ (2↑𝑁))
75, 6syl 17 . . . . 5 (𝜑 → (2↑𝑁) ∥ (2↑𝑁))
8 dvds0 15625 . . . . . 6 ((2↑𝑁) ∈ ℤ → (2↑𝑁) ∥ 0)
95, 8syl 17 . . . . 5 (𝜑 → (2↑𝑁) ∥ 0)
10 breq2 5070 . . . . . 6 ((2↑𝑁) = if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0) → ((2↑𝑁) ∥ (2↑𝑁) ↔ (2↑𝑁) ∥ if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)))
11 breq2 5070 . . . . . 6 (0 = if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0) → ((2↑𝑁) ∥ 0 ↔ (2↑𝑁) ∥ if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)))
1210, 11ifboth 4505 . . . . 5 (((2↑𝑁) ∥ (2↑𝑁) ∧ (2↑𝑁) ∥ 0) → (2↑𝑁) ∥ if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0))
137, 9, 12syl2anc 586 . . . 4 (𝜑 → (2↑𝑁) ∥ if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0))
14 inss1 4205 . . . . . . . . 9 ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ⊆ (𝐴 sadd 𝐵)
15 sadval.a . . . . . . . . . . 11 (𝜑𝐴 ⊆ ℕ0)
16 sadval.b . . . . . . . . . . 11 (𝜑𝐵 ⊆ ℕ0)
17 sadval.c . . . . . . . . . . 11 𝐶 = seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))
1815, 16, 17sadfval 15801 . . . . . . . . . 10 (𝜑 → (𝐴 sadd 𝐵) = {𝑘 ∈ ℕ0 ∣ hadd(𝑘𝐴, 𝑘𝐵, ∅ ∈ (𝐶𝑘))})
19 ssrab2 4056 . . . . . . . . . 10 {𝑘 ∈ ℕ0 ∣ hadd(𝑘𝐴, 𝑘𝐵, ∅ ∈ (𝐶𝑘))} ⊆ ℕ0
2018, 19eqsstrdi 4021 . . . . . . . . 9 (𝜑 → (𝐴 sadd 𝐵) ⊆ ℕ0)
2114, 20sstrid 3978 . . . . . . . 8 (𝜑 → ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ⊆ ℕ0)
22 fzofi 13343 . . . . . . . . . 10 (0..^𝑁) ∈ Fin
2322a1i 11 . . . . . . . . 9 (𝜑 → (0..^𝑁) ∈ Fin)
24 inss2 4206 . . . . . . . . 9 ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ⊆ (0..^𝑁)
25 ssfi 8738 . . . . . . . . 9 (((0..^𝑁) ∈ Fin ∧ ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ⊆ (0..^𝑁)) → ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ Fin)
2623, 24, 25sylancl 588 . . . . . . . 8 (𝜑 → ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ Fin)
27 elfpw 8826 . . . . . . . 8 (((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0 ∩ Fin) ↔ (((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ⊆ ℕ0 ∧ ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ Fin))
2821, 26, 27sylanbrc 585 . . . . . . 7 (𝜑 → ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0 ∩ Fin))
29 bitsf1o 15794 . . . . . . . . . 10 (bits ↾ ℕ0):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin)
30 f1ocnv 6627 . . . . . . . . . 10 ((bits ↾ ℕ0):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin) → (bits ↾ ℕ0):(𝒫 ℕ0 ∩ Fin)–1-1-onto→ℕ0)
31 f1of 6615 . . . . . . . . . 10 ((bits ↾ ℕ0):(𝒫 ℕ0 ∩ Fin)–1-1-onto→ℕ0(bits ↾ ℕ0):(𝒫 ℕ0 ∩ Fin)⟶ℕ0)
3229, 30, 31mp2b 10 . . . . . . . . 9 (bits ↾ ℕ0):(𝒫 ℕ0 ∩ Fin)⟶ℕ0
33 sadcadd.k . . . . . . . . . 10 𝐾 = (bits ↾ ℕ0)
3433feq1i 6505 . . . . . . . . 9 (𝐾:(𝒫 ℕ0 ∩ Fin)⟶ℕ0(bits ↾ ℕ0):(𝒫 ℕ0 ∩ Fin)⟶ℕ0)
3532, 34mpbir 233 . . . . . . . 8 𝐾:(𝒫 ℕ0 ∩ Fin)⟶ℕ0
3635ffvelrni 6850 . . . . . . 7 (((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0 ∩ Fin) → (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ ℕ0)
3728, 36syl 17 . . . . . 6 (𝜑 → (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ ℕ0)
3837nn0cnd 11958 . . . . 5 (𝜑 → (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ ℂ)
394nncnd 11654 . . . . . 6 (𝜑 → (2↑𝑁) ∈ ℂ)
40 0cn 10633 . . . . . 6 0 ∈ ℂ
41 ifcl 4511 . . . . . 6 (((2↑𝑁) ∈ ℂ ∧ 0 ∈ ℂ) → if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0) ∈ ℂ)
4239, 40, 41sylancl 588 . . . . 5 (𝜑 → if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0) ∈ ℂ)
4338, 42pncan2d 10999 . . . 4 (𝜑 → (((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) − (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁)))) = if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0))
4413, 43breqtrrd 5094 . . 3 (𝜑 → (2↑𝑁) ∥ (((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) − (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁)))))
4537nn0zd 12086 . . . . 5 (𝜑 → (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ ℤ)
465adantr 483 . . . . . 6 ((𝜑 ∧ ∅ ∈ (𝐶𝑁)) → (2↑𝑁) ∈ ℤ)
47 0zd 11994 . . . . . 6 ((𝜑 ∧ ¬ ∅ ∈ (𝐶𝑁)) → 0 ∈ ℤ)
4846, 47ifclda 4501 . . . . 5 (𝜑 → if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0) ∈ ℤ)
4945, 48zaddcld 12092 . . . 4 (𝜑 → ((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) ∈ ℤ)
50 moddvds 15618 . . . 4 (((2↑𝑁) ∈ ℕ ∧ ((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) ∈ ℤ ∧ (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ ℤ) → ((((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) mod (2↑𝑁)) = ((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) mod (2↑𝑁)) ↔ (2↑𝑁) ∥ (((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) − (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))))))
514, 49, 45, 50syl3anc 1367 . . 3 (𝜑 → ((((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) mod (2↑𝑁)) = ((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) mod (2↑𝑁)) ↔ (2↑𝑁) ∥ (((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) − (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))))))
5244, 51mpbird 259 . 2 (𝜑 → (((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) mod (2↑𝑁)) = ((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) mod (2↑𝑁)))
5315, 16, 17, 3, 33sadadd2 15809 . . 3 (𝜑 → ((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) = ((𝐾‘(𝐴 ∩ (0..^𝑁))) + (𝐾‘(𝐵 ∩ (0..^𝑁)))))
5453oveq1d 7171 . 2 (𝜑 → (((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) mod (2↑𝑁)) = (((𝐾‘(𝐴 ∩ (0..^𝑁))) + (𝐾‘(𝐵 ∩ (0..^𝑁)))) mod (2↑𝑁)))
5552, 54eqtr3d 2858 1 (𝜑 → ((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) mod (2↑𝑁)) = (((𝐾‘(𝐴 ∩ (0..^𝑁))) + (𝐾‘(𝐵 ∩ (0..^𝑁)))) mod (2↑𝑁)))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 208  wa 398   = wceq 1537  haddwhad 1593  caddwcad 1607  wcel 2114  {crab 3142  cin 3935  wss 3936  c0 4291  ifcif 4467  𝒫 cpw 4539   class class class wbr 5066  cmpt 5146  ccnv 5554  cres 5557  wf 6351  1-1-ontowf1o 6354  cfv 6355  (class class class)co 7156  cmpo 7158  1oc1o 8095  2oc2o 8096  Fincfn 8509  cc 10535  0cc0 10537  1c1 10538   + caddc 10540  cmin 10870  cn 11638  2c2 11693  0cn0 11898  cz 11982  ..^cfzo 13034   mod cmo 13238  seqcseq 13370  cexp 13430  cdvds 15607  bitscbits 15768   sadd csad 15769
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 2793  ax-rep 5190  ax-sep 5203  ax-nul 5210  ax-pow 5266  ax-pr 5330  ax-un 7461  ax-inf2 9104  ax-cnex 10593  ax-resscn 10594  ax-1cn 10595  ax-icn 10596  ax-addcl 10597  ax-addrcl 10598  ax-mulcl 10599  ax-mulrcl 10600  ax-mulcom 10601  ax-addass 10602  ax-mulass 10603  ax-distr 10604  ax-i2m1 10605  ax-1ne0 10606  ax-1rid 10607  ax-rnegex 10608  ax-rrecex 10609  ax-cnre 10610  ax-pre-lttri 10611  ax-pre-lttrn 10612  ax-pre-ltadd 10613  ax-pre-mulgt0 10614  ax-pre-sup 10615
This theorem depends on definitions:  df-bi 209  df-an 399  df-or 844  df-3or 1084  df-3an 1085  df-xor 1502  df-tru 1540  df-fal 1550  df-had 1594  df-cad 1608  df-ex 1781  df-nf 1785  df-sb 2070  df-mo 2622  df-eu 2654  df-clab 2800  df-cleq 2814  df-clel 2893  df-nfc 2963  df-ne 3017  df-nel 3124  df-ral 3143  df-rex 3144  df-reu 3145  df-rmo 3146  df-rab 3147  df-v 3496  df-sbc 3773  df-csb 3884  df-dif 3939  df-un 3941  df-in 3943  df-ss 3952  df-pss 3954  df-nul 4292  df-if 4468  df-pw 4541  df-sn 4568  df-pr 4570  df-tp 4572  df-op 4574  df-uni 4839  df-int 4877  df-iun 4921  df-disj 5032  df-br 5067  df-opab 5129  df-mpt 5147  df-tr 5173  df-id 5460  df-eprel 5465  df-po 5474  df-so 5475  df-fr 5514  df-se 5515  df-we 5516  df-xp 5561  df-rel 5562  df-cnv 5563  df-co 5564  df-dm 5565  df-rn 5566  df-res 5567  df-ima 5568  df-pred 6148  df-ord 6194  df-on 6195  df-lim 6196  df-suc 6197  df-iota 6314  df-fun 6357  df-fn 6358  df-f 6359  df-f1 6360  df-fo 6361  df-f1o 6362  df-fv 6363  df-isom 6364  df-riota 7114  df-ov 7159  df-oprab 7160  df-mpo 7161  df-om 7581  df-1st 7689  df-2nd 7690  df-wrecs 7947  df-recs 8008  df-rdg 8046  df-1o 8102  df-2o 8103  df-oadd 8106  df-er 8289  df-map 8408  df-pm 8409  df-en 8510  df-dom 8511  df-sdom 8512  df-fin 8513  df-sup 8906  df-inf 8907  df-oi 8974  df-dju 9330  df-card 9368  df-pnf 10677  df-mnf 10678  df-xr 10679  df-ltxr 10680  df-le 10681  df-sub 10872  df-neg 10873  df-div 11298  df-nn 11639  df-2 11701  df-3 11702  df-n0 11899  df-xnn0 11969  df-z 11983  df-uz 12245  df-rp 12391  df-fz 12894  df-fzo 13035  df-fl 13163  df-mod 13239  df-seq 13371  df-exp 13431  df-hash 13692  df-cj 14458  df-re 14459  df-im 14460  df-sqrt 14594  df-abs 14595  df-clim 14845  df-sum 15043  df-dvds 15608  df-bits 15771  df-sad 15800
This theorem is referenced by:  sadaddlem  15815  sadasslem  15819  sadeq  15821
  Copyright terms: Public domain W3C validator