Metamath Proof Explorer


Theorem fmpox

Description: Functionality, domain and codomain of a class given by the maps-to notation, where B ( x ) is not constant but depends on x . (Contributed by NM, 29-Dec-2014)

Ref Expression
Hypothesis fmpox.1 𝐹 = ( 𝑥𝐴 , 𝑦𝐵𝐶 )
Assertion fmpox ( ∀ 𝑥𝐴𝑦𝐵 𝐶𝐷𝐹 : 𝑥𝐴 ( { 𝑥 } × 𝐵 ) ⟶ 𝐷 )

Proof

Step Hyp Ref Expression
1 fmpox.1 𝐹 = ( 𝑥𝐴 , 𝑦𝐵𝐶 )
2 vex 𝑧 ∈ V
3 vex 𝑤 ∈ V
4 2 3 op1std ( 𝑣 = ⟨ 𝑧 , 𝑤 ⟩ → ( 1st𝑣 ) = 𝑧 )
5 4 csbeq1d ( 𝑣 = ⟨ 𝑧 , 𝑤 ⟩ → ( 1st𝑣 ) / 𝑥 ( 2nd𝑣 ) / 𝑦 𝐶 = 𝑧 / 𝑥 ( 2nd𝑣 ) / 𝑦 𝐶 )
6 2 3 op2ndd ( 𝑣 = ⟨ 𝑧 , 𝑤 ⟩ → ( 2nd𝑣 ) = 𝑤 )
7 6 csbeq1d ( 𝑣 = ⟨ 𝑧 , 𝑤 ⟩ → ( 2nd𝑣 ) / 𝑦 𝐶 = 𝑤 / 𝑦 𝐶 )
8 7 csbeq2dv ( 𝑣 = ⟨ 𝑧 , 𝑤 ⟩ → 𝑧 / 𝑥 ( 2nd𝑣 ) / 𝑦 𝐶 = 𝑧 / 𝑥 𝑤 / 𝑦 𝐶 )
9 5 8 eqtrd ( 𝑣 = ⟨ 𝑧 , 𝑤 ⟩ → ( 1st𝑣 ) / 𝑥 ( 2nd𝑣 ) / 𝑦 𝐶 = 𝑧 / 𝑥 𝑤 / 𝑦 𝐶 )
10 9 eleq1d ( 𝑣 = ⟨ 𝑧 , 𝑤 ⟩ → ( ( 1st𝑣 ) / 𝑥 ( 2nd𝑣 ) / 𝑦 𝐶𝐷 𝑧 / 𝑥 𝑤 / 𝑦 𝐶𝐷 ) )
11 10 raliunxp ( ∀ 𝑣 𝑧𝐴 ( { 𝑧 } × 𝑧 / 𝑥 𝐵 ) ( 1st𝑣 ) / 𝑥 ( 2nd𝑣 ) / 𝑦 𝐶𝐷 ↔ ∀ 𝑧𝐴𝑤 𝑧 / 𝑥 𝐵 𝑧 / 𝑥 𝑤 / 𝑦 𝐶𝐷 )
12 nfv 𝑧 ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑣 = 𝐶 )
13 nfv 𝑤 ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑣 = 𝐶 )
14 nfv 𝑥 𝑧𝐴
15 nfcsb1v 𝑥 𝑧 / 𝑥 𝐵
16 15 nfcri 𝑥 𝑤 𝑧 / 𝑥 𝐵
17 14 16 nfan 𝑥 ( 𝑧𝐴𝑤 𝑧 / 𝑥 𝐵 )
18 nfcsb1v 𝑥 𝑧 / 𝑥 𝑤 / 𝑦 𝐶
19 18 nfeq2 𝑥 𝑣 = 𝑧 / 𝑥 𝑤 / 𝑦 𝐶
20 17 19 nfan 𝑥 ( ( 𝑧𝐴𝑤 𝑧 / 𝑥 𝐵 ) ∧ 𝑣 = 𝑧 / 𝑥 𝑤 / 𝑦 𝐶 )
21 nfv 𝑦 ( 𝑧𝐴𝑤 𝑧 / 𝑥 𝐵 )
22 nfcv 𝑦 𝑧
23 nfcsb1v 𝑦 𝑤 / 𝑦 𝐶
24 22 23 nfcsbw 𝑦 𝑧 / 𝑥 𝑤 / 𝑦 𝐶
25 24 nfeq2 𝑦 𝑣 = 𝑧 / 𝑥 𝑤 / 𝑦 𝐶
26 21 25 nfan 𝑦 ( ( 𝑧𝐴𝑤 𝑧 / 𝑥 𝐵 ) ∧ 𝑣 = 𝑧 / 𝑥 𝑤 / 𝑦 𝐶 )
27 eleq1w ( 𝑥 = 𝑧 → ( 𝑥𝐴𝑧𝐴 ) )
28 27 adantr ( ( 𝑥 = 𝑧𝑦 = 𝑤 ) → ( 𝑥𝐴𝑧𝐴 ) )
29 eleq1w ( 𝑦 = 𝑤 → ( 𝑦𝐵𝑤𝐵 ) )
30 csbeq1a ( 𝑥 = 𝑧𝐵 = 𝑧 / 𝑥 𝐵 )
31 30 eleq2d ( 𝑥 = 𝑧 → ( 𝑤𝐵𝑤 𝑧 / 𝑥 𝐵 ) )
32 29 31 sylan9bbr ( ( 𝑥 = 𝑧𝑦 = 𝑤 ) → ( 𝑦𝐵𝑤 𝑧 / 𝑥 𝐵 ) )
33 28 32 anbi12d ( ( 𝑥 = 𝑧𝑦 = 𝑤 ) → ( ( 𝑥𝐴𝑦𝐵 ) ↔ ( 𝑧𝐴𝑤 𝑧 / 𝑥 𝐵 ) ) )
34 csbeq1a ( 𝑦 = 𝑤𝐶 = 𝑤 / 𝑦 𝐶 )
35 csbeq1a ( 𝑥 = 𝑧 𝑤 / 𝑦 𝐶 = 𝑧 / 𝑥 𝑤 / 𝑦 𝐶 )
36 34 35 sylan9eqr ( ( 𝑥 = 𝑧𝑦 = 𝑤 ) → 𝐶 = 𝑧 / 𝑥 𝑤 / 𝑦 𝐶 )
37 36 eqeq2d ( ( 𝑥 = 𝑧𝑦 = 𝑤 ) → ( 𝑣 = 𝐶𝑣 = 𝑧 / 𝑥 𝑤 / 𝑦 𝐶 ) )
38 33 37 anbi12d ( ( 𝑥 = 𝑧𝑦 = 𝑤 ) → ( ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑣 = 𝐶 ) ↔ ( ( 𝑧𝐴𝑤 𝑧 / 𝑥 𝐵 ) ∧ 𝑣 = 𝑧 / 𝑥 𝑤 / 𝑦 𝐶 ) ) )
39 12 13 20 26 38 cbvoprab12 { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑣 ⟩ ∣ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑣 = 𝐶 ) } = { ⟨ ⟨ 𝑧 , 𝑤 ⟩ , 𝑣 ⟩ ∣ ( ( 𝑧𝐴𝑤 𝑧 / 𝑥 𝐵 ) ∧ 𝑣 = 𝑧 / 𝑥 𝑤 / 𝑦 𝐶 ) }
40 df-mpo ( 𝑥𝐴 , 𝑦𝐵𝐶 ) = { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑣 ⟩ ∣ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑣 = 𝐶 ) }
41 df-mpo ( 𝑧𝐴 , 𝑤 𝑧 / 𝑥 𝐵 𝑧 / 𝑥 𝑤 / 𝑦 𝐶 ) = { ⟨ ⟨ 𝑧 , 𝑤 ⟩ , 𝑣 ⟩ ∣ ( ( 𝑧𝐴𝑤 𝑧 / 𝑥 𝐵 ) ∧ 𝑣 = 𝑧 / 𝑥 𝑤 / 𝑦 𝐶 ) }
42 39 40 41 3eqtr4i ( 𝑥𝐴 , 𝑦𝐵𝐶 ) = ( 𝑧𝐴 , 𝑤 𝑧 / 𝑥 𝐵 𝑧 / 𝑥 𝑤 / 𝑦 𝐶 )
43 9 mpomptx ( 𝑣 𝑧𝐴 ( { 𝑧 } × 𝑧 / 𝑥 𝐵 ) ↦ ( 1st𝑣 ) / 𝑥 ( 2nd𝑣 ) / 𝑦 𝐶 ) = ( 𝑧𝐴 , 𝑤 𝑧 / 𝑥 𝐵 𝑧 / 𝑥 𝑤 / 𝑦 𝐶 )
44 42 1 43 3eqtr4i 𝐹 = ( 𝑣 𝑧𝐴 ( { 𝑧 } × 𝑧 / 𝑥 𝐵 ) ↦ ( 1st𝑣 ) / 𝑥 ( 2nd𝑣 ) / 𝑦 𝐶 )
45 44 fmpt ( ∀ 𝑣 𝑧𝐴 ( { 𝑧 } × 𝑧 / 𝑥 𝐵 ) ( 1st𝑣 ) / 𝑥 ( 2nd𝑣 ) / 𝑦 𝐶𝐷𝐹 : 𝑧𝐴 ( { 𝑧 } × 𝑧 / 𝑥 𝐵 ) ⟶ 𝐷 )
46 11 45 bitr3i ( ∀ 𝑧𝐴𝑤 𝑧 / 𝑥 𝐵 𝑧 / 𝑥 𝑤 / 𝑦 𝐶𝐷𝐹 : 𝑧𝐴 ( { 𝑧 } × 𝑧 / 𝑥 𝐵 ) ⟶ 𝐷 )
47 nfv 𝑧𝑦𝐵 𝐶𝐷
48 18 nfel1 𝑥 𝑧 / 𝑥 𝑤 / 𝑦 𝐶𝐷
49 15 48 nfralw 𝑥𝑤 𝑧 / 𝑥 𝐵 𝑧 / 𝑥 𝑤 / 𝑦 𝐶𝐷
50 nfv 𝑤 𝐶𝐷
51 23 nfel1 𝑦 𝑤 / 𝑦 𝐶𝐷
52 34 eleq1d ( 𝑦 = 𝑤 → ( 𝐶𝐷 𝑤 / 𝑦 𝐶𝐷 ) )
53 50 51 52 cbvralw ( ∀ 𝑦𝐵 𝐶𝐷 ↔ ∀ 𝑤𝐵 𝑤 / 𝑦 𝐶𝐷 )
54 35 eleq1d ( 𝑥 = 𝑧 → ( 𝑤 / 𝑦 𝐶𝐷 𝑧 / 𝑥 𝑤 / 𝑦 𝐶𝐷 ) )
55 30 54 raleqbidv ( 𝑥 = 𝑧 → ( ∀ 𝑤𝐵 𝑤 / 𝑦 𝐶𝐷 ↔ ∀ 𝑤 𝑧 / 𝑥 𝐵 𝑧 / 𝑥 𝑤 / 𝑦 𝐶𝐷 ) )
56 53 55 bitrid ( 𝑥 = 𝑧 → ( ∀ 𝑦𝐵 𝐶𝐷 ↔ ∀ 𝑤 𝑧 / 𝑥 𝐵 𝑧 / 𝑥 𝑤 / 𝑦 𝐶𝐷 ) )
57 47 49 56 cbvralw ( ∀ 𝑥𝐴𝑦𝐵 𝐶𝐷 ↔ ∀ 𝑧𝐴𝑤 𝑧 / 𝑥 𝐵 𝑧 / 𝑥 𝑤 / 𝑦 𝐶𝐷 )
58 nfcv 𝑧 ( { 𝑥 } × 𝐵 )
59 nfcv 𝑥 { 𝑧 }
60 59 15 nfxp 𝑥 ( { 𝑧 } × 𝑧 / 𝑥 𝐵 )
61 sneq ( 𝑥 = 𝑧 → { 𝑥 } = { 𝑧 } )
62 61 30 xpeq12d ( 𝑥 = 𝑧 → ( { 𝑥 } × 𝐵 ) = ( { 𝑧 } × 𝑧 / 𝑥 𝐵 ) )
63 58 60 62 cbviun 𝑥𝐴 ( { 𝑥 } × 𝐵 ) = 𝑧𝐴 ( { 𝑧 } × 𝑧 / 𝑥 𝐵 )
64 63 feq2i ( 𝐹 : 𝑥𝐴 ( { 𝑥 } × 𝐵 ) ⟶ 𝐷𝐹 : 𝑧𝐴 ( { 𝑧 } × 𝑧 / 𝑥 𝐵 ) ⟶ 𝐷 )
65 46 57 64 3bitr4i ( ∀ 𝑥𝐴𝑦𝐵 𝐶𝐷𝐹 : 𝑥𝐴 ( { 𝑥 } × 𝐵 ) ⟶ 𝐷 )