Metamath Proof Explorer


Theorem fucofulem2

Description: Lemma for proving functor theorems. Maybe consider eufnfv to prove the uniqueness of a functor. (Contributed by Zhi Wang, 25-Sep-2025)

Ref Expression
Hypotheses fucofulem2.b 𝐵 = ( ( 𝐷 Func 𝐸 ) × ( 𝐶 Func 𝐷 ) )
fucofulem2.h 𝐻 = ( Hom ‘ ( ( 𝐷 FuncCat 𝐸 ) ×c ( 𝐶 FuncCat 𝐷 ) ) )
Assertion fucofulem2 ( 𝐺X 𝑧 ∈ ( 𝐵 × 𝐵 ) ( ( ( 𝐹 ‘ ( 1st𝑧 ) ) ( 𝐶 Nat 𝐸 ) ( 𝐹 ‘ ( 2nd𝑧 ) ) ) ↑m ( 𝐻𝑧 ) ) ↔ ( 𝐺 = ( 𝑢𝐵 , 𝑣𝐵 ↦ ( 𝑢 𝐺 𝑣 ) ) ∧ ∀ 𝑚𝐵𝑛𝐵 ( ( 𝑚 𝐺 𝑛 ) = ( 𝑏 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) , 𝑎 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ↦ ( 𝑏 ( 𝑚 𝐺 𝑛 ) 𝑎 ) ) ∧ ∀ 𝑝 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) ∀ 𝑞 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ( 𝑝 ( 𝑚 𝐺 𝑛 ) 𝑞 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ) ) )

Proof

Step Hyp Ref Expression
1 fucofulem2.b 𝐵 = ( ( 𝐷 Func 𝐸 ) × ( 𝐶 Func 𝐷 ) )
2 fucofulem2.h 𝐻 = ( Hom ‘ ( ( 𝐷 FuncCat 𝐸 ) ×c ( 𝐶 FuncCat 𝐷 ) ) )
3 eqid ( ( 𝐷 FuncCat 𝐸 ) ×c ( 𝐶 FuncCat 𝐷 ) ) = ( ( 𝐷 FuncCat 𝐸 ) ×c ( 𝐶 FuncCat 𝐷 ) )
4 3 xpcfucbas ( ( 𝐷 Func 𝐸 ) × ( 𝐶 Func 𝐷 ) ) = ( Base ‘ ( ( 𝐷 FuncCat 𝐸 ) ×c ( 𝐶 FuncCat 𝐷 ) ) )
5 1 4 eqtri 𝐵 = ( Base ‘ ( ( 𝐷 FuncCat 𝐸 ) ×c ( 𝐶 FuncCat 𝐷 ) ) )
6 5 funcf2lem2 ( 𝐺X 𝑧 ∈ ( 𝐵 × 𝐵 ) ( ( ( 𝐹 ‘ ( 1st𝑧 ) ) ( 𝐶 Nat 𝐸 ) ( 𝐹 ‘ ( 2nd𝑧 ) ) ) ↑m ( 𝐻𝑧 ) ) ↔ ( 𝐺 Fn ( 𝐵 × 𝐵 ) ∧ ∀ 𝑚𝐵𝑛𝐵 ( 𝑚 𝐺 𝑛 ) : ( 𝑚 𝐻 𝑛 ) ⟶ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ) )
7 fnov ( 𝐺 Fn ( 𝐵 × 𝐵 ) ↔ 𝐺 = ( 𝑢𝐵 , 𝑣𝐵 ↦ ( 𝑢 𝐺 𝑣 ) ) )
8 ffnfv ( ( 𝑚 𝐺 𝑛 ) : ( 𝑚 𝐻 𝑛 ) ⟶ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ↔ ( ( 𝑚 𝐺 𝑛 ) Fn ( 𝑚 𝐻 𝑛 ) ∧ ∀ 𝑟 ∈ ( 𝑚 𝐻 𝑛 ) ( ( 𝑚 𝐺 𝑛 ) ‘ 𝑟 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ) )
9 simpl ( ( 𝑚𝐵𝑛𝐵 ) → 𝑚𝐵 )
10 simpr ( ( 𝑚𝐵𝑛𝐵 ) → 𝑛𝐵 )
11 3 5 2 9 10 xpcfuchom ( ( 𝑚𝐵𝑛𝐵 ) → ( 𝑚 𝐻 𝑛 ) = ( ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) × ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ) )
12 11 fneq2d ( ( 𝑚𝐵𝑛𝐵 ) → ( ( 𝑚 𝐺 𝑛 ) Fn ( 𝑚 𝐻 𝑛 ) ↔ ( 𝑚 𝐺 𝑛 ) Fn ( ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) × ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ) ) )
13 fnov ( ( 𝑚 𝐺 𝑛 ) Fn ( ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) × ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ) ↔ ( 𝑚 𝐺 𝑛 ) = ( 𝑏 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) , 𝑎 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ↦ ( 𝑏 ( 𝑚 𝐺 𝑛 ) 𝑎 ) ) )
14 12 13 bitrdi ( ( 𝑚𝐵𝑛𝐵 ) → ( ( 𝑚 𝐺 𝑛 ) Fn ( 𝑚 𝐻 𝑛 ) ↔ ( 𝑚 𝐺 𝑛 ) = ( 𝑏 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) , 𝑎 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ↦ ( 𝑏 ( 𝑚 𝐺 𝑛 ) 𝑎 ) ) ) )
15 11 raleqdv ( ( 𝑚𝐵𝑛𝐵 ) → ( ∀ 𝑟 ∈ ( 𝑚 𝐻 𝑛 ) ( ( 𝑚 𝐺 𝑛 ) ‘ 𝑟 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ↔ ∀ 𝑟 ∈ ( ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) × ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ) ( ( 𝑚 𝐺 𝑛 ) ‘ 𝑟 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ) )
16 fveq2 ( 𝑟 = ⟨ 𝑝 , 𝑞 ⟩ → ( ( 𝑚 𝐺 𝑛 ) ‘ 𝑟 ) = ( ( 𝑚 𝐺 𝑛 ) ‘ ⟨ 𝑝 , 𝑞 ⟩ ) )
17 df-ov ( 𝑝 ( 𝑚 𝐺 𝑛 ) 𝑞 ) = ( ( 𝑚 𝐺 𝑛 ) ‘ ⟨ 𝑝 , 𝑞 ⟩ )
18 16 17 eqtr4di ( 𝑟 = ⟨ 𝑝 , 𝑞 ⟩ → ( ( 𝑚 𝐺 𝑛 ) ‘ 𝑟 ) = ( 𝑝 ( 𝑚 𝐺 𝑛 ) 𝑞 ) )
19 18 eleq1d ( 𝑟 = ⟨ 𝑝 , 𝑞 ⟩ → ( ( ( 𝑚 𝐺 𝑛 ) ‘ 𝑟 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ↔ ( 𝑝 ( 𝑚 𝐺 𝑛 ) 𝑞 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ) )
20 19 ralxp ( ∀ 𝑟 ∈ ( ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) × ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ) ( ( 𝑚 𝐺 𝑛 ) ‘ 𝑟 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ↔ ∀ 𝑝 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) ∀ 𝑞 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ( 𝑝 ( 𝑚 𝐺 𝑛 ) 𝑞 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) )
21 15 20 bitrdi ( ( 𝑚𝐵𝑛𝐵 ) → ( ∀ 𝑟 ∈ ( 𝑚 𝐻 𝑛 ) ( ( 𝑚 𝐺 𝑛 ) ‘ 𝑟 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ↔ ∀ 𝑝 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) ∀ 𝑞 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ( 𝑝 ( 𝑚 𝐺 𝑛 ) 𝑞 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ) )
22 14 21 anbi12d ( ( 𝑚𝐵𝑛𝐵 ) → ( ( ( 𝑚 𝐺 𝑛 ) Fn ( 𝑚 𝐻 𝑛 ) ∧ ∀ 𝑟 ∈ ( 𝑚 𝐻 𝑛 ) ( ( 𝑚 𝐺 𝑛 ) ‘ 𝑟 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ) ↔ ( ( 𝑚 𝐺 𝑛 ) = ( 𝑏 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) , 𝑎 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ↦ ( 𝑏 ( 𝑚 𝐺 𝑛 ) 𝑎 ) ) ∧ ∀ 𝑝 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) ∀ 𝑞 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ( 𝑝 ( 𝑚 𝐺 𝑛 ) 𝑞 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ) ) )
23 8 22 bitrid ( ( 𝑚𝐵𝑛𝐵 ) → ( ( 𝑚 𝐺 𝑛 ) : ( 𝑚 𝐻 𝑛 ) ⟶ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ↔ ( ( 𝑚 𝐺 𝑛 ) = ( 𝑏 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) , 𝑎 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ↦ ( 𝑏 ( 𝑚 𝐺 𝑛 ) 𝑎 ) ) ∧ ∀ 𝑝 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) ∀ 𝑞 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ( 𝑝 ( 𝑚 𝐺 𝑛 ) 𝑞 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ) ) )
24 23 adantl ( ( ⊤ ∧ ( 𝑚𝐵𝑛𝐵 ) ) → ( ( 𝑚 𝐺 𝑛 ) : ( 𝑚 𝐻 𝑛 ) ⟶ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ↔ ( ( 𝑚 𝐺 𝑛 ) = ( 𝑏 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) , 𝑎 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ↦ ( 𝑏 ( 𝑚 𝐺 𝑛 ) 𝑎 ) ) ∧ ∀ 𝑝 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) ∀ 𝑞 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ( 𝑝 ( 𝑚 𝐺 𝑛 ) 𝑞 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ) ) )
25 24 2ralbidva ( ⊤ → ( ∀ 𝑚𝐵𝑛𝐵 ( 𝑚 𝐺 𝑛 ) : ( 𝑚 𝐻 𝑛 ) ⟶ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ↔ ∀ 𝑚𝐵𝑛𝐵 ( ( 𝑚 𝐺 𝑛 ) = ( 𝑏 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) , 𝑎 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ↦ ( 𝑏 ( 𝑚 𝐺 𝑛 ) 𝑎 ) ) ∧ ∀ 𝑝 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) ∀ 𝑞 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ( 𝑝 ( 𝑚 𝐺 𝑛 ) 𝑞 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ) ) )
26 25 mptru ( ∀ 𝑚𝐵𝑛𝐵 ( 𝑚 𝐺 𝑛 ) : ( 𝑚 𝐻 𝑛 ) ⟶ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ↔ ∀ 𝑚𝐵𝑛𝐵 ( ( 𝑚 𝐺 𝑛 ) = ( 𝑏 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) , 𝑎 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ↦ ( 𝑏 ( 𝑚 𝐺 𝑛 ) 𝑎 ) ) ∧ ∀ 𝑝 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) ∀ 𝑞 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ( 𝑝 ( 𝑚 𝐺 𝑛 ) 𝑞 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ) )
27 7 26 anbi12i ( ( 𝐺 Fn ( 𝐵 × 𝐵 ) ∧ ∀ 𝑚𝐵𝑛𝐵 ( 𝑚 𝐺 𝑛 ) : ( 𝑚 𝐻 𝑛 ) ⟶ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ) ↔ ( 𝐺 = ( 𝑢𝐵 , 𝑣𝐵 ↦ ( 𝑢 𝐺 𝑣 ) ) ∧ ∀ 𝑚𝐵𝑛𝐵 ( ( 𝑚 𝐺 𝑛 ) = ( 𝑏 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) , 𝑎 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ↦ ( 𝑏 ( 𝑚 𝐺 𝑛 ) 𝑎 ) ) ∧ ∀ 𝑝 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) ∀ 𝑞 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ( 𝑝 ( 𝑚 𝐺 𝑛 ) 𝑞 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ) ) )
28 6 27 bitri ( 𝐺X 𝑧 ∈ ( 𝐵 × 𝐵 ) ( ( ( 𝐹 ‘ ( 1st𝑧 ) ) ( 𝐶 Nat 𝐸 ) ( 𝐹 ‘ ( 2nd𝑧 ) ) ) ↑m ( 𝐻𝑧 ) ) ↔ ( 𝐺 = ( 𝑢𝐵 , 𝑣𝐵 ↦ ( 𝑢 𝐺 𝑣 ) ) ∧ ∀ 𝑚𝐵𝑛𝐵 ( ( 𝑚 𝐺 𝑛 ) = ( 𝑏 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) , 𝑎 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ↦ ( 𝑏 ( 𝑚 𝐺 𝑛 ) 𝑎 ) ) ∧ ∀ 𝑝 ∈ ( ( 1st𝑚 ) ( 𝐷 Nat 𝐸 ) ( 1st𝑛 ) ) ∀ 𝑞 ∈ ( ( 2nd𝑚 ) ( 𝐶 Nat 𝐷 ) ( 2nd𝑛 ) ) ( 𝑝 ( 𝑚 𝐺 𝑛 ) 𝑞 ) ∈ ( ( 𝐹𝑚 ) ( 𝐶 Nat 𝐸 ) ( 𝐹𝑛 ) ) ) ) )