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

Theorem sadadd3 16485
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 12318 . . . . . . . . 9 2 ∈ ℕ
21a1i 11 . . . . . . . 8 (𝜑 → 2 ∈ ℕ)
3 sadcp1.n . . . . . . . 8 (𝜑𝑁 ∈ ℕ0)
42, 3nnexpcld 14268 . . . . . . 7 (𝜑 → (2↑𝑁) ∈ ℕ)
54nnzd 12620 . . . . . 6 (𝜑 → (2↑𝑁) ∈ ℤ)
6 iddvds 16294 . . . . . 6 ((2↑𝑁) ∈ ℤ → (2↑𝑁) ∥ (2↑𝑁))
75, 6syl 17 . . . . 5 (𝜑 → (2↑𝑁) ∥ (2↑𝑁))
8 dvds0 16296 . . . . . 6 ((2↑𝑁) ∈ ℤ → (2↑𝑁) ∥ 0)
95, 8syl 17 . . . . 5 (𝜑 → (2↑𝑁) ∥ 0)
10 breq2 5128 . . . . . 6 ((2↑𝑁) = if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0) → ((2↑𝑁) ∥ (2↑𝑁) ↔ (2↑𝑁) ∥ if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)))
11 breq2 5128 . . . . . 6 (0 = if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0) → ((2↑𝑁) ∥ 0 ↔ (2↑𝑁) ∥ if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)))
1210, 11ifboth 4545 . . . . 5 (((2↑𝑁) ∥ (2↑𝑁) ∧ (2↑𝑁) ∥ 0) → (2↑𝑁) ∥ if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0))
137, 9, 12syl2anc 584 . . . 4 (𝜑 → (2↑𝑁) ∥ if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0))
14 inss1 4217 . . . . . . . . 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 16476 . . . . . . . . . 10 (𝜑 → (𝐴 sadd 𝐵) = {𝑘 ∈ ℕ0 ∣ hadd(𝑘𝐴, 𝑘𝐵, ∅ ∈ (𝐶𝑘))})
19 ssrab2 4060 . . . . . . . . . 10 {𝑘 ∈ ℕ0 ∣ hadd(𝑘𝐴, 𝑘𝐵, ∅ ∈ (𝐶𝑘))} ⊆ ℕ0
2018, 19eqsstrdi 4008 . . . . . . . . 9 (𝜑 → (𝐴 sadd 𝐵) ⊆ ℕ0)
2114, 20sstrid 3975 . . . . . . . 8 (𝜑 → ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ⊆ ℕ0)
22 fzofi 13997 . . . . . . . . . 10 (0..^𝑁) ∈ Fin
2322a1i 11 . . . . . . . . 9 (𝜑 → (0..^𝑁) ∈ Fin)
24 inss2 4218 . . . . . . . . 9 ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ⊆ (0..^𝑁)
25 ssfi 9192 . . . . . . . . 9 (((0..^𝑁) ∈ Fin ∧ ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ⊆ (0..^𝑁)) → ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ Fin)
2623, 24, 25sylancl 586 . . . . . . . 8 (𝜑 → ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ Fin)
27 elfpw 9371 . . . . . . . 8 (((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0 ∩ Fin) ↔ (((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ⊆ ℕ0 ∧ ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ Fin))
2821, 26, 27sylanbrc 583 . . . . . . 7 (𝜑 → ((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0 ∩ Fin))
29 bitsf1o 16469 . . . . . . . . . 10 (bits ↾ ℕ0):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin)
30 f1ocnv 6835 . . . . . . . . . 10 ((bits ↾ ℕ0):ℕ01-1-onto→(𝒫 ℕ0 ∩ Fin) → (bits ↾ ℕ0):(𝒫 ℕ0 ∩ Fin)–1-1-onto→ℕ0)
31 f1of 6823 . . . . . . . . . 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 6702 . . . . . . . . 9 (𝐾:(𝒫 ℕ0 ∩ Fin)⟶ℕ0(bits ↾ ℕ0):(𝒫 ℕ0 ∩ Fin)⟶ℕ0)
3532, 34mpbir 231 . . . . . . . 8 𝐾:(𝒫 ℕ0 ∩ Fin)⟶ℕ0
3635ffvelcdmi 7078 . . . . . . 7 (((𝐴 sadd 𝐵) ∩ (0..^𝑁)) ∈ (𝒫 ℕ0 ∩ Fin) → (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ ℕ0)
3728, 36syl 17 . . . . . 6 (𝜑 → (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ ℕ0)
3837nn0cnd 12569 . . . . 5 (𝜑 → (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ ℂ)
394nncnd 12261 . . . . . 6 (𝜑 → (2↑𝑁) ∈ ℂ)
40 0cn 11232 . . . . . 6 0 ∈ ℂ
41 ifcl 4551 . . . . . 6 (((2↑𝑁) ∈ ℂ ∧ 0 ∈ ℂ) → if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0) ∈ ℂ)
4239, 40, 41sylancl 586 . . . . 5 (𝜑 → if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0) ∈ ℂ)
4338, 42pncan2d 11601 . . . 4 (𝜑 → (((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) − (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁)))) = if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0))
4413, 43breqtrrd 5152 . . 3 (𝜑 → (2↑𝑁) ∥ (((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) − (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁)))))
4537nn0zd 12619 . . . . 5 (𝜑 → (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) ∈ ℤ)
465adantr 480 . . . . . 6 ((𝜑 ∧ ∅ ∈ (𝐶𝑁)) → (2↑𝑁) ∈ ℤ)
47 0zd 12605 . . . . . 6 ((𝜑 ∧ ¬ ∅ ∈ (𝐶𝑁)) → 0 ∈ ℤ)
4846, 47ifclda 4541 . . . . 5 (𝜑 → if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0) ∈ ℤ)
4945, 48zaddcld 12706 . . . 4 (𝜑 → ((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) ∈ ℤ)
50 moddvds 16288 . . . 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 1373 . . 3 (𝜑 → ((((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) mod (2↑𝑁)) = ((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) mod (2↑𝑁)) ↔ (2↑𝑁) ∥ (((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) − (𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))))))
5244, 51mpbird 257 . 2 (𝜑 → (((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) mod (2↑𝑁)) = ((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) mod (2↑𝑁)))
5315, 16, 17, 3, 33sadadd2 16484 . . 3 (𝜑 → ((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) = ((𝐾‘(𝐴 ∩ (0..^𝑁))) + (𝐾‘(𝐵 ∩ (0..^𝑁)))))
5453oveq1d 7425 . 2 (𝜑 → (((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) + if(∅ ∈ (𝐶𝑁), (2↑𝑁), 0)) mod (2↑𝑁)) = (((𝐾‘(𝐴 ∩ (0..^𝑁))) + (𝐾‘(𝐵 ∩ (0..^𝑁)))) mod (2↑𝑁)))
5552, 54eqtr3d 2773 1 (𝜑 → ((𝐾‘((𝐴 sadd 𝐵) ∩ (0..^𝑁))) mod (2↑𝑁)) = (((𝐾‘(𝐴 ∩ (0..^𝑁))) + (𝐾‘(𝐵 ∩ (0..^𝑁)))) mod (2↑𝑁)))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 206  wa 395   = wceq 1540  haddwhad 1593  caddwcad 1606  wcel 2109  {crab 3420  cin 3930  wss 3931  c0 4313  ifcif 4505  𝒫 cpw 4580   class class class wbr 5124  cmpt 5206  ccnv 5658  cres 5661  wf 6532  1-1-ontowf1o 6535  cfv 6536  (class class class)co 7410  cmpo 7412  1oc1o 8478  2oc2o 8479  Fincfn 8964  cc 11132  0cc0 11134  1c1 11135   + caddc 11137  cmin 11471  cn 12245  2c2 12300  0cn0 12506  cz 12593  ..^cfzo 13676   mod cmo 13891  seqcseq 14024  cexp 14084  cdvds 16277  bitscbits 16443   sadd csad 16444
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1795  ax-4 1809  ax-5 1910  ax-6 1967  ax-7 2008  ax-8 2111  ax-9 2119  ax-10 2142  ax-11 2158  ax-12 2178  ax-ext 2708  ax-rep 5254  ax-sep 5271  ax-nul 5281  ax-pow 5340  ax-pr 5407  ax-un 7734  ax-inf2 9660  ax-cnex 11190  ax-resscn 11191  ax-1cn 11192  ax-icn 11193  ax-addcl 11194  ax-addrcl 11195  ax-mulcl 11196  ax-mulrcl 11197  ax-mulcom 11198  ax-addass 11199  ax-mulass 11200  ax-distr 11201  ax-i2m1 11202  ax-1ne0 11203  ax-1rid 11204  ax-rnegex 11205  ax-rrecex 11206  ax-cnre 11207  ax-pre-lttri 11208  ax-pre-lttrn 11209  ax-pre-ltadd 11210  ax-pre-mulgt0 11211  ax-pre-sup 11212
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 848  df-3or 1087  df-3an 1088  df-xor 1512  df-tru 1543  df-fal 1553  df-had 1594  df-cad 1607  df-ex 1780  df-nf 1784  df-sb 2066  df-mo 2540  df-eu 2569  df-clab 2715  df-cleq 2728  df-clel 2810  df-nfc 2886  df-ne 2934  df-nel 3038  df-ral 3053  df-rex 3062  df-rmo 3364  df-reu 3365  df-rab 3421  df-v 3466  df-sbc 3771  df-csb 3880  df-dif 3934  df-un 3936  df-in 3938  df-ss 3948  df-pss 3951  df-nul 4314  df-if 4506  df-pw 4582  df-sn 4607  df-pr 4609  df-op 4613  df-uni 4889  df-int 4928  df-iun 4974  df-disj 5092  df-br 5125  df-opab 5187  df-mpt 5207  df-tr 5235  df-id 5553  df-eprel 5558  df-po 5566  df-so 5567  df-fr 5611  df-se 5612  df-we 5613  df-xp 5665  df-rel 5666  df-cnv 5667  df-co 5668  df-dm 5669  df-rn 5670  df-res 5671  df-ima 5672  df-pred 6295  df-ord 6360  df-on 6361  df-lim 6362  df-suc 6363  df-iota 6489  df-fun 6538  df-fn 6539  df-f 6540  df-f1 6541  df-fo 6542  df-f1o 6543  df-fv 6544  df-isom 6545  df-riota 7367  df-ov 7413  df-oprab 7414  df-mpo 7415  df-om 7867  df-1st 7993  df-2nd 7994  df-frecs 8285  df-wrecs 8316  df-recs 8390  df-rdg 8429  df-1o 8485  df-2o 8486  df-oadd 8489  df-er 8724  df-map 8847  df-pm 8848  df-en 8965  df-dom 8966  df-sdom 8967  df-fin 8968  df-sup 9459  df-inf 9460  df-oi 9529  df-dju 9920  df-card 9958  df-pnf 11276  df-mnf 11277  df-xr 11278  df-ltxr 11279  df-le 11280  df-sub 11473  df-neg 11474  df-div 11900  df-nn 12246  df-2 12308  df-3 12309  df-n0 12507  df-xnn0 12580  df-z 12594  df-uz 12858  df-rp 13014  df-fz 13530  df-fzo 13677  df-fl 13814  df-mod 13892  df-seq 14025  df-exp 14085  df-hash 14354  df-cj 15123  df-re 15124  df-im 15125  df-sqrt 15259  df-abs 15260  df-clim 15509  df-sum 15708  df-dvds 16278  df-bits 16446  df-sad 16475
This theorem is referenced by:  sadaddlem  16490  sadasslem  16494  sadeq  16496
  Copyright terms: Public domain W3C validator