| Step | Hyp | Ref | Expression | 
						
							| 1 |  | n0 | ⊢ ( 𝐵  ≠  ∅  ↔  ∃ 𝑦 𝑦  ∈  𝐵 ) | 
						
							| 2 |  | opelxp | ⊢ ( 〈 𝑥 ,  𝑦 〉  ∈  ( 𝐴  ×  𝐵 )  ↔  ( 𝑥  ∈  𝐴  ∧  𝑦  ∈  𝐵 ) ) | 
						
							| 3 |  | fvres | ⊢ ( 〈 𝑥 ,  𝑦 〉  ∈  ( 𝐴  ×  𝐵 )  →  ( ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) ‘ 〈 𝑥 ,  𝑦 〉 )  =  ( 1st  ‘ 〈 𝑥 ,  𝑦 〉 ) ) | 
						
							| 4 |  | vex | ⊢ 𝑥  ∈  V | 
						
							| 5 |  | vex | ⊢ 𝑦  ∈  V | 
						
							| 6 | 4 5 | op1st | ⊢ ( 1st  ‘ 〈 𝑥 ,  𝑦 〉 )  =  𝑥 | 
						
							| 7 | 3 6 | eqtr2di | ⊢ ( 〈 𝑥 ,  𝑦 〉  ∈  ( 𝐴  ×  𝐵 )  →  𝑥  =  ( ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) ‘ 〈 𝑥 ,  𝑦 〉 ) ) | 
						
							| 8 |  | f1stres | ⊢ ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) : ( 𝐴  ×  𝐵 ) ⟶ 𝐴 | 
						
							| 9 |  | ffn | ⊢ ( ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) : ( 𝐴  ×  𝐵 ) ⟶ 𝐴  →  ( 1st   ↾  ( 𝐴  ×  𝐵 ) )  Fn  ( 𝐴  ×  𝐵 ) ) | 
						
							| 10 | 8 9 | ax-mp | ⊢ ( 1st   ↾  ( 𝐴  ×  𝐵 ) )  Fn  ( 𝐴  ×  𝐵 ) | 
						
							| 11 |  | fnfvelrn | ⊢ ( ( ( 1st   ↾  ( 𝐴  ×  𝐵 ) )  Fn  ( 𝐴  ×  𝐵 )  ∧  〈 𝑥 ,  𝑦 〉  ∈  ( 𝐴  ×  𝐵 ) )  →  ( ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) ‘ 〈 𝑥 ,  𝑦 〉 )  ∈  ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) ) | 
						
							| 12 | 10 11 | mpan | ⊢ ( 〈 𝑥 ,  𝑦 〉  ∈  ( 𝐴  ×  𝐵 )  →  ( ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) ‘ 〈 𝑥 ,  𝑦 〉 )  ∈  ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) ) | 
						
							| 13 | 7 12 | eqeltrd | ⊢ ( 〈 𝑥 ,  𝑦 〉  ∈  ( 𝐴  ×  𝐵 )  →  𝑥  ∈  ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) ) | 
						
							| 14 | 2 13 | sylbir | ⊢ ( ( 𝑥  ∈  𝐴  ∧  𝑦  ∈  𝐵 )  →  𝑥  ∈  ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) ) | 
						
							| 15 | 14 | expcom | ⊢ ( 𝑦  ∈  𝐵  →  ( 𝑥  ∈  𝐴  →  𝑥  ∈  ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) ) ) | 
						
							| 16 | 15 | exlimiv | ⊢ ( ∃ 𝑦 𝑦  ∈  𝐵  →  ( 𝑥  ∈  𝐴  →  𝑥  ∈  ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) ) ) | 
						
							| 17 | 1 16 | sylbi | ⊢ ( 𝐵  ≠  ∅  →  ( 𝑥  ∈  𝐴  →  𝑥  ∈  ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) ) ) | 
						
							| 18 | 17 | ssrdv | ⊢ ( 𝐵  ≠  ∅  →  𝐴  ⊆  ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) ) | 
						
							| 19 |  | frn | ⊢ ( ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) : ( 𝐴  ×  𝐵 ) ⟶ 𝐴  →  ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) )  ⊆  𝐴 ) | 
						
							| 20 | 8 19 | ax-mp | ⊢ ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) )  ⊆  𝐴 | 
						
							| 21 | 18 20 | jctil | ⊢ ( 𝐵  ≠  ∅  →  ( ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) )  ⊆  𝐴  ∧  𝐴  ⊆  ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) ) ) | 
						
							| 22 |  | eqss | ⊢ ( ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) )  =  𝐴  ↔  ( ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) )  ⊆  𝐴  ∧  𝐴  ⊆  ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) ) ) | 
						
							| 23 | 21 22 | sylibr | ⊢ ( 𝐵  ≠  ∅  →  ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) )  =  𝐴 ) | 
						
							| 24 | 23 8 | jctil | ⊢ ( 𝐵  ≠  ∅  →  ( ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) : ( 𝐴  ×  𝐵 ) ⟶ 𝐴  ∧  ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) )  =  𝐴 ) ) | 
						
							| 25 |  | dffo2 | ⊢ ( ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) : ( 𝐴  ×  𝐵 ) –onto→ 𝐴  ↔  ( ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) : ( 𝐴  ×  𝐵 ) ⟶ 𝐴  ∧  ran  ( 1st   ↾  ( 𝐴  ×  𝐵 ) )  =  𝐴 ) ) | 
						
							| 26 | 24 25 | sylibr | ⊢ ( 𝐵  ≠  ∅  →  ( 1st   ↾  ( 𝐴  ×  𝐵 ) ) : ( 𝐴  ×  𝐵 ) –onto→ 𝐴 ) |