| Step | Hyp | Ref | Expression | 
						
							| 1 |  | 2nn |  |-  2 e. NN | 
						
							| 2 |  | fpprel |  |-  ( 2 e. NN -> ( X e. ( FPPr ` 2 ) <-> ( X e. ( ZZ>= ` 4 ) /\ X e/ Prime /\ ( ( 2 ^ ( X - 1 ) ) mod X ) = 1 ) ) ) | 
						
							| 3 | 1 2 | ax-mp |  |-  ( X e. ( FPPr ` 2 ) <-> ( X e. ( ZZ>= ` 4 ) /\ X e/ Prime /\ ( ( 2 ^ ( X - 1 ) ) mod X ) = 1 ) ) | 
						
							| 4 |  | eluz4nn |  |-  ( X e. ( ZZ>= ` 4 ) -> X e. NN ) | 
						
							| 5 | 4 | adantr |  |-  ( ( X e. ( ZZ>= ` 4 ) /\ ( ( 2 ^ ( X - 1 ) ) mod X ) = 1 ) -> X e. NN ) | 
						
							| 6 |  | eluzelz |  |-  ( X e. ( ZZ>= ` 4 ) -> X e. ZZ ) | 
						
							| 7 |  | zeo2ALTV |  |-  ( X e. ZZ -> ( X e. Even <-> -. X e. Odd ) ) | 
						
							| 8 | 6 7 | syl |  |-  ( X e. ( ZZ>= ` 4 ) -> ( X e. Even <-> -. X e. Odd ) ) | 
						
							| 9 | 8 | adantr |  |-  ( ( X e. ( ZZ>= ` 4 ) /\ ( ( 2 ^ ( X - 1 ) ) mod X ) = 1 ) -> ( X e. Even <-> -. X e. Odd ) ) | 
						
							| 10 | 9 | biimprd |  |-  ( ( X e. ( ZZ>= ` 4 ) /\ ( ( 2 ^ ( X - 1 ) ) mod X ) = 1 ) -> ( -. X e. Odd -> X e. Even ) ) | 
						
							| 11 |  | nnennexALTV |  |-  ( ( X e. NN /\ X e. Even ) -> E. y e. NN X = ( 2 x. y ) ) | 
						
							| 12 | 5 10 11 | syl6an |  |-  ( ( X e. ( ZZ>= ` 4 ) /\ ( ( 2 ^ ( X - 1 ) ) mod X ) = 1 ) -> ( -. X e. Odd -> E. y e. NN X = ( 2 x. y ) ) ) | 
						
							| 13 |  | oveq1 |  |-  ( X = ( 2 x. y ) -> ( X - 1 ) = ( ( 2 x. y ) - 1 ) ) | 
						
							| 14 | 13 | oveq2d |  |-  ( X = ( 2 x. y ) -> ( 2 ^ ( X - 1 ) ) = ( 2 ^ ( ( 2 x. y ) - 1 ) ) ) | 
						
							| 15 |  | id |  |-  ( X = ( 2 x. y ) -> X = ( 2 x. y ) ) | 
						
							| 16 | 14 15 | oveq12d |  |-  ( X = ( 2 x. y ) -> ( ( 2 ^ ( X - 1 ) ) mod X ) = ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) mod ( 2 x. y ) ) ) | 
						
							| 17 | 16 | eqeq1d |  |-  ( X = ( 2 x. y ) -> ( ( ( 2 ^ ( X - 1 ) ) mod X ) = 1 <-> ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) mod ( 2 x. y ) ) = 1 ) ) | 
						
							| 18 | 17 | adantl |  |-  ( ( ( X e. ( ZZ>= ` 4 ) /\ y e. NN ) /\ X = ( 2 x. y ) ) -> ( ( ( 2 ^ ( X - 1 ) ) mod X ) = 1 <-> ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) mod ( 2 x. y ) ) = 1 ) ) | 
						
							| 19 |  | 2z |  |-  2 e. ZZ | 
						
							| 20 | 1 | a1i |  |-  ( y e. NN -> 2 e. NN ) | 
						
							| 21 |  | id |  |-  ( y e. NN -> y e. NN ) | 
						
							| 22 | 20 21 | nnmulcld |  |-  ( y e. NN -> ( 2 x. y ) e. NN ) | 
						
							| 23 |  | nnm1nn0 |  |-  ( ( 2 x. y ) e. NN -> ( ( 2 x. y ) - 1 ) e. NN0 ) | 
						
							| 24 | 22 23 | syl |  |-  ( y e. NN -> ( ( 2 x. y ) - 1 ) e. NN0 ) | 
						
							| 25 |  | zexpcl |  |-  ( ( 2 e. ZZ /\ ( ( 2 x. y ) - 1 ) e. NN0 ) -> ( 2 ^ ( ( 2 x. y ) - 1 ) ) e. ZZ ) | 
						
							| 26 | 19 24 25 | sylancr |  |-  ( y e. NN -> ( 2 ^ ( ( 2 x. y ) - 1 ) ) e. ZZ ) | 
						
							| 27 | 22 | nnrpd |  |-  ( y e. NN -> ( 2 x. y ) e. RR+ ) | 
						
							| 28 |  | modmuladdim |  |-  ( ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) e. ZZ /\ ( 2 x. y ) e. RR+ ) -> ( ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) mod ( 2 x. y ) ) = 1 -> E. m e. ZZ ( 2 ^ ( ( 2 x. y ) - 1 ) ) = ( ( m x. ( 2 x. y ) ) + 1 ) ) ) | 
						
							| 29 | 26 27 28 | syl2anc |  |-  ( y e. NN -> ( ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) mod ( 2 x. y ) ) = 1 -> E. m e. ZZ ( 2 ^ ( ( 2 x. y ) - 1 ) ) = ( ( m x. ( 2 x. y ) ) + 1 ) ) ) | 
						
							| 30 | 24 | adantr |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( 2 x. y ) - 1 ) e. NN0 ) | 
						
							| 31 | 19 30 25 | sylancr |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( 2 ^ ( ( 2 x. y ) - 1 ) ) e. ZZ ) | 
						
							| 32 | 31 | zcnd |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( 2 ^ ( ( 2 x. y ) - 1 ) ) e. CC ) | 
						
							| 33 |  | zcn |  |-  ( m e. ZZ -> m e. CC ) | 
						
							| 34 | 33 | adantl |  |-  ( ( y e. NN /\ m e. ZZ ) -> m e. CC ) | 
						
							| 35 |  | 2cnd |  |-  ( ( y e. NN /\ m e. ZZ ) -> 2 e. CC ) | 
						
							| 36 |  | nncn |  |-  ( y e. NN -> y e. CC ) | 
						
							| 37 | 36 | adantr |  |-  ( ( y e. NN /\ m e. ZZ ) -> y e. CC ) | 
						
							| 38 | 35 37 | mulcld |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( 2 x. y ) e. CC ) | 
						
							| 39 | 34 38 | mulcld |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( m x. ( 2 x. y ) ) e. CC ) | 
						
							| 40 |  | 1cnd |  |-  ( ( y e. NN /\ m e. ZZ ) -> 1 e. CC ) | 
						
							| 41 |  | subadd |  |-  ( ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) e. CC /\ ( m x. ( 2 x. y ) ) e. CC /\ 1 e. CC ) -> ( ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) - ( m x. ( 2 x. y ) ) ) = 1 <-> ( ( m x. ( 2 x. y ) ) + 1 ) = ( 2 ^ ( ( 2 x. y ) - 1 ) ) ) ) | 
						
							| 42 |  | eqcom |  |-  ( ( ( m x. ( 2 x. y ) ) + 1 ) = ( 2 ^ ( ( 2 x. y ) - 1 ) ) <-> ( 2 ^ ( ( 2 x. y ) - 1 ) ) = ( ( m x. ( 2 x. y ) ) + 1 ) ) | 
						
							| 43 | 41 42 | bitrdi |  |-  ( ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) e. CC /\ ( m x. ( 2 x. y ) ) e. CC /\ 1 e. CC ) -> ( ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) - ( m x. ( 2 x. y ) ) ) = 1 <-> ( 2 ^ ( ( 2 x. y ) - 1 ) ) = ( ( m x. ( 2 x. y ) ) + 1 ) ) ) | 
						
							| 44 | 32 39 40 43 | syl3anc |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) - ( m x. ( 2 x. y ) ) ) = 1 <-> ( 2 ^ ( ( 2 x. y ) - 1 ) ) = ( ( m x. ( 2 x. y ) ) + 1 ) ) ) | 
						
							| 45 |  | 2cnd |  |-  ( y e. NN -> 2 e. CC ) | 
						
							| 46 | 45 36 | mulcld |  |-  ( y e. NN -> ( 2 x. y ) e. CC ) | 
						
							| 47 |  | 1cnd |  |-  ( y e. NN -> 1 e. CC ) | 
						
							| 48 | 46 47 | subcld |  |-  ( y e. NN -> ( ( 2 x. y ) - 1 ) e. CC ) | 
						
							| 49 | 48 | adantr |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( 2 x. y ) - 1 ) e. CC ) | 
						
							| 50 |  | npcan1 |  |-  ( ( ( 2 x. y ) - 1 ) e. CC -> ( ( ( ( 2 x. y ) - 1 ) - 1 ) + 1 ) = ( ( 2 x. y ) - 1 ) ) | 
						
							| 51 | 49 50 | syl |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( ( ( 2 x. y ) - 1 ) - 1 ) + 1 ) = ( ( 2 x. y ) - 1 ) ) | 
						
							| 52 | 51 | eqcomd |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( 2 x. y ) - 1 ) = ( ( ( ( 2 x. y ) - 1 ) - 1 ) + 1 ) ) | 
						
							| 53 | 52 | oveq2d |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( 2 ^ ( ( 2 x. y ) - 1 ) ) = ( 2 ^ ( ( ( ( 2 x. y ) - 1 ) - 1 ) + 1 ) ) ) | 
						
							| 54 |  | 2t1e2 |  |-  ( 2 x. 1 ) = 2 | 
						
							| 55 | 54 | eqcomi |  |-  2 = ( 2 x. 1 ) | 
						
							| 56 | 55 | oveq2i |  |-  ( ( 2 x. y ) - 2 ) = ( ( 2 x. y ) - ( 2 x. 1 ) ) | 
						
							| 57 |  | sub1m1 |  |-  ( ( 2 x. y ) e. CC -> ( ( ( 2 x. y ) - 1 ) - 1 ) = ( ( 2 x. y ) - 2 ) ) | 
						
							| 58 | 38 57 | syl |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( ( 2 x. y ) - 1 ) - 1 ) = ( ( 2 x. y ) - 2 ) ) | 
						
							| 59 | 35 37 40 | subdid |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( 2 x. ( y - 1 ) ) = ( ( 2 x. y ) - ( 2 x. 1 ) ) ) | 
						
							| 60 | 56 58 59 | 3eqtr4a |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( ( 2 x. y ) - 1 ) - 1 ) = ( 2 x. ( y - 1 ) ) ) | 
						
							| 61 |  | 2nn0 |  |-  2 e. NN0 | 
						
							| 62 | 61 | a1i |  |-  ( ( y e. NN /\ m e. ZZ ) -> 2 e. NN0 ) | 
						
							| 63 |  | nnm1nn0 |  |-  ( y e. NN -> ( y - 1 ) e. NN0 ) | 
						
							| 64 | 63 | adantr |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( y - 1 ) e. NN0 ) | 
						
							| 65 | 62 64 | nn0mulcld |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( 2 x. ( y - 1 ) ) e. NN0 ) | 
						
							| 66 | 60 65 | eqeltrd |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( ( 2 x. y ) - 1 ) - 1 ) e. NN0 ) | 
						
							| 67 | 35 66 | expp1d |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( 2 ^ ( ( ( ( 2 x. y ) - 1 ) - 1 ) + 1 ) ) = ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) x. 2 ) ) | 
						
							| 68 | 35 66 | expcld |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) e. CC ) | 
						
							| 69 | 68 35 | mulcomd |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) x. 2 ) = ( 2 x. ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) ) ) | 
						
							| 70 | 67 69 | eqtrd |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( 2 ^ ( ( ( ( 2 x. y ) - 1 ) - 1 ) + 1 ) ) = ( 2 x. ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) ) ) | 
						
							| 71 | 53 70 | eqtrd |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( 2 ^ ( ( 2 x. y ) - 1 ) ) = ( 2 x. ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) ) ) | 
						
							| 72 | 34 35 37 | mul12d |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( m x. ( 2 x. y ) ) = ( 2 x. ( m x. y ) ) ) | 
						
							| 73 | 71 72 | oveq12d |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) - ( m x. ( 2 x. y ) ) ) = ( ( 2 x. ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) ) - ( 2 x. ( m x. y ) ) ) ) | 
						
							| 74 | 34 37 | mulcld |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( m x. y ) e. CC ) | 
						
							| 75 | 35 68 74 | subdid |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( 2 x. ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) - ( m x. y ) ) ) = ( ( 2 x. ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) ) - ( 2 x. ( m x. y ) ) ) ) | 
						
							| 76 | 75 | eqcomd |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( 2 x. ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) ) - ( 2 x. ( m x. y ) ) ) = ( 2 x. ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) - ( m x. y ) ) ) ) | 
						
							| 77 | 73 76 | eqtrd |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) - ( m x. ( 2 x. y ) ) ) = ( 2 x. ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) - ( m x. y ) ) ) ) | 
						
							| 78 | 77 | eqeq1d |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) - ( m x. ( 2 x. y ) ) ) = 1 <-> ( 2 x. ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) - ( m x. y ) ) ) = 1 ) ) | 
						
							| 79 |  | zexpcl |  |-  ( ( 2 e. ZZ /\ ( ( ( 2 x. y ) - 1 ) - 1 ) e. NN0 ) -> ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) e. ZZ ) | 
						
							| 80 | 19 66 79 | sylancr |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) e. ZZ ) | 
						
							| 81 |  | simpr |  |-  ( ( y e. NN /\ m e. ZZ ) -> m e. ZZ ) | 
						
							| 82 |  | nnz |  |-  ( y e. NN -> y e. ZZ ) | 
						
							| 83 | 82 | adantr |  |-  ( ( y e. NN /\ m e. ZZ ) -> y e. ZZ ) | 
						
							| 84 | 81 83 | zmulcld |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( m x. y ) e. ZZ ) | 
						
							| 85 | 80 84 | zsubcld |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) - ( m x. y ) ) e. ZZ ) | 
						
							| 86 |  | m2even |  |-  ( ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) - ( m x. y ) ) e. ZZ -> ( 2 x. ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) - ( m x. y ) ) ) e. Even ) | 
						
							| 87 | 85 86 | syl |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( 2 x. ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) - ( m x. y ) ) ) e. Even ) | 
						
							| 88 |  | 1oddALTV |  |-  1 e. Odd | 
						
							| 89 |  | zneoALTV |  |-  ( ( ( 2 x. ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) - ( m x. y ) ) ) e. Even /\ 1 e. Odd ) -> ( 2 x. ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) - ( m x. y ) ) ) =/= 1 ) | 
						
							| 90 | 87 88 89 | sylancl |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( 2 x. ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) - ( m x. y ) ) ) =/= 1 ) | 
						
							| 91 |  | eqneqall |  |-  ( ( 2 x. ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) - ( m x. y ) ) ) = 1 -> ( ( 2 x. ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) - ( m x. y ) ) ) =/= 1 -> X e. Odd ) ) | 
						
							| 92 | 90 91 | syl5com |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( 2 x. ( ( 2 ^ ( ( ( 2 x. y ) - 1 ) - 1 ) ) - ( m x. y ) ) ) = 1 -> X e. Odd ) ) | 
						
							| 93 | 78 92 | sylbid |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) - ( m x. ( 2 x. y ) ) ) = 1 -> X e. Odd ) ) | 
						
							| 94 | 44 93 | sylbird |  |-  ( ( y e. NN /\ m e. ZZ ) -> ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) = ( ( m x. ( 2 x. y ) ) + 1 ) -> X e. Odd ) ) | 
						
							| 95 | 94 | rexlimdva |  |-  ( y e. NN -> ( E. m e. ZZ ( 2 ^ ( ( 2 x. y ) - 1 ) ) = ( ( m x. ( 2 x. y ) ) + 1 ) -> X e. Odd ) ) | 
						
							| 96 | 29 95 | syld |  |-  ( y e. NN -> ( ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) mod ( 2 x. y ) ) = 1 -> X e. Odd ) ) | 
						
							| 97 | 96 | adantl |  |-  ( ( X e. ( ZZ>= ` 4 ) /\ y e. NN ) -> ( ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) mod ( 2 x. y ) ) = 1 -> X e. Odd ) ) | 
						
							| 98 | 97 | adantr |  |-  ( ( ( X e. ( ZZ>= ` 4 ) /\ y e. NN ) /\ X = ( 2 x. y ) ) -> ( ( ( 2 ^ ( ( 2 x. y ) - 1 ) ) mod ( 2 x. y ) ) = 1 -> X e. Odd ) ) | 
						
							| 99 | 18 98 | sylbid |  |-  ( ( ( X e. ( ZZ>= ` 4 ) /\ y e. NN ) /\ X = ( 2 x. y ) ) -> ( ( ( 2 ^ ( X - 1 ) ) mod X ) = 1 -> X e. Odd ) ) | 
						
							| 100 | 99 | ex |  |-  ( ( X e. ( ZZ>= ` 4 ) /\ y e. NN ) -> ( X = ( 2 x. y ) -> ( ( ( 2 ^ ( X - 1 ) ) mod X ) = 1 -> X e. Odd ) ) ) | 
						
							| 101 | 100 | rexlimdva |  |-  ( X e. ( ZZ>= ` 4 ) -> ( E. y e. NN X = ( 2 x. y ) -> ( ( ( 2 ^ ( X - 1 ) ) mod X ) = 1 -> X e. Odd ) ) ) | 
						
							| 102 | 101 | com23 |  |-  ( X e. ( ZZ>= ` 4 ) -> ( ( ( 2 ^ ( X - 1 ) ) mod X ) = 1 -> ( E. y e. NN X = ( 2 x. y ) -> X e. Odd ) ) ) | 
						
							| 103 | 102 | imp |  |-  ( ( X e. ( ZZ>= ` 4 ) /\ ( ( 2 ^ ( X - 1 ) ) mod X ) = 1 ) -> ( E. y e. NN X = ( 2 x. y ) -> X e. Odd ) ) | 
						
							| 104 | 12 103 | syld |  |-  ( ( X e. ( ZZ>= ` 4 ) /\ ( ( 2 ^ ( X - 1 ) ) mod X ) = 1 ) -> ( -. X e. Odd -> X e. Odd ) ) | 
						
							| 105 | 104 | 3adant2 |  |-  ( ( X e. ( ZZ>= ` 4 ) /\ X e/ Prime /\ ( ( 2 ^ ( X - 1 ) ) mod X ) = 1 ) -> ( -. X e. Odd -> X e. Odd ) ) | 
						
							| 106 | 3 105 | sylbi |  |-  ( X e. ( FPPr ` 2 ) -> ( -. X e. Odd -> X e. Odd ) ) | 
						
							| 107 | 106 | pm2.18d |  |-  ( X e. ( FPPr ` 2 ) -> X e. Odd ) |