Metamath Proof Explorer


Theorem ranup

Description: The universal property of the right Kan extension; expressed explicitly. (Contributed by Zhi Wang, 5-Nov-2025)

Ref Expression
Hypotheses lanup.s S = C FuncCat E
lanup.m M = D Nat E
lanup.n N = C Nat E
lanup.x ˙ = comp S
lanup.f φ F C Func D
lanup.l φ L D Func E
ranup.a φ A L func F N X
Assertion ranup Could not format assertion : No typesetting found for |- ( ph -> ( L ( F ( <. C , D >. Ran E ) X ) A <-> A. l e. ( D Func E ) A. a e. ( ( l o.func F ) N X ) E! b e. ( l M L ) a = ( A ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ( b o. ( 1st ` F ) ) ) ) ) with typecode |-

Proof

Step Hyp Ref Expression
1 lanup.s S = C FuncCat E
2 lanup.m M = D Nat E
3 lanup.n N = C Nat E
4 lanup.x ˙ = comp S
5 lanup.f φ F C Func D
6 lanup.l φ L D Func E
7 ranup.a φ A L func F N X
8 eqid D FuncCat E = D FuncCat E
9 8 fucbas D Func E = Base D FuncCat E
10 1 fucbas C Func E = Base S
11 8 2 fuchom M = Hom D FuncCat E
12 1 3 fuchom N = Hom S
13 3 natrcl A L func F N X L func F C Func E X C Func E
14 7 13 syl φ L func F C Func E X C Func E
15 14 simprd φ X C Func E
16 15 func1st2nd φ 1 st X C Func E 2 nd X
17 16 funcrcl3 φ E Cat
18 opex D E V
19 18 a1i φ D E V
20 5 19 prcofelvv Could not format ( ph -> ( <. D , E >. -o.F F ) e. ( _V X. _V ) ) : No typesetting found for |- ( ph -> ( <. D , E >. -o.F F ) e. ( _V X. _V ) ) with typecode |-
21 1st2nd2 Could not format ( ( <. D , E >. -o.F F ) e. ( _V X. _V ) -> ( <. D , E >. -o.F F ) = <. ( 1st ` ( <. D , E >. -o.F F ) ) , ( 2nd ` ( <. D , E >. -o.F F ) ) >. ) : No typesetting found for |- ( ( <. D , E >. -o.F F ) e. ( _V X. _V ) -> ( <. D , E >. -o.F F ) = <. ( 1st ` ( <. D , E >. -o.F F ) ) , ( 2nd ` ( <. D , E >. -o.F F ) ) >. ) with typecode |-
22 20 21 syl Could not format ( ph -> ( <. D , E >. -o.F F ) = <. ( 1st ` ( <. D , E >. -o.F F ) ) , ( 2nd ` ( <. D , E >. -o.F F ) ) >. ) : No typesetting found for |- ( ph -> ( <. D , E >. -o.F F ) = <. ( 1st ` ( <. D , E >. -o.F F ) ) , ( 2nd ` ( <. D , E >. -o.F F ) ) >. ) with typecode |-
23 8 17 1 5 22 prcoffunca2 Could not format ( ph -> ( 1st ` ( <. D , E >. -o.F F ) ) ( ( D FuncCat E ) Func S ) ( 2nd ` ( <. D , E >. -o.F F ) ) ) : No typesetting found for |- ( ph -> ( 1st ` ( <. D , E >. -o.F F ) ) ( ( D FuncCat E ) Func S ) ( 2nd ` ( <. D , E >. -o.F F ) ) ) with typecode |-
24 eqidd Could not format ( ph -> ( 1st ` ( <. D , E >. -o.F F ) ) = ( 1st ` ( <. D , E >. -o.F F ) ) ) : No typesetting found for |- ( ph -> ( 1st ` ( <. D , E >. -o.F F ) ) = ( 1st ` ( <. D , E >. -o.F F ) ) ) with typecode |-
25 6 24 prcof1 Could not format ( ph -> ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) = ( L o.func F ) ) : No typesetting found for |- ( ph -> ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) = ( L o.func F ) ) with typecode |-
26 25 oveq1d Could not format ( ph -> ( ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) N X ) = ( ( L o.func F ) N X ) ) : No typesetting found for |- ( ph -> ( ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) N X ) = ( ( L o.func F ) N X ) ) with typecode |-
27 7 26 eleqtrrd Could not format ( ph -> A e. ( ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) N X ) ) : No typesetting found for |- ( ph -> A e. ( ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) N X ) ) with typecode |-
28 eqid oppCat D FuncCat E = oppCat D FuncCat E
29 eqid oppCat S = oppCat S
30 9 10 11 12 4 15 23 6 27 28 29 oppcup Could not format ( ph -> ( L ( <. ( 1st ` ( <. D , E >. -o.F F ) ) , tpos ( 2nd ` ( <. D , E >. -o.F F ) ) >. ( ( oppCat ` ( D FuncCat E ) ) UP ( oppCat ` S ) ) X ) A <-> A. l e. ( D Func E ) A. a e. ( ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) N X ) E! b e. ( l M L ) a = ( A ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) ) ) ) : No typesetting found for |- ( ph -> ( L ( <. ( 1st ` ( <. D , E >. -o.F F ) ) , tpos ( 2nd ` ( <. D , E >. -o.F F ) ) >. ( ( oppCat ` ( D FuncCat E ) ) UP ( oppCat ` S ) ) X ) A <-> A. l e. ( D Func E ) A. a e. ( ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) N X ) E! b e. ( l M L ) a = ( A ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) ) ) ) with typecode |-
31 1 fveq2i oppCat S = oppCat C FuncCat E
32 28 31 22 5 ranval2 Could not format ( ph -> ( F ( <. C , D >. Ran E ) X ) = ( <. ( 1st ` ( <. D , E >. -o.F F ) ) , tpos ( 2nd ` ( <. D , E >. -o.F F ) ) >. ( ( oppCat ` ( D FuncCat E ) ) UP ( oppCat ` S ) ) X ) ) : No typesetting found for |- ( ph -> ( F ( <. C , D >. Ran E ) X ) = ( <. ( 1st ` ( <. D , E >. -o.F F ) ) , tpos ( 2nd ` ( <. D , E >. -o.F F ) ) >. ( ( oppCat ` ( D FuncCat E ) ) UP ( oppCat ` S ) ) X ) ) with typecode |-
33 32 breqd Could not format ( ph -> ( L ( F ( <. C , D >. Ran E ) X ) A <-> L ( <. ( 1st ` ( <. D , E >. -o.F F ) ) , tpos ( 2nd ` ( <. D , E >. -o.F F ) ) >. ( ( oppCat ` ( D FuncCat E ) ) UP ( oppCat ` S ) ) X ) A ) ) : No typesetting found for |- ( ph -> ( L ( F ( <. C , D >. Ran E ) X ) A <-> L ( <. ( 1st ` ( <. D , E >. -o.F F ) ) , tpos ( 2nd ` ( <. D , E >. -o.F F ) ) >. ( ( oppCat ` ( D FuncCat E ) ) UP ( oppCat ` S ) ) X ) A ) ) with typecode |-
34 simpr φ l D Func E l D Func E
35 eqidd Could not format ( ( ph /\ l e. ( D Func E ) ) -> ( 1st ` ( <. D , E >. -o.F F ) ) = ( 1st ` ( <. D , E >. -o.F F ) ) ) : No typesetting found for |- ( ( ph /\ l e. ( D Func E ) ) -> ( 1st ` ( <. D , E >. -o.F F ) ) = ( 1st ` ( <. D , E >. -o.F F ) ) ) with typecode |-
36 34 35 prcof1 Could not format ( ( ph /\ l e. ( D Func E ) ) -> ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) = ( l o.func F ) ) : No typesetting found for |- ( ( ph /\ l e. ( D Func E ) ) -> ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) = ( l o.func F ) ) with typecode |-
37 36 eqcomd Could not format ( ( ph /\ l e. ( D Func E ) ) -> ( l o.func F ) = ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) ) : No typesetting found for |- ( ( ph /\ l e. ( D Func E ) ) -> ( l o.func F ) = ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) ) with typecode |-
38 37 oveq1d Could not format ( ( ph /\ l e. ( D Func E ) ) -> ( ( l o.func F ) N X ) = ( ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) N X ) ) : No typesetting found for |- ( ( ph /\ l e. ( D Func E ) ) -> ( ( l o.func F ) N X ) = ( ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) N X ) ) with typecode |-
39 36 ad2antrr Could not format ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) = ( l o.func F ) ) : No typesetting found for |- ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) = ( l o.func F ) ) with typecode |-
40 25 ad3antrrr Could not format ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) = ( L o.func F ) ) : No typesetting found for |- ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) = ( L o.func F ) ) with typecode |-
41 39 40 opeq12d Could not format ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. = <. ( l o.func F ) , ( L o.func F ) >. ) : No typesetting found for |- ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. = <. ( l o.func F ) , ( L o.func F ) >. ) with typecode |-
42 41 oveq1d Could not format ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) = ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ) : No typesetting found for |- ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) = ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ) with typecode |-
43 eqidd φ l D Func E a l func F N X b l M L A = A
44 simpr φ l D Func E a l func F N X b l M L b l M L
45 eqidd Could not format ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( 2nd ` ( <. D , E >. -o.F F ) ) = ( 2nd ` ( <. D , E >. -o.F F ) ) ) : No typesetting found for |- ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( 2nd ` ( <. D , E >. -o.F F ) ) = ( 2nd ` ( <. D , E >. -o.F F ) ) ) with typecode |-
46 5 ad3antrrr φ l D Func E a l func F N X b l M L F C Func D
47 2 44 45 46 prcof21a Could not format ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) = ( b o. ( 1st ` F ) ) ) : No typesetting found for |- ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) = ( b o. ( 1st ` F ) ) ) with typecode |-
48 42 43 47 oveq123d Could not format ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( A ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) ) = ( A ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ( b o. ( 1st ` F ) ) ) ) : No typesetting found for |- ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( A ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) ) = ( A ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ( b o. ( 1st ` F ) ) ) ) with typecode |-
49 48 eqcomd Could not format ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( A ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ( b o. ( 1st ` F ) ) ) = ( A ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) ) ) : No typesetting found for |- ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( A ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ( b o. ( 1st ` F ) ) ) = ( A ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) ) ) with typecode |-
50 49 eqeq2d Could not format ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( a = ( A ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ( b o. ( 1st ` F ) ) ) <-> a = ( A ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) ) ) ) : No typesetting found for |- ( ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) /\ b e. ( l M L ) ) -> ( a = ( A ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ( b o. ( 1st ` F ) ) ) <-> a = ( A ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) ) ) ) with typecode |-
51 50 reubidva Could not format ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) -> ( E! b e. ( l M L ) a = ( A ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ( b o. ( 1st ` F ) ) ) <-> E! b e. ( l M L ) a = ( A ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) ) ) ) : No typesetting found for |- ( ( ( ph /\ l e. ( D Func E ) ) /\ a e. ( ( l o.func F ) N X ) ) -> ( E! b e. ( l M L ) a = ( A ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ( b o. ( 1st ` F ) ) ) <-> E! b e. ( l M L ) a = ( A ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) ) ) ) with typecode |-
52 38 51 raleqbidva Could not format ( ( ph /\ l e. ( D Func E ) ) -> ( A. a e. ( ( l o.func F ) N X ) E! b e. ( l M L ) a = ( A ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ( b o. ( 1st ` F ) ) ) <-> A. a e. ( ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) N X ) E! b e. ( l M L ) a = ( A ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) ) ) ) : No typesetting found for |- ( ( ph /\ l e. ( D Func E ) ) -> ( A. a e. ( ( l o.func F ) N X ) E! b e. ( l M L ) a = ( A ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ( b o. ( 1st ` F ) ) ) <-> A. a e. ( ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) N X ) E! b e. ( l M L ) a = ( A ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) ) ) ) with typecode |-
53 52 ralbidva Could not format ( ph -> ( A. l e. ( D Func E ) A. a e. ( ( l o.func F ) N X ) E! b e. ( l M L ) a = ( A ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ( b o. ( 1st ` F ) ) ) <-> A. l e. ( D Func E ) A. a e. ( ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) N X ) E! b e. ( l M L ) a = ( A ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) ) ) ) : No typesetting found for |- ( ph -> ( A. l e. ( D Func E ) A. a e. ( ( l o.func F ) N X ) E! b e. ( l M L ) a = ( A ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ( b o. ( 1st ` F ) ) ) <-> A. l e. ( D Func E ) A. a e. ( ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) N X ) E! b e. ( l M L ) a = ( A ( <. ( ( 1st ` ( <. D , E >. -o.F F ) ) ` l ) , ( ( 1st ` ( <. D , E >. -o.F F ) ) ` L ) >. .xb X ) ( ( l ( 2nd ` ( <. D , E >. -o.F F ) ) L ) ` b ) ) ) ) with typecode |-
54 30 33 53 3bitr4d Could not format ( ph -> ( L ( F ( <. C , D >. Ran E ) X ) A <-> A. l e. ( D Func E ) A. a e. ( ( l o.func F ) N X ) E! b e. ( l M L ) a = ( A ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ( b o. ( 1st ` F ) ) ) ) ) : No typesetting found for |- ( ph -> ( L ( F ( <. C , D >. Ran E ) X ) A <-> A. l e. ( D Func E ) A. a e. ( ( l o.func F ) N X ) E! b e. ( l M L ) a = ( A ( <. ( l o.func F ) , ( L o.func F ) >. .xb X ) ( b o. ( 1st ` F ) ) ) ) ) with typecode |-