| Step | Hyp | Ref | Expression | 
						
							| 1 |  | prm2orodd |  |-  ( P e. Prime -> ( P = 2 \/ -. 2 || P ) ) | 
						
							| 2 |  | 2lgslem4 |  |-  ( ( 2 /L 2 ) = 1 <-> ( 2 mod 8 ) e. { 1 , 7 } ) | 
						
							| 3 | 2 | a1i |  |-  ( P = 2 -> ( ( 2 /L 2 ) = 1 <-> ( 2 mod 8 ) e. { 1 , 7 } ) ) | 
						
							| 4 |  | oveq2 |  |-  ( P = 2 -> ( 2 /L P ) = ( 2 /L 2 ) ) | 
						
							| 5 | 4 | eqeq1d |  |-  ( P = 2 -> ( ( 2 /L P ) = 1 <-> ( 2 /L 2 ) = 1 ) ) | 
						
							| 6 |  | oveq1 |  |-  ( P = 2 -> ( P mod 8 ) = ( 2 mod 8 ) ) | 
						
							| 7 | 6 | eleq1d |  |-  ( P = 2 -> ( ( P mod 8 ) e. { 1 , 7 } <-> ( 2 mod 8 ) e. { 1 , 7 } ) ) | 
						
							| 8 | 3 5 7 | 3bitr4d |  |-  ( P = 2 -> ( ( 2 /L P ) = 1 <-> ( P mod 8 ) e. { 1 , 7 } ) ) | 
						
							| 9 | 8 | a1d |  |-  ( P = 2 -> ( P e. Prime -> ( ( 2 /L P ) = 1 <-> ( P mod 8 ) e. { 1 , 7 } ) ) ) | 
						
							| 10 |  | 2prm |  |-  2 e. Prime | 
						
							| 11 |  | prmnn |  |-  ( P e. Prime -> P e. NN ) | 
						
							| 12 |  | dvdsprime |  |-  ( ( 2 e. Prime /\ P e. NN ) -> ( P || 2 <-> ( P = 2 \/ P = 1 ) ) ) | 
						
							| 13 | 10 11 12 | sylancr |  |-  ( P e. Prime -> ( P || 2 <-> ( P = 2 \/ P = 1 ) ) ) | 
						
							| 14 |  | z2even |  |-  2 || 2 | 
						
							| 15 |  | breq2 |  |-  ( P = 2 -> ( 2 || P <-> 2 || 2 ) ) | 
						
							| 16 | 14 15 | mpbiri |  |-  ( P = 2 -> 2 || P ) | 
						
							| 17 | 16 | a1d |  |-  ( P = 2 -> ( P e. Prime -> 2 || P ) ) | 
						
							| 18 |  | eleq1 |  |-  ( P = 1 -> ( P e. Prime <-> 1 e. Prime ) ) | 
						
							| 19 |  | 1nprm |  |-  -. 1 e. Prime | 
						
							| 20 | 19 | pm2.21i |  |-  ( 1 e. Prime -> 2 || P ) | 
						
							| 21 | 18 20 | biimtrdi |  |-  ( P = 1 -> ( P e. Prime -> 2 || P ) ) | 
						
							| 22 | 17 21 | jaoi |  |-  ( ( P = 2 \/ P = 1 ) -> ( P e. Prime -> 2 || P ) ) | 
						
							| 23 | 22 | com12 |  |-  ( P e. Prime -> ( ( P = 2 \/ P = 1 ) -> 2 || P ) ) | 
						
							| 24 | 13 23 | sylbid |  |-  ( P e. Prime -> ( P || 2 -> 2 || P ) ) | 
						
							| 25 | 24 | con3dimp |  |-  ( ( P e. Prime /\ -. 2 || P ) -> -. P || 2 ) | 
						
							| 26 |  | 2z |  |-  2 e. ZZ | 
						
							| 27 | 25 26 | jctil |  |-  ( ( P e. Prime /\ -. 2 || P ) -> ( 2 e. ZZ /\ -. P || 2 ) ) | 
						
							| 28 |  | 2lgslem1 |  |-  ( ( P e. Prime /\ -. 2 || P ) -> ( # ` { x e. ZZ | E. i e. ( 1 ... ( ( P - 1 ) / 2 ) ) ( x = ( i x. 2 ) /\ ( P / 2 ) < ( x mod P ) ) } ) = ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) ) | 
						
							| 29 | 28 | eqcomd |  |-  ( ( P e. Prime /\ -. 2 || P ) -> ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) = ( # ` { x e. ZZ | E. i e. ( 1 ... ( ( P - 1 ) / 2 ) ) ( x = ( i x. 2 ) /\ ( P / 2 ) < ( x mod P ) ) } ) ) | 
						
							| 30 |  | nnoddn2prmb |  |-  ( P e. ( Prime \ { 2 } ) <-> ( P e. Prime /\ -. 2 || P ) ) | 
						
							| 31 | 30 | biimpri |  |-  ( ( P e. Prime /\ -. 2 || P ) -> P e. ( Prime \ { 2 } ) ) | 
						
							| 32 | 31 | 3ad2ant1 |  |-  ( ( ( P e. Prime /\ -. 2 || P ) /\ ( 2 e. ZZ /\ -. P || 2 ) /\ ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) = ( # ` { x e. ZZ | E. i e. ( 1 ... ( ( P - 1 ) / 2 ) ) ( x = ( i x. 2 ) /\ ( P / 2 ) < ( x mod P ) ) } ) ) -> P e. ( Prime \ { 2 } ) ) | 
						
							| 33 |  | eqid |  |-  ( ( P - 1 ) / 2 ) = ( ( P - 1 ) / 2 ) | 
						
							| 34 |  | eqid |  |-  ( y e. ( 1 ... ( ( P - 1 ) / 2 ) ) |-> if ( ( y x. 2 ) < ( P / 2 ) , ( y x. 2 ) , ( P - ( y x. 2 ) ) ) ) = ( y e. ( 1 ... ( ( P - 1 ) / 2 ) ) |-> if ( ( y x. 2 ) < ( P / 2 ) , ( y x. 2 ) , ( P - ( y x. 2 ) ) ) ) | 
						
							| 35 |  | eqid |  |-  ( |_ ` ( P / 4 ) ) = ( |_ ` ( P / 4 ) ) | 
						
							| 36 |  | eqid |  |-  ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) = ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) | 
						
							| 37 | 32 33 34 35 36 | gausslemma2d |  |-  ( ( ( P e. Prime /\ -. 2 || P ) /\ ( 2 e. ZZ /\ -. P || 2 ) /\ ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) = ( # ` { x e. ZZ | E. i e. ( 1 ... ( ( P - 1 ) / 2 ) ) ( x = ( i x. 2 ) /\ ( P / 2 ) < ( x mod P ) ) } ) ) -> ( 2 /L P ) = ( -u 1 ^ ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) ) ) | 
						
							| 38 | 37 | eqeq1d |  |-  ( ( ( P e. Prime /\ -. 2 || P ) /\ ( 2 e. ZZ /\ -. P || 2 ) /\ ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) = ( # ` { x e. ZZ | E. i e. ( 1 ... ( ( P - 1 ) / 2 ) ) ( x = ( i x. 2 ) /\ ( P / 2 ) < ( x mod P ) ) } ) ) -> ( ( 2 /L P ) = 1 <-> ( -u 1 ^ ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) ) = 1 ) ) | 
						
							| 39 | 27 29 38 | mpd3an23 |  |-  ( ( P e. Prime /\ -. 2 || P ) -> ( ( 2 /L P ) = 1 <-> ( -u 1 ^ ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) ) = 1 ) ) | 
						
							| 40 | 36 | 2lgslem2 |  |-  ( ( P e. Prime /\ -. 2 || P ) -> ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) e. ZZ ) | 
						
							| 41 |  | m1exp1 |  |-  ( ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) e. ZZ -> ( ( -u 1 ^ ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) ) = 1 <-> 2 || ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) ) ) | 
						
							| 42 | 40 41 | syl |  |-  ( ( P e. Prime /\ -. 2 || P ) -> ( ( -u 1 ^ ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) ) = 1 <-> 2 || ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) ) ) | 
						
							| 43 |  | 2nn |  |-  2 e. NN | 
						
							| 44 |  | dvdsval3 |  |-  ( ( 2 e. NN /\ ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) e. ZZ ) -> ( 2 || ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) <-> ( ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) mod 2 ) = 0 ) ) | 
						
							| 45 | 43 40 44 | sylancr |  |-  ( ( P e. Prime /\ -. 2 || P ) -> ( 2 || ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) <-> ( ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) mod 2 ) = 0 ) ) | 
						
							| 46 | 36 | 2lgslem3 |  |-  ( ( P e. NN /\ -. 2 || P ) -> ( ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) mod 2 ) = if ( ( P mod 8 ) e. { 1 , 7 } , 0 , 1 ) ) | 
						
							| 47 | 11 46 | sylan |  |-  ( ( P e. Prime /\ -. 2 || P ) -> ( ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) mod 2 ) = if ( ( P mod 8 ) e. { 1 , 7 } , 0 , 1 ) ) | 
						
							| 48 | 47 | eqeq1d |  |-  ( ( P e. Prime /\ -. 2 || P ) -> ( ( ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) mod 2 ) = 0 <-> if ( ( P mod 8 ) e. { 1 , 7 } , 0 , 1 ) = 0 ) ) | 
						
							| 49 |  | ax-1 |  |-  ( ( P mod 8 ) e. { 1 , 7 } -> ( if ( ( P mod 8 ) e. { 1 , 7 } , 0 , 1 ) = 0 -> ( P mod 8 ) e. { 1 , 7 } ) ) | 
						
							| 50 |  | iffalse |  |-  ( -. ( P mod 8 ) e. { 1 , 7 } -> if ( ( P mod 8 ) e. { 1 , 7 } , 0 , 1 ) = 1 ) | 
						
							| 51 | 50 | eqeq1d |  |-  ( -. ( P mod 8 ) e. { 1 , 7 } -> ( if ( ( P mod 8 ) e. { 1 , 7 } , 0 , 1 ) = 0 <-> 1 = 0 ) ) | 
						
							| 52 |  | ax-1ne0 |  |-  1 =/= 0 | 
						
							| 53 |  | eqneqall |  |-  ( 1 = 0 -> ( 1 =/= 0 -> ( P mod 8 ) e. { 1 , 7 } ) ) | 
						
							| 54 | 52 53 | mpi |  |-  ( 1 = 0 -> ( P mod 8 ) e. { 1 , 7 } ) | 
						
							| 55 | 51 54 | biimtrdi |  |-  ( -. ( P mod 8 ) e. { 1 , 7 } -> ( if ( ( P mod 8 ) e. { 1 , 7 } , 0 , 1 ) = 0 -> ( P mod 8 ) e. { 1 , 7 } ) ) | 
						
							| 56 | 49 55 | pm2.61i |  |-  ( if ( ( P mod 8 ) e. { 1 , 7 } , 0 , 1 ) = 0 -> ( P mod 8 ) e. { 1 , 7 } ) | 
						
							| 57 |  | iftrue |  |-  ( ( P mod 8 ) e. { 1 , 7 } -> if ( ( P mod 8 ) e. { 1 , 7 } , 0 , 1 ) = 0 ) | 
						
							| 58 | 56 57 | impbii |  |-  ( if ( ( P mod 8 ) e. { 1 , 7 } , 0 , 1 ) = 0 <-> ( P mod 8 ) e. { 1 , 7 } ) | 
						
							| 59 | 58 | a1i |  |-  ( ( P e. Prime /\ -. 2 || P ) -> ( if ( ( P mod 8 ) e. { 1 , 7 } , 0 , 1 ) = 0 <-> ( P mod 8 ) e. { 1 , 7 } ) ) | 
						
							| 60 | 45 48 59 | 3bitrd |  |-  ( ( P e. Prime /\ -. 2 || P ) -> ( 2 || ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) <-> ( P mod 8 ) e. { 1 , 7 } ) ) | 
						
							| 61 | 39 42 60 | 3bitrd |  |-  ( ( P e. Prime /\ -. 2 || P ) -> ( ( 2 /L P ) = 1 <-> ( P mod 8 ) e. { 1 , 7 } ) ) | 
						
							| 62 | 61 | expcom |  |-  ( -. 2 || P -> ( P e. Prime -> ( ( 2 /L P ) = 1 <-> ( P mod 8 ) e. { 1 , 7 } ) ) ) | 
						
							| 63 | 9 62 | jaoi |  |-  ( ( P = 2 \/ -. 2 || P ) -> ( P e. Prime -> ( ( 2 /L P ) = 1 <-> ( P mod 8 ) e. { 1 , 7 } ) ) ) | 
						
							| 64 | 1 63 | mpcom |  |-  ( P e. Prime -> ( ( 2 /L P ) = 1 <-> ( P mod 8 ) e. { 1 , 7 } ) ) |