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 |-