Metamath Proof Explorer


Theorem idffth

Description: The identity functor is a fully faithful functor. (Contributed by Mario Carneiro, 27-Jan-2017)

Ref Expression
Hypothesis idffth.i 𝐼 = ( idfunc𝐶 )
Assertion idffth ( 𝐶 ∈ Cat → 𝐼 ∈ ( ( 𝐶 Full 𝐶 ) ∩ ( 𝐶 Faith 𝐶 ) ) )

Proof

Step Hyp Ref Expression
1 idffth.i 𝐼 = ( idfunc𝐶 )
2 relfunc Rel ( 𝐶 Func 𝐶 )
3 1 idfucl ( 𝐶 ∈ Cat → 𝐼 ∈ ( 𝐶 Func 𝐶 ) )
4 1st2nd ( ( Rel ( 𝐶 Func 𝐶 ) ∧ 𝐼 ∈ ( 𝐶 Func 𝐶 ) ) → 𝐼 = ⟨ ( 1st𝐼 ) , ( 2nd𝐼 ) ⟩ )
5 2 3 4 sylancr ( 𝐶 ∈ Cat → 𝐼 = ⟨ ( 1st𝐼 ) , ( 2nd𝐼 ) ⟩ )
6 5 3 eqeltrrd ( 𝐶 ∈ Cat → ⟨ ( 1st𝐼 ) , ( 2nd𝐼 ) ⟩ ∈ ( 𝐶 Func 𝐶 ) )
7 df-br ( ( 1st𝐼 ) ( 𝐶 Func 𝐶 ) ( 2nd𝐼 ) ↔ ⟨ ( 1st𝐼 ) , ( 2nd𝐼 ) ⟩ ∈ ( 𝐶 Func 𝐶 ) )
8 6 7 sylibr ( 𝐶 ∈ Cat → ( 1st𝐼 ) ( 𝐶 Func 𝐶 ) ( 2nd𝐼 ) )
9 f1oi ( I ↾ ( 𝑥 ( Hom ‘ 𝐶 ) 𝑦 ) ) : ( 𝑥 ( Hom ‘ 𝐶 ) 𝑦 ) –1-1-onto→ ( 𝑥 ( Hom ‘ 𝐶 ) 𝑦 )
10 eqid ( Base ‘ 𝐶 ) = ( Base ‘ 𝐶 )
11 simpl ( ( 𝐶 ∈ Cat ∧ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ∧ 𝑦 ∈ ( Base ‘ 𝐶 ) ) ) → 𝐶 ∈ Cat )
12 eqid ( Hom ‘ 𝐶 ) = ( Hom ‘ 𝐶 )
13 simprl ( ( 𝐶 ∈ Cat ∧ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ∧ 𝑦 ∈ ( Base ‘ 𝐶 ) ) ) → 𝑥 ∈ ( Base ‘ 𝐶 ) )
14 simprr ( ( 𝐶 ∈ Cat ∧ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ∧ 𝑦 ∈ ( Base ‘ 𝐶 ) ) ) → 𝑦 ∈ ( Base ‘ 𝐶 ) )
15 1 10 11 12 13 14 idfu2nd ( ( 𝐶 ∈ Cat ∧ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ∧ 𝑦 ∈ ( Base ‘ 𝐶 ) ) ) → ( 𝑥 ( 2nd𝐼 ) 𝑦 ) = ( I ↾ ( 𝑥 ( Hom ‘ 𝐶 ) 𝑦 ) ) )
16 eqidd ( ( 𝐶 ∈ Cat ∧ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ∧ 𝑦 ∈ ( Base ‘ 𝐶 ) ) ) → ( 𝑥 ( Hom ‘ 𝐶 ) 𝑦 ) = ( 𝑥 ( Hom ‘ 𝐶 ) 𝑦 ) )
17 1 10 11 13 idfu1 ( ( 𝐶 ∈ Cat ∧ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ∧ 𝑦 ∈ ( Base ‘ 𝐶 ) ) ) → ( ( 1st𝐼 ) ‘ 𝑥 ) = 𝑥 )
18 1 10 11 14 idfu1 ( ( 𝐶 ∈ Cat ∧ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ∧ 𝑦 ∈ ( Base ‘ 𝐶 ) ) ) → ( ( 1st𝐼 ) ‘ 𝑦 ) = 𝑦 )
19 17 18 oveq12d ( ( 𝐶 ∈ Cat ∧ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ∧ 𝑦 ∈ ( Base ‘ 𝐶 ) ) ) → ( ( ( 1st𝐼 ) ‘ 𝑥 ) ( Hom ‘ 𝐶 ) ( ( 1st𝐼 ) ‘ 𝑦 ) ) = ( 𝑥 ( Hom ‘ 𝐶 ) 𝑦 ) )
20 15 16 19 f1oeq123d ( ( 𝐶 ∈ Cat ∧ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ∧ 𝑦 ∈ ( Base ‘ 𝐶 ) ) ) → ( ( 𝑥 ( 2nd𝐼 ) 𝑦 ) : ( 𝑥 ( Hom ‘ 𝐶 ) 𝑦 ) –1-1-onto→ ( ( ( 1st𝐼 ) ‘ 𝑥 ) ( Hom ‘ 𝐶 ) ( ( 1st𝐼 ) ‘ 𝑦 ) ) ↔ ( I ↾ ( 𝑥 ( Hom ‘ 𝐶 ) 𝑦 ) ) : ( 𝑥 ( Hom ‘ 𝐶 ) 𝑦 ) –1-1-onto→ ( 𝑥 ( Hom ‘ 𝐶 ) 𝑦 ) ) )
21 9 20 mpbiri ( ( 𝐶 ∈ Cat ∧ ( 𝑥 ∈ ( Base ‘ 𝐶 ) ∧ 𝑦 ∈ ( Base ‘ 𝐶 ) ) ) → ( 𝑥 ( 2nd𝐼 ) 𝑦 ) : ( 𝑥 ( Hom ‘ 𝐶 ) 𝑦 ) –1-1-onto→ ( ( ( 1st𝐼 ) ‘ 𝑥 ) ( Hom ‘ 𝐶 ) ( ( 1st𝐼 ) ‘ 𝑦 ) ) )
22 21 ralrimivva ( 𝐶 ∈ Cat → ∀ 𝑥 ∈ ( Base ‘ 𝐶 ) ∀ 𝑦 ∈ ( Base ‘ 𝐶 ) ( 𝑥 ( 2nd𝐼 ) 𝑦 ) : ( 𝑥 ( Hom ‘ 𝐶 ) 𝑦 ) –1-1-onto→ ( ( ( 1st𝐼 ) ‘ 𝑥 ) ( Hom ‘ 𝐶 ) ( ( 1st𝐼 ) ‘ 𝑦 ) ) )
23 10 12 12 isffth2 ( ( 1st𝐼 ) ( ( 𝐶 Full 𝐶 ) ∩ ( 𝐶 Faith 𝐶 ) ) ( 2nd𝐼 ) ↔ ( ( 1st𝐼 ) ( 𝐶 Func 𝐶 ) ( 2nd𝐼 ) ∧ ∀ 𝑥 ∈ ( Base ‘ 𝐶 ) ∀ 𝑦 ∈ ( Base ‘ 𝐶 ) ( 𝑥 ( 2nd𝐼 ) 𝑦 ) : ( 𝑥 ( Hom ‘ 𝐶 ) 𝑦 ) –1-1-onto→ ( ( ( 1st𝐼 ) ‘ 𝑥 ) ( Hom ‘ 𝐶 ) ( ( 1st𝐼 ) ‘ 𝑦 ) ) ) )
24 8 22 23 sylanbrc ( 𝐶 ∈ Cat → ( 1st𝐼 ) ( ( 𝐶 Full 𝐶 ) ∩ ( 𝐶 Faith 𝐶 ) ) ( 2nd𝐼 ) )
25 df-br ( ( 1st𝐼 ) ( ( 𝐶 Full 𝐶 ) ∩ ( 𝐶 Faith 𝐶 ) ) ( 2nd𝐼 ) ↔ ⟨ ( 1st𝐼 ) , ( 2nd𝐼 ) ⟩ ∈ ( ( 𝐶 Full 𝐶 ) ∩ ( 𝐶 Faith 𝐶 ) ) )
26 24 25 sylib ( 𝐶 ∈ Cat → ⟨ ( 1st𝐼 ) , ( 2nd𝐼 ) ⟩ ∈ ( ( 𝐶 Full 𝐶 ) ∩ ( 𝐶 Faith 𝐶 ) ) )
27 5 26 eqeltrd ( 𝐶 ∈ Cat → 𝐼 ∈ ( ( 𝐶 Full 𝐶 ) ∩ ( 𝐶 Faith 𝐶 ) ) )