Metamath Proof Explorer


Theorem fucoisfunc

Description: A characterization of functors with the object part of functor composition, in terms of an exact morphism function and compatible component functors. See fucoisfunc2 for the componentwise form. (Contributed by Zhi Wang, 14-Sep-2026)

Ref Expression
Hypotheses fucoisfunc.w ⊢ W = D Func E × C Func D
fucoisfunc.t ⊢ T = D FuncCat E × c C FuncCat D
fucoisfunc.q ⊢ Q = C FuncCat E
fucoisfunc.o ⊢ O = ∘ func ↾ W
fucoisfunc.h ⊢ H = Hom ⁡ T
fucoisfunc.i ⊢ I = Id ⁡ T
fucoisfunc.j ⊢ J = Id ⁡ Q
fucoisfunc.x ⊢ · ˙ = comp ⁡ T
fucoisfunc.y No typesetting found for |- .o. = ( comp ` Q ) with typecode |-
fucoisfunc.c ⊢ φ → C ∈ Cat
fucoisfunc.d ⊢ φ → D ∈ Cat
fucoisfunc.e ⊢ φ → E ∈ Cat
Assertion fucoisfunc Could not format assertion : No typesetting found for |- ( ph -> ( O ( T Func Q ) P <-> ( ( P = ( u e. W , v e. W |-> ( u P v ) ) /\ A. m e. W A. n e. W ( ( m P n ) = ( b e. ( ( 1st ` m ) ( D Nat E ) ( 1st ` n ) ) , a e. ( ( 2nd ` m ) ( C Nat D ) ( 2nd ` n ) ) |-> ( b ( m P n ) a ) ) /\ A. p e. ( ( 1st ` m ) ( D Nat E ) ( 1st ` n ) ) A. q e. ( ( 2nd ` m ) ( C Nat D ) ( 2nd ` n ) ) ( p ( m P n ) q ) e. ( ( O ` m ) ( C Nat E ) ( O ` n ) ) ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) ) ) with typecode |-

Proof

Step Hyp Ref Expression
1 fucoisfunc.w ⊢ W = D Func E × C Func D
2 fucoisfunc.t ⊢ T = D FuncCat E × c C FuncCat D
3 fucoisfunc.q ⊢ Q = C FuncCat E
4 fucoisfunc.o ⊢ O = ∘ func ↾ W
5 fucoisfunc.h ⊢ H = Hom ⁡ T
6 fucoisfunc.i ⊢ I = Id ⁡ T
7 fucoisfunc.j ⊢ J = Id ⁡ Q
8 fucoisfunc.x ⊢ · ˙ = comp ⁡ T
9 fucoisfunc.y Could not format .o. = ( comp ` Q ) : No typesetting found for |- .o. = ( comp ` Q ) with typecode |-
10 fucoisfunc.c ⊢ φ → C ∈ Cat
11 fucoisfunc.d ⊢ φ → D ∈ Cat
12 fucoisfunc.e ⊢ φ → E ∈ Cat
13 2 xpcfucbas ⊢ D Func E × C Func D = Base T
14 1 13 eqtri ⊢ W = Base T
15 3 fucbas ⊢ C Func E = Base Q
16 eqid ⊢ C Nat E = C Nat E
17 3 16 fuchom ⊢ C Nat E = Hom ⁡ Q
18 eqid ⊢ D FuncCat E = D FuncCat E
19 18 11 12 fuccat ⊢ φ → D FuncCat E ∈ Cat
20 eqid ⊢ C FuncCat D = C FuncCat D
21 20 10 11 fuccat ⊢ φ → C FuncCat D ∈ Cat
22 2 19 21 xpccat ⊢ φ → T ∈ Cat
23 3 10 12 fuccat ⊢ φ → Q ∈ Cat
24 14 15 5 17 6 7 8 9 22 23 isfunc Could not format ( ph -> ( O ( T Func Q ) P <-> ( O : W --> ( C Func E ) /\ P e. X_ z e. ( W X. W ) ( ( ( O ` ( 1st ` z ) ) ( C Nat E ) ( O ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) ) ) : No typesetting found for |- ( ph -> ( O ( T Func Q ) P <-> ( O : W --> ( C Func E ) /\ P e. X_ z e. ( W X. W ) ( ( ( O ` ( 1st ` z ) ) ( C Nat E ) ( O ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) ) ) with typecode |-
25 rescofuf ⊢ ∘ func ↾ D Func E × C Func D : D Func E × C Func D ⟶ C Func E
26 1 reseq2i ⊢ ∘ func ↾ W = ∘ func ↾ D Func E × C Func D
27 4 26 eqtri ⊢ O = ∘ func ↾ D Func E × C Func D
28 27 1 feq12i ⊢ O : W ⟶ C Func E ↔ ∘ func ↾ D Func E × C Func D : D Func E × C Func D ⟶ C Func E
29 25 28 mpbir ⊢ O : W ⟶ C Func E
30 3anass Could not format ( ( O : W --> ( C Func E ) /\ P e. X_ z e. ( W X. W ) ( ( ( O ` ( 1st ` z ) ) ( C Nat E ) ( O ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) <-> ( O : W --> ( C Func E ) /\ ( P e. X_ z e. ( W X. W ) ( ( ( O ` ( 1st ` z ) ) ( C Nat E ) ( O ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) ) ) : No typesetting found for |- ( ( O : W --> ( C Func E ) /\ P e. X_ z e. ( W X. W ) ( ( ( O ` ( 1st ` z ) ) ( C Nat E ) ( O ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) <-> ( O : W --> ( C Func E ) /\ ( P e. X_ z e. ( W X. W ) ( ( ( O ` ( 1st ` z ) ) ( C Nat E ) ( O ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) ) ) with typecode |-
31 29 30 mpbiran Could not format ( ( O : W --> ( C Func E ) /\ P e. X_ z e. ( W X. W ) ( ( ( O ` ( 1st ` z ) ) ( C Nat E ) ( O ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) <-> ( P e. X_ z e. ( W X. W ) ( ( ( O ` ( 1st ` z ) ) ( C Nat E ) ( O ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) ) : No typesetting found for |- ( ( O : W --> ( C Func E ) /\ P e. X_ z e. ( W X. W ) ( ( ( O ` ( 1st ` z ) ) ( C Nat E ) ( O ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) <-> ( P e. X_ z e. ( W X. W ) ( ( ( O ` ( 1st ` z ) ) ( C Nat E ) ( O ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) ) with typecode |-
32 24 31 bitrdi Could not format ( ph -> ( O ( T Func Q ) P <-> ( P e. X_ z e. ( W X. W ) ( ( ( O ` ( 1st ` z ) ) ( C Nat E ) ( O ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) ) ) : No typesetting found for |- ( ph -> ( O ( T Func Q ) P <-> ( P e. X_ z e. ( W X. W ) ( ( ( O ` ( 1st ` z ) ) ( C Nat E ) ( O ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) ) ) with typecode |-
33 2 fveq2i ⊢ Hom ⁡ T = Hom ⁡ D FuncCat E × c C FuncCat D
34 5 33 eqtri ⊢ H = Hom ⁡ D FuncCat E × c C FuncCat D
35 1 34 fucofulem2 ⊢ P ∈ ⨉ z ∈ W × W O ⁡ 1 st ⁡ z C Nat E O ⁡ 2 nd ⁡ z H ⁡ z ↔ P = u ∈ W , v ∈ W ⟼ u P v ∧ ∀ m ∈ W ∀ n ∈ W m P n = b ∈ 1 st ⁡ m D Nat E 1 st ⁡ n , a ∈ 2 nd ⁡ m C Nat D 2 nd ⁡ n ⟼ b m P n a ∧ ∀ p ∈ 1 st ⁡ m D Nat E 1 st ⁡ n ∀ q ∈ 2 nd ⁡ m C Nat D 2 nd ⁡ n p m P n q ∈ O ⁡ m C Nat E O ⁡ n
36 35 anbi1i Could not format ( ( P e. X_ z e. ( W X. W ) ( ( ( O ` ( 1st ` z ) ) ( C Nat E ) ( O ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) <-> ( ( P = ( u e. W , v e. W |-> ( u P v ) ) /\ A. m e. W A. n e. W ( ( m P n ) = ( b e. ( ( 1st ` m ) ( D Nat E ) ( 1st ` n ) ) , a e. ( ( 2nd ` m ) ( C Nat D ) ( 2nd ` n ) ) |-> ( b ( m P n ) a ) ) /\ A. p e. ( ( 1st ` m ) ( D Nat E ) ( 1st ` n ) ) A. q e. ( ( 2nd ` m ) ( C Nat D ) ( 2nd ` n ) ) ( p ( m P n ) q ) e. ( ( O ` m ) ( C Nat E ) ( O ` n ) ) ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) ) : No typesetting found for |- ( ( P e. X_ z e. ( W X. W ) ( ( ( O ` ( 1st ` z ) ) ( C Nat E ) ( O ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) <-> ( ( P = ( u e. W , v e. W |-> ( u P v ) ) /\ A. m e. W A. n e. W ( ( m P n ) = ( b e. ( ( 1st ` m ) ( D Nat E ) ( 1st ` n ) ) , a e. ( ( 2nd ` m ) ( C Nat D ) ( 2nd ` n ) ) |-> ( b ( m P n ) a ) ) /\ A. p e. ( ( 1st ` m ) ( D Nat E ) ( 1st ` n ) ) A. q e. ( ( 2nd ` m ) ( C Nat D ) ( 2nd ` n ) ) ( p ( m P n ) q ) e. ( ( O ` m ) ( C Nat E ) ( O ` n ) ) ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) ) with typecode |-
37 32 36 bitrdi Could not format ( ph -> ( O ( T Func Q ) P <-> ( ( P = ( u e. W , v e. W |-> ( u P v ) ) /\ A. m e. W A. n e. W ( ( m P n ) = ( b e. ( ( 1st ` m ) ( D Nat E ) ( 1st ` n ) ) , a e. ( ( 2nd ` m ) ( C Nat D ) ( 2nd ` n ) ) |-> ( b ( m P n ) a ) ) /\ A. p e. ( ( 1st ` m ) ( D Nat E ) ( 1st ` n ) ) A. q e. ( ( 2nd ` m ) ( C Nat D ) ( 2nd ` n ) ) ( p ( m P n ) q ) e. ( ( O ` m ) ( C Nat E ) ( O ` n ) ) ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) ) ) : No typesetting found for |- ( ph -> ( O ( T Func Q ) P <-> ( ( P = ( u e. W , v e. W |-> ( u P v ) ) /\ A. m e. W A. n e. W ( ( m P n ) = ( b e. ( ( 1st ` m ) ( D Nat E ) ( 1st ` n ) ) , a e. ( ( 2nd ` m ) ( C Nat D ) ( 2nd ` n ) ) |-> ( b ( m P n ) a ) ) /\ A. p e. ( ( 1st ` m ) ( D Nat E ) ( 1st ` n ) ) A. q e. ( ( 2nd ` m ) ( C Nat D ) ( 2nd ` n ) ) ( p ( m P n ) q ) e. ( ( O ` m ) ( C Nat E ) ( O ` n ) ) ) ) /\ A. x e. W ( ( ( x P x ) ` ( I ` x ) ) = ( J ` ( O ` x ) ) /\ A. y e. W A. z e. W A. m e. ( x H y ) A. n e. ( y H z ) ( ( x P z ) ` ( n ( <. x , y >. .x. z ) m ) ) = ( ( ( y P z ) ` n ) ( <. ( O ` x ) , ( O ` y ) >. .o. ( O ` z ) ) ( ( x P y ) ` m ) ) ) ) ) ) with typecode |-