Metamath Proof Explorer


Theorem resscat

Description: A category restricted to a smaller set of objects is a category. (Contributed by Mario Carneiro, 6-Jan-2017)

Ref Expression
Assertion resscat
|- ( ( C e. Cat /\ S e. V ) -> ( C |`s S ) e. Cat )

Proof

Step Hyp Ref Expression
1 eqid
 |-  ( Base ` C ) = ( Base ` C )
2 1 ressinbas
 |-  ( S e. V -> ( C |`s S ) = ( C |`s ( S i^i ( Base ` C ) ) ) )
3 2 adantl
 |-  ( ( C e. Cat /\ S e. V ) -> ( C |`s S ) = ( C |`s ( S i^i ( Base ` C ) ) ) )
4 eqid
 |-  ( C |`cat ( ( Homf ` C ) |` ( ( S i^i ( Base ` C ) ) X. ( S i^i ( Base ` C ) ) ) ) ) = ( C |`cat ( ( Homf ` C ) |` ( ( S i^i ( Base ` C ) ) X. ( S i^i ( Base ` C ) ) ) ) )
5 eqid
 |-  ( Homf ` C ) = ( Homf ` C )
6 simpl
 |-  ( ( C e. Cat /\ S e. V ) -> C e. Cat )
7 inss2
 |-  ( S i^i ( Base ` C ) ) C_ ( Base ` C )
8 7 a1i
 |-  ( ( C e. Cat /\ S e. V ) -> ( S i^i ( Base ` C ) ) C_ ( Base ` C ) )
9 1 5 6 8 fullsubc
 |-  ( ( C e. Cat /\ S e. V ) -> ( ( Homf ` C ) |` ( ( S i^i ( Base ` C ) ) X. ( S i^i ( Base ` C ) ) ) ) e. ( Subcat ` C ) )
10 4 9 subccat
 |-  ( ( C e. Cat /\ S e. V ) -> ( C |`cat ( ( Homf ` C ) |` ( ( S i^i ( Base ` C ) ) X. ( S i^i ( Base ` C ) ) ) ) ) e. Cat )
11 eqid
 |-  ( C |`s ( S i^i ( Base ` C ) ) ) = ( C |`s ( S i^i ( Base ` C ) ) )
12 1 5 6 8 11 4 fullresc
 |-  ( ( C e. Cat /\ S e. V ) -> ( ( Homf ` ( C |`s ( S i^i ( Base ` C ) ) ) ) = ( Homf ` ( C |`cat ( ( Homf ` C ) |` ( ( S i^i ( Base ` C ) ) X. ( S i^i ( Base ` C ) ) ) ) ) ) /\ ( comf ` ( C |`s ( S i^i ( Base ` C ) ) ) ) = ( comf ` ( C |`cat ( ( Homf ` C ) |` ( ( S i^i ( Base ` C ) ) X. ( S i^i ( Base ` C ) ) ) ) ) ) ) )
13 12 simpld
 |-  ( ( C e. Cat /\ S e. V ) -> ( Homf ` ( C |`s ( S i^i ( Base ` C ) ) ) ) = ( Homf ` ( C |`cat ( ( Homf ` C ) |` ( ( S i^i ( Base ` C ) ) X. ( S i^i ( Base ` C ) ) ) ) ) ) )
14 12 simprd
 |-  ( ( C e. Cat /\ S e. V ) -> ( comf ` ( C |`s ( S i^i ( Base ` C ) ) ) ) = ( comf ` ( C |`cat ( ( Homf ` C ) |` ( ( S i^i ( Base ` C ) ) X. ( S i^i ( Base ` C ) ) ) ) ) ) )
15 ovexd
 |-  ( ( C e. Cat /\ S e. V ) -> ( C |`s ( S i^i ( Base ` C ) ) ) e. _V )
16 13 14 15 10 catpropd
 |-  ( ( C e. Cat /\ S e. V ) -> ( ( C |`s ( S i^i ( Base ` C ) ) ) e. Cat <-> ( C |`cat ( ( Homf ` C ) |` ( ( S i^i ( Base ` C ) ) X. ( S i^i ( Base ` C ) ) ) ) ) e. Cat ) )
17 10 16 mpbird
 |-  ( ( C e. Cat /\ S e. V ) -> ( C |`s ( S i^i ( Base ` C ) ) ) e. Cat )
18 3 17 eqeltrd
 |-  ( ( C e. Cat /\ S e. V ) -> ( C |`s S ) e. Cat )