Metamath Proof Explorer


Theorem precoffunc

Description: The pre-composition functor, expressed explicitly, is a functor. (Contributed by Zhi Wang, 11-Oct-2025)

Ref Expression
Hypotheses precoffunc.r R = D FuncCat E
precoffunc.s S = C FuncCat E
precoffunc.b B = D Func E
precoffunc.n N = D Nat E
precoffunc.f φ F C Func D G
precoffunc.e φ E Cat
precoffunc.k φ K = g B g func F G
precoffunc.l φ L = g B , h B a g N h a F
Assertion precoffunc φ K R Func S L

Proof

Step Hyp Ref Expression
1 precoffunc.r R = D FuncCat E
2 precoffunc.s S = C FuncCat E
3 precoffunc.b B = D Func E
4 precoffunc.n N = D Nat E
5 precoffunc.f φ F C Func D G
6 precoffunc.e φ E Cat
7 precoffunc.k φ K = g B g func F G
8 precoffunc.l φ L = g B , h B a g N h a F
9 eqid C FuncCat D = C FuncCat D
10 eqidd Could not format ( ph -> ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) = ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) ) : No typesetting found for |- ( ph -> ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) = ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) ) with typecode |-
11 df-br F C Func D G F G C Func D
12 5 11 sylib φ F G C Func D
13 3 mpteq1i g B g func F G = g D Func E g func F G
14 7 13 eqtrdi φ K = g D Func E g func F G
15 3 a1i φ B = D Func E
16 4 a1i φ N = D Nat E
17 16 oveqd φ g N h = g D Nat E h
18 relfunc Rel C Func D
19 brrelex12 Rel C Func D F C Func D G F V G V
20 18 5 19 sylancr φ F V G V
21 op1stg F V G V 1 st F G = F
22 20 21 syl φ 1 st F G = F
23 22 eqcomd φ F = 1 st F G
24 23 coeq2d φ a F = a 1 st F G
25 17 24 mpteq12dv φ a g N h a F = a g D Nat E h a 1 st F G
26 15 15 25 mpoeq123dv φ g B , h B a g N h a F = g D Func E , h D Func E a g D Nat E h a 1 st F G
27 8 26 eqtrd φ L = g D Func E , h D Func E a g D Nat E h a 1 st F G
28 14 27 opeq12d φ K L = g D Func E g func F G g D Func E , h D Func E a g D Nat E h a 1 st F G
29 eqidd Could not format ( ph -> ( ( 1st ` ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) ) ` <. F , G >. ) = ( ( 1st ` ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) ) ` <. F , G >. ) ) : No typesetting found for |- ( ph -> ( ( 1st ` ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) ) ` <. F , G >. ) = ( ( 1st ` ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) ) ` <. F , G >. ) ) with typecode |-
30 9 1 10 12 6 29 precofval2 Could not format ( ph -> ( ( 1st ` ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) ) ` <. F , G >. ) = <. ( g e. ( D Func E ) |-> ( g o.func <. F , G >. ) ) , ( g e. ( D Func E ) , h e. ( D Func E ) |-> ( a e. ( g ( D Nat E ) h ) |-> ( a o. ( 1st ` <. F , G >. ) ) ) ) >. ) : No typesetting found for |- ( ph -> ( ( 1st ` ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) ) ` <. F , G >. ) = <. ( g e. ( D Func E ) |-> ( g o.func <. F , G >. ) ) , ( g e. ( D Func E ) , h e. ( D Func E ) |-> ( a e. ( g ( D Nat E ) h ) |-> ( a o. ( 1st ` <. F , G >. ) ) ) ) >. ) with typecode |-
31 28 30 eqtr4d Could not format ( ph -> <. K , L >. = ( ( 1st ` ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) ) ` <. F , G >. ) ) : No typesetting found for |- ( ph -> <. K , L >. = ( ( 1st ` ( <. ( C FuncCat D ) , R >. curryF ( ( <. C , D >. o.F E ) o.func ( ( C FuncCat D ) swapF R ) ) ) ) ` <. F , G >. ) ) with typecode |-
32 9 1 10 12 6 31 2 precofcl φ K L R Func S
33 df-br K R Func S L K L R Func S
34 32 33 sylibr φ K R Func S L