| Step | Hyp | Ref | Expression | 
						
							| 1 |  | prmdiv.1 | ⊢ 𝑅  =  ( ( 𝐴 ↑ ( 𝑃  −  2 ) )  mod  𝑃 ) | 
						
							| 2 |  | fz1ssfz0 | ⊢ ( 1 ... ( 𝑃  −  1 ) )  ⊆  ( 0 ... ( 𝑃  −  1 ) ) | 
						
							| 3 |  | simpr | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) ) | 
						
							| 4 | 2 3 | sselid | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  𝐴  ∈  ( 0 ... ( 𝑃  −  1 ) ) ) | 
						
							| 5 |  | simpl | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  𝑃  ∈  ℙ ) | 
						
							| 6 |  | elfznn | ⊢ ( 𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) )  →  𝐴  ∈  ℕ ) | 
						
							| 7 | 6 | adantl | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  𝐴  ∈  ℕ ) | 
						
							| 8 | 7 | nnzd | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  𝐴  ∈  ℤ ) | 
						
							| 9 |  | prmnn | ⊢ ( 𝑃  ∈  ℙ  →  𝑃  ∈  ℕ ) | 
						
							| 10 |  | fzm1ndvds | ⊢ ( ( 𝑃  ∈  ℕ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  ¬  𝑃  ∥  𝐴 ) | 
						
							| 11 | 9 10 | sylan | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  ¬  𝑃  ∥  𝐴 ) | 
						
							| 12 | 1 | prmdiv | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ℤ  ∧  ¬  𝑃  ∥  𝐴 )  →  ( 𝑅  ∈  ( 1 ... ( 𝑃  −  1 ) )  ∧  𝑃  ∥  ( ( 𝐴  ·  𝑅 )  −  1 ) ) ) | 
						
							| 13 | 5 8 11 12 | syl3anc | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  ( 𝑅  ∈  ( 1 ... ( 𝑃  −  1 ) )  ∧  𝑃  ∥  ( ( 𝐴  ·  𝑅 )  −  1 ) ) ) | 
						
							| 14 | 13 | simprd | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  𝑃  ∥  ( ( 𝐴  ·  𝑅 )  −  1 ) ) | 
						
							| 15 | 7 | nncnd | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  𝐴  ∈  ℂ ) | 
						
							| 16 | 13 | simpld | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  𝑅  ∈  ( 1 ... ( 𝑃  −  1 ) ) ) | 
						
							| 17 |  | elfznn | ⊢ ( 𝑅  ∈  ( 1 ... ( 𝑃  −  1 ) )  →  𝑅  ∈  ℕ ) | 
						
							| 18 | 16 17 | syl | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  𝑅  ∈  ℕ ) | 
						
							| 19 | 18 | nncnd | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  𝑅  ∈  ℂ ) | 
						
							| 20 | 15 19 | mulcomd | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  ( 𝐴  ·  𝑅 )  =  ( 𝑅  ·  𝐴 ) ) | 
						
							| 21 | 20 | oveq1d | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  ( ( 𝐴  ·  𝑅 )  −  1 )  =  ( ( 𝑅  ·  𝐴 )  −  1 ) ) | 
						
							| 22 | 14 21 | breqtrd | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  𝑃  ∥  ( ( 𝑅  ·  𝐴 )  −  1 ) ) | 
						
							| 23 | 16 | elfzelzd | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  𝑅  ∈  ℤ ) | 
						
							| 24 |  | fzm1ndvds | ⊢ ( ( 𝑃  ∈  ℕ  ∧  𝑅  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  ¬  𝑃  ∥  𝑅 ) | 
						
							| 25 | 9 16 24 | syl2an2r | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  ¬  𝑃  ∥  𝑅 ) | 
						
							| 26 |  | eqid | ⊢ ( ( 𝑅 ↑ ( 𝑃  −  2 ) )  mod  𝑃 )  =  ( ( 𝑅 ↑ ( 𝑃  −  2 ) )  mod  𝑃 ) | 
						
							| 27 | 26 | prmdiveq | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝑅  ∈  ℤ  ∧  ¬  𝑃  ∥  𝑅 )  →  ( ( 𝐴  ∈  ( 0 ... ( 𝑃  −  1 ) )  ∧  𝑃  ∥  ( ( 𝑅  ·  𝐴 )  −  1 ) )  ↔  𝐴  =  ( ( 𝑅 ↑ ( 𝑃  −  2 ) )  mod  𝑃 ) ) ) | 
						
							| 28 | 5 23 25 27 | syl3anc | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  ( ( 𝐴  ∈  ( 0 ... ( 𝑃  −  1 ) )  ∧  𝑃  ∥  ( ( 𝑅  ·  𝐴 )  −  1 ) )  ↔  𝐴  =  ( ( 𝑅 ↑ ( 𝑃  −  2 ) )  mod  𝑃 ) ) ) | 
						
							| 29 | 4 22 28 | mpbi2and | ⊢ ( ( 𝑃  ∈  ℙ  ∧  𝐴  ∈  ( 1 ... ( 𝑃  −  1 ) ) )  →  𝐴  =  ( ( 𝑅 ↑ ( 𝑃  −  2 ) )  mod  𝑃 ) ) |