| Step | Hyp | Ref | Expression | 
						
							| 1 |  | fvoveq1 |  |-  ( x = 0 -> ( FermatNo ` ( x + 1 ) ) = ( FermatNo ` ( 0 + 1 ) ) ) | 
						
							| 2 |  | oveq2 |  |-  ( x = 0 -> ( 0 ... x ) = ( 0 ... 0 ) ) | 
						
							| 3 | 2 | prodeq1d |  |-  ( x = 0 -> prod_ n e. ( 0 ... x ) ( FermatNo ` n ) = prod_ n e. ( 0 ... 0 ) ( FermatNo ` n ) ) | 
						
							| 4 | 3 | oveq1d |  |-  ( x = 0 -> ( prod_ n e. ( 0 ... x ) ( FermatNo ` n ) + 2 ) = ( prod_ n e. ( 0 ... 0 ) ( FermatNo ` n ) + 2 ) ) | 
						
							| 5 | 1 4 | eqeq12d |  |-  ( x = 0 -> ( ( FermatNo ` ( x + 1 ) ) = ( prod_ n e. ( 0 ... x ) ( FermatNo ` n ) + 2 ) <-> ( FermatNo ` ( 0 + 1 ) ) = ( prod_ n e. ( 0 ... 0 ) ( FermatNo ` n ) + 2 ) ) ) | 
						
							| 6 |  | fvoveq1 |  |-  ( x = y -> ( FermatNo ` ( x + 1 ) ) = ( FermatNo ` ( y + 1 ) ) ) | 
						
							| 7 |  | oveq2 |  |-  ( x = y -> ( 0 ... x ) = ( 0 ... y ) ) | 
						
							| 8 | 7 | prodeq1d |  |-  ( x = y -> prod_ n e. ( 0 ... x ) ( FermatNo ` n ) = prod_ n e. ( 0 ... y ) ( FermatNo ` n ) ) | 
						
							| 9 | 8 | oveq1d |  |-  ( x = y -> ( prod_ n e. ( 0 ... x ) ( FermatNo ` n ) + 2 ) = ( prod_ n e. ( 0 ... y ) ( FermatNo ` n ) + 2 ) ) | 
						
							| 10 | 6 9 | eqeq12d |  |-  ( x = y -> ( ( FermatNo ` ( x + 1 ) ) = ( prod_ n e. ( 0 ... x ) ( FermatNo ` n ) + 2 ) <-> ( FermatNo ` ( y + 1 ) ) = ( prod_ n e. ( 0 ... y ) ( FermatNo ` n ) + 2 ) ) ) | 
						
							| 11 |  | fvoveq1 |  |-  ( x = ( y + 1 ) -> ( FermatNo ` ( x + 1 ) ) = ( FermatNo ` ( ( y + 1 ) + 1 ) ) ) | 
						
							| 12 |  | oveq2 |  |-  ( x = ( y + 1 ) -> ( 0 ... x ) = ( 0 ... ( y + 1 ) ) ) | 
						
							| 13 | 12 | prodeq1d |  |-  ( x = ( y + 1 ) -> prod_ n e. ( 0 ... x ) ( FermatNo ` n ) = prod_ n e. ( 0 ... ( y + 1 ) ) ( FermatNo ` n ) ) | 
						
							| 14 | 13 | oveq1d |  |-  ( x = ( y + 1 ) -> ( prod_ n e. ( 0 ... x ) ( FermatNo ` n ) + 2 ) = ( prod_ n e. ( 0 ... ( y + 1 ) ) ( FermatNo ` n ) + 2 ) ) | 
						
							| 15 | 11 14 | eqeq12d |  |-  ( x = ( y + 1 ) -> ( ( FermatNo ` ( x + 1 ) ) = ( prod_ n e. ( 0 ... x ) ( FermatNo ` n ) + 2 ) <-> ( FermatNo ` ( ( y + 1 ) + 1 ) ) = ( prod_ n e. ( 0 ... ( y + 1 ) ) ( FermatNo ` n ) + 2 ) ) ) | 
						
							| 16 |  | fvoveq1 |  |-  ( x = N -> ( FermatNo ` ( x + 1 ) ) = ( FermatNo ` ( N + 1 ) ) ) | 
						
							| 17 |  | oveq2 |  |-  ( x = N -> ( 0 ... x ) = ( 0 ... N ) ) | 
						
							| 18 |  | prodeq1 |  |-  ( ( 0 ... x ) = ( 0 ... N ) -> prod_ n e. ( 0 ... x ) ( FermatNo ` n ) = prod_ n e. ( 0 ... N ) ( FermatNo ` n ) ) | 
						
							| 19 | 18 | oveq1d |  |-  ( ( 0 ... x ) = ( 0 ... N ) -> ( prod_ n e. ( 0 ... x ) ( FermatNo ` n ) + 2 ) = ( prod_ n e. ( 0 ... N ) ( FermatNo ` n ) + 2 ) ) | 
						
							| 20 | 17 19 | syl |  |-  ( x = N -> ( prod_ n e. ( 0 ... x ) ( FermatNo ` n ) + 2 ) = ( prod_ n e. ( 0 ... N ) ( FermatNo ` n ) + 2 ) ) | 
						
							| 21 | 16 20 | eqeq12d |  |-  ( x = N -> ( ( FermatNo ` ( x + 1 ) ) = ( prod_ n e. ( 0 ... x ) ( FermatNo ` n ) + 2 ) <-> ( FermatNo ` ( N + 1 ) ) = ( prod_ n e. ( 0 ... N ) ( FermatNo ` n ) + 2 ) ) ) | 
						
							| 22 |  | fmtno0 |  |-  ( FermatNo ` 0 ) = 3 | 
						
							| 23 | 22 | oveq1i |  |-  ( ( FermatNo ` 0 ) + 2 ) = ( 3 + 2 ) | 
						
							| 24 |  | 3p2e5 |  |-  ( 3 + 2 ) = 5 | 
						
							| 25 | 23 24 | eqtri |  |-  ( ( FermatNo ` 0 ) + 2 ) = 5 | 
						
							| 26 |  | fz0sn |  |-  ( 0 ... 0 ) = { 0 } | 
						
							| 27 | 26 | prodeq1i |  |-  prod_ n e. ( 0 ... 0 ) ( FermatNo ` n ) = prod_ n e. { 0 } ( FermatNo ` n ) | 
						
							| 28 |  | 0z |  |-  0 e. ZZ | 
						
							| 29 |  | 0nn0 |  |-  0 e. NN0 | 
						
							| 30 |  | fmtnonn |  |-  ( 0 e. NN0 -> ( FermatNo ` 0 ) e. NN ) | 
						
							| 31 | 30 | nncnd |  |-  ( 0 e. NN0 -> ( FermatNo ` 0 ) e. CC ) | 
						
							| 32 | 29 31 | ax-mp |  |-  ( FermatNo ` 0 ) e. CC | 
						
							| 33 |  | fveq2 |  |-  ( n = 0 -> ( FermatNo ` n ) = ( FermatNo ` 0 ) ) | 
						
							| 34 | 33 | prodsn |  |-  ( ( 0 e. ZZ /\ ( FermatNo ` 0 ) e. CC ) -> prod_ n e. { 0 } ( FermatNo ` n ) = ( FermatNo ` 0 ) ) | 
						
							| 35 | 28 32 34 | mp2an |  |-  prod_ n e. { 0 } ( FermatNo ` n ) = ( FermatNo ` 0 ) | 
						
							| 36 | 27 35 | eqtri |  |-  prod_ n e. ( 0 ... 0 ) ( FermatNo ` n ) = ( FermatNo ` 0 ) | 
						
							| 37 | 36 | oveq1i |  |-  ( prod_ n e. ( 0 ... 0 ) ( FermatNo ` n ) + 2 ) = ( ( FermatNo ` 0 ) + 2 ) | 
						
							| 38 |  | 0p1e1 |  |-  ( 0 + 1 ) = 1 | 
						
							| 39 | 38 | fveq2i |  |-  ( FermatNo ` ( 0 + 1 ) ) = ( FermatNo ` 1 ) | 
						
							| 40 |  | fmtno1 |  |-  ( FermatNo ` 1 ) = 5 | 
						
							| 41 | 39 40 | eqtri |  |-  ( FermatNo ` ( 0 + 1 ) ) = 5 | 
						
							| 42 | 25 37 41 | 3eqtr4ri |  |-  ( FermatNo ` ( 0 + 1 ) ) = ( prod_ n e. ( 0 ... 0 ) ( FermatNo ` n ) + 2 ) | 
						
							| 43 |  | fmtnorec2lem |  |-  ( y e. NN0 -> ( ( FermatNo ` ( y + 1 ) ) = ( prod_ n e. ( 0 ... y ) ( FermatNo ` n ) + 2 ) -> ( FermatNo ` ( ( y + 1 ) + 1 ) ) = ( prod_ n e. ( 0 ... ( y + 1 ) ) ( FermatNo ` n ) + 2 ) ) ) | 
						
							| 44 | 5 10 15 21 42 43 | nn0ind |  |-  ( N e. NN0 -> ( FermatNo ` ( N + 1 ) ) = ( prod_ n e. ( 0 ... N ) ( FermatNo ` n ) + 2 ) ) |