| Step | Hyp | Ref | Expression | 
						
							| 1 |  | prodmo.1 |  |-  F = ( k e. ZZ |-> if ( k e. A , B , 1 ) ) | 
						
							| 2 |  | prodmo.2 |  |-  ( ( ph /\ k e. A ) -> B e. CC ) | 
						
							| 3 |  | prodrb.3 |  |-  ( ph -> N e. ( ZZ>= ` M ) ) | 
						
							| 4 |  | fprodcvg.4 |  |-  ( ph -> A C_ ( M ... N ) ) | 
						
							| 5 |  | eqid |  |-  ( ZZ>= ` N ) = ( ZZ>= ` N ) | 
						
							| 6 |  | eluzelz |  |-  ( N e. ( ZZ>= ` M ) -> N e. ZZ ) | 
						
							| 7 | 3 6 | syl |  |-  ( ph -> N e. ZZ ) | 
						
							| 8 |  | seqex |  |-  seq M ( x. , F ) e. _V | 
						
							| 9 | 8 | a1i |  |-  ( ph -> seq M ( x. , F ) e. _V ) | 
						
							| 10 |  | eqid |  |-  ( ZZ>= ` M ) = ( ZZ>= ` M ) | 
						
							| 11 |  | eluzel2 |  |-  ( N e. ( ZZ>= ` M ) -> M e. ZZ ) | 
						
							| 12 | 3 11 | syl |  |-  ( ph -> M e. ZZ ) | 
						
							| 13 |  | eluzelz |  |-  ( k e. ( ZZ>= ` M ) -> k e. ZZ ) | 
						
							| 14 | 13 | adantl |  |-  ( ( ph /\ k e. ( ZZ>= ` M ) ) -> k e. ZZ ) | 
						
							| 15 |  | iftrue |  |-  ( k e. A -> if ( k e. A , B , 1 ) = B ) | 
						
							| 16 | 15 | adantl |  |-  ( ( ( ph /\ k e. ( ZZ>= ` M ) ) /\ k e. A ) -> if ( k e. A , B , 1 ) = B ) | 
						
							| 17 | 2 | adantlr |  |-  ( ( ( ph /\ k e. ( ZZ>= ` M ) ) /\ k e. A ) -> B e. CC ) | 
						
							| 18 | 16 17 | eqeltrd |  |-  ( ( ( ph /\ k e. ( ZZ>= ` M ) ) /\ k e. A ) -> if ( k e. A , B , 1 ) e. CC ) | 
						
							| 19 | 18 | ex |  |-  ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( k e. A -> if ( k e. A , B , 1 ) e. CC ) ) | 
						
							| 20 |  | iffalse |  |-  ( -. k e. A -> if ( k e. A , B , 1 ) = 1 ) | 
						
							| 21 |  | ax-1cn |  |-  1 e. CC | 
						
							| 22 | 20 21 | eqeltrdi |  |-  ( -. k e. A -> if ( k e. A , B , 1 ) e. CC ) | 
						
							| 23 | 19 22 | pm2.61d1 |  |-  ( ( ph /\ k e. ( ZZ>= ` M ) ) -> if ( k e. A , B , 1 ) e. CC ) | 
						
							| 24 | 1 | fvmpt2 |  |-  ( ( k e. ZZ /\ if ( k e. A , B , 1 ) e. CC ) -> ( F ` k ) = if ( k e. A , B , 1 ) ) | 
						
							| 25 | 14 23 24 | syl2anc |  |-  ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( F ` k ) = if ( k e. A , B , 1 ) ) | 
						
							| 26 | 25 23 | eqeltrd |  |-  ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( F ` k ) e. CC ) | 
						
							| 27 | 10 12 26 | prodf |  |-  ( ph -> seq M ( x. , F ) : ( ZZ>= ` M ) --> CC ) | 
						
							| 28 | 27 3 | ffvelcdmd |  |-  ( ph -> ( seq M ( x. , F ) ` N ) e. CC ) | 
						
							| 29 |  | mulrid |  |-  ( m e. CC -> ( m x. 1 ) = m ) | 
						
							| 30 | 29 | adantl |  |-  ( ( ( ph /\ n e. ( ZZ>= ` N ) ) /\ m e. CC ) -> ( m x. 1 ) = m ) | 
						
							| 31 | 3 | adantr |  |-  ( ( ph /\ n e. ( ZZ>= ` N ) ) -> N e. ( ZZ>= ` M ) ) | 
						
							| 32 |  | simpr |  |-  ( ( ph /\ n e. ( ZZ>= ` N ) ) -> n e. ( ZZ>= ` N ) ) | 
						
							| 33 | 12 | adantr |  |-  ( ( ph /\ n e. ( ZZ>= ` N ) ) -> M e. ZZ ) | 
						
							| 34 | 26 | adantlr |  |-  ( ( ( ph /\ n e. ( ZZ>= ` N ) ) /\ k e. ( ZZ>= ` M ) ) -> ( F ` k ) e. CC ) | 
						
							| 35 | 10 33 34 | prodf |  |-  ( ( ph /\ n e. ( ZZ>= ` N ) ) -> seq M ( x. , F ) : ( ZZ>= ` M ) --> CC ) | 
						
							| 36 | 35 31 | ffvelcdmd |  |-  ( ( ph /\ n e. ( ZZ>= ` N ) ) -> ( seq M ( x. , F ) ` N ) e. CC ) | 
						
							| 37 |  | elfzuz |  |-  ( m e. ( ( N + 1 ) ... n ) -> m e. ( ZZ>= ` ( N + 1 ) ) ) | 
						
							| 38 |  | eluzelz |  |-  ( m e. ( ZZ>= ` ( N + 1 ) ) -> m e. ZZ ) | 
						
							| 39 | 38 | adantl |  |-  ( ( ph /\ m e. ( ZZ>= ` ( N + 1 ) ) ) -> m e. ZZ ) | 
						
							| 40 | 4 | sseld |  |-  ( ph -> ( m e. A -> m e. ( M ... N ) ) ) | 
						
							| 41 |  | fznuz |  |-  ( m e. ( M ... N ) -> -. m e. ( ZZ>= ` ( N + 1 ) ) ) | 
						
							| 42 | 40 41 | syl6 |  |-  ( ph -> ( m e. A -> -. m e. ( ZZ>= ` ( N + 1 ) ) ) ) | 
						
							| 43 | 42 | con2d |  |-  ( ph -> ( m e. ( ZZ>= ` ( N + 1 ) ) -> -. m e. A ) ) | 
						
							| 44 | 43 | imp |  |-  ( ( ph /\ m e. ( ZZ>= ` ( N + 1 ) ) ) -> -. m e. A ) | 
						
							| 45 | 39 44 | eldifd |  |-  ( ( ph /\ m e. ( ZZ>= ` ( N + 1 ) ) ) -> m e. ( ZZ \ A ) ) | 
						
							| 46 |  | fveqeq2 |  |-  ( k = m -> ( ( F ` k ) = 1 <-> ( F ` m ) = 1 ) ) | 
						
							| 47 |  | eldifi |  |-  ( k e. ( ZZ \ A ) -> k e. ZZ ) | 
						
							| 48 |  | eldifn |  |-  ( k e. ( ZZ \ A ) -> -. k e. A ) | 
						
							| 49 | 48 20 | syl |  |-  ( k e. ( ZZ \ A ) -> if ( k e. A , B , 1 ) = 1 ) | 
						
							| 50 | 49 21 | eqeltrdi |  |-  ( k e. ( ZZ \ A ) -> if ( k e. A , B , 1 ) e. CC ) | 
						
							| 51 | 47 50 24 | syl2anc |  |-  ( k e. ( ZZ \ A ) -> ( F ` k ) = if ( k e. A , B , 1 ) ) | 
						
							| 52 | 51 49 | eqtrd |  |-  ( k e. ( ZZ \ A ) -> ( F ` k ) = 1 ) | 
						
							| 53 | 46 52 | vtoclga |  |-  ( m e. ( ZZ \ A ) -> ( F ` m ) = 1 ) | 
						
							| 54 | 45 53 | syl |  |-  ( ( ph /\ m e. ( ZZ>= ` ( N + 1 ) ) ) -> ( F ` m ) = 1 ) | 
						
							| 55 | 37 54 | sylan2 |  |-  ( ( ph /\ m e. ( ( N + 1 ) ... n ) ) -> ( F ` m ) = 1 ) | 
						
							| 56 | 55 | adantlr |  |-  ( ( ( ph /\ n e. ( ZZ>= ` N ) ) /\ m e. ( ( N + 1 ) ... n ) ) -> ( F ` m ) = 1 ) | 
						
							| 57 | 30 31 32 36 56 | seqid2 |  |-  ( ( ph /\ n e. ( ZZ>= ` N ) ) -> ( seq M ( x. , F ) ` N ) = ( seq M ( x. , F ) ` n ) ) | 
						
							| 58 | 57 | eqcomd |  |-  ( ( ph /\ n e. ( ZZ>= ` N ) ) -> ( seq M ( x. , F ) ` n ) = ( seq M ( x. , F ) ` N ) ) | 
						
							| 59 | 5 7 9 28 58 | climconst |  |-  ( ph -> seq M ( x. , F ) ~~> ( seq M ( x. , F ) ` N ) ) |