Metamath Proof Explorer


Theorem fmucndlem

Description: Lemma for fmucnd . (Contributed by Thierry Arnoux, 19-Nov-2017)

Ref Expression
Assertion fmucndlem ( ( 𝐹 Fn 𝑋𝐴𝑋 ) → ( ( 𝑥𝑋 , 𝑦𝑋 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) “ ( 𝐴 × 𝐴 ) ) = ( ( 𝐹𝐴 ) × ( 𝐹𝐴 ) ) )

Proof

Step Hyp Ref Expression
1 df-ima ( ( 𝑥𝑋 , 𝑦𝑋 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) “ ( 𝐴 × 𝐴 ) ) = ran ( ( 𝑥𝑋 , 𝑦𝑋 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) ↾ ( 𝐴 × 𝐴 ) )
2 simpr ( ( 𝐹 Fn 𝑋𝐴𝑋 ) → 𝐴𝑋 )
3 resmpo ( ( 𝐴𝑋𝐴𝑋 ) → ( ( 𝑥𝑋 , 𝑦𝑋 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) ↾ ( 𝐴 × 𝐴 ) ) = ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) )
4 2 3 sylancom ( ( 𝐹 Fn 𝑋𝐴𝑋 ) → ( ( 𝑥𝑋 , 𝑦𝑋 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) ↾ ( 𝐴 × 𝐴 ) ) = ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) )
5 4 rneqd ( ( 𝐹 Fn 𝑋𝐴𝑋 ) → ran ( ( 𝑥𝑋 , 𝑦𝑋 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) ↾ ( 𝐴 × 𝐴 ) ) = ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) )
6 1 5 eqtrid ( ( 𝐹 Fn 𝑋𝐴𝑋 ) → ( ( 𝑥𝑋 , 𝑦𝑋 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) “ ( 𝐴 × 𝐴 ) ) = ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) )
7 vex 𝑥 ∈ V
8 vex 𝑦 ∈ V
9 7 8 op1std ( 𝑝 = ⟨ 𝑥 , 𝑦 ⟩ → ( 1st𝑝 ) = 𝑥 )
10 9 fveq2d ( 𝑝 = ⟨ 𝑥 , 𝑦 ⟩ → ( 𝐹 ‘ ( 1st𝑝 ) ) = ( 𝐹𝑥 ) )
11 7 8 op2ndd ( 𝑝 = ⟨ 𝑥 , 𝑦 ⟩ → ( 2nd𝑝 ) = 𝑦 )
12 11 fveq2d ( 𝑝 = ⟨ 𝑥 , 𝑦 ⟩ → ( 𝐹 ‘ ( 2nd𝑝 ) ) = ( 𝐹𝑦 ) )
13 10 12 opeq12d ( 𝑝 = ⟨ 𝑥 , 𝑦 ⟩ → ⟨ ( 𝐹 ‘ ( 1st𝑝 ) ) , ( 𝐹 ‘ ( 2nd𝑝 ) ) ⟩ = ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ )
14 13 mpompt ( 𝑝 ∈ ( 𝐴 × 𝐴 ) ↦ ⟨ ( 𝐹 ‘ ( 1st𝑝 ) ) , ( 𝐹 ‘ ( 2nd𝑝 ) ) ⟩ ) = ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ )
15 14 eqcomi ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) = ( 𝑝 ∈ ( 𝐴 × 𝐴 ) ↦ ⟨ ( 𝐹 ‘ ( 1st𝑝 ) ) , ( 𝐹 ‘ ( 2nd𝑝 ) ) ⟩ )
16 15 rneqi ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) = ran ( 𝑝 ∈ ( 𝐴 × 𝐴 ) ↦ ⟨ ( 𝐹 ‘ ( 1st𝑝 ) ) , ( 𝐹 ‘ ( 2nd𝑝 ) ) ⟩ )
17 fvexd ( ( ⊤ ∧ 𝑝 ∈ ( 𝐴 × 𝐴 ) ) → ( 𝐹 ‘ ( 1st𝑝 ) ) ∈ V )
18 fvexd ( ( ⊤ ∧ 𝑝 ∈ ( 𝐴 × 𝐴 ) ) → ( 𝐹 ‘ ( 2nd𝑝 ) ) ∈ V )
19 16 17 18 fliftrel ( ⊤ → ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) ⊆ ( V × V ) )
20 19 mptru ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) ⊆ ( V × V )
21 20 sseli ( 𝑝 ∈ ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) → 𝑝 ∈ ( V × V ) )
22 21 adantl ( ( ( 𝐹 Fn 𝑋𝐴𝑋 ) ∧ 𝑝 ∈ ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) ) → 𝑝 ∈ ( V × V ) )
23 xpss ( ( 𝐹𝐴 ) × ( 𝐹𝐴 ) ) ⊆ ( V × V )
24 23 sseli ( 𝑝 ∈ ( ( 𝐹𝐴 ) × ( 𝐹𝐴 ) ) → 𝑝 ∈ ( V × V ) )
25 24 adantl ( ( ( 𝐹 Fn 𝑋𝐴𝑋 ) ∧ 𝑝 ∈ ( ( 𝐹𝐴 ) × ( 𝐹𝐴 ) ) ) → 𝑝 ∈ ( V × V ) )
26 eqid ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) = ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ )
27 opex ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ∈ V
28 26 27 elrnmpo ( ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ ∈ ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) ↔ ∃ 𝑥𝐴𝑦𝐴 ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ = ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ )
29 eqcom ( ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ = ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ↔ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ = ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ )
30 fvex ( 1st𝑝 ) ∈ V
31 fvex ( 2nd𝑝 ) ∈ V
32 30 31 opth2 ( ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ = ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ ↔ ( ( 𝐹𝑥 ) = ( 1st𝑝 ) ∧ ( 𝐹𝑦 ) = ( 2nd𝑝 ) ) )
33 29 32 bitri ( ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ = ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ↔ ( ( 𝐹𝑥 ) = ( 1st𝑝 ) ∧ ( 𝐹𝑦 ) = ( 2nd𝑝 ) ) )
34 33 2rexbii ( ∃ 𝑥𝐴𝑦𝐴 ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ = ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ↔ ∃ 𝑥𝐴𝑦𝐴 ( ( 𝐹𝑥 ) = ( 1st𝑝 ) ∧ ( 𝐹𝑦 ) = ( 2nd𝑝 ) ) )
35 reeanv ( ∃ 𝑥𝐴𝑦𝐴 ( ( 𝐹𝑥 ) = ( 1st𝑝 ) ∧ ( 𝐹𝑦 ) = ( 2nd𝑝 ) ) ↔ ( ∃ 𝑥𝐴 ( 𝐹𝑥 ) = ( 1st𝑝 ) ∧ ∃ 𝑦𝐴 ( 𝐹𝑦 ) = ( 2nd𝑝 ) ) )
36 28 34 35 3bitri ( ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ ∈ ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) ↔ ( ∃ 𝑥𝐴 ( 𝐹𝑥 ) = ( 1st𝑝 ) ∧ ∃ 𝑦𝐴 ( 𝐹𝑦 ) = ( 2nd𝑝 ) ) )
37 fvelimab ( ( 𝐹 Fn 𝑋𝐴𝑋 ) → ( ( 1st𝑝 ) ∈ ( 𝐹𝐴 ) ↔ ∃ 𝑥𝐴 ( 𝐹𝑥 ) = ( 1st𝑝 ) ) )
38 fvelimab ( ( 𝐹 Fn 𝑋𝐴𝑋 ) → ( ( 2nd𝑝 ) ∈ ( 𝐹𝐴 ) ↔ ∃ 𝑦𝐴 ( 𝐹𝑦 ) = ( 2nd𝑝 ) ) )
39 37 38 anbi12d ( ( 𝐹 Fn 𝑋𝐴𝑋 ) → ( ( ( 1st𝑝 ) ∈ ( 𝐹𝐴 ) ∧ ( 2nd𝑝 ) ∈ ( 𝐹𝐴 ) ) ↔ ( ∃ 𝑥𝐴 ( 𝐹𝑥 ) = ( 1st𝑝 ) ∧ ∃ 𝑦𝐴 ( 𝐹𝑦 ) = ( 2nd𝑝 ) ) ) )
40 36 39 bitr4id ( ( 𝐹 Fn 𝑋𝐴𝑋 ) → ( ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ ∈ ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) ↔ ( ( 1st𝑝 ) ∈ ( 𝐹𝐴 ) ∧ ( 2nd𝑝 ) ∈ ( 𝐹𝐴 ) ) ) )
41 opelxp ( ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ ∈ ( ( 𝐹𝐴 ) × ( 𝐹𝐴 ) ) ↔ ( ( 1st𝑝 ) ∈ ( 𝐹𝐴 ) ∧ ( 2nd𝑝 ) ∈ ( 𝐹𝐴 ) ) )
42 40 41 bitr4di ( ( 𝐹 Fn 𝑋𝐴𝑋 ) → ( ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ ∈ ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) ↔ ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ ∈ ( ( 𝐹𝐴 ) × ( 𝐹𝐴 ) ) ) )
43 42 adantr ( ( ( 𝐹 Fn 𝑋𝐴𝑋 ) ∧ 𝑝 ∈ ( V × V ) ) → ( ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ ∈ ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) ↔ ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ ∈ ( ( 𝐹𝐴 ) × ( 𝐹𝐴 ) ) ) )
44 1st2nd2 ( 𝑝 ∈ ( V × V ) → 𝑝 = ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ )
45 44 adantl ( ( ( 𝐹 Fn 𝑋𝐴𝑋 ) ∧ 𝑝 ∈ ( V × V ) ) → 𝑝 = ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ )
46 45 eleq1d ( ( ( 𝐹 Fn 𝑋𝐴𝑋 ) ∧ 𝑝 ∈ ( V × V ) ) → ( 𝑝 ∈ ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) ↔ ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ ∈ ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) ) )
47 45 eleq1d ( ( ( 𝐹 Fn 𝑋𝐴𝑋 ) ∧ 𝑝 ∈ ( V × V ) ) → ( 𝑝 ∈ ( ( 𝐹𝐴 ) × ( 𝐹𝐴 ) ) ↔ ⟨ ( 1st𝑝 ) , ( 2nd𝑝 ) ⟩ ∈ ( ( 𝐹𝐴 ) × ( 𝐹𝐴 ) ) ) )
48 43 46 47 3bitr4d ( ( ( 𝐹 Fn 𝑋𝐴𝑋 ) ∧ 𝑝 ∈ ( V × V ) ) → ( 𝑝 ∈ ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) ↔ 𝑝 ∈ ( ( 𝐹𝐴 ) × ( 𝐹𝐴 ) ) ) )
49 22 25 48 eqrdav ( ( 𝐹 Fn 𝑋𝐴𝑋 ) → ran ( 𝑥𝐴 , 𝑦𝐴 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) = ( ( 𝐹𝐴 ) × ( 𝐹𝐴 ) ) )
50 6 49 eqtrd ( ( 𝐹 Fn 𝑋𝐴𝑋 ) → ( ( 𝑥𝑋 , 𝑦𝑋 ↦ ⟨ ( 𝐹𝑥 ) , ( 𝐹𝑦 ) ⟩ ) “ ( 𝐴 × 𝐴 ) ) = ( ( 𝐹𝐴 ) × ( 𝐹𝐴 ) ) )