Metamath Proof Explorer


Theorem lmdpropd

Description: If the categories have the same set of objects, morphisms, and compositions, then they have the same limits. (Contributed by Zhi Wang, 20-Nov-2025)

Ref Expression
Hypotheses lmdpropd.1 φ Hom 𝑓 A = Hom 𝑓 B
lmdpropd.2 φ comp 𝑓 A = comp 𝑓 B
lmdpropd.3 φ Hom 𝑓 C = Hom 𝑓 D
lmdpropd.4 φ comp 𝑓 C = comp 𝑓 D
lmdpropd.a φ A V
lmdpropd.b φ B V
lmdpropd.c φ C V
lmdpropd.d φ D V
Assertion lmdpropd Could not format assertion : No typesetting found for |- ( ph -> ( A Limit C ) = ( B Limit D ) ) with typecode |-

Proof

Step Hyp Ref Expression
1 lmdpropd.1 φ Hom 𝑓 A = Hom 𝑓 B
2 lmdpropd.2 φ comp 𝑓 A = comp 𝑓 B
3 lmdpropd.3 φ Hom 𝑓 C = Hom 𝑓 D
4 lmdpropd.4 φ comp 𝑓 C = comp 𝑓 D
5 lmdpropd.a φ A V
6 lmdpropd.b φ B V
7 lmdpropd.c φ C V
8 lmdpropd.d φ D V
9 3 4 1 2 7 8 5 6 funcpropd φ C Func A = D Func B
10 1 adantr φ f C Func A Hom 𝑓 A = Hom 𝑓 B
11 10 oppchomfpropd φ f C Func A Hom 𝑓 oppCat A = Hom 𝑓 oppCat B
12 2 adantr φ f C Func A comp 𝑓 A = comp 𝑓 B
13 10 12 oppccomfpropd φ f C Func A comp 𝑓 oppCat A = comp 𝑓 oppCat B
14 3 adantr φ f C Func A Hom 𝑓 C = Hom 𝑓 D
15 4 adantr φ f C Func A comp 𝑓 C = comp 𝑓 D
16 simpr φ f C Func A f C Func A
17 16 func1st2nd φ f C Func A 1 st f C Func A 2 nd f
18 17 funcrcl2 φ f C Func A C Cat
19 9 adantr φ f C Func A C Func A = D Func B
20 16 19 eleqtrd φ f C Func A f D Func B
21 20 func1st2nd φ f C Func A 1 st f D Func B 2 nd f
22 21 funcrcl2 φ f C Func A D Cat
23 17 funcrcl3 φ f C Func A A Cat
24 21 funcrcl3 φ f C Func A B Cat
25 14 15 10 12 18 22 23 24 fucpropd φ f C Func A C FuncCat A = D FuncCat B
26 25 fveq2d φ f C Func A Hom 𝑓 C FuncCat A = Hom 𝑓 D FuncCat B
27 26 oppchomfpropd φ f C Func A Hom 𝑓 oppCat C FuncCat A = Hom 𝑓 oppCat D FuncCat B
28 25 fveq2d φ f C Func A comp 𝑓 C FuncCat A = comp 𝑓 D FuncCat B
29 26 28 oppccomfpropd φ f C Func A comp 𝑓 oppCat C FuncCat A = comp 𝑓 oppCat D FuncCat B
30 fvexd φ f C Func A oppCat A V
31 fvexd φ f C Func A oppCat B V
32 fvexd φ f C Func A oppCat C FuncCat A V
33 fvexd φ f C Func A oppCat D FuncCat B V
34 11 13 27 29 30 31 32 33 uppropd Could not format ( ( ph /\ f e. ( C Func A ) ) -> ( ( oppCat ` A ) UP ( oppCat ` ( C FuncCat A ) ) ) = ( ( oppCat ` B ) UP ( oppCat ` ( D FuncCat B ) ) ) ) : No typesetting found for |- ( ( ph /\ f e. ( C Func A ) ) -> ( ( oppCat ` A ) UP ( oppCat ` ( C FuncCat A ) ) ) = ( ( oppCat ` B ) UP ( oppCat ` ( D FuncCat B ) ) ) ) with typecode |-
35 10 12 14 15 23 24 18 22 diagpropd φ f C Func A A Δ func C = B Δ func D
36 35 fveq2d Could not format ( ( ph /\ f e. ( C Func A ) ) -> ( oppFunc ` ( A DiagFunc C ) ) = ( oppFunc ` ( B DiagFunc D ) ) ) : No typesetting found for |- ( ( ph /\ f e. ( C Func A ) ) -> ( oppFunc ` ( A DiagFunc C ) ) = ( oppFunc ` ( B DiagFunc D ) ) ) with typecode |-
37 eqidd φ f C Func A f = f
38 34 36 37 oveq123d Could not format ( ( ph /\ f e. ( C Func A ) ) -> ( ( oppFunc ` ( A DiagFunc C ) ) ( ( oppCat ` A ) UP ( oppCat ` ( C FuncCat A ) ) ) f ) = ( ( oppFunc ` ( B DiagFunc D ) ) ( ( oppCat ` B ) UP ( oppCat ` ( D FuncCat B ) ) ) f ) ) : No typesetting found for |- ( ( ph /\ f e. ( C Func A ) ) -> ( ( oppFunc ` ( A DiagFunc C ) ) ( ( oppCat ` A ) UP ( oppCat ` ( C FuncCat A ) ) ) f ) = ( ( oppFunc ` ( B DiagFunc D ) ) ( ( oppCat ` B ) UP ( oppCat ` ( D FuncCat B ) ) ) f ) ) with typecode |-
39 9 38 mpteq12dva Could not format ( ph -> ( f e. ( C Func A ) |-> ( ( oppFunc ` ( A DiagFunc C ) ) ( ( oppCat ` A ) UP ( oppCat ` ( C FuncCat A ) ) ) f ) ) = ( f e. ( D Func B ) |-> ( ( oppFunc ` ( B DiagFunc D ) ) ( ( oppCat ` B ) UP ( oppCat ` ( D FuncCat B ) ) ) f ) ) ) : No typesetting found for |- ( ph -> ( f e. ( C Func A ) |-> ( ( oppFunc ` ( A DiagFunc C ) ) ( ( oppCat ` A ) UP ( oppCat ` ( C FuncCat A ) ) ) f ) ) = ( f e. ( D Func B ) |-> ( ( oppFunc ` ( B DiagFunc D ) ) ( ( oppCat ` B ) UP ( oppCat ` ( D FuncCat B ) ) ) f ) ) ) with typecode |-
40 lmdfval Could not format ( A Limit C ) = ( f e. ( C Func A ) |-> ( ( oppFunc ` ( A DiagFunc C ) ) ( ( oppCat ` A ) UP ( oppCat ` ( C FuncCat A ) ) ) f ) ) : No typesetting found for |- ( A Limit C ) = ( f e. ( C Func A ) |-> ( ( oppFunc ` ( A DiagFunc C ) ) ( ( oppCat ` A ) UP ( oppCat ` ( C FuncCat A ) ) ) f ) ) with typecode |-
41 lmdfval Could not format ( B Limit D ) = ( f e. ( D Func B ) |-> ( ( oppFunc ` ( B DiagFunc D ) ) ( ( oppCat ` B ) UP ( oppCat ` ( D FuncCat B ) ) ) f ) ) : No typesetting found for |- ( B Limit D ) = ( f e. ( D Func B ) |-> ( ( oppFunc ` ( B DiagFunc D ) ) ( ( oppCat ` B ) UP ( oppCat ` ( D FuncCat B ) ) ) f ) ) with typecode |-
42 39 40 41 3eqtr4g Could not format ( ph -> ( A Limit C ) = ( B Limit D ) ) : No typesetting found for |- ( ph -> ( A Limit C ) = ( B Limit D ) ) with typecode |-