Metamath Proof Explorer


Theorem seqp1

Description: Value of the sequence builder function at a successor. (Contributed by Mario Carneiro, 24-Jun-2013) (Revised by Mario Carneiro, 15-Sep-2013)

Ref Expression
Assertion seqp1
|- ( N e. ( ZZ>= ` M ) -> ( seq M ( .+ , F ) ` ( N + 1 ) ) = ( ( seq M ( .+ , F ) ` N ) .+ ( F ` ( N + 1 ) ) ) )

Proof

Step Hyp Ref Expression
1 eluzel2
 |-  ( N e. ( ZZ>= ` M ) -> M e. ZZ )
2 fveq2
 |-  ( M = if ( M e. ZZ , M , 0 ) -> ( ZZ>= ` M ) = ( ZZ>= ` if ( M e. ZZ , M , 0 ) ) )
3 2 eleq2d
 |-  ( M = if ( M e. ZZ , M , 0 ) -> ( N e. ( ZZ>= ` M ) <-> N e. ( ZZ>= ` if ( M e. ZZ , M , 0 ) ) ) )
4 seqeq1
 |-  ( M = if ( M e. ZZ , M , 0 ) -> seq M ( .+ , F ) = seq if ( M e. ZZ , M , 0 ) ( .+ , F ) )
5 4 fveq1d
 |-  ( M = if ( M e. ZZ , M , 0 ) -> ( seq M ( .+ , F ) ` ( N + 1 ) ) = ( seq if ( M e. ZZ , M , 0 ) ( .+ , F ) ` ( N + 1 ) ) )
6 4 fveq1d
 |-  ( M = if ( M e. ZZ , M , 0 ) -> ( seq M ( .+ , F ) ` N ) = ( seq if ( M e. ZZ , M , 0 ) ( .+ , F ) ` N ) )
7 6 oveq2d
 |-  ( M = if ( M e. ZZ , M , 0 ) -> ( N ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) ( seq M ( .+ , F ) ` N ) ) = ( N ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) ( seq if ( M e. ZZ , M , 0 ) ( .+ , F ) ` N ) ) )
8 5 7 eqeq12d
 |-  ( M = if ( M e. ZZ , M , 0 ) -> ( ( seq M ( .+ , F ) ` ( N + 1 ) ) = ( N ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) ( seq M ( .+ , F ) ` N ) ) <-> ( seq if ( M e. ZZ , M , 0 ) ( .+ , F ) ` ( N + 1 ) ) = ( N ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) ( seq if ( M e. ZZ , M , 0 ) ( .+ , F ) ` N ) ) ) )
9 3 8 imbi12d
 |-  ( M = if ( M e. ZZ , M , 0 ) -> ( ( N e. ( ZZ>= ` M ) -> ( seq M ( .+ , F ) ` ( N + 1 ) ) = ( N ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) ( seq M ( .+ , F ) ` N ) ) ) <-> ( N e. ( ZZ>= ` if ( M e. ZZ , M , 0 ) ) -> ( seq if ( M e. ZZ , M , 0 ) ( .+ , F ) ` ( N + 1 ) ) = ( N ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) ( seq if ( M e. ZZ , M , 0 ) ( .+ , F ) ` N ) ) ) ) )
10 0z
 |-  0 e. ZZ
11 10 elimel
 |-  if ( M e. ZZ , M , 0 ) e. ZZ
12 eqid
 |-  ( rec ( ( x e. _V |-> ( x + 1 ) ) , if ( M e. ZZ , M , 0 ) ) |` _om ) = ( rec ( ( x e. _V |-> ( x + 1 ) ) , if ( M e. ZZ , M , 0 ) ) |` _om )
13 fvex
 |-  ( F ` if ( M e. ZZ , M , 0 ) ) e. _V
14 eqid
 |-  ( rec ( ( x e. _V , y e. _V |-> <. ( x + 1 ) , ( x ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) y ) >. ) , <. if ( M e. ZZ , M , 0 ) , ( F ` if ( M e. ZZ , M , 0 ) ) >. ) |` _om ) = ( rec ( ( x e. _V , y e. _V |-> <. ( x + 1 ) , ( x ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) y ) >. ) , <. if ( M e. ZZ , M , 0 ) , ( F ` if ( M e. ZZ , M , 0 ) ) >. ) |` _om )
15 14 seqval
 |-  seq if ( M e. ZZ , M , 0 ) ( .+ , F ) = ran ( rec ( ( x e. _V , y e. _V |-> <. ( x + 1 ) , ( x ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) y ) >. ) , <. if ( M e. ZZ , M , 0 ) , ( F ` if ( M e. ZZ , M , 0 ) ) >. ) |` _om )
16 11 12 13 14 15 uzrdgsuci
 |-  ( N e. ( ZZ>= ` if ( M e. ZZ , M , 0 ) ) -> ( seq if ( M e. ZZ , M , 0 ) ( .+ , F ) ` ( N + 1 ) ) = ( N ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) ( seq if ( M e. ZZ , M , 0 ) ( .+ , F ) ` N ) ) )
17 9 16 dedth
 |-  ( M e. ZZ -> ( N e. ( ZZ>= ` M ) -> ( seq M ( .+ , F ) ` ( N + 1 ) ) = ( N ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) ( seq M ( .+ , F ) ` N ) ) ) )
18 1 17 mpcom
 |-  ( N e. ( ZZ>= ` M ) -> ( seq M ( .+ , F ) ` ( N + 1 ) ) = ( N ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) ( seq M ( .+ , F ) ` N ) ) )
19 elex
 |-  ( N e. ( ZZ>= ` M ) -> N e. _V )
20 fvex
 |-  ( seq M ( .+ , F ) ` N ) e. _V
21 fvoveq1
 |-  ( z = N -> ( F ` ( z + 1 ) ) = ( F ` ( N + 1 ) ) )
22 21 oveq2d
 |-  ( z = N -> ( w .+ ( F ` ( z + 1 ) ) ) = ( w .+ ( F ` ( N + 1 ) ) ) )
23 oveq1
 |-  ( w = ( seq M ( .+ , F ) ` N ) -> ( w .+ ( F ` ( N + 1 ) ) ) = ( ( seq M ( .+ , F ) ` N ) .+ ( F ` ( N + 1 ) ) ) )
24 eqid
 |-  ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) = ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) )
25 ovex
 |-  ( ( seq M ( .+ , F ) ` N ) .+ ( F ` ( N + 1 ) ) ) e. _V
26 22 23 24 25 ovmpo
 |-  ( ( N e. _V /\ ( seq M ( .+ , F ) ` N ) e. _V ) -> ( N ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) ( seq M ( .+ , F ) ` N ) ) = ( ( seq M ( .+ , F ) ` N ) .+ ( F ` ( N + 1 ) ) ) )
27 19 20 26 sylancl
 |-  ( N e. ( ZZ>= ` M ) -> ( N ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) ( seq M ( .+ , F ) ` N ) ) = ( ( seq M ( .+ , F ) ` N ) .+ ( F ` ( N + 1 ) ) ) )
28 18 27 eqtrd
 |-  ( N e. ( ZZ>= ` M ) -> ( seq M ( .+ , F ) ` ( N + 1 ) ) = ( ( seq M ( .+ , F ) ` N ) .+ ( F ` ( N + 1 ) ) ) )