| Step | Hyp | Ref | Expression | 
						
							| 1 |  | wilth |  |-  ( P e. Prime <-> ( P e. ( ZZ>= ` 2 ) /\ P || ( ( ! ` ( P - 1 ) ) + 1 ) ) ) | 
						
							| 2 |  | eluz2nn |  |-  ( P e. ( ZZ>= ` 2 ) -> P e. NN ) | 
						
							| 3 |  | nnm1nn0 |  |-  ( P e. NN -> ( P - 1 ) e. NN0 ) | 
						
							| 4 | 2 3 | syl |  |-  ( P e. ( ZZ>= ` 2 ) -> ( P - 1 ) e. NN0 ) | 
						
							| 5 | 4 | faccld |  |-  ( P e. ( ZZ>= ` 2 ) -> ( ! ` ( P - 1 ) ) e. NN ) | 
						
							| 6 | 5 | nnzd |  |-  ( P e. ( ZZ>= ` 2 ) -> ( ! ` ( P - 1 ) ) e. ZZ ) | 
						
							| 7 | 6 | peano2zd |  |-  ( P e. ( ZZ>= ` 2 ) -> ( ( ! ` ( P - 1 ) ) + 1 ) e. ZZ ) | 
						
							| 8 |  | dvdsval3 |  |-  ( ( P e. NN /\ ( ( ! ` ( P - 1 ) ) + 1 ) e. ZZ ) -> ( P || ( ( ! ` ( P - 1 ) ) + 1 ) <-> ( ( ( ! ` ( P - 1 ) ) + 1 ) mod P ) = 0 ) ) | 
						
							| 9 | 2 7 8 | syl2anc |  |-  ( P e. ( ZZ>= ` 2 ) -> ( P || ( ( ! ` ( P - 1 ) ) + 1 ) <-> ( ( ( ! ` ( P - 1 ) ) + 1 ) mod P ) = 0 ) ) | 
						
							| 10 | 9 | biimpar |  |-  ( ( P e. ( ZZ>= ` 2 ) /\ ( ( ( ! ` ( P - 1 ) ) + 1 ) mod P ) = 0 ) -> P || ( ( ! ` ( P - 1 ) ) + 1 ) ) | 
						
							| 11 | 5 | nncnd |  |-  ( P e. ( ZZ>= ` 2 ) -> ( ! ` ( P - 1 ) ) e. CC ) | 
						
							| 12 |  | 1cnd |  |-  ( P e. ( ZZ>= ` 2 ) -> 1 e. CC ) | 
						
							| 13 | 11 12 | jca |  |-  ( P e. ( ZZ>= ` 2 ) -> ( ( ! ` ( P - 1 ) ) e. CC /\ 1 e. CC ) ) | 
						
							| 14 | 13 | adantr |  |-  ( ( P e. ( ZZ>= ` 2 ) /\ ( ( ( ! ` ( P - 1 ) ) + 1 ) mod P ) = 0 ) -> ( ( ! ` ( P - 1 ) ) e. CC /\ 1 e. CC ) ) | 
						
							| 15 |  | subneg |  |-  ( ( ( ! ` ( P - 1 ) ) e. CC /\ 1 e. CC ) -> ( ( ! ` ( P - 1 ) ) - -u 1 ) = ( ( ! ` ( P - 1 ) ) + 1 ) ) | 
						
							| 16 | 14 15 | syl |  |-  ( ( P e. ( ZZ>= ` 2 ) /\ ( ( ( ! ` ( P - 1 ) ) + 1 ) mod P ) = 0 ) -> ( ( ! ` ( P - 1 ) ) - -u 1 ) = ( ( ! ` ( P - 1 ) ) + 1 ) ) | 
						
							| 17 | 10 16 | breqtrrd |  |-  ( ( P e. ( ZZ>= ` 2 ) /\ ( ( ( ! ` ( P - 1 ) ) + 1 ) mod P ) = 0 ) -> P || ( ( ! ` ( P - 1 ) ) - -u 1 ) ) | 
						
							| 18 |  | neg1z |  |-  -u 1 e. ZZ | 
						
							| 19 | 18 | a1i |  |-  ( P e. ( ZZ>= ` 2 ) -> -u 1 e. ZZ ) | 
						
							| 20 | 2 6 19 | 3jca |  |-  ( P e. ( ZZ>= ` 2 ) -> ( P e. NN /\ ( ! ` ( P - 1 ) ) e. ZZ /\ -u 1 e. ZZ ) ) | 
						
							| 21 | 20 | adantr |  |-  ( ( P e. ( ZZ>= ` 2 ) /\ ( ( ( ! ` ( P - 1 ) ) + 1 ) mod P ) = 0 ) -> ( P e. NN /\ ( ! ` ( P - 1 ) ) e. ZZ /\ -u 1 e. ZZ ) ) | 
						
							| 22 |  | moddvds |  |-  ( ( P e. NN /\ ( ! ` ( P - 1 ) ) e. ZZ /\ -u 1 e. ZZ ) -> ( ( ( ! ` ( P - 1 ) ) mod P ) = ( -u 1 mod P ) <-> P || ( ( ! ` ( P - 1 ) ) - -u 1 ) ) ) | 
						
							| 23 | 21 22 | syl |  |-  ( ( P e. ( ZZ>= ` 2 ) /\ ( ( ( ! ` ( P - 1 ) ) + 1 ) mod P ) = 0 ) -> ( ( ( ! ` ( P - 1 ) ) mod P ) = ( -u 1 mod P ) <-> P || ( ( ! ` ( P - 1 ) ) - -u 1 ) ) ) | 
						
							| 24 | 17 23 | mpbird |  |-  ( ( P e. ( ZZ>= ` 2 ) /\ ( ( ( ! ` ( P - 1 ) ) + 1 ) mod P ) = 0 ) -> ( ( ! ` ( P - 1 ) ) mod P ) = ( -u 1 mod P ) ) | 
						
							| 25 | 24 | ex |  |-  ( P e. ( ZZ>= ` 2 ) -> ( ( ( ( ! ` ( P - 1 ) ) + 1 ) mod P ) = 0 -> ( ( ! ` ( P - 1 ) ) mod P ) = ( -u 1 mod P ) ) ) | 
						
							| 26 | 9 25 | sylbid |  |-  ( P e. ( ZZ>= ` 2 ) -> ( P || ( ( ! ` ( P - 1 ) ) + 1 ) -> ( ( ! ` ( P - 1 ) ) mod P ) = ( -u 1 mod P ) ) ) | 
						
							| 27 | 26 | imp |  |-  ( ( P e. ( ZZ>= ` 2 ) /\ P || ( ( ! ` ( P - 1 ) ) + 1 ) ) -> ( ( ! ` ( P - 1 ) ) mod P ) = ( -u 1 mod P ) ) | 
						
							| 28 | 1 27 | sylbi |  |-  ( P e. Prime -> ( ( ! ` ( P - 1 ) ) mod P ) = ( -u 1 mod P ) ) |