HomeHome Metamath Proof Explorer < Previous   Next >
Related theorems
Unicode version

Theorem seqzfval 6469
Description: Value of the arbitrary-based recursive sequence builder operation.
Hypotheses
Ref Expression
seq0val.1 |- S e. V
seq0val.2 |- F e. V
Assertion
Ref Expression
seqzfval |- (M e. A -> (<.M, S>. seq F) = (((S seq1 (F shift (1 - M))) shift (M - 1)) |` {k e. ZZ | M <_ k}))
Distinct variable groups:   S,k   k,F   A,k   k,M

Proof of Theorem seqzfval
StepHypRef Expression
1 seq0val.1 . . . . . . 7 |- S e. V
2 op2ndg 4072 . . . . . . 7 |- ((M e. A /\ S e. V) -> (2nd`
<.M, S>.) = S)
31, 2mpan2 694 . . . . . 6 |- (M e. A -> (2nd` <.M, S>.) = S)
4 op1stg 4071 . . . . . . . 8 |- (M e. A -> (1st` <.M, S>.) = M)
54opreq2d 3961 . . . . . . 7 |- (M e. A -> (1 - (1st` <.M, S>.)) = (1 - M))
65opreq2d 3961 . . . . . 6 |- (M e. A -> (F shift (1 - (1st`
<.M, S>.))) = (F shift (1 - M)))
73, 6opreq12d 3963 . . . . 5 |- (M e. A -> ((2nd` <.M, S>.) seq1 (F shift (1 - (1st` <.M, S>.)))) = (S seq1 (F shift (1 - M))))
84opreq1d 3960 . . . . 5 |- (M e. A -> ((1st` <.M, S>.) - 1) = (M - 1))
97, 8opreq12d 3963 . . . 4 |- (M e. A -> (((2nd`
<.M, S>.) seq1 (F shift (1 - (1st`
<.M, S>.)))) shift ((1st` <.M, S>.) - 1)) = ((S seq1 (F shift (1 - M))) shift (M - 1)))
10 reseq1 3352 . . . 4 |- ((((2nd`
<.M, S>.) seq1 (F shift (1 - (1st`
<.M, S>.)))) shift ((1st` <.M, S>.) - 1)) = ((S seq1 (F shift (1 - M))) shift (M - 1)) -> ((((2nd`
<.M, S>.) seq1 (F shift (1 - (1st`
<.M, S>.)))) shift ((1st` <.M, S>.) - 1)) |` {k e. ZZ | (1st` <.M, S>.) <_ k}) = (((S seq1 (F shift (1 - M))) shift (M - 1)) |` {k e. ZZ | (1st` <.M, S>.) <_ k}))
119, 10syl 10 . . 3 |- (M e. A -> ((((2nd` <.M, S>.) seq1 (F shift (1 - (1st`
<.M, S>.)))) shift ((1st` <.M, S>.) - 1)) |` {k e. ZZ | (1st` <.M, S>.) <_ k}) = (((S seq1 (F shift (1 - M))) shift (M - 1)) |` {k e. ZZ | (1st` <.M, S>.) <_ k}))
124breq1d 2619 . . . . 5 |- (M e. A -> ((1st` <.M, S>.) <_ k <-> M <_ k))
1312rabbisdv 1798 . . . 4 |- (M e. A -> {k e. ZZ | (1st` <.M, S>.) <_ k} = {k e. ZZ | M <_ k})
14 reseq2 3353 . . . 4 |- ({k e. ZZ | (1st` <.M, S>.) <_ k} = {k e. ZZ | M <_ k} -> (((S seq1 (F shift (1 - M))) shift (M - 1)) |` {k e. ZZ | (1st` <.M, S>.) <_ k}) = (((S seq1 (F shift (1 - M))) shift (M - 1)) |` {k e. ZZ | M <_ k}))
1513, 14syl 10 . . 3 |- (M e. A -> (((S seq1 (F shift (1 - M))) shift (M - 1)) |` {k e. ZZ | (1st` <.M, S>.) <_ k}) = (((S seq1 (F shift (1 - M))) shift (M - 1)) |` {k e. ZZ | M <_ k}))
1611, 15eqtrd 1499 . 2 |- (M e. A -> ((((2nd` <.M, S>.) seq1 (F shift (1 - (1st`
<.M, S>.)))) shift ((1st` <.M, S>.) - 1)) |` {k e. ZZ | (1st` <.M, S>.) <_ k}) = (((S seq1 (F shift (1 - M))) shift (M - 1)) |` {k e. ZZ | M <_ k}))
17 opex 2772 . . 3 |- <.M, S>. e. V
18 seq0val.2 . . 3 |- F e. V
19 oprex 3968 . . . . 5 |- (((2nd` <.M, S>.) seq1 (F shift (1 - (1st` <.M, S>.)))) shift ((1st` <.M, S>.) - 1)) e. V
20 resexg 3378 . . . . 5 |- ((((2nd`
<.M, S>.) seq1 (F shift (1 - (1st`
<.M, S>.)))) shift ((1st` <.M, S>.) - 1)) e. V -> ((((2nd` <.M, S>.) seq1 (F shift (1 - (1st`
<.M, S>.)))) shift ((1st` <.M, S>.) - 1)) |` {k e. ZZ | (1st` <.M, S>.) <_ k}) e. V)
2119, 20ax-mp 7 . . . 4 |- ((((2nd`
<.M, S>.) seq1 (F shift (1 - (1st`
<.M, S>.)))) shift ((1st` <.M, S>.) - 1)) |` {k e. ZZ | (1st` <.M, S>.) <_ k}) e. V
22 fveq2 3709 . . . . . . . 8 |- (x = <.M, S>. -> (2nd` x) = (2nd` <.M, S>.))
23 fveq2 3709 . . . . . . . . . 10 |- (x = <.M, S>. -> (1st` x) = (1st` <.M, S>.))
2423opreq2d 3961 . . . . . . . . 9 |- (x = <.M, S>. -> (1 - (1st` x)) = (1 - (1st` <.M, S>.)))
2524opreq2d 3961 . . . . . . . 8 |- (x = <.M, S>. -> (g shift (1 - (1st`
x))) = (g shift (1 - (1st` <.M, S>.))))
2622, 25opreq12d 3963 . . . . . . 7 |- (x = <.M, S>. -> ((2nd` x) seq1 (g shift (1 - (1st` x)))) = ((2nd` <.M, S>.) seq1 (g shift (1 - (1st`
<.M, S>.)))))
2723opreq1d 3960 . . . . . . 7 |- (x = <.M, S>. -> ((1st` x) - 1) = ((1st` <.M, S>.) - 1))
2826, 27opreq12d 3963 . . . . . 6 |- (x = <.M, S>. -> (((2nd`
x) seq1 (g shift (1 - (1st`
x)))) shift ((1st` x) - 1)) = (((2nd` <.M, S>.) seq1 (g shift (1 - (1st` <.M, S>.)))) shift ((1st` <.M, S>.) - 1)))
29 reseq1 3352 . . . . . 6 |- ((((2nd`
x) seq1 (g shift (1 - (1st`
x)))) shift ((1st` x) - 1)) = (((2nd` <.M, S>.) seq1 (g shift (1 - (1st` <.M, S>.)))) shift ((1st` <.M, S>.) - 1)) -> ((((2nd` x) seq1 (g shift (1 - (1st` x)))) shift ((1st` x) - 1)) |` {k e. ZZ | (1st` x) <_ k}) = ((((2nd`
<.M, S>.) seq1 (g shift (1 - (1st`
<.M, S>.)))) shift ((1st` <.M, S>.) - 1)) |` {k e. ZZ | (1st` x) <_ k}))
3028, 29syl 10 . . . . 5 |- (x = <.M, S>. -> ((((2nd` x) seq1 (g shift (1 - (1st` x)))) shift ((1st` x) - 1)) |` {k e. ZZ | (1st` x) <_ k}) = ((((2nd` <.M, S>.) seq1 (g shift (1 - (1st` <.M, S>.)))) shift ((1st` <.M, S>.) - 1)) |` {k e. ZZ | (1st` x) <_ k}))
3123breq1d 2619 . . . . . . 7 |- (x = <.M, S>. -> ((1st` x) <_ k <-> (1st` <.M, S>.) <_ k))
3231rabbisdv 1798 . . . . . 6 |- (x = <.M, S>. -> {k e. ZZ | (1st` x) <_ k} = {k e. ZZ | (1st` <.M, S>.) <_ k})
33 reseq2 3353 . . . . . 6 |- ({k e. ZZ | (1st` x) <_ k} = {k e. ZZ | (1st` <.M, S>.) <_ k} -> ((((2nd`
<.M, S>.) seq1 (g shift (1 - (1st`
<.M, S>.)))) shift ((1st` <.M, S>.) - 1)) |` {k e. ZZ | (1st` x) <_ k}) = ((((2nd` <.M, S>.) seq1 (g shift (1 - (1st`
<.M, S>.)))) shift ((1st` <.M, S>.) - 1)) |` {k e. ZZ | (1st` <.M, S>.) <_ k}))
3432, 33syl 10 . . . . 5 |- (x = <.M, S>. ->