| Step | Hyp | Ref | Expression | 
						
							| 1 |  | fprodser.1 |  | 
						
							| 2 |  | fprodser.2 |  | 
						
							| 3 |  | fprodser.3 |  | 
						
							| 4 |  | prodfc |  | 
						
							| 5 |  | fveq2 |  | 
						
							| 6 |  | eluzelz |  | 
						
							| 7 | 2 6 | syl |  | 
						
							| 8 | 7 | zcnd |  | 
						
							| 9 |  | eluzel2 |  | 
						
							| 10 | 2 9 | syl |  | 
						
							| 11 | 10 | zcnd |  | 
						
							| 12 |  | 1cnd |  | 
						
							| 13 | 8 11 12 | subadd23d |  | 
						
							| 14 | 13 | eqcomd |  | 
						
							| 15 |  | uznn0sub |  | 
						
							| 16 | 2 15 | syl |  | 
						
							| 17 |  | nn0p1nn |  | 
						
							| 18 | 16 17 | syl |  | 
						
							| 19 | 14 18 | eqeltrd |  | 
						
							| 20 | 12 11 | pncan3d |  | 
						
							| 21 | 8 12 11 | pnpncand |  | 
						
							| 22 | 20 21 | oveq12d |  | 
						
							| 23 | 22 | eleq2d |  | 
						
							| 24 | 23 | biimpa |  | 
						
							| 25 |  | elfzelz |  | 
						
							| 26 | 25 | zcnd |  | 
						
							| 27 | 26 | adantl |  | 
						
							| 28 |  | peano2zm |  | 
						
							| 29 | 10 28 | syl |  | 
						
							| 30 | 29 | zcnd |  | 
						
							| 31 | 30 | adantr |  | 
						
							| 32 | 27 31 | npcand |  | 
						
							| 33 |  | simpr |  | 
						
							| 34 | 32 33 | eqeltrd |  | 
						
							| 35 |  | ovex |  | 
						
							| 36 |  | oveq1 |  | 
						
							| 37 | 36 | eleq1d |  | 
						
							| 38 | 35 37 | sbcie |  | 
						
							| 39 | 34 38 | sylibr |  | 
						
							| 40 | 24 39 | syldan |  | 
						
							| 41 | 40 | ralrimiva |  | 
						
							| 42 |  | 1zzd |  | 
						
							| 43 | 19 | nnzd |  | 
						
							| 44 |  | fzshftral |  | 
						
							| 45 | 42 43 29 44 | syl3anc |  | 
						
							| 46 | 41 45 | mpbird |  | 
						
							| 47 | 10 | adantr |  | 
						
							| 48 | 7 | adantr |  | 
						
							| 49 | 25 | adantl |  | 
						
							| 50 | 29 | adantr |  | 
						
							| 51 |  | fzsubel |  | 
						
							| 52 | 47 48 49 50 51 | syl22anc |  | 
						
							| 53 | 33 52 | mpbid |  | 
						
							| 54 | 11 12 | nncand |  | 
						
							| 55 | 8 11 12 | subsub2d |  | 
						
							| 56 | 54 55 | oveq12d |  | 
						
							| 57 | 56 | adantr |  | 
						
							| 58 | 53 57 | eleqtrd |  | 
						
							| 59 | 32 | eqcomd |  | 
						
							| 60 | 36 | rspceeqv |  | 
						
							| 61 | 58 59 60 | syl2anc |  | 
						
							| 62 |  | elfzelz |  | 
						
							| 63 | 62 | zcnd |  | 
						
							| 64 |  | elfzelz |  | 
						
							| 65 | 64 | zcnd |  | 
						
							| 66 | 63 65 | anim12i |  | 
						
							| 67 |  | eqtr2 |  | 
						
							| 68 |  | simprl |  | 
						
							| 69 |  | simprr |  | 
						
							| 70 | 30 | adantr |  | 
						
							| 71 | 68 69 70 | addcan2d |  | 
						
							| 72 | 67 71 | imbitrid |  | 
						
							| 73 | 66 72 | sylan2 |  | 
						
							| 74 | 73 | ralrimivva |  | 
						
							| 75 | 74 | adantr |  | 
						
							| 76 |  | oveq1 |  | 
						
							| 77 | 76 | eqeq2d |  | 
						
							| 78 | 77 | reu4 |  | 
						
							| 79 | 61 75 78 | sylanbrc |  | 
						
							| 80 | 79 | ralrimiva |  | 
						
							| 81 |  | eqid |  | 
						
							| 82 | 81 | f1ompt |  | 
						
							| 83 | 46 80 82 | sylanbrc |  | 
						
							| 84 | 3 | fmpttd |  | 
						
							| 85 | 84 | ffvelcdmda |  | 
						
							| 86 |  | simpr |  | 
						
							| 87 |  | 1zzd |  | 
						
							| 88 | 43 | adantr |  | 
						
							| 89 | 64 | adantl |  | 
						
							| 90 | 29 | adantr |  | 
						
							| 91 |  | fzaddel |  | 
						
							| 92 | 87 88 89 90 91 | syl22anc |  | 
						
							| 93 | 86 92 | mpbid |  | 
						
							| 94 | 22 | adantr |  | 
						
							| 95 | 93 94 | eleqtrd |  | 
						
							| 96 | 1 | ralrimiva |  | 
						
							| 97 |  | nfcsb1v |  | 
						
							| 98 | 97 | nfeq2 |  | 
						
							| 99 |  | fveq2 |  | 
						
							| 100 |  | csbeq1a |  | 
						
							| 101 | 99 100 | eqeq12d |  | 
						
							| 102 | 98 101 | rspc |  | 
						
							| 103 | 96 102 | mpan9 |  | 
						
							| 104 | 95 103 | syldan |  | 
						
							| 105 |  | f1of |  | 
						
							| 106 | 83 105 | syl |  | 
						
							| 107 |  | fvco3 |  | 
						
							| 108 | 106 107 | sylan |  | 
						
							| 109 |  | ovex |  | 
						
							| 110 | 76 81 109 | fvmpt |  | 
						
							| 111 | 110 | adantl |  | 
						
							| 112 | 111 | fveq2d |  | 
						
							| 113 | 108 112 | eqtrd |  | 
						
							| 114 | 111 | fveq2d |  | 
						
							| 115 | 3 | ralrimiva |  | 
						
							| 116 | 97 | nfel1 |  | 
						
							| 117 | 100 | eleq1d |  | 
						
							| 118 | 116 117 | rspc |  | 
						
							| 119 | 115 118 | mpan9 |  | 
						
							| 120 | 95 119 | syldan |  | 
						
							| 121 |  | eqid |  | 
						
							| 122 | 121 | fvmpts |  | 
						
							| 123 | 95 120 122 | syl2anc |  | 
						
							| 124 | 114 123 | eqtrd |  | 
						
							| 125 | 104 113 124 | 3eqtr4d |  | 
						
							| 126 | 5 19 83 85 125 | fprod |  | 
						
							| 127 |  | nnuz |  | 
						
							| 128 | 19 127 | eleqtrdi |  | 
						
							| 129 | 128 29 113 | seqshft2 |  | 
						
							| 130 | 20 | seqeq1d |  | 
						
							| 131 | 130 21 | fveq12d |  | 
						
							| 132 | 126 129 131 | 3eqtrd |  | 
						
							| 133 | 4 132 | eqtr3id |  |