Metamath Proof Explorer


Theorem ressffth

Description: The inclusion functor from a full subcategory is a full and faithful functor, see also remark 4.4(2) in Adamek p. 49. (Contributed by Mario Carneiro, 27-Jan-2017)

Ref Expression
Hypotheses ressffth.d 𝐷 = ( 𝐶s 𝑆 )
ressffth.i 𝐼 = ( idfunc𝐷 )
Assertion ressffth ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → 𝐼 ∈ ( ( 𝐷 Full 𝐶 ) ∩ ( 𝐷 Faith 𝐶 ) ) )

Proof

Step Hyp Ref Expression
1 ressffth.d 𝐷 = ( 𝐶s 𝑆 )
2 ressffth.i 𝐼 = ( idfunc𝐷 )
3 relfunc Rel ( 𝐷 Func 𝐷 )
4 resscat ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( 𝐶s 𝑆 ) ∈ Cat )
5 1 4 eqeltrid ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → 𝐷 ∈ Cat )
6 2 idfucl ( 𝐷 ∈ Cat → 𝐼 ∈ ( 𝐷 Func 𝐷 ) )
7 5 6 syl ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → 𝐼 ∈ ( 𝐷 Func 𝐷 ) )
8 1st2nd ( ( Rel ( 𝐷 Func 𝐷 ) ∧ 𝐼 ∈ ( 𝐷 Func 𝐷 ) ) → 𝐼 = ⟨ ( 1st𝐼 ) , ( 2nd𝐼 ) ⟩ )
9 3 7 8 sylancr ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → 𝐼 = ⟨ ( 1st𝐼 ) , ( 2nd𝐼 ) ⟩ )
10 eqidd ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( Homf𝐷 ) = ( Homf𝐷 ) )
11 eqidd ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( compf𝐷 ) = ( compf𝐷 ) )
12 eqid ( Base ‘ 𝐶 ) = ( Base ‘ 𝐶 )
13 12 ressinbas ( 𝑆𝑉 → ( 𝐶s 𝑆 ) = ( 𝐶s ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) )
14 13 adantl ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( 𝐶s 𝑆 ) = ( 𝐶s ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) )
15 1 14 syl5eq ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → 𝐷 = ( 𝐶s ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) )
16 15 fveq2d ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( Homf𝐷 ) = ( Homf ‘ ( 𝐶s ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) )
17 eqid ( Homf𝐶 ) = ( Homf𝐶 )
18 simpl ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → 𝐶 ∈ Cat )
19 inss2 ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ⊆ ( Base ‘ 𝐶 )
20 19 a1i ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ⊆ ( Base ‘ 𝐶 ) )
21 eqid ( 𝐶s ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) = ( 𝐶s ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) )
22 eqid ( 𝐶cat ( ( Homf𝐶 ) ↾ ( ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) × ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) ) = ( 𝐶cat ( ( Homf𝐶 ) ↾ ( ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) × ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) )
23 12 17 18 20 21 22 fullresc ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( ( Homf ‘ ( 𝐶s ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) = ( Homf ‘ ( 𝐶cat ( ( Homf𝐶 ) ↾ ( ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) × ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) ) ) ∧ ( compf ‘ ( 𝐶s ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) = ( compf ‘ ( 𝐶cat ( ( Homf𝐶 ) ↾ ( ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) × ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) ) ) ) )
24 23 simpld ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( Homf ‘ ( 𝐶s ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) = ( Homf ‘ ( 𝐶cat ( ( Homf𝐶 ) ↾ ( ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) × ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) ) ) )
25 16 24 eqtrd ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( Homf𝐷 ) = ( Homf ‘ ( 𝐶cat ( ( Homf𝐶 ) ↾ ( ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) × ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) ) ) )
26 15 fveq2d ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( compf𝐷 ) = ( compf ‘ ( 𝐶s ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) )
27 23 simprd ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( compf ‘ ( 𝐶s ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) = ( compf ‘ ( 𝐶cat ( ( Homf𝐶 ) ↾ ( ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) × ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) ) ) )
28 26 27 eqtrd ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( compf𝐷 ) = ( compf ‘ ( 𝐶cat ( ( Homf𝐶 ) ↾ ( ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) × ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) ) ) )
29 1 ovexi 𝐷 ∈ V
30 29 a1i ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → 𝐷 ∈ V )
31 ovexd ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( 𝐶cat ( ( Homf𝐶 ) ↾ ( ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) × ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) ) ∈ V )
32 10 11 25 28 30 30 30 31 funcpropd ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( 𝐷 Func 𝐷 ) = ( 𝐷 Func ( 𝐶cat ( ( Homf𝐶 ) ↾ ( ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) × ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) ) ) )
33 12 17 18 20 fullsubc ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( ( Homf𝐶 ) ↾ ( ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) × ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) ∈ ( Subcat ‘ 𝐶 ) )
34 funcres2 ( ( ( Homf𝐶 ) ↾ ( ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) × ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) ∈ ( Subcat ‘ 𝐶 ) → ( 𝐷 Func ( 𝐶cat ( ( Homf𝐶 ) ↾ ( ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) × ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) ) ) ⊆ ( 𝐷 Func 𝐶 ) )
35 33 34 syl ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( 𝐷 Func ( 𝐶cat ( ( Homf𝐶 ) ↾ ( ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) × ( 𝑆 ∩ ( Base ‘ 𝐶 ) ) ) ) ) ) ⊆ ( 𝐷 Func 𝐶 ) )
36 32 35 eqsstrd ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( 𝐷 Func 𝐷 ) ⊆ ( 𝐷 Func 𝐶 ) )
37 36 7 sseldd ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → 𝐼 ∈ ( 𝐷 Func 𝐶 ) )
38 9 37 eqeltrrd ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ⟨ ( 1st𝐼 ) , ( 2nd𝐼 ) ⟩ ∈ ( 𝐷 Func 𝐶 ) )
39 df-br ( ( 1st𝐼 ) ( 𝐷 Func 𝐶 ) ( 2nd𝐼 ) ↔ ⟨ ( 1st𝐼 ) , ( 2nd𝐼 ) ⟩ ∈ ( 𝐷 Func 𝐶 ) )
40 38 39 sylibr ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( 1st𝐼 ) ( 𝐷 Func 𝐶 ) ( 2nd𝐼 ) )
41 f1oi ( I ↾ ( 𝑥 ( Hom ‘ 𝐷 ) 𝑦 ) ) : ( 𝑥 ( Hom ‘ 𝐷 ) 𝑦 ) –1-1-onto→ ( 𝑥 ( Hom ‘ 𝐷 ) 𝑦 )
42 eqid ( Base ‘ 𝐷 ) = ( Base ‘ 𝐷 )
43 5 adantr ( ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) ∧ ( 𝑥 ∈ ( Base ‘ 𝐷 ) ∧ 𝑦 ∈ ( Base ‘ 𝐷 ) ) ) → 𝐷 ∈ Cat )
44 eqid ( Hom ‘ 𝐷 ) = ( Hom ‘ 𝐷 )
45 simprl ( ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) ∧ ( 𝑥 ∈ ( Base ‘ 𝐷 ) ∧ 𝑦 ∈ ( Base ‘ 𝐷 ) ) ) → 𝑥 ∈ ( Base ‘ 𝐷 ) )
46 simprr ( ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) ∧ ( 𝑥 ∈ ( Base ‘ 𝐷 ) ∧ 𝑦 ∈ ( Base ‘ 𝐷 ) ) ) → 𝑦 ∈ ( Base ‘ 𝐷 ) )
47 2 42 43 44 45 46 idfu2nd ( ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) ∧ ( 𝑥 ∈ ( Base ‘ 𝐷 ) ∧ 𝑦 ∈ ( Base ‘ 𝐷 ) ) ) → ( 𝑥 ( 2nd𝐼 ) 𝑦 ) = ( I ↾ ( 𝑥 ( Hom ‘ 𝐷 ) 𝑦 ) ) )
48 eqidd ( ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) ∧ ( 𝑥 ∈ ( Base ‘ 𝐷 ) ∧ 𝑦 ∈ ( Base ‘ 𝐷 ) ) ) → ( 𝑥 ( Hom ‘ 𝐷 ) 𝑦 ) = ( 𝑥 ( Hom ‘ 𝐷 ) 𝑦 ) )
49 eqid ( Hom ‘ 𝐶 ) = ( Hom ‘ 𝐶 )
50 1 49 resshom ( 𝑆𝑉 → ( Hom ‘ 𝐶 ) = ( Hom ‘ 𝐷 ) )
51 50 ad2antlr ( ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) ∧ ( 𝑥 ∈ ( Base ‘ 𝐷 ) ∧ 𝑦 ∈ ( Base ‘ 𝐷 ) ) ) → ( Hom ‘ 𝐶 ) = ( Hom ‘ 𝐷 ) )
52 2 42 43 45 idfu1 ( ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) ∧ ( 𝑥 ∈ ( Base ‘ 𝐷 ) ∧ 𝑦 ∈ ( Base ‘ 𝐷 ) ) ) → ( ( 1st𝐼 ) ‘ 𝑥 ) = 𝑥 )
53 2 42 43 46 idfu1 ( ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) ∧ ( 𝑥 ∈ ( Base ‘ 𝐷 ) ∧ 𝑦 ∈ ( Base ‘ 𝐷 ) ) ) → ( ( 1st𝐼 ) ‘ 𝑦 ) = 𝑦 )
54 51 52 53 oveq123d ( ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) ∧ ( 𝑥 ∈ ( Base ‘ 𝐷 ) ∧ 𝑦 ∈ ( Base ‘ 𝐷 ) ) ) → ( ( ( 1st𝐼 ) ‘ 𝑥 ) ( Hom ‘ 𝐶 ) ( ( 1st𝐼 ) ‘ 𝑦 ) ) = ( 𝑥 ( Hom ‘ 𝐷 ) 𝑦 ) )
55 47 48 54 f1oeq123d ( ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) ∧ ( 𝑥 ∈ ( Base ‘ 𝐷 ) ∧ 𝑦 ∈ ( Base ‘ 𝐷 ) ) ) → ( ( 𝑥 ( 2nd𝐼 ) 𝑦 ) : ( 𝑥 ( Hom ‘ 𝐷 ) 𝑦 ) –1-1-onto→ ( ( ( 1st𝐼 ) ‘ 𝑥 ) ( Hom ‘ 𝐶 ) ( ( 1st𝐼 ) ‘ 𝑦 ) ) ↔ ( I ↾ ( 𝑥 ( Hom ‘ 𝐷 ) 𝑦 ) ) : ( 𝑥 ( Hom ‘ 𝐷 ) 𝑦 ) –1-1-onto→ ( 𝑥 ( Hom ‘ 𝐷 ) 𝑦 ) ) )
56 41 55 mpbiri ( ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) ∧ ( 𝑥 ∈ ( Base ‘ 𝐷 ) ∧ 𝑦 ∈ ( Base ‘ 𝐷 ) ) ) → ( 𝑥 ( 2nd𝐼 ) 𝑦 ) : ( 𝑥 ( Hom ‘ 𝐷 ) 𝑦 ) –1-1-onto→ ( ( ( 1st𝐼 ) ‘ 𝑥 ) ( Hom ‘ 𝐶 ) ( ( 1st𝐼 ) ‘ 𝑦 ) ) )
57 56 ralrimivva ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ∀ 𝑥 ∈ ( Base ‘ 𝐷 ) ∀ 𝑦 ∈ ( Base ‘ 𝐷 ) ( 𝑥 ( 2nd𝐼 ) 𝑦 ) : ( 𝑥 ( Hom ‘ 𝐷 ) 𝑦 ) –1-1-onto→ ( ( ( 1st𝐼 ) ‘ 𝑥 ) ( Hom ‘ 𝐶 ) ( ( 1st𝐼 ) ‘ 𝑦 ) ) )
58 42 44 49 isffth2 ( ( 1st𝐼 ) ( ( 𝐷 Full 𝐶 ) ∩ ( 𝐷 Faith 𝐶 ) ) ( 2nd𝐼 ) ↔ ( ( 1st𝐼 ) ( 𝐷 Func 𝐶 ) ( 2nd𝐼 ) ∧ ∀ 𝑥 ∈ ( Base ‘ 𝐷 ) ∀ 𝑦 ∈ ( Base ‘ 𝐷 ) ( 𝑥 ( 2nd𝐼 ) 𝑦 ) : ( 𝑥 ( Hom ‘ 𝐷 ) 𝑦 ) –1-1-onto→ ( ( ( 1st𝐼 ) ‘ 𝑥 ) ( Hom ‘ 𝐶 ) ( ( 1st𝐼 ) ‘ 𝑦 ) ) ) )
59 40 57 58 sylanbrc ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ( 1st𝐼 ) ( ( 𝐷 Full 𝐶 ) ∩ ( 𝐷 Faith 𝐶 ) ) ( 2nd𝐼 ) )
60 df-br ( ( 1st𝐼 ) ( ( 𝐷 Full 𝐶 ) ∩ ( 𝐷 Faith 𝐶 ) ) ( 2nd𝐼 ) ↔ ⟨ ( 1st𝐼 ) , ( 2nd𝐼 ) ⟩ ∈ ( ( 𝐷 Full 𝐶 ) ∩ ( 𝐷 Faith 𝐶 ) ) )
61 59 60 sylib ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → ⟨ ( 1st𝐼 ) , ( 2nd𝐼 ) ⟩ ∈ ( ( 𝐷 Full 𝐶 ) ∩ ( 𝐷 Faith 𝐶 ) ) )
62 9 61 eqeltrd ( ( 𝐶 ∈ Cat ∧ 𝑆𝑉 ) → 𝐼 ∈ ( ( 𝐷 Full 𝐶 ) ∩ ( 𝐷 Faith 𝐶 ) ) )