Metamath Proof Explorer


Theorem precoffunc

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

Ref Expression
Hypotheses precoffunc.r ⊢ R = D 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
precoffunc.s ⊢ S = C FuncCat E
Assertion precoffunc ⊢ φ → K R Func S L

Proof

Step Hyp Ref Expression
1 precoffunc.r ⊢ R = D FuncCat E
2 precoffunc.b ⊢ B = D Func E
3 precoffunc.n ⊢ N = D Nat E
4 precoffunc.f ⊢ φ → F C Func D G
5 precoffunc.e ⊢ φ → E ∈ Cat
6 precoffunc.k ⊢ φ → K = g ∈ B ⟼ g ∘ func F G
7 precoffunc.l ⊢ φ → L = g ∈ B , h ∈ B ⟼ a ∈ g N h ⟼ a ∘ F
8 precoffunc.s ⊢ S = C FuncCat E
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 4 11 sylib ⊢ φ → F G ∈ C Func D
13 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 |-
14 1 2 3 4 5 6 7 9 10 13 precofval3 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 |-
15 9 1 10 12 5 14 8 precofcl ⊢ φ → K L ∈ R Func S
16 df-br ⊢ K R Func S L ↔ K L ∈ R Func S
17 15 16 sylibr ⊢ φ → K R Func S L