This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Value of the set of full functors between two categories. (Contributed by Mario Carneiro, 27-Jan-2017)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | isfull.b | |- B = ( Base ` C ) |
|
| isfull.j | |- J = ( Hom ` D ) |
||
| Assertion | isfull | |- ( F ( C Full D ) G <-> ( F ( C Func D ) G /\ A. x e. B A. y e. B ran ( x G y ) = ( ( F ` x ) J ( F ` y ) ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | isfull.b | |- B = ( Base ` C ) |
|
| 2 | isfull.j | |- J = ( Hom ` D ) |
|
| 3 | fullfunc | |- ( C Full D ) C_ ( C Func D ) |
|
| 4 | 3 | ssbri | |- ( F ( C Full D ) G -> F ( C Func D ) G ) |
| 5 | df-br | |- ( F ( C Func D ) G <-> <. F , G >. e. ( C Func D ) ) |
|
| 6 | funcrcl | |- ( <. F , G >. e. ( C Func D ) -> ( C e. Cat /\ D e. Cat ) ) |
|
| 7 | 5 6 | sylbi | |- ( F ( C Func D ) G -> ( C e. Cat /\ D e. Cat ) ) |
| 8 | oveq12 | |- ( ( c = C /\ d = D ) -> ( c Func d ) = ( C Func D ) ) |
|
| 9 | 8 | breqd | |- ( ( c = C /\ d = D ) -> ( f ( c Func d ) g <-> f ( C Func D ) g ) ) |
| 10 | simpl | |- ( ( c = C /\ d = D ) -> c = C ) |
|
| 11 | 10 | fveq2d | |- ( ( c = C /\ d = D ) -> ( Base ` c ) = ( Base ` C ) ) |
| 12 | 11 1 | eqtr4di | |- ( ( c = C /\ d = D ) -> ( Base ` c ) = B ) |
| 13 | simpr | |- ( ( c = C /\ d = D ) -> d = D ) |
|
| 14 | 13 | fveq2d | |- ( ( c = C /\ d = D ) -> ( Hom ` d ) = ( Hom ` D ) ) |
| 15 | 14 2 | eqtr4di | |- ( ( c = C /\ d = D ) -> ( Hom ` d ) = J ) |
| 16 | 15 | oveqd | |- ( ( c = C /\ d = D ) -> ( ( f ` x ) ( Hom ` d ) ( f ` y ) ) = ( ( f ` x ) J ( f ` y ) ) ) |
| 17 | 16 | eqeq2d | |- ( ( c = C /\ d = D ) -> ( ran ( x g y ) = ( ( f ` x ) ( Hom ` d ) ( f ` y ) ) <-> ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) ) |
| 18 | 12 17 | raleqbidv | |- ( ( c = C /\ d = D ) -> ( A. y e. ( Base ` c ) ran ( x g y ) = ( ( f ` x ) ( Hom ` d ) ( f ` y ) ) <-> A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) ) |
| 19 | 12 18 | raleqbidv | |- ( ( c = C /\ d = D ) -> ( A. x e. ( Base ` c ) A. y e. ( Base ` c ) ran ( x g y ) = ( ( f ` x ) ( Hom ` d ) ( f ` y ) ) <-> A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) ) |
| 20 | 9 19 | anbi12d | |- ( ( c = C /\ d = D ) -> ( ( f ( c Func d ) g /\ A. x e. ( Base ` c ) A. y e. ( Base ` c ) ran ( x g y ) = ( ( f ` x ) ( Hom ` d ) ( f ` y ) ) ) <-> ( f ( C Func D ) g /\ A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) ) ) |
| 21 | 20 | opabbidv | |- ( ( c = C /\ d = D ) -> { <. f , g >. | ( f ( c Func d ) g /\ A. x e. ( Base ` c ) A. y e. ( Base ` c ) ran ( x g y ) = ( ( f ` x ) ( Hom ` d ) ( f ` y ) ) ) } = { <. f , g >. | ( f ( C Func D ) g /\ A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) } ) |
| 22 | df-full | |- Full = ( c e. Cat , d e. Cat |-> { <. f , g >. | ( f ( c Func d ) g /\ A. x e. ( Base ` c ) A. y e. ( Base ` c ) ran ( x g y ) = ( ( f ` x ) ( Hom ` d ) ( f ` y ) ) ) } ) |
|
| 23 | ovex | |- ( C Func D ) e. _V |
|
| 24 | simpl | |- ( ( f ( C Func D ) g /\ A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) -> f ( C Func D ) g ) |
|
| 25 | 24 | ssopab2i | |- { <. f , g >. | ( f ( C Func D ) g /\ A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) } C_ { <. f , g >. | f ( C Func D ) g } |
| 26 | opabss | |- { <. f , g >. | f ( C Func D ) g } C_ ( C Func D ) |
|
| 27 | 25 26 | sstri | |- { <. f , g >. | ( f ( C Func D ) g /\ A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) } C_ ( C Func D ) |
| 28 | 23 27 | ssexi | |- { <. f , g >. | ( f ( C Func D ) g /\ A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) } e. _V |
| 29 | 21 22 28 | ovmpoa | |- ( ( C e. Cat /\ D e. Cat ) -> ( C Full D ) = { <. f , g >. | ( f ( C Func D ) g /\ A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) } ) |
| 30 | 7 29 | syl | |- ( F ( C Func D ) G -> ( C Full D ) = { <. f , g >. | ( f ( C Func D ) g /\ A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) } ) |
| 31 | 30 | breqd | |- ( F ( C Func D ) G -> ( F ( C Full D ) G <-> F { <. f , g >. | ( f ( C Func D ) g /\ A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) } G ) ) |
| 32 | relfunc | |- Rel ( C Func D ) |
|
| 33 | 32 | brrelex12i | |- ( F ( C Func D ) G -> ( F e. _V /\ G e. _V ) ) |
| 34 | breq12 | |- ( ( f = F /\ g = G ) -> ( f ( C Func D ) g <-> F ( C Func D ) G ) ) |
|
| 35 | simpr | |- ( ( f = F /\ g = G ) -> g = G ) |
|
| 36 | 35 | oveqd | |- ( ( f = F /\ g = G ) -> ( x g y ) = ( x G y ) ) |
| 37 | 36 | rneqd | |- ( ( f = F /\ g = G ) -> ran ( x g y ) = ran ( x G y ) ) |
| 38 | simpl | |- ( ( f = F /\ g = G ) -> f = F ) |
|
| 39 | 38 | fveq1d | |- ( ( f = F /\ g = G ) -> ( f ` x ) = ( F ` x ) ) |
| 40 | 38 | fveq1d | |- ( ( f = F /\ g = G ) -> ( f ` y ) = ( F ` y ) ) |
| 41 | 39 40 | oveq12d | |- ( ( f = F /\ g = G ) -> ( ( f ` x ) J ( f ` y ) ) = ( ( F ` x ) J ( F ` y ) ) ) |
| 42 | 37 41 | eqeq12d | |- ( ( f = F /\ g = G ) -> ( ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) <-> ran ( x G y ) = ( ( F ` x ) J ( F ` y ) ) ) ) |
| 43 | 42 | 2ralbidv | |- ( ( f = F /\ g = G ) -> ( A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) <-> A. x e. B A. y e. B ran ( x G y ) = ( ( F ` x ) J ( F ` y ) ) ) ) |
| 44 | 34 43 | anbi12d | |- ( ( f = F /\ g = G ) -> ( ( f ( C Func D ) g /\ A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) <-> ( F ( C Func D ) G /\ A. x e. B A. y e. B ran ( x G y ) = ( ( F ` x ) J ( F ` y ) ) ) ) ) |
| 45 | eqid | |- { <. f , g >. | ( f ( C Func D ) g /\ A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) } = { <. f , g >. | ( f ( C Func D ) g /\ A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) } |
|
| 46 | 44 45 | brabga | |- ( ( F e. _V /\ G e. _V ) -> ( F { <. f , g >. | ( f ( C Func D ) g /\ A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) } G <-> ( F ( C Func D ) G /\ A. x e. B A. y e. B ran ( x G y ) = ( ( F ` x ) J ( F ` y ) ) ) ) ) |
| 47 | 33 46 | syl | |- ( F ( C Func D ) G -> ( F { <. f , g >. | ( f ( C Func D ) g /\ A. x e. B A. y e. B ran ( x g y ) = ( ( f ` x ) J ( f ` y ) ) ) } G <-> ( F ( C Func D ) G /\ A. x e. B A. y e. B ran ( x G y ) = ( ( F ` x ) J ( F ` y ) ) ) ) ) |
| 48 | 31 47 | bitrd | |- ( F ( C Func D ) G -> ( F ( C Full D ) G <-> ( F ( C Func D ) G /\ A. x e. B A. y e. B ran ( x G y ) = ( ( F ` x ) J ( F ` y ) ) ) ) ) |
| 49 | 48 | bianabs | |- ( F ( C Func D ) G -> ( F ( C Full D ) G <-> A. x e. B A. y e. B ran ( x G y ) = ( ( F ` x ) J ( F ` y ) ) ) ) |
| 50 | 4 49 | biadanii | |- ( F ( C Full D ) G <-> ( F ( C Func D ) G /\ A. x e. B A. y e. B ran ( x G y ) = ( ( F ` x ) J ( F ` y ) ) ) ) |