| Step | Hyp | Ref | Expression | 
						
							| 1 |  | etransclem7.n |  |-  ( ph -> P e. NN ) | 
						
							| 2 |  | etransclem7.c |  |-  ( ph -> C : ( 0 ... M ) --> ( 0 ... N ) ) | 
						
							| 3 |  | etransclem7.j |  |-  ( ph -> J e. ( 0 ... M ) ) | 
						
							| 4 |  | fzfid |  |-  ( ph -> ( 1 ... M ) e. Fin ) | 
						
							| 5 |  | 0zd |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ P < ( C ` j ) ) -> 0 e. ZZ ) | 
						
							| 6 |  | 0zd |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> 0 e. ZZ ) | 
						
							| 7 | 1 | nnzd |  |-  ( ph -> P e. ZZ ) | 
						
							| 8 | 7 | ad2antrr |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> P e. ZZ ) | 
						
							| 9 | 7 | adantr |  |-  ( ( ph /\ j e. ( 1 ... M ) ) -> P e. ZZ ) | 
						
							| 10 | 2 | adantr |  |-  ( ( ph /\ j e. ( 1 ... M ) ) -> C : ( 0 ... M ) --> ( 0 ... N ) ) | 
						
							| 11 |  | 0zd |  |-  ( j e. ( 1 ... M ) -> 0 e. ZZ ) | 
						
							| 12 |  | fzp1ss |  |-  ( 0 e. ZZ -> ( ( 0 + 1 ) ... M ) C_ ( 0 ... M ) ) | 
						
							| 13 | 11 12 | syl |  |-  ( j e. ( 1 ... M ) -> ( ( 0 + 1 ) ... M ) C_ ( 0 ... M ) ) | 
						
							| 14 |  | id |  |-  ( j e. ( 1 ... M ) -> j e. ( 1 ... M ) ) | 
						
							| 15 |  | 1e0p1 |  |-  1 = ( 0 + 1 ) | 
						
							| 16 | 15 | oveq1i |  |-  ( 1 ... M ) = ( ( 0 + 1 ) ... M ) | 
						
							| 17 | 14 16 | eleqtrdi |  |-  ( j e. ( 1 ... M ) -> j e. ( ( 0 + 1 ) ... M ) ) | 
						
							| 18 | 13 17 | sseldd |  |-  ( j e. ( 1 ... M ) -> j e. ( 0 ... M ) ) | 
						
							| 19 | 18 | adantl |  |-  ( ( ph /\ j e. ( 1 ... M ) ) -> j e. ( 0 ... M ) ) | 
						
							| 20 | 10 19 | ffvelcdmd |  |-  ( ( ph /\ j e. ( 1 ... M ) ) -> ( C ` j ) e. ( 0 ... N ) ) | 
						
							| 21 | 20 | elfzelzd |  |-  ( ( ph /\ j e. ( 1 ... M ) ) -> ( C ` j ) e. ZZ ) | 
						
							| 22 | 9 21 | zsubcld |  |-  ( ( ph /\ j e. ( 1 ... M ) ) -> ( P - ( C ` j ) ) e. ZZ ) | 
						
							| 23 | 22 | adantr |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> ( P - ( C ` j ) ) e. ZZ ) | 
						
							| 24 | 21 | zred |  |-  ( ( ph /\ j e. ( 1 ... M ) ) -> ( C ` j ) e. RR ) | 
						
							| 25 | 24 | adantr |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> ( C ` j ) e. RR ) | 
						
							| 26 | 8 | zred |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> P e. RR ) | 
						
							| 27 |  | simpr |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> -. P < ( C ` j ) ) | 
						
							| 28 | 25 26 27 | nltled |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> ( C ` j ) <_ P ) | 
						
							| 29 | 26 25 | subge0d |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> ( 0 <_ ( P - ( C ` j ) ) <-> ( C ` j ) <_ P ) ) | 
						
							| 30 | 28 29 | mpbird |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> 0 <_ ( P - ( C ` j ) ) ) | 
						
							| 31 |  | elfzle1 |  |-  ( ( C ` j ) e. ( 0 ... N ) -> 0 <_ ( C ` j ) ) | 
						
							| 32 | 20 31 | syl |  |-  ( ( ph /\ j e. ( 1 ... M ) ) -> 0 <_ ( C ` j ) ) | 
						
							| 33 | 32 | adantr |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> 0 <_ ( C ` j ) ) | 
						
							| 34 | 26 25 | subge02d |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> ( 0 <_ ( C ` j ) <-> ( P - ( C ` j ) ) <_ P ) ) | 
						
							| 35 | 33 34 | mpbid |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> ( P - ( C ` j ) ) <_ P ) | 
						
							| 36 | 6 8 23 30 35 | elfzd |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> ( P - ( C ` j ) ) e. ( 0 ... P ) ) | 
						
							| 37 |  | permnn |  |-  ( ( P - ( C ` j ) ) e. ( 0 ... P ) -> ( ( ! ` P ) / ( ! ` ( P - ( C ` j ) ) ) ) e. NN ) | 
						
							| 38 | 36 37 | syl |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> ( ( ! ` P ) / ( ! ` ( P - ( C ` j ) ) ) ) e. NN ) | 
						
							| 39 | 38 | nnzd |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> ( ( ! ` P ) / ( ! ` ( P - ( C ` j ) ) ) ) e. ZZ ) | 
						
							| 40 | 3 | elfzelzd |  |-  ( ph -> J e. ZZ ) | 
						
							| 41 | 40 | adantr |  |-  ( ( ph /\ j e. ( 1 ... M ) ) -> J e. ZZ ) | 
						
							| 42 |  | elfzelz |  |-  ( j e. ( 1 ... M ) -> j e. ZZ ) | 
						
							| 43 | 42 | adantl |  |-  ( ( ph /\ j e. ( 1 ... M ) ) -> j e. ZZ ) | 
						
							| 44 | 41 43 | zsubcld |  |-  ( ( ph /\ j e. ( 1 ... M ) ) -> ( J - j ) e. ZZ ) | 
						
							| 45 | 44 | adantr |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> ( J - j ) e. ZZ ) | 
						
							| 46 |  | elnn0z |  |-  ( ( P - ( C ` j ) ) e. NN0 <-> ( ( P - ( C ` j ) ) e. ZZ /\ 0 <_ ( P - ( C ` j ) ) ) ) | 
						
							| 47 | 23 30 46 | sylanbrc |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> ( P - ( C ` j ) ) e. NN0 ) | 
						
							| 48 |  | zexpcl |  |-  ( ( ( J - j ) e. ZZ /\ ( P - ( C ` j ) ) e. NN0 ) -> ( ( J - j ) ^ ( P - ( C ` j ) ) ) e. ZZ ) | 
						
							| 49 | 45 47 48 | syl2anc |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> ( ( J - j ) ^ ( P - ( C ` j ) ) ) e. ZZ ) | 
						
							| 50 | 39 49 | zmulcld |  |-  ( ( ( ph /\ j e. ( 1 ... M ) ) /\ -. P < ( C ` j ) ) -> ( ( ( ! ` P ) / ( ! ` ( P - ( C ` j ) ) ) ) x. ( ( J - j ) ^ ( P - ( C ` j ) ) ) ) e. ZZ ) | 
						
							| 51 | 5 50 | ifclda |  |-  ( ( ph /\ j e. ( 1 ... M ) ) -> if ( P < ( C ` j ) , 0 , ( ( ( ! ` P ) / ( ! ` ( P - ( C ` j ) ) ) ) x. ( ( J - j ) ^ ( P - ( C ` j ) ) ) ) ) e. ZZ ) | 
						
							| 52 | 4 51 | fprodzcl |  |-  ( ph -> prod_ j e. ( 1 ... M ) if ( P < ( C ` j ) , 0 , ( ( ( ! ` P ) / ( ! ` ( P - ( C ` j ) ) ) ) x. ( ( J - j ) ^ ( P - ( C ` j ) ) ) ) ) e. ZZ ) |