Metamath Proof Explorer


Theorem hofpropd

Description: If two categories have the same set of objects, morphisms, and compositions, then they have the same Hom functor. (Contributed by Mario Carneiro, 26-Jan-2017)

Ref Expression
Hypotheses hofpropd.1 ( 𝜑 → ( Homf𝐶 ) = ( Homf𝐷 ) )
hofpropd.2 ( 𝜑 → ( compf𝐶 ) = ( compf𝐷 ) )
hofpropd.c ( 𝜑𝐶 ∈ Cat )
hofpropd.d ( 𝜑𝐷 ∈ Cat )
Assertion hofpropd ( 𝜑 → ( HomF𝐶 ) = ( HomF𝐷 ) )

Proof

Step Hyp Ref Expression
1 hofpropd.1 ( 𝜑 → ( Homf𝐶 ) = ( Homf𝐷 ) )
2 hofpropd.2 ( 𝜑 → ( compf𝐶 ) = ( compf𝐷 ) )
3 hofpropd.c ( 𝜑𝐶 ∈ Cat )
4 hofpropd.d ( 𝜑𝐷 ∈ Cat )
5 1 homfeqbas ( 𝜑 → ( Base ‘ 𝐶 ) = ( Base ‘ 𝐷 ) )
6 5 sqxpeqd ( 𝜑 → ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) = ( ( Base ‘ 𝐷 ) × ( Base ‘ 𝐷 ) ) )
7 6 adantr ( ( 𝜑𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) → ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) = ( ( Base ‘ 𝐷 ) × ( Base ‘ 𝐷 ) ) )
8 eqid ( Base ‘ 𝐶 ) = ( Base ‘ 𝐶 )
9 eqid ( Hom ‘ 𝐶 ) = ( Hom ‘ 𝐶 )
10 eqid ( Hom ‘ 𝐷 ) = ( Hom ‘ 𝐷 )
11 1 adantr ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) → ( Homf𝐶 ) = ( Homf𝐷 ) )
12 xp1st ( 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) → ( 1st𝑦 ) ∈ ( Base ‘ 𝐶 ) )
13 12 ad2antll ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) → ( 1st𝑦 ) ∈ ( Base ‘ 𝐶 ) )
14 xp1st ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) → ( 1st𝑥 ) ∈ ( Base ‘ 𝐶 ) )
15 14 ad2antrl ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) → ( 1st𝑥 ) ∈ ( Base ‘ 𝐶 ) )
16 8 9 10 11 13 15 homfeqval ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) → ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) = ( ( 1st𝑦 ) ( Hom ‘ 𝐷 ) ( 1st𝑥 ) ) )
17 xp2nd ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) → ( 2nd𝑥 ) ∈ ( Base ‘ 𝐶 ) )
18 17 ad2antrl ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) → ( 2nd𝑥 ) ∈ ( Base ‘ 𝐶 ) )
19 xp2nd ( 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) → ( 2nd𝑦 ) ∈ ( Base ‘ 𝐶 ) )
20 19 ad2antll ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) → ( 2nd𝑦 ) ∈ ( Base ‘ 𝐶 ) )
21 8 9 10 11 18 20 homfeqval ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) → ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) = ( ( 2nd𝑥 ) ( Hom ‘ 𝐷 ) ( 2nd𝑦 ) ) )
22 21 adantr ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ) → ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) = ( ( 2nd𝑥 ) ( Hom ‘ 𝐷 ) ( 2nd𝑦 ) ) )
23 8 9 10 11 15 18 homfeqval ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) → ( ( 1st𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑥 ) ) = ( ( 1st𝑥 ) ( Hom ‘ 𝐷 ) ( 2nd𝑥 ) ) )
24 df-ov ( ( 1st𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑥 ) ) = ( ( Hom ‘ 𝐶 ) ‘ ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ )
25 df-ov ( ( 1st𝑥 ) ( Hom ‘ 𝐷 ) ( 2nd𝑥 ) ) = ( ( Hom ‘ 𝐷 ) ‘ ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ )
26 23 24 25 3eqtr3g ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) → ( ( Hom ‘ 𝐶 ) ‘ ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ ) = ( ( Hom ‘ 𝐷 ) ‘ ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ ) )
27 1st2nd2 ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) → 𝑥 = ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ )
28 27 ad2antrl ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) → 𝑥 = ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ )
29 28 fveq2d ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) → ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) = ( ( Hom ‘ 𝐶 ) ‘ ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ ) )
30 28 fveq2d ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) → ( ( Hom ‘ 𝐷 ) ‘ 𝑥 ) = ( ( Hom ‘ 𝐷 ) ‘ ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ ) )
31 26 29 30 3eqtr4d ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) → ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) = ( ( Hom ‘ 𝐷 ) ‘ 𝑥 ) )
32 31 adantr ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) → ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) = ( ( Hom ‘ 𝐷 ) ‘ 𝑥 ) )
33 eqid ( comp ‘ 𝐶 ) = ( comp ‘ 𝐶 )
34 eqid ( comp ‘ 𝐷 ) = ( comp ‘ 𝐷 )
35 11 ad2antrr ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( Homf𝐶 ) = ( Homf𝐷 ) )
36 2 ad3antrrr ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( compf𝐶 ) = ( compf𝐷 ) )
37 13 ad2antrr ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( 1st𝑦 ) ∈ ( Base ‘ 𝐶 ) )
38 15 ad2antrr ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( 1st𝑥 ) ∈ ( Base ‘ 𝐶 ) )
39 20 ad2antrr ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( 2nd𝑦 ) ∈ ( Base ‘ 𝐶 ) )
40 simplrl ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) )
41 28 ad2antrr ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → 𝑥 = ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ )
42 41 oveq1d ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( 𝑥 ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) = ( ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) )
43 42 oveqd ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( 𝑔 ( 𝑥 ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) ) = ( 𝑔 ( ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) ) )
44 3 ad3antrrr ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → 𝐶 ∈ Cat )
45 18 ad2antrr ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( 2nd𝑥 ) ∈ ( Base ‘ 𝐶 ) )
46 29 adantr ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) → ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) = ( ( Hom ‘ 𝐶 ) ‘ ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ ) )
47 46 24 eqtr4di ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) → ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) = ( ( 1st𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑥 ) ) )
48 47 eleq2d ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) → ( ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ↔ ∈ ( ( 1st𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑥 ) ) ) )
49 48 biimpa ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ∈ ( ( 1st𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑥 ) ) )
50 simplrr ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) )
51 8 9 33 44 38 45 39 49 50 catcocl ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( 𝑔 ( ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ∈ ( ( 1st𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) )
52 43 51 eqeltrd ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( 𝑔 ( 𝑥 ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ∈ ( ( 1st𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) )
53 8 9 33 34 35 36 37 38 39 40 52 comfeqval ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) 𝑓 ) = ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) 𝑓 ) )
54 8 9 33 34 35 36 38 45 39 49 50 comfeqval ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( 𝑔 ( ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) ) = ( 𝑔 ( ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) ) )
55 41 oveq1d ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( 𝑥 ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) = ( ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) )
56 55 oveqd ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( 𝑔 ( 𝑥 ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) ) = ( 𝑔 ( ⟨ ( 1st𝑥 ) , ( 2nd𝑥 ) ⟩ ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) ) )
57 54 43 56 3eqtr4d ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( 𝑔 ( 𝑥 ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) ) = ( 𝑔 ( 𝑥 ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) ) )
58 57 oveq1d ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) 𝑓 ) = ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) 𝑓 ) )
59 53 58 eqtrd ( ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) ∧ ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ) → ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) 𝑓 ) = ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) 𝑓 ) )
60 32 59 mpteq12dva ( ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) ∧ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) ∧ 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ) → ( ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ↦ ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) 𝑓 ) ) = ( ∈ ( ( Hom ‘ 𝐷 ) ‘ 𝑥 ) ↦ ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) 𝑓 ) ) )
61 16 22 60 mpoeq123dva ( ( 𝜑 ∧ ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ∧ 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ) ) → ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) , 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ↦ ( ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ↦ ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) 𝑓 ) ) ) = ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐷 ) ( 1st𝑥 ) ) , 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐷 ) ( 2nd𝑦 ) ) ↦ ( ∈ ( ( Hom ‘ 𝐷 ) ‘ 𝑥 ) ↦ ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) 𝑓 ) ) ) )
62 6 7 61 mpoeq123dva ( 𝜑 → ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) , 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ↦ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) , 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ↦ ( ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ↦ ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) 𝑓 ) ) ) ) = ( 𝑥 ∈ ( ( Base ‘ 𝐷 ) × ( Base ‘ 𝐷 ) ) , 𝑦 ∈ ( ( Base ‘ 𝐷 ) × ( Base ‘ 𝐷 ) ) ↦ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐷 ) ( 1st𝑥 ) ) , 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐷 ) ( 2nd𝑦 ) ) ↦ ( ∈ ( ( Hom ‘ 𝐷 ) ‘ 𝑥 ) ↦ ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) 𝑓 ) ) ) ) )
63 1 62 opeq12d ( 𝜑 → ⟨ ( Homf𝐶 ) , ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) , 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ↦ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) , 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ↦ ( ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ↦ ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) 𝑓 ) ) ) ) ⟩ = ⟨ ( Homf𝐷 ) , ( 𝑥 ∈ ( ( Base ‘ 𝐷 ) × ( Base ‘ 𝐷 ) ) , 𝑦 ∈ ( ( Base ‘ 𝐷 ) × ( Base ‘ 𝐷 ) ) ↦ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐷 ) ( 1st𝑥 ) ) , 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐷 ) ( 2nd𝑦 ) ) ↦ ( ∈ ( ( Hom ‘ 𝐷 ) ‘ 𝑥 ) ↦ ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) 𝑓 ) ) ) ) ⟩ )
64 eqid ( HomF𝐶 ) = ( HomF𝐶 )
65 64 3 8 9 33 hofval ( 𝜑 → ( HomF𝐶 ) = ⟨ ( Homf𝐶 ) , ( 𝑥 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) , 𝑦 ∈ ( ( Base ‘ 𝐶 ) × ( Base ‘ 𝐶 ) ) ↦ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐶 ) ( 1st𝑥 ) ) , 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐶 ) ( 2nd𝑦 ) ) ↦ ( ∈ ( ( Hom ‘ 𝐶 ) ‘ 𝑥 ) ↦ ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐶 ) ( 2nd𝑦 ) ) 𝑓 ) ) ) ) ⟩ )
66 eqid ( HomF𝐷 ) = ( HomF𝐷 )
67 eqid ( Base ‘ 𝐷 ) = ( Base ‘ 𝐷 )
68 66 4 67 10 34 hofval ( 𝜑 → ( HomF𝐷 ) = ⟨ ( Homf𝐷 ) , ( 𝑥 ∈ ( ( Base ‘ 𝐷 ) × ( Base ‘ 𝐷 ) ) , 𝑦 ∈ ( ( Base ‘ 𝐷 ) × ( Base ‘ 𝐷 ) ) ↦ ( 𝑓 ∈ ( ( 1st𝑦 ) ( Hom ‘ 𝐷 ) ( 1st𝑥 ) ) , 𝑔 ∈ ( ( 2nd𝑥 ) ( Hom ‘ 𝐷 ) ( 2nd𝑦 ) ) ↦ ( ∈ ( ( Hom ‘ 𝐷 ) ‘ 𝑥 ) ↦ ( ( 𝑔 ( 𝑥 ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) ) ( ⟨ ( 1st𝑦 ) , ( 1st𝑥 ) ⟩ ( comp ‘ 𝐷 ) ( 2nd𝑦 ) ) 𝑓 ) ) ) ) ⟩ )
69 63 65 68 3eqtr4d ( 𝜑 → ( HomF𝐶 ) = ( HomF𝐷 ) )