Metamath Proof Explorer


Theorem sadeq

Description: Any element of a sequence sum only depends on the values of the argument sequences up to and including that point. (Contributed by Mario Carneiro, 9-Sep-2016)

Ref Expression
Hypotheses sadeq.a φ A 0
sadeq.b φ B 0
sadeq.n φ N 0
Assertion sadeq φ A sadd B 0 ..^ N = A 0 ..^ N sadd B 0 ..^ N 0 ..^ N

Proof

Step Hyp Ref Expression
1 sadeq.a φ A 0
2 sadeq.b φ B 0
3 sadeq.n φ N 0
4 inass A 0 ..^ N 0 ..^ N = A 0 ..^ N 0 ..^ N
5 inidm 0 ..^ N 0 ..^ N = 0 ..^ N
6 5 ineq2i A 0 ..^ N 0 ..^ N = A 0 ..^ N
7 4 6 eqtri A 0 ..^ N 0 ..^ N = A 0 ..^ N
8 7 fveq2i bits 0 -1 A 0 ..^ N 0 ..^ N = bits 0 -1 A 0 ..^ N
9 inass B 0 ..^ N 0 ..^ N = B 0 ..^ N 0 ..^ N
10 5 ineq2i B 0 ..^ N 0 ..^ N = B 0 ..^ N
11 9 10 eqtri B 0 ..^ N 0 ..^ N = B 0 ..^ N
12 11 fveq2i bits 0 -1 B 0 ..^ N 0 ..^ N = bits 0 -1 B 0 ..^ N
13 8 12 oveq12i bits 0 -1 A 0 ..^ N 0 ..^ N + bits 0 -1 B 0 ..^ N 0 ..^ N = bits 0 -1 A 0 ..^ N + bits 0 -1 B 0 ..^ N
14 13 oveq1i bits 0 -1 A 0 ..^ N 0 ..^ N + bits 0 -1 B 0 ..^ N 0 ..^ N mod 2 N = bits 0 -1 A 0 ..^ N + bits 0 -1 B 0 ..^ N mod 2 N
15 inss1 A 0 ..^ N A
16 15 1 sstrid φ A 0 ..^ N 0
17 inss1 B 0 ..^ N B
18 17 2 sstrid φ B 0 ..^ N 0
19 eqid seq 0 c 2 𝑜 , m 0 if cadd m A 0 ..^ N m B 0 ..^ N c 1 𝑜 n 0 if n = 0 n 1 = seq 0 c 2 𝑜 , m 0 if cadd m A 0 ..^ N m B 0 ..^ N c 1 𝑜 n 0 if n = 0 n 1
20 eqid bits 0 -1 = bits 0 -1
21 16 18 19 3 20 sadadd3 φ bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N mod 2 N = bits 0 -1 A 0 ..^ N 0 ..^ N + bits 0 -1 B 0 ..^ N 0 ..^ N mod 2 N
22 eqid seq 0 c 2 𝑜 , m 0 if cadd m A m B c 1 𝑜 n 0 if n = 0 n 1 = seq 0 c 2 𝑜 , m 0 if cadd m A m B c 1 𝑜 n 0 if n = 0 n 1
23 1 2 22 3 20 sadadd3 φ bits 0 -1 A sadd B 0 ..^ N mod 2 N = bits 0 -1 A 0 ..^ N + bits 0 -1 B 0 ..^ N mod 2 N
24 14 21 23 3eqtr4a φ bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N mod 2 N = bits 0 -1 A sadd B 0 ..^ N mod 2 N
25 inss1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N A 0 ..^ N sadd B 0 ..^ N
26 sadcl A 0 ..^ N 0 B 0 ..^ N 0 A 0 ..^ N sadd B 0 ..^ N 0
27 16 18 26 syl2anc φ A 0 ..^ N sadd B 0 ..^ N 0
28 25 27 sstrid φ A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 0
29 fzofi 0 ..^ N Fin
30 29 a1i φ 0 ..^ N Fin
31 inss2 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 0 ..^ N
32 ssfi 0 ..^ N Fin A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 0 ..^ N A 0 ..^ N sadd B 0 ..^ N 0 ..^ N Fin
33 30 31 32 sylancl φ A 0 ..^ N sadd B 0 ..^ N 0 ..^ N Fin
34 elfpw A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 𝒫 0 Fin A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 0 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N Fin
35 28 33 34 sylanbrc φ A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 𝒫 0 Fin
36 bitsf1o bits 0 : 0 1-1 onto 𝒫 0 Fin
37 f1ocnv bits 0 : 0 1-1 onto 𝒫 0 Fin bits 0 -1 : 𝒫 0 Fin 1-1 onto 0
38 f1of bits 0 -1 : 𝒫 0 Fin 1-1 onto 0 bits 0 -1 : 𝒫 0 Fin 0
39 36 37 38 mp2b bits 0 -1 : 𝒫 0 Fin 0
40 39 ffvelrni A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 𝒫 0 Fin bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 0
41 35 40 syl φ bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 0
42 41 nn0red φ bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N
43 2rp 2 +
44 43 a1i φ 2 +
45 3 nn0zd φ N
46 44 45 rpexpcld φ 2 N +
47 41 nn0ge0d φ 0 bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N
48 41 fvresd φ bits 0 bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N = bits bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N
49 f1ocnvfv2 bits 0 : 0 1-1 onto 𝒫 0 Fin A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 𝒫 0 Fin bits 0 bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N = A 0 ..^ N sadd B 0 ..^ N 0 ..^ N
50 36 35 49 sylancr φ bits 0 bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N = A 0 ..^ N sadd B 0 ..^ N 0 ..^ N
51 48 50 eqtr3d φ bits bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N = A 0 ..^ N sadd B 0 ..^ N 0 ..^ N
52 51 31 eqsstrdi φ bits bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 0 ..^ N
53 41 nn0zd φ bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N
54 bitsfzo bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N N 0 bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 0 ..^ 2 N bits bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 0 ..^ N
55 53 3 54 syl2anc φ bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 0 ..^ 2 N bits bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 0 ..^ N
56 52 55 mpbird φ bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 0 ..^ 2 N
57 elfzolt2 bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 0 ..^ 2 N bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N < 2 N
58 56 57 syl φ bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N < 2 N
59 modid bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 2 N + 0 bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N < 2 N bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N mod 2 N = bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N
60 42 46 47 58 59 syl22anc φ bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N mod 2 N = bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N
61 inss1 A sadd B 0 ..^ N A sadd B
62 sadcl A 0 B 0 A sadd B 0
63 1 2 62 syl2anc φ A sadd B 0
64 61 63 sstrid φ A sadd B 0 ..^ N 0
65 inss2 A sadd B 0 ..^ N 0 ..^ N
66 ssfi 0 ..^ N Fin A sadd B 0 ..^ N 0 ..^ N A sadd B 0 ..^ N Fin
67 30 65 66 sylancl φ A sadd B 0 ..^ N Fin
68 elfpw A sadd B 0 ..^ N 𝒫 0 Fin A sadd B 0 ..^ N 0 A sadd B 0 ..^ N Fin
69 64 67 68 sylanbrc φ A sadd B 0 ..^ N 𝒫 0 Fin
70 39 ffvelrni A sadd B 0 ..^ N 𝒫 0 Fin bits 0 -1 A sadd B 0 ..^ N 0
71 69 70 syl φ bits 0 -1 A sadd B 0 ..^ N 0
72 71 nn0red φ bits 0 -1 A sadd B 0 ..^ N
73 71 nn0ge0d φ 0 bits 0 -1 A sadd B 0 ..^ N
74 71 fvresd φ bits 0 bits 0 -1 A sadd B 0 ..^ N = bits bits 0 -1 A sadd B 0 ..^ N
75 f1ocnvfv2 bits 0 : 0 1-1 onto 𝒫 0 Fin A sadd B 0 ..^ N 𝒫 0 Fin bits 0 bits 0 -1 A sadd B 0 ..^ N = A sadd B 0 ..^ N
76 36 69 75 sylancr φ bits 0 bits 0 -1 A sadd B 0 ..^ N = A sadd B 0 ..^ N
77 74 76 eqtr3d φ bits bits 0 -1 A sadd B 0 ..^ N = A sadd B 0 ..^ N
78 77 65 eqsstrdi φ bits bits 0 -1 A sadd B 0 ..^ N 0 ..^ N
79 71 nn0zd φ bits 0 -1 A sadd B 0 ..^ N
80 bitsfzo bits 0 -1 A sadd B 0 ..^ N N 0 bits 0 -1 A sadd B 0 ..^ N 0 ..^ 2 N bits bits 0 -1 A sadd B 0 ..^ N 0 ..^ N
81 79 3 80 syl2anc φ bits 0 -1 A sadd B 0 ..^ N 0 ..^ 2 N bits bits 0 -1 A sadd B 0 ..^ N 0 ..^ N
82 78 81 mpbird φ bits 0 -1 A sadd B 0 ..^ N 0 ..^ 2 N
83 elfzolt2 bits 0 -1 A sadd B 0 ..^ N 0 ..^ 2 N bits 0 -1 A sadd B 0 ..^ N < 2 N
84 82 83 syl φ bits 0 -1 A sadd B 0 ..^ N < 2 N
85 modid bits 0 -1 A sadd B 0 ..^ N 2 N + 0 bits 0 -1 A sadd B 0 ..^ N bits 0 -1 A sadd B 0 ..^ N < 2 N bits 0 -1 A sadd B 0 ..^ N mod 2 N = bits 0 -1 A sadd B 0 ..^ N
86 72 46 73 84 85 syl22anc φ bits 0 -1 A sadd B 0 ..^ N mod 2 N = bits 0 -1 A sadd B 0 ..^ N
87 24 60 86 3eqtr3rd φ bits 0 -1 A sadd B 0 ..^ N = bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N
88 f1of1 bits 0 -1 : 𝒫 0 Fin 1-1 onto 0 bits 0 -1 : 𝒫 0 Fin 1-1 0
89 36 37 88 mp2b bits 0 -1 : 𝒫 0 Fin 1-1 0
90 f1fveq bits 0 -1 : 𝒫 0 Fin 1-1 0 A sadd B 0 ..^ N 𝒫 0 Fin A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 𝒫 0 Fin bits 0 -1 A sadd B 0 ..^ N = bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N A sadd B 0 ..^ N = A 0 ..^ N sadd B 0 ..^ N 0 ..^ N
91 89 90 mpan A sadd B 0 ..^ N 𝒫 0 Fin A 0 ..^ N sadd B 0 ..^ N 0 ..^ N 𝒫 0 Fin bits 0 -1 A sadd B 0 ..^ N = bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N A sadd B 0 ..^ N = A 0 ..^ N sadd B 0 ..^ N 0 ..^ N
92 69 35 91 syl2anc φ bits 0 -1 A sadd B 0 ..^ N = bits 0 -1 A 0 ..^ N sadd B 0 ..^ N 0 ..^ N A sadd B 0 ..^ N = A 0 ..^ N sadd B 0 ..^ N 0 ..^ N
93 87 92 mpbid φ A sadd B 0 ..^ N = A 0 ..^ N sadd B 0 ..^ N 0 ..^ N