Metamath Proof Explorer


Theorem fo1stres

Description: Onto mapping of a restriction of the 1st (first member of an ordered pair) function. (Contributed by NM, 14-Dec-2008)

Ref Expression
Assertion fo1stres ( 𝐵 ≠ ∅ → ( 1st ↾ ( 𝐴 × 𝐵 ) ) : ( 𝐴 × 𝐵 ) –onto𝐴 )

Proof

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𝐴 )