| Step | Hyp | Ref | Expression | 
						
							| 1 |  | nnz | ⊢ ( 𝐴  ∈  ℕ  →  𝐴  ∈  ℤ ) | 
						
							| 2 |  | gcddvds | ⊢ ( ( 𝐴  ∈  ℤ  ∧  𝐵  ∈  ℤ )  →  ( ( 𝐴  gcd  𝐵 )  ∥  𝐴  ∧  ( 𝐴  gcd  𝐵 )  ∥  𝐵 ) ) | 
						
							| 3 | 1 2 | sylan | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ( ( 𝐴  gcd  𝐵 )  ∥  𝐴  ∧  ( 𝐴  gcd  𝐵 )  ∥  𝐵 ) ) | 
						
							| 4 | 3 | simprd | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ( 𝐴  gcd  𝐵 )  ∥  𝐵 ) | 
						
							| 5 |  | breq1 | ⊢ ( ( 𝐴  gcd  𝐵 )  =  𝐴  →  ( ( 𝐴  gcd  𝐵 )  ∥  𝐵  ↔  𝐴  ∥  𝐵 ) ) | 
						
							| 6 | 4 5 | syl5ibcom | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ( ( 𝐴  gcd  𝐵 )  =  𝐴  →  𝐴  ∥  𝐵 ) ) | 
						
							| 7 | 1 | adantr | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  𝐴  ∈  ℤ ) | 
						
							| 8 |  | iddvds | ⊢ ( 𝐴  ∈  ℤ  →  𝐴  ∥  𝐴 ) | 
						
							| 9 | 7 8 | syl | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  𝐴  ∥  𝐴 ) | 
						
							| 10 |  | simpr | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  𝐵  ∈  ℤ ) | 
						
							| 11 |  | nnne0 | ⊢ ( 𝐴  ∈  ℕ  →  𝐴  ≠  0 ) | 
						
							| 12 |  | simpl | ⊢ ( ( 𝐴  =  0  ∧  𝐵  =  0 )  →  𝐴  =  0 ) | 
						
							| 13 | 12 | necon3ai | ⊢ ( 𝐴  ≠  0  →  ¬  ( 𝐴  =  0  ∧  𝐵  =  0 ) ) | 
						
							| 14 | 11 13 | syl | ⊢ ( 𝐴  ∈  ℕ  →  ¬  ( 𝐴  =  0  ∧  𝐵  =  0 ) ) | 
						
							| 15 | 14 | adantr | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ¬  ( 𝐴  =  0  ∧  𝐵  =  0 ) ) | 
						
							| 16 |  | dvdslegcd | ⊢ ( ( ( 𝐴  ∈  ℤ  ∧  𝐴  ∈  ℤ  ∧  𝐵  ∈  ℤ )  ∧  ¬  ( 𝐴  =  0  ∧  𝐵  =  0 ) )  →  ( ( 𝐴  ∥  𝐴  ∧  𝐴  ∥  𝐵 )  →  𝐴  ≤  ( 𝐴  gcd  𝐵 ) ) ) | 
						
							| 17 | 7 7 10 15 16 | syl31anc | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ( ( 𝐴  ∥  𝐴  ∧  𝐴  ∥  𝐵 )  →  𝐴  ≤  ( 𝐴  gcd  𝐵 ) ) ) | 
						
							| 18 | 9 17 | mpand | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ( 𝐴  ∥  𝐵  →  𝐴  ≤  ( 𝐴  gcd  𝐵 ) ) ) | 
						
							| 19 | 3 | simpld | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ( 𝐴  gcd  𝐵 )  ∥  𝐴 ) | 
						
							| 20 |  | gcdcl | ⊢ ( ( 𝐴  ∈  ℤ  ∧  𝐵  ∈  ℤ )  →  ( 𝐴  gcd  𝐵 )  ∈  ℕ0 ) | 
						
							| 21 | 1 20 | sylan | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ( 𝐴  gcd  𝐵 )  ∈  ℕ0 ) | 
						
							| 22 | 21 | nn0zd | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ( 𝐴  gcd  𝐵 )  ∈  ℤ ) | 
						
							| 23 |  | simpl | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  𝐴  ∈  ℕ ) | 
						
							| 24 |  | dvdsle | ⊢ ( ( ( 𝐴  gcd  𝐵 )  ∈  ℤ  ∧  𝐴  ∈  ℕ )  →  ( ( 𝐴  gcd  𝐵 )  ∥  𝐴  →  ( 𝐴  gcd  𝐵 )  ≤  𝐴 ) ) | 
						
							| 25 | 22 23 24 | syl2anc | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ( ( 𝐴  gcd  𝐵 )  ∥  𝐴  →  ( 𝐴  gcd  𝐵 )  ≤  𝐴 ) ) | 
						
							| 26 | 19 25 | mpd | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ( 𝐴  gcd  𝐵 )  ≤  𝐴 ) | 
						
							| 27 | 18 26 | jctild | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ( 𝐴  ∥  𝐵  →  ( ( 𝐴  gcd  𝐵 )  ≤  𝐴  ∧  𝐴  ≤  ( 𝐴  gcd  𝐵 ) ) ) ) | 
						
							| 28 | 21 | nn0red | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ( 𝐴  gcd  𝐵 )  ∈  ℝ ) | 
						
							| 29 |  | nnre | ⊢ ( 𝐴  ∈  ℕ  →  𝐴  ∈  ℝ ) | 
						
							| 30 | 29 | adantr | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  𝐴  ∈  ℝ ) | 
						
							| 31 | 28 30 | letri3d | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ( ( 𝐴  gcd  𝐵 )  =  𝐴  ↔  ( ( 𝐴  gcd  𝐵 )  ≤  𝐴  ∧  𝐴  ≤  ( 𝐴  gcd  𝐵 ) ) ) ) | 
						
							| 32 | 27 31 | sylibrd | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ( 𝐴  ∥  𝐵  →  ( 𝐴  gcd  𝐵 )  =  𝐴 ) ) | 
						
							| 33 | 6 32 | impbid | ⊢ ( ( 𝐴  ∈  ℕ  ∧  𝐵  ∈  ℤ )  →  ( ( 𝐴  gcd  𝐵 )  =  𝐴  ↔  𝐴  ∥  𝐵 ) ) |