Metamath Proof Explorer


Theorem islmd

Description: The universal property of limits of a diagram. (Contributed by Zhi Wang, 14-Nov-2025)

Ref Expression
Hypotheses islmd.l L = C Δ func D
islmd.a A = Base C
islmd.n N = D Nat C
islmd.b B = Base D
islmd.h H = Hom C
islmd.x · ˙ = comp C
Assertion islmd Could not format assertion : No typesetting found for |- ( X ( ( C Limit D ) ` F ) R <-> ( ( X e. A /\ R e. ( ( ( 1st ` L ) ` X ) N F ) ) /\ A. x e. A A. a e. ( ( ( 1st ` L ) ` x ) N F ) E! m e. ( x H X ) a = ( j e. B |-> ( ( R ` j ) ( <. x , X >. .x. ( ( 1st ` F ) ` j ) ) m ) ) ) ) with typecode |-

Proof

Step Hyp Ref Expression
1 islmd.l L = C Δ func D
2 islmd.a A = Base C
3 islmd.n N = D Nat C
4 islmd.b B = Base D
5 islmd.h H = Hom C
6 islmd.x · ˙ = comp C
7 lmdfval2 Could not format ( ( C Limit D ) ` F ) = ( ( oppFunc ` ( C DiagFunc D ) ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) : No typesetting found for |- ( ( C Limit D ) ` F ) = ( ( oppFunc ` ( C DiagFunc D ) ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) with typecode |-
8 1 fveq2i Could not format ( oppFunc ` L ) = ( oppFunc ` ( C DiagFunc D ) ) : No typesetting found for |- ( oppFunc ` L ) = ( oppFunc ` ( C DiagFunc D ) ) with typecode |-
9 8 oveq1i Could not format ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) = ( ( oppFunc ` ( C DiagFunc D ) ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) : No typesetting found for |- ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) = ( ( oppFunc ` ( C DiagFunc D ) ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) with typecode |-
10 7 9 eqtr4i Could not format ( ( C Limit D ) ` F ) = ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) : No typesetting found for |- ( ( C Limit D ) ` F ) = ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) with typecode |-
11 10 breqi Could not format ( X ( ( C Limit D ) ` F ) R <-> X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R ) : No typesetting found for |- ( X ( ( C Limit D ) ` F ) R <-> X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R ) with typecode |-
12 id Could not format ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R ) : No typesetting found for |- ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R ) with typecode |-
13 12 up1st2nd Could not format ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> X ( <. ( 1st ` ( oppFunc ` L ) ) , ( 2nd ` ( oppFunc ` L ) ) >. ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R ) : No typesetting found for |- ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> X ( <. ( 1st ` ( oppFunc ` L ) ) , ( 2nd ` ( oppFunc ` L ) ) >. ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R ) with typecode |-
14 eqid oppCat C = oppCat C
15 13 14 2 oppcuprcl4 Could not format ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> X e. A ) : No typesetting found for |- ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> X e. A ) with typecode |-
16 eqid oppCat D FuncCat C = oppCat D FuncCat C
17 eqid D FuncCat C = D FuncCat C
18 17 fucbas D Func C = Base D FuncCat C
19 13 16 18 oppcuprcl3 Could not format ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> F e. ( D Func C ) ) : No typesetting found for |- ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> F e. ( D Func C ) ) with typecode |-
20 simpr X A F D Func C F D Func C
21 20 func1st2nd X A F D Func C 1 st F D Func C 2 nd F
22 21 funcrcl3 X A F D Func C C Cat
23 21 funcrcl2 X A F D Func C D Cat
24 1 22 23 17 diagcl X A F D Func C L C Func D FuncCat C
25 oppfval2 Could not format ( L e. ( C Func ( D FuncCat C ) ) -> ( oppFunc ` L ) = <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ) : No typesetting found for |- ( L e. ( C Func ( D FuncCat C ) ) -> ( oppFunc ` L ) = <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ) with typecode |-
26 24 25 syl Could not format ( ( X e. A /\ F e. ( D Func C ) ) -> ( oppFunc ` L ) = <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ) : No typesetting found for |- ( ( X e. A /\ F e. ( D Func C ) ) -> ( oppFunc ` L ) = <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ) with typecode |-
27 26 oveq1d Could not format ( ( X e. A /\ F e. ( D Func C ) ) -> ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) = ( <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) ) : No typesetting found for |- ( ( X e. A /\ F e. ( D Func C ) ) -> ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) = ( <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) ) with typecode |-
28 27 breqd Could not format ( ( X e. A /\ F e. ( D Func C ) ) -> ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R <-> X ( <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R ) ) : No typesetting found for |- ( ( X e. A /\ F e. ( D Func C ) ) -> ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R <-> X ( <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R ) ) with typecode |-
29 15 19 28 syl2anc Could not format ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R <-> X ( <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R ) ) : No typesetting found for |- ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R <-> X ( <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R ) ) with typecode |-
30 29 ibi Could not format ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> X ( <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R ) : No typesetting found for |- ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> X ( <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R ) with typecode |-
31 17 3 fuchom N = Hom D FuncCat C
32 30 16 31 oppcuprcl5 Could not format ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> R e. ( ( ( 1st ` L ) ` X ) N F ) ) : No typesetting found for |- ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> R e. ( ( ( 1st ` L ) ` X ) N F ) ) with typecode |-
33 15 32 jca Could not format ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> ( X e. A /\ R e. ( ( ( 1st ` L ) ` X ) N F ) ) ) : No typesetting found for |- ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R -> ( X e. A /\ R e. ( ( ( 1st ` L ) ` X ) N F ) ) ) with typecode |-
34 3 natrcl R 1 st L X N F 1 st L X D Func C F D Func C
35 34 simprd R 1 st L X N F F D Func C
36 35 28 sylan2 Could not format ( ( X e. A /\ R e. ( ( ( 1st ` L ) ` X ) N F ) ) -> ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R <-> X ( <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R ) ) : No typesetting found for |- ( ( X e. A /\ R e. ( ( ( 1st ` L ) ` X ) N F ) ) -> ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R <-> X ( <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R ) ) with typecode |-
37 eqid comp D FuncCat C = comp D FuncCat C
38 35 adantl X A R 1 st L X N F F D Func C
39 35 24 sylan2 X A R 1 st L X N F L C Func D FuncCat C
40 39 func1st2nd X A R 1 st L X N F 1 st L C Func D FuncCat C 2 nd L
41 simpl X A R 1 st L X N F X A
42 simpr X A R 1 st L X N F R 1 st L X N F
43 2 18 5 31 37 38 40 41 42 14 16 oppcup Could not format ( ( X e. A /\ R e. ( ( ( 1st ` L ) ` X ) N F ) ) -> ( X ( <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R <-> A. x e. A A. a e. ( ( ( 1st ` L ) ` x ) N F ) E! m e. ( x H X ) a = ( R ( <. ( ( 1st ` L ) ` x ) , ( ( 1st ` L ) ` X ) >. ( comp ` ( D FuncCat C ) ) F ) ( ( x ( 2nd ` L ) X ) ` m ) ) ) ) : No typesetting found for |- ( ( X e. A /\ R e. ( ( ( 1st ` L ) ` X ) N F ) ) -> ( X ( <. ( 1st ` L ) , tpos ( 2nd ` L ) >. ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R <-> A. x e. A A. a e. ( ( ( 1st ` L ) ` x ) N F ) E! m e. ( x H X ) a = ( R ( <. ( ( 1st ` L ) ` x ) , ( ( 1st ` L ) ` X ) >. ( comp ` ( D FuncCat C ) ) F ) ( ( x ( 2nd ` L ) X ) ` m ) ) ) ) with typecode |-
44 35 22 sylan2 X A R 1 st L X N F C Cat
45 44 ad2antrr X A R 1 st L X N F x A a 1 st L x N F m x H X C Cat
46 35 23 sylan2 X A R 1 st L X N F D Cat
47 46 ad2antrr X A R 1 st L X N F x A a 1 st L x N F m x H X D Cat
48 simplrl X A R 1 st L X N F x A a 1 st L x N F m x H X x A
49 41 ad2antrr X A R 1 st L X N F x A a 1 st L x N F m x H X X A
50 simpr X A R 1 st L X N F x A a 1 st L x N F m x H X m x H X
51 1 2 4 5 45 47 48 49 50 diag2 X A R 1 st L X N F x A a 1 st L x N F m x H X x 2 nd L X m = B × m
52 51 oveq2d X A R 1 st L X N F x A a 1 st L x N F m x H X R 1 st L x 1 st L X comp D FuncCat C F x 2 nd L X m = R 1 st L x 1 st L X comp D FuncCat C F B × m
53 1 2 4 5 45 47 48 49 50 3 diag2cl X A R 1 st L X N F x A a 1 st L x N F m x H X B × m 1 st L x N 1 st L X
54 42 ad2antrr X A R 1 st L X N F x A a 1 st L x N F m x H X R 1 st L X N F
55 17 3 4 6 37 53 54 fucco X A R 1 st L X N F x A a 1 st L x N F m x H X R 1 st L x 1 st L X comp D FuncCat C F B × m = j B R j 1 st 1 st L x j 1 st 1 st L X j · ˙ 1 st F j B × m j
56 45 adantr X A R 1 st L X N F x A a 1 st L x N F m x H X j B C Cat
57 47 adantr X A R 1 st L X N F x A a 1 st L x N F m x H X j B D Cat
58 48 adantr X A R 1 st L X N F x A a 1 st L x N F m x H X j B x A
59 eqid 1 st L x = 1 st L x
60 simpr X A R 1 st L X N F x A a 1 st L x N F m x H X j B j B
61 1 56 57 2 58 59 4 60 diag11 X A R 1 st L X N F x A a 1 st L x N F m x H X j B 1 st 1 st L x j = x
62 49 adantr X A R 1 st L X N F x A a 1 st L x N F m x H X j B X A
63 eqid 1 st L X = 1 st L X
64 1 56 57 2 62 63 4 60 diag11 X A R 1 st L X N F x A a 1 st L x N F m x H X j B 1 st 1 st L X j = X
65 61 64 opeq12d X A R 1 st L X N F x A a 1 st L x N F m x H X j B 1 st 1 st L x j 1 st 1 st L X j = x X
66 65 oveq1d X A R 1 st L X N F x A a 1 st L x N F m x H X j B 1 st 1 st L x j 1 st 1 st L X j · ˙ 1 st F j = x X · ˙ 1 st F j
67 eqidd X A R 1 st L X N F x A a 1 st L x N F m x H X j B R j = R j
68 vex m V
69 68 fvconst2 j B B × m j = m
70 69 adantl X A R 1 st L X N F x A a 1 st L x N F m x H X j B B × m j = m
71 66 67 70 oveq123d X A R 1 st L X N F x A a 1 st L x N F m x H X j B R j 1 st 1 st L x j 1 st 1 st L X j · ˙ 1 st F j B × m j = R j x X · ˙ 1 st F j m
72 71 mpteq2dva X A R 1 st L X N F x A a 1 st L x N F m x H X j B R j 1 st 1 st L x j 1 st 1 st L X j · ˙ 1 st F j B × m j = j B R j x X · ˙ 1 st F j m
73 52 55 72 3eqtrd X A R 1 st L X N F x A a 1 st L x N F m x H X R 1 st L x 1 st L X comp D FuncCat C F x 2 nd L X m = j B R j x X · ˙ 1 st F j m
74 73 eqeq2d X A R 1 st L X N F x A a 1 st L x N F m x H X a = R 1 st L x 1 st L X comp D FuncCat C F x 2 nd L X m a = j B R j x X · ˙ 1 st F j m
75 74 reubidva X A R 1 st L X N F x A a 1 st L x N F ∃! m x H X a = R 1 st L x 1 st L X comp D FuncCat C F x 2 nd L X m ∃! m x H X a = j B R j x X · ˙ 1 st F j m
76 75 2ralbidva X A R 1 st L X N F x A a 1 st L x N F ∃! m x H X a = R 1 st L x 1 st L X comp D FuncCat C F x 2 nd L X m x A a 1 st L x N F ∃! m x H X a = j B R j x X · ˙ 1 st F j m
77 36 43 76 3bitrd Could not format ( ( X e. A /\ R e. ( ( ( 1st ` L ) ` X ) N F ) ) -> ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R <-> A. x e. A A. a e. ( ( ( 1st ` L ) ` x ) N F ) E! m e. ( x H X ) a = ( j e. B |-> ( ( R ` j ) ( <. x , X >. .x. ( ( 1st ` F ) ` j ) ) m ) ) ) ) : No typesetting found for |- ( ( X e. A /\ R e. ( ( ( 1st ` L ) ` X ) N F ) ) -> ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R <-> A. x e. A A. a e. ( ( ( 1st ` L ) ` x ) N F ) E! m e. ( x H X ) a = ( j e. B |-> ( ( R ` j ) ( <. x , X >. .x. ( ( 1st ` F ) ` j ) ) m ) ) ) ) with typecode |-
78 33 77 biadanii Could not format ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R <-> ( ( X e. A /\ R e. ( ( ( 1st ` L ) ` X ) N F ) ) /\ A. x e. A A. a e. ( ( ( 1st ` L ) ` x ) N F ) E! m e. ( x H X ) a = ( j e. B |-> ( ( R ` j ) ( <. x , X >. .x. ( ( 1st ` F ) ` j ) ) m ) ) ) ) : No typesetting found for |- ( X ( ( oppFunc ` L ) ( ( oppCat ` C ) UP ( oppCat ` ( D FuncCat C ) ) ) F ) R <-> ( ( X e. A /\ R e. ( ( ( 1st ` L ) ` X ) N F ) ) /\ A. x e. A A. a e. ( ( ( 1st ` L ) ` x ) N F ) E! m e. ( x H X ) a = ( j e. B |-> ( ( R ` j ) ( <. x , X >. .x. ( ( 1st ` F ) ` j ) ) m ) ) ) ) with typecode |-
79 11 78 bitri Could not format ( X ( ( C Limit D ) ` F ) R <-> ( ( X e. A /\ R e. ( ( ( 1st ` L ) ` X ) N F ) ) /\ A. x e. A A. a e. ( ( ( 1st ` L ) ` x ) N F ) E! m e. ( x H X ) a = ( j e. B |-> ( ( R ` j ) ( <. x , X >. .x. ( ( 1st ` F ) ` j ) ) m ) ) ) ) : No typesetting found for |- ( X ( ( C Limit D ) ` F ) R <-> ( ( X e. A /\ R e. ( ( ( 1st ` L ) ` X ) N F ) ) /\ A. x e. A A. a e. ( ( ( 1st ` L ) ` x ) N F ) E! m e. ( x H X ) a = ( j e. B |-> ( ( R ` j ) ( <. x , X >. .x. ( ( 1st ` F ) ` j ) ) m ) ) ) ) with typecode |-