Metamath Proof Explorer


Theorem upxp

Description: Universal property of the Cartesian product considered as a categorical product in the category of sets. (Contributed by Jeff Madsen, 2-Sep-2009) (Revised by Mario Carneiro, 27-Dec-2014)

Ref Expression
Hypotheses upxp.1 𝑃 = ( 1st ↾ ( 𝐵 × 𝐶 ) )
upxp.2 𝑄 = ( 2nd ↾ ( 𝐵 × 𝐶 ) )
Assertion upxp ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → ∃! ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) )

Proof

Step Hyp Ref Expression
1 upxp.1 𝑃 = ( 1st ↾ ( 𝐵 × 𝐶 ) )
2 upxp.2 𝑄 = ( 2nd ↾ ( 𝐵 × 𝐶 ) )
3 mptexg ( 𝐴𝐷 → ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ∈ V )
4 eueq ( ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ∈ V ↔ ∃! = ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) )
5 3 4 sylib ( 𝐴𝐷 → ∃! = ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) )
6 5 3ad2ant1 ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → ∃! = ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) )
7 ffn ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) → Fn 𝐴 )
8 7 3ad2ant1 ( ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) → Fn 𝐴 )
9 8 adantl ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) → Fn 𝐴 )
10 ffvelrn ( ( 𝐹 : 𝐴𝐵𝑥𝐴 ) → ( 𝐹𝑥 ) ∈ 𝐵 )
11 ffvelrn ( ( 𝐺 : 𝐴𝐶𝑥𝐴 ) → ( 𝐺𝑥 ) ∈ 𝐶 )
12 opelxpi ( ( ( 𝐹𝑥 ) ∈ 𝐵 ∧ ( 𝐺𝑥 ) ∈ 𝐶 ) → ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ∈ ( 𝐵 × 𝐶 ) )
13 10 11 12 syl2an ( ( ( 𝐹 : 𝐴𝐵𝑥𝐴 ) ∧ ( 𝐺 : 𝐴𝐶𝑥𝐴 ) ) → ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ∈ ( 𝐵 × 𝐶 ) )
14 13 anandirs ( ( ( 𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ 𝑥𝐴 ) → ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ∈ ( 𝐵 × 𝐶 ) )
15 14 ralrimiva ( ( 𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → ∀ 𝑥𝐴 ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ∈ ( 𝐵 × 𝐶 ) )
16 15 3adant1 ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → ∀ 𝑥𝐴 ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ∈ ( 𝐵 × 𝐶 ) )
17 eqid ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) = ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ )
18 17 fmpt ( ∀ 𝑥𝐴 ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ∈ ( 𝐵 × 𝐶 ) ↔ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) : 𝐴 ⟶ ( 𝐵 × 𝐶 ) )
19 16 18 sylib ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) : 𝐴 ⟶ ( 𝐵 × 𝐶 ) )
20 19 ffnd ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) Fn 𝐴 )
21 20 adantr ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) → ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) Fn 𝐴 )
22 xpss ( 𝐵 × 𝐶 ) ⊆ ( V × V )
23 ffvelrn ( ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝑧𝐴 ) → ( 𝑧 ) ∈ ( 𝐵 × 𝐶 ) )
24 22 23 sselid ( ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝑧𝐴 ) → ( 𝑧 ) ∈ ( V × V ) )
25 24 3ad2antl1 ( ( ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ∧ 𝑧𝐴 ) → ( 𝑧 ) ∈ ( V × V ) )
26 25 adantll ( ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) ∧ 𝑧𝐴 ) → ( 𝑧 ) ∈ ( V × V ) )
27 fveq1 ( 𝐹 = ( 𝑃 ) → ( 𝐹𝑧 ) = ( ( 𝑃 ) ‘ 𝑧 ) )
28 1 coeq1i ( 𝑃 ) = ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ∘ )
29 28 fveq1i ( ( 𝑃 ) ‘ 𝑧 ) = ( ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ∘ ) ‘ 𝑧 )
30 27 29 eqtrdi ( 𝐹 = ( 𝑃 ) → ( 𝐹𝑧 ) = ( ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ∘ ) ‘ 𝑧 ) )
31 30 3ad2ant2 ( ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) → ( 𝐹𝑧 ) = ( ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ∘ ) ‘ 𝑧 ) )
32 31 ad2antlr ( ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) ∧ 𝑧𝐴 ) → ( 𝐹𝑧 ) = ( ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ∘ ) ‘ 𝑧 ) )
33 simpr1 ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) → : 𝐴 ⟶ ( 𝐵 × 𝐶 ) )
34 fvco3 ( ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝑧𝐴 ) → ( ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ∘ ) ‘ 𝑧 ) = ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ‘ ( 𝑧 ) ) )
35 33 34 sylan ( ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) ∧ 𝑧𝐴 ) → ( ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ∘ ) ‘ 𝑧 ) = ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ‘ ( 𝑧 ) ) )
36 23 3ad2antl1 ( ( ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ∧ 𝑧𝐴 ) → ( 𝑧 ) ∈ ( 𝐵 × 𝐶 ) )
37 36 adantll ( ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) ∧ 𝑧𝐴 ) → ( 𝑧 ) ∈ ( 𝐵 × 𝐶 ) )
38 37 fvresd ( ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) ∧ 𝑧𝐴 ) → ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ‘ ( 𝑧 ) ) = ( 1st ‘ ( 𝑧 ) ) )
39 32 35 38 3eqtrrd ( ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) ∧ 𝑧𝐴 ) → ( 1st ‘ ( 𝑧 ) ) = ( 𝐹𝑧 ) )
40 fveq1 ( 𝐺 = ( 𝑄 ) → ( 𝐺𝑧 ) = ( ( 𝑄 ) ‘ 𝑧 ) )
41 2 coeq1i ( 𝑄 ) = ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ∘ )
42 41 fveq1i ( ( 𝑄 ) ‘ 𝑧 ) = ( ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ∘ ) ‘ 𝑧 )
43 40 42 eqtrdi ( 𝐺 = ( 𝑄 ) → ( 𝐺𝑧 ) = ( ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ∘ ) ‘ 𝑧 ) )
44 43 3ad2ant3 ( ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) → ( 𝐺𝑧 ) = ( ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ∘ ) ‘ 𝑧 ) )
45 44 ad2antlr ( ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) ∧ 𝑧𝐴 ) → ( 𝐺𝑧 ) = ( ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ∘ ) ‘ 𝑧 ) )
46 fvco3 ( ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝑧𝐴 ) → ( ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ∘ ) ‘ 𝑧 ) = ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ‘ ( 𝑧 ) ) )
47 33 46 sylan ( ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) ∧ 𝑧𝐴 ) → ( ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ∘ ) ‘ 𝑧 ) = ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ‘ ( 𝑧 ) ) )
48 37 fvresd ( ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) ∧ 𝑧𝐴 ) → ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ‘ ( 𝑧 ) ) = ( 2nd ‘ ( 𝑧 ) ) )
49 45 47 48 3eqtrrd ( ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) ∧ 𝑧𝐴 ) → ( 2nd ‘ ( 𝑧 ) ) = ( 𝐺𝑧 ) )
50 eqopi ( ( ( 𝑧 ) ∈ ( V × V ) ∧ ( ( 1st ‘ ( 𝑧 ) ) = ( 𝐹𝑧 ) ∧ ( 2nd ‘ ( 𝑧 ) ) = ( 𝐺𝑧 ) ) ) → ( 𝑧 ) = ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ )
51 26 39 49 50 syl12anc ( ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) ∧ 𝑧𝐴 ) → ( 𝑧 ) = ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ )
52 fveq2 ( 𝑥 = 𝑧 → ( 𝐹𝑥 ) = ( 𝐹𝑧 ) )
53 fveq2 ( 𝑥 = 𝑧 → ( 𝐺𝑥 ) = ( 𝐺𝑧 ) )
54 52 53 opeq12d ( 𝑥 = 𝑧 → ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ = ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ )
55 opex ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ ∈ V
56 54 17 55 fvmpt ( 𝑧𝐴 → ( ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ‘ 𝑧 ) = ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ )
57 56 adantl ( ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) ∧ 𝑧𝐴 ) → ( ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ‘ 𝑧 ) = ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ )
58 51 57 eqtr4d ( ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) ∧ 𝑧𝐴 ) → ( 𝑧 ) = ( ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ‘ 𝑧 ) )
59 9 21 58 eqfnfvd ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) → = ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) )
60 59 ex ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → ( ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) → = ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) )
61 ffn ( 𝐹 : 𝐴𝐵𝐹 Fn 𝐴 )
62 61 3ad2ant2 ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → 𝐹 Fn 𝐴 )
63 fo1st 1st : V –onto→ V
64 fofn ( 1st : V –onto→ V → 1st Fn V )
65 63 64 ax-mp 1st Fn V
66 ssv ( 𝐵 × 𝐶 ) ⊆ V
67 fnssres ( ( 1st Fn V ∧ ( 𝐵 × 𝐶 ) ⊆ V ) → ( 1st ↾ ( 𝐵 × 𝐶 ) ) Fn ( 𝐵 × 𝐶 ) )
68 65 66 67 mp2an ( 1st ↾ ( 𝐵 × 𝐶 ) ) Fn ( 𝐵 × 𝐶 )
69 19 frnd ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → ran ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ⊆ ( 𝐵 × 𝐶 ) )
70 fnco ( ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) Fn ( 𝐵 × 𝐶 ) ∧ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) Fn 𝐴 ∧ ran ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ⊆ ( 𝐵 × 𝐶 ) ) → ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) Fn 𝐴 )
71 68 20 69 70 mp3an2i ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) Fn 𝐴 )
72 fvco3 ( ( ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝑧𝐴 ) → ( ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) ‘ 𝑧 ) = ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ‘ ( ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ‘ 𝑧 ) ) )
73 19 72 sylan ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ 𝑧𝐴 ) → ( ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) ‘ 𝑧 ) = ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ‘ ( ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ‘ 𝑧 ) ) )
74 56 adantl ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ 𝑧𝐴 ) → ( ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ‘ 𝑧 ) = ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ )
75 74 fveq2d ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ 𝑧𝐴 ) → ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ‘ ( ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ‘ 𝑧 ) ) = ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ‘ ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ ) )
76 ffvelrn ( ( 𝐹 : 𝐴𝐵𝑧𝐴 ) → ( 𝐹𝑧 ) ∈ 𝐵 )
77 ffvelrn ( ( 𝐺 : 𝐴𝐶𝑧𝐴 ) → ( 𝐺𝑧 ) ∈ 𝐶 )
78 opelxpi ( ( ( 𝐹𝑧 ) ∈ 𝐵 ∧ ( 𝐺𝑧 ) ∈ 𝐶 ) → ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ ∈ ( 𝐵 × 𝐶 ) )
79 76 77 78 syl2an ( ( ( 𝐹 : 𝐴𝐵𝑧𝐴 ) ∧ ( 𝐺 : 𝐴𝐶𝑧𝐴 ) ) → ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ ∈ ( 𝐵 × 𝐶 ) )
80 79 anandirs ( ( ( 𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ 𝑧𝐴 ) → ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ ∈ ( 𝐵 × 𝐶 ) )
81 80 3adantl1 ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ 𝑧𝐴 ) → ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ ∈ ( 𝐵 × 𝐶 ) )
82 81 fvresd ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ 𝑧𝐴 ) → ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ‘ ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ ) = ( 1st ‘ ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ ) )
83 fvex ( 𝐹𝑧 ) ∈ V
84 fvex ( 𝐺𝑧 ) ∈ V
85 83 84 op1st ( 1st ‘ ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ ) = ( 𝐹𝑧 )
86 82 85 eqtrdi ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ 𝑧𝐴 ) → ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ‘ ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ ) = ( 𝐹𝑧 ) )
87 73 75 86 3eqtrrd ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ 𝑧𝐴 ) → ( 𝐹𝑧 ) = ( ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) ‘ 𝑧 ) )
88 62 71 87 eqfnfvd ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → 𝐹 = ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) )
89 1 coeq1i ( 𝑃 ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) = ( ( 1st ↾ ( 𝐵 × 𝐶 ) ) ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) )
90 88 89 eqtr4di ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → 𝐹 = ( 𝑃 ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) )
91 ffn ( 𝐺 : 𝐴𝐶𝐺 Fn 𝐴 )
92 91 3ad2ant3 ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → 𝐺 Fn 𝐴 )
93 fo2nd 2nd : V –onto→ V
94 fofn ( 2nd : V –onto→ V → 2nd Fn V )
95 93 94 ax-mp 2nd Fn V
96 fnssres ( ( 2nd Fn V ∧ ( 𝐵 × 𝐶 ) ⊆ V ) → ( 2nd ↾ ( 𝐵 × 𝐶 ) ) Fn ( 𝐵 × 𝐶 ) )
97 95 66 96 mp2an ( 2nd ↾ ( 𝐵 × 𝐶 ) ) Fn ( 𝐵 × 𝐶 )
98 fnco ( ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) Fn ( 𝐵 × 𝐶 ) ∧ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) Fn 𝐴 ∧ ran ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ⊆ ( 𝐵 × 𝐶 ) ) → ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) Fn 𝐴 )
99 97 20 69 98 mp3an2i ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) Fn 𝐴 )
100 fvco3 ( ( ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝑧𝐴 ) → ( ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) ‘ 𝑧 ) = ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ‘ ( ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ‘ 𝑧 ) ) )
101 19 100 sylan ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ 𝑧𝐴 ) → ( ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) ‘ 𝑧 ) = ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ‘ ( ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ‘ 𝑧 ) ) )
102 74 fveq2d ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ 𝑧𝐴 ) → ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ‘ ( ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ‘ 𝑧 ) ) = ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ‘ ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ ) )
103 81 fvresd ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ 𝑧𝐴 ) → ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ‘ ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ ) = ( 2nd ‘ ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ ) )
104 83 84 op2nd ( 2nd ‘ ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ ) = ( 𝐺𝑧 )
105 103 104 eqtrdi ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ 𝑧𝐴 ) → ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ‘ ⟨ ( 𝐹𝑧 ) , ( 𝐺𝑧 ) ⟩ ) = ( 𝐺𝑧 ) )
106 101 102 105 3eqtrrd ( ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) ∧ 𝑧𝐴 ) → ( 𝐺𝑧 ) = ( ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) ‘ 𝑧 ) )
107 92 99 106 eqfnfvd ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → 𝐺 = ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) )
108 2 coeq1i ( 𝑄 ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) = ( ( 2nd ↾ ( 𝐵 × 𝐶 ) ) ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) )
109 107 108 eqtr4di ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → 𝐺 = ( 𝑄 ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) )
110 19 90 109 3jca ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → ( ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) ∧ 𝐺 = ( 𝑄 ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) ) )
111 feq1 ( = ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) → ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ↔ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ) )
112 coeq2 ( = ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) → ( 𝑃 ) = ( 𝑃 ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) )
113 112 eqeq2d ( = ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) → ( 𝐹 = ( 𝑃 ) ↔ 𝐹 = ( 𝑃 ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) ) )
114 coeq2 ( = ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) → ( 𝑄 ) = ( 𝑄 ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) )
115 114 eqeq2d ( = ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) → ( 𝐺 = ( 𝑄 ) ↔ 𝐺 = ( 𝑄 ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) ) )
116 111 113 115 3anbi123d ( = ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) → ( ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ↔ ( ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) ∧ 𝐺 = ( 𝑄 ∘ ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) ) ) )
117 110 116 syl5ibrcom ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → ( = ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) → ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ) )
118 60 117 impbid ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → ( ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ↔ = ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) )
119 118 eubidv ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → ( ∃! ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) ↔ ∃! = ( 𝑥𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐺𝑥 ) ⟩ ) ) )
120 6 119 mpbird ( ( 𝐴𝐷𝐹 : 𝐴𝐵𝐺 : 𝐴𝐶 ) → ∃! ( : 𝐴 ⟶ ( 𝐵 × 𝐶 ) ∧ 𝐹 = ( 𝑃 ) ∧ 𝐺 = ( 𝑄 ) ) )