Metamath Proof Explorer


Theorem funcf2lem

Description: A utility theorem for proving equivalence of "is a functor". (Contributed by Zhi Wang, 1-Oct-2024)

Ref Expression
Assertion funcf2lem ( 𝐺X 𝑧 ∈ ( 𝐵 × 𝐵 ) ( ( ( 𝐹 ‘ ( 1st𝑧 ) ) 𝐽 ( 𝐹 ‘ ( 2nd𝑧 ) ) ) ↑m ( 𝐻𝑧 ) ) ↔ ( 𝐺 ∈ V ∧ 𝐺 Fn ( 𝐵 × 𝐵 ) ∧ ∀ 𝑥𝐵𝑦𝐵 ( 𝑥 𝐺 𝑦 ) : ( 𝑥 𝐻 𝑦 ) ⟶ ( ( 𝐹𝑥 ) 𝐽 ( 𝐹𝑦 ) ) ) )

Proof

Step Hyp Ref Expression
1 elixp2 ( 𝐺X 𝑧 ∈ ( 𝐵 × 𝐵 ) ( ( ( 𝐹 ‘ ( 1st𝑧 ) ) 𝐽 ( 𝐹 ‘ ( 2nd𝑧 ) ) ) ↑m ( 𝐻𝑧 ) ) ↔ ( 𝐺 ∈ V ∧ 𝐺 Fn ( 𝐵 × 𝐵 ) ∧ ∀ 𝑧 ∈ ( 𝐵 × 𝐵 ) ( 𝐺𝑧 ) ∈ ( ( ( 𝐹 ‘ ( 1st𝑧 ) ) 𝐽 ( 𝐹 ‘ ( 2nd𝑧 ) ) ) ↑m ( 𝐻𝑧 ) ) ) )
2 fveq2 ( 𝑧 = ⟨ 𝑥 , 𝑦 ⟩ → ( 𝐺𝑧 ) = ( 𝐺 ‘ ⟨ 𝑥 , 𝑦 ⟩ ) )
3 df-ov ( 𝑥 𝐺 𝑦 ) = ( 𝐺 ‘ ⟨ 𝑥 , 𝑦 ⟩ )
4 2 3 eqtr4di ( 𝑧 = ⟨ 𝑥 , 𝑦 ⟩ → ( 𝐺𝑧 ) = ( 𝑥 𝐺 𝑦 ) )
5 vex 𝑥 ∈ V
6 vex 𝑦 ∈ V
7 5 6 op1std ( 𝑧 = ⟨ 𝑥 , 𝑦 ⟩ → ( 1st𝑧 ) = 𝑥 )
8 7 fveq2d ( 𝑧 = ⟨ 𝑥 , 𝑦 ⟩ → ( 𝐹 ‘ ( 1st𝑧 ) ) = ( 𝐹𝑥 ) )
9 5 6 op2ndd ( 𝑧 = ⟨ 𝑥 , 𝑦 ⟩ → ( 2nd𝑧 ) = 𝑦 )
10 9 fveq2d ( 𝑧 = ⟨ 𝑥 , 𝑦 ⟩ → ( 𝐹 ‘ ( 2nd𝑧 ) ) = ( 𝐹𝑦 ) )
11 8 10 oveq12d ( 𝑧 = ⟨ 𝑥 , 𝑦 ⟩ → ( ( 𝐹 ‘ ( 1st𝑧 ) ) 𝐽 ( 𝐹 ‘ ( 2nd𝑧 ) ) ) = ( ( 𝐹𝑥 ) 𝐽 ( 𝐹𝑦 ) ) )
12 fveq2 ( 𝑧 = ⟨ 𝑥 , 𝑦 ⟩ → ( 𝐻𝑧 ) = ( 𝐻 ‘ ⟨ 𝑥 , 𝑦 ⟩ ) )
13 df-ov ( 𝑥 𝐻 𝑦 ) = ( 𝐻 ‘ ⟨ 𝑥 , 𝑦 ⟩ )
14 12 13 eqtr4di ( 𝑧 = ⟨ 𝑥 , 𝑦 ⟩ → ( 𝐻𝑧 ) = ( 𝑥 𝐻 𝑦 ) )
15 11 14 oveq12d ( 𝑧 = ⟨ 𝑥 , 𝑦 ⟩ → ( ( ( 𝐹 ‘ ( 1st𝑧 ) ) 𝐽 ( 𝐹 ‘ ( 2nd𝑧 ) ) ) ↑m ( 𝐻𝑧 ) ) = ( ( ( 𝐹𝑥 ) 𝐽 ( 𝐹𝑦 ) ) ↑m ( 𝑥 𝐻 𝑦 ) ) )
16 4 15 eleq12d ( 𝑧 = ⟨ 𝑥 , 𝑦 ⟩ → ( ( 𝐺𝑧 ) ∈ ( ( ( 𝐹 ‘ ( 1st𝑧 ) ) 𝐽 ( 𝐹 ‘ ( 2nd𝑧 ) ) ) ↑m ( 𝐻𝑧 ) ) ↔ ( 𝑥 𝐺 𝑦 ) ∈ ( ( ( 𝐹𝑥 ) 𝐽 ( 𝐹𝑦 ) ) ↑m ( 𝑥 𝐻 𝑦 ) ) ) )
17 ovex ( ( 𝐹𝑥 ) 𝐽 ( 𝐹𝑦 ) ) ∈ V
18 ovex ( 𝑥 𝐻 𝑦 ) ∈ V
19 17 18 elmap ( ( 𝑥 𝐺 𝑦 ) ∈ ( ( ( 𝐹𝑥 ) 𝐽 ( 𝐹𝑦 ) ) ↑m ( 𝑥 𝐻 𝑦 ) ) ↔ ( 𝑥 𝐺 𝑦 ) : ( 𝑥 𝐻 𝑦 ) ⟶ ( ( 𝐹𝑥 ) 𝐽 ( 𝐹𝑦 ) ) )
20 16 19 bitrdi ( 𝑧 = ⟨ 𝑥 , 𝑦 ⟩ → ( ( 𝐺𝑧 ) ∈ ( ( ( 𝐹 ‘ ( 1st𝑧 ) ) 𝐽 ( 𝐹 ‘ ( 2nd𝑧 ) ) ) ↑m ( 𝐻𝑧 ) ) ↔ ( 𝑥 𝐺 𝑦 ) : ( 𝑥 𝐻 𝑦 ) ⟶ ( ( 𝐹𝑥 ) 𝐽 ( 𝐹𝑦 ) ) ) )
21 20 ralxp ( ∀ 𝑧 ∈ ( 𝐵 × 𝐵 ) ( 𝐺𝑧 ) ∈ ( ( ( 𝐹 ‘ ( 1st𝑧 ) ) 𝐽 ( 𝐹 ‘ ( 2nd𝑧 ) ) ) ↑m ( 𝐻𝑧 ) ) ↔ ∀ 𝑥𝐵𝑦𝐵 ( 𝑥 𝐺 𝑦 ) : ( 𝑥 𝐻 𝑦 ) ⟶ ( ( 𝐹𝑥 ) 𝐽 ( 𝐹𝑦 ) ) )
22 21 3anbi3i ( ( 𝐺 ∈ V ∧ 𝐺 Fn ( 𝐵 × 𝐵 ) ∧ ∀ 𝑧 ∈ ( 𝐵 × 𝐵 ) ( 𝐺𝑧 ) ∈ ( ( ( 𝐹 ‘ ( 1st𝑧 ) ) 𝐽 ( 𝐹 ‘ ( 2nd𝑧 ) ) ) ↑m ( 𝐻𝑧 ) ) ) ↔ ( 𝐺 ∈ V ∧ 𝐺 Fn ( 𝐵 × 𝐵 ) ∧ ∀ 𝑥𝐵𝑦𝐵 ( 𝑥 𝐺 𝑦 ) : ( 𝑥 𝐻 𝑦 ) ⟶ ( ( 𝐹𝑥 ) 𝐽 ( 𝐹𝑦 ) ) ) )
23 1 22 bitri ( 𝐺X 𝑧 ∈ ( 𝐵 × 𝐵 ) ( ( ( 𝐹 ‘ ( 1st𝑧 ) ) 𝐽 ( 𝐹 ‘ ( 2nd𝑧 ) ) ) ↑m ( 𝐻𝑧 ) ) ↔ ( 𝐺 ∈ V ∧ 𝐺 Fn ( 𝐵 × 𝐵 ) ∧ ∀ 𝑥𝐵𝑦𝐵 ( 𝑥 𝐺 𝑦 ) : ( 𝑥 𝐻 𝑦 ) ⟶ ( ( 𝐹𝑥 ) 𝐽 ( 𝐹𝑦 ) ) ) )