Metamath Proof Explorer


Definition df-ran

Description: Definition of the (local) right Kan extension. Given a functor F : C --> D and a functor X : C --> E , the set ( F ( <. C , D >. Ran E ) X ) consists of right Kan extensions of X along F , which are universal pairs from the pre-composition functor given by F to X ( ranval2 ). The definition in § 3 of Chapter X in p. 236 of Mac Lane, Saunders, Categories for the Working Mathematician, 2nd Edition, Springer Science+Business Media, New York, (1998) [QA169.M33 1998]; available at https://math.mit.edu/~hrm/palestine/maclane-categories.pdf (retrieved 3 Nov 2025).

A right Kan extension is in the form of <. L , A >. where the first component is a functor L : D --> E ( ranrcl4 ) and the second component is a natural transformation A : L F --> X ( ranrcl5 ) where L F is the composed functor. Intuitively, the first component L can be regarded as the result of a "inverse" of pre-composition; the source category is "extended" along C --> D .

The right Kan extension is a generalization of many categorical concepts such as limit. In § 7 of Chapter X ofCategories for the Working Mathematician, it is concluded that "the notion of Kan extensions subsumes all the other fundamental concepts of category theory".

This definition was chosen over the other version in the commented out section due to its better reverse closure property.

See df-lan for the dual concept.

(Contributed by Zhi Wang, 4-Nov-2025)

Ref Expression
Assertion df-ran Could not format assertion : No typesetting found for |- Ran = ( p e. ( _V X. _V ) , e e. _V |-> [_ ( 1st ` p ) / c ]_ [_ ( 2nd ` p ) / d ]_ ( f e. ( c Func d ) , x e. ( c Func e ) |-> ( ( oppFunc ` ( <. d , e >. -o.F f ) ) ( ( oppCat ` ( d FuncCat e ) ) UP ( oppCat ` ( c FuncCat e ) ) ) x ) ) ) with typecode |-

Detailed syntax breakdown

Step Hyp Ref Expression
0 cran Could not format Ran : No typesetting found for class Ran with typecode class
1 vp setvar p
2 cvv class V
3 2 2 cxp class V × V
4 ve setvar e
5 c1st class 1 st
6 1 cv setvar p
7 6 5 cfv class 1 st p
8 vc setvar c
9 c2nd class 2 nd
10 6 9 cfv class 2 nd p
11 vd setvar d
12 vf setvar f
13 8 cv setvar c
14 cfunc class Func
15 11 cv setvar d
16 13 15 14 co class c Func d
17 vx setvar x
18 4 cv setvar e
19 13 18 14 co class c Func e
20 coppf Could not format oppFunc : No typesetting found for class oppFunc with typecode class
21 15 18 cop class d e
22 cprcof Could not format -o.F : No typesetting found for class -o.F with typecode class
23 12 cv setvar f
24 21 23 22 co Could not format ( <. d , e >. -o.F f ) : No typesetting found for class ( <. d , e >. -o.F f ) with typecode class
25 24 20 cfv Could not format ( oppFunc ` ( <. d , e >. -o.F f ) ) : No typesetting found for class ( oppFunc ` ( <. d , e >. -o.F f ) ) with typecode class
26 coppc class oppCat
27 cfuc class FuncCat
28 15 18 27 co class d FuncCat e
29 28 26 cfv class oppCat d FuncCat e
30 cup Could not format UP : No typesetting found for class UP with typecode class
31 13 18 27 co class c FuncCat e
32 31 26 cfv class oppCat c FuncCat e
33 29 32 30 co Could not format ( ( oppCat ` ( d FuncCat e ) ) UP ( oppCat ` ( c FuncCat e ) ) ) : No typesetting found for class ( ( oppCat ` ( d FuncCat e ) ) UP ( oppCat ` ( c FuncCat e ) ) ) with typecode class
34 17 cv setvar x
35 25 34 33 co Could not format ( ( oppFunc ` ( <. d , e >. -o.F f ) ) ( ( oppCat ` ( d FuncCat e ) ) UP ( oppCat ` ( c FuncCat e ) ) ) x ) : No typesetting found for class ( ( oppFunc ` ( <. d , e >. -o.F f ) ) ( ( oppCat ` ( d FuncCat e ) ) UP ( oppCat ` ( c FuncCat e ) ) ) x ) with typecode class
36 12 17 16 19 35 cmpo Could not format ( f e. ( c Func d ) , x e. ( c Func e ) |-> ( ( oppFunc ` ( <. d , e >. -o.F f ) ) ( ( oppCat ` ( d FuncCat e ) ) UP ( oppCat ` ( c FuncCat e ) ) ) x ) ) : No typesetting found for class ( f e. ( c Func d ) , x e. ( c Func e ) |-> ( ( oppFunc ` ( <. d , e >. -o.F f ) ) ( ( oppCat ` ( d FuncCat e ) ) UP ( oppCat ` ( c FuncCat e ) ) ) x ) ) with typecode class
37 11 10 36 csb Could not format [_ ( 2nd ` p ) / d ]_ ( f e. ( c Func d ) , x e. ( c Func e ) |-> ( ( oppFunc ` ( <. d , e >. -o.F f ) ) ( ( oppCat ` ( d FuncCat e ) ) UP ( oppCat ` ( c FuncCat e ) ) ) x ) ) : No typesetting found for class [_ ( 2nd ` p ) / d ]_ ( f e. ( c Func d ) , x e. ( c Func e ) |-> ( ( oppFunc ` ( <. d , e >. -o.F f ) ) ( ( oppCat ` ( d FuncCat e ) ) UP ( oppCat ` ( c FuncCat e ) ) ) x ) ) with typecode class
38 8 7 37 csb Could not format [_ ( 1st ` p ) / c ]_ [_ ( 2nd ` p ) / d ]_ ( f e. ( c Func d ) , x e. ( c Func e ) |-> ( ( oppFunc ` ( <. d , e >. -o.F f ) ) ( ( oppCat ` ( d FuncCat e ) ) UP ( oppCat ` ( c FuncCat e ) ) ) x ) ) : No typesetting found for class [_ ( 1st ` p ) / c ]_ [_ ( 2nd ` p ) / d ]_ ( f e. ( c Func d ) , x e. ( c Func e ) |-> ( ( oppFunc ` ( <. d , e >. -o.F f ) ) ( ( oppCat ` ( d FuncCat e ) ) UP ( oppCat ` ( c FuncCat e ) ) ) x ) ) with typecode class
39 1 4 3 2 38 cmpo Could not format ( p e. ( _V X. _V ) , e e. _V |-> [_ ( 1st ` p ) / c ]_ [_ ( 2nd ` p ) / d ]_ ( f e. ( c Func d ) , x e. ( c Func e ) |-> ( ( oppFunc ` ( <. d , e >. -o.F f ) ) ( ( oppCat ` ( d FuncCat e ) ) UP ( oppCat ` ( c FuncCat e ) ) ) x ) ) ) : No typesetting found for class ( p e. ( _V X. _V ) , e e. _V |-> [_ ( 1st ` p ) / c ]_ [_ ( 2nd ` p ) / d ]_ ( f e. ( c Func d ) , x e. ( c Func e ) |-> ( ( oppFunc ` ( <. d , e >. -o.F f ) ) ( ( oppCat ` ( d FuncCat e ) ) UP ( oppCat ` ( c FuncCat e ) ) ) x ) ) ) with typecode class
40 0 39 wceq Could not format Ran = ( p e. ( _V X. _V ) , e e. _V |-> [_ ( 1st ` p ) / c ]_ [_ ( 2nd ` p ) / d ]_ ( f e. ( c Func d ) , x e. ( c Func e ) |-> ( ( oppFunc ` ( <. d , e >. -o.F f ) ) ( ( oppCat ` ( d FuncCat e ) ) UP ( oppCat ` ( c FuncCat e ) ) ) x ) ) ) : No typesetting found for wff Ran = ( p e. ( _V X. _V ) , e e. _V |-> [_ ( 1st ` p ) / c ]_ [_ ( 2nd ` p ) / d ]_ ( f e. ( c Func d ) , x e. ( c Func e ) |-> ( ( oppFunc ` ( <. d , e >. -o.F f ) ) ( ( oppCat ` ( d FuncCat e ) ) UP ( oppCat ` ( c FuncCat e ) ) ) x ) ) ) with typecode wff