Metamath Proof Explorer


Theorem idfucl

Description: The identity functor is a functor. Example 3.20(1) of Adamek p. 30. (Contributed by Mario Carneiro, 3-Jan-2017)

Ref Expression
Hypothesis idfucl.i ⊢ I = id func ⁡ C
Assertion idfucl ⊢ C ∈ Cat → I ∈ C Func C

Proof

Step Hyp Ref Expression
1 idfucl.i ⊢ I = id func ⁡ C
2 eqid ⊢ Base C = Base C
3 id ⊢ C ∈ Cat → C ∈ Cat
4 eqid ⊢ Hom ⁡ C = Hom ⁡ C
5 1 2 3 4 idfuval ⊢ C ∈ Cat → I = I ↾ Base C z ∈ Base C × Base C ⟼ I ↾ Hom ⁡ C ⁡ z
6 5 fveq2d ⊢ C ∈ Cat → 2 nd ⁡ I = 2 nd ⁡ I ↾ Base C z ∈ Base C × Base C ⟼ I ↾ Hom ⁡ C ⁡ z
7 fvex ⊢ Base C ∈ V
8 resiexg ⊢ Base C ∈ V → I ↾ Base C ∈ V
9 7 8 ax-mp ⊢ I ↾ Base C ∈ V
10 7 7 xpex ⊢ Base C × Base C ∈ V
11 10 mptex ⊢ z ∈ Base C × Base C ⟼ I ↾ Hom ⁡ C ⁡ z ∈ V
12 9 11 op2nd ⊢ 2 nd ⁡ I ↾ Base C z ∈ Base C × Base C ⟼ I ↾ Hom ⁡ C ⁡ z = z ∈ Base C × Base C ⟼ I ↾ Hom ⁡ C ⁡ z
13 6 12 eqtrdi ⊢ C ∈ Cat → 2 nd ⁡ I = z ∈ Base C × Base C ⟼ I ↾ Hom ⁡ C ⁡ z
14 13 opeq2d ⊢ C ∈ Cat → I ↾ Base C 2 nd ⁡ I = I ↾ Base C z ∈ Base C × Base C ⟼ I ↾ Hom ⁡ C ⁡ z
15 5 14 eqtr4d ⊢ C ∈ Cat → I = I ↾ Base C 2 nd ⁡ I
16 f1oi ⊢ I ↾ Base C : Base C ⟶ 1-1 onto Base C
17 f1of ⊢ I ↾ Base C : Base C ⟶ 1-1 onto Base C → I ↾ Base C : Base C ⟶ Base C
18 16 17 mp1i ⊢ C ∈ Cat → I ↾ Base C : Base C ⟶ Base C
19 f1oi ⊢ I ↾ Hom ⁡ C ⁡ z : Hom ⁡ C ⁡ z ⟶ 1-1 onto Hom ⁡ C ⁡ z
20 f1of ⊢ I ↾ Hom ⁡ C ⁡ z : Hom ⁡ C ⁡ z ⟶ 1-1 onto Hom ⁡ C ⁡ z → I ↾ Hom ⁡ C ⁡ z : Hom ⁡ C ⁡ z ⟶ Hom ⁡ C ⁡ z
21 19 20 ax-mp ⊢ I ↾ Hom ⁡ C ⁡ z : Hom ⁡ C ⁡ z ⟶ Hom ⁡ C ⁡ z
22 fvex ⊢ Hom ⁡ C ⁡ z ∈ V
23 22 22 elmap ⊢ I ↾ Hom ⁡ C ⁡ z ∈ Hom ⁡ C ⁡ z Hom ⁡ C ⁡ z ↔ I ↾ Hom ⁡ C ⁡ z : Hom ⁡ C ⁡ z ⟶ Hom ⁡ C ⁡ z
24 21 23 mpbir ⊢ I ↾ Hom ⁡ C ⁡ z ∈ Hom ⁡ C ⁡ z Hom ⁡ C ⁡ z
25 xp1st ⊢ z ∈ Base C × Base C → 1 st ⁡ z ∈ Base C
26 25 adantl ⊢ C ∈ Cat ∧ z ∈ Base C × Base C → 1 st ⁡ z ∈ Base C
27 fvresi ⊢ 1 st ⁡ z ∈ Base C → I ↾ Base C ⁡ 1 st ⁡ z = 1 st ⁡ z
28 26 27 syl ⊢ C ∈ Cat ∧ z ∈ Base C × Base C → I ↾ Base C ⁡ 1 st ⁡ z = 1 st ⁡ z
29 xp2nd ⊢ z ∈ Base C × Base C → 2 nd ⁡ z ∈ Base C
30 29 adantl ⊢ C ∈ Cat ∧ z ∈ Base C × Base C → 2 nd ⁡ z ∈ Base C
31 fvresi ⊢ 2 nd ⁡ z ∈ Base C → I ↾ Base C ⁡ 2 nd ⁡ z = 2 nd ⁡ z
32 30 31 syl ⊢ C ∈ Cat ∧ z ∈ Base C × Base C → I ↾ Base C ⁡ 2 nd ⁡ z = 2 nd ⁡ z
33 28 32 oveq12d ⊢ C ∈ Cat ∧ z ∈ Base C × Base C → I ↾ Base C ⁡ 1 st ⁡ z Hom ⁡ C I ↾ Base C ⁡ 2 nd ⁡ z = 1 st ⁡ z Hom ⁡ C 2 nd ⁡ z
34 df-ov ⊢ 1 st ⁡ z Hom ⁡ C 2 nd ⁡ z = Hom ⁡ C ⁡ 1 st ⁡ z 2 nd ⁡ z
35 33 34 eqtrdi ⊢ C ∈ Cat ∧ z ∈ Base C × Base C → I ↾ Base C ⁡ 1 st ⁡ z Hom ⁡ C I ↾ Base C ⁡ 2 nd ⁡ z = Hom ⁡ C ⁡ 1 st ⁡ z 2 nd ⁡ z
36 1st2nd2 ⊢ z ∈ Base C × Base C → z = 1 st ⁡ z 2 nd ⁡ z
37 36 adantl ⊢ C ∈ Cat ∧ z ∈ Base C × Base C → z = 1 st ⁡ z 2 nd ⁡ z
38 37 fveq2d ⊢ C ∈ Cat ∧ z ∈ Base C × Base C → Hom ⁡ C ⁡ z = Hom ⁡ C ⁡ 1 st ⁡ z 2 nd ⁡ z
39 35 38 eqtr4d ⊢ C ∈ Cat ∧ z ∈ Base C × Base C → I ↾ Base C ⁡ 1 st ⁡ z Hom ⁡ C I ↾ Base C ⁡ 2 nd ⁡ z = Hom ⁡ C ⁡ z
40 39 oveq1d ⊢ C ∈ Cat ∧ z ∈ Base C × Base C → I ↾ Base C ⁡ 1 st ⁡ z Hom ⁡ C I ↾ Base C ⁡ 2 nd ⁡ z Hom ⁡ C ⁡ z = Hom ⁡ C ⁡ z Hom ⁡ C ⁡ z
41 24 40 eleqtrrid ⊢ C ∈ Cat ∧ z ∈ Base C × Base C → I ↾ Hom ⁡ C ⁡ z ∈ I ↾ Base C ⁡ 1 st ⁡ z Hom ⁡ C I ↾ Base C ⁡ 2 nd ⁡ z Hom ⁡ C ⁡ z
42 41 ralrimiva ⊢ C ∈ Cat → ∀ z ∈ Base C × Base C I ↾ Hom ⁡ C ⁡ z ∈ I ↾ Base C ⁡ 1 st ⁡ z Hom ⁡ C I ↾ Base C ⁡ 2 nd ⁡ z Hom ⁡ C ⁡ z
43 mptelixpg ⊢ Base C × Base C ∈ V → z ∈ Base C × Base C ⟼ I ↾ Hom ⁡ C ⁡ z ∈ ⨉ z ∈ Base C × Base C I ↾ Base C ⁡ 1 st ⁡ z Hom ⁡ C I ↾ Base C ⁡ 2 nd ⁡ z Hom ⁡ C ⁡ z ↔ ∀ z ∈ Base C × Base C I ↾ Hom ⁡ C ⁡ z ∈ I ↾ Base C ⁡ 1 st ⁡ z Hom ⁡ C I ↾ Base C ⁡ 2 nd ⁡ z Hom ⁡ C ⁡ z
44 10 43 ax-mp ⊢ z ∈ Base C × Base C ⟼ I ↾ Hom ⁡ C ⁡ z ∈ ⨉ z ∈ Base C × Base C I ↾ Base C ⁡ 1 st ⁡ z Hom ⁡ C I ↾ Base C ⁡ 2 nd ⁡ z Hom ⁡ C ⁡ z ↔ ∀ z ∈ Base C × Base C I ↾ Hom ⁡ C ⁡ z ∈ I ↾ Base C ⁡ 1 st ⁡ z Hom ⁡ C I ↾ Base C ⁡ 2 nd ⁡ z Hom ⁡ C ⁡ z
45 42 44 sylibr ⊢ C ∈ Cat → z ∈ Base C × Base C ⟼ I ↾ Hom ⁡ C ⁡ z ∈ ⨉ z ∈ Base C × Base C I ↾ Base C ⁡ 1 st ⁡ z Hom ⁡ C I ↾ Base C ⁡ 2 nd ⁡ z Hom ⁡ C ⁡ z
46 13 45 eqeltrd ⊢ C ∈ Cat → 2 nd ⁡ I ∈ ⨉ z ∈ Base C × Base C I ↾ Base C ⁡ 1 st ⁡ z Hom ⁡ C I ↾ Base C ⁡ 2 nd ⁡ z Hom ⁡ C ⁡ z
47 eqid ⊢ Id ⁡ C = Id ⁡ C
48 simpl ⊢ C ∈ Cat ∧ x ∈ Base C → C ∈ Cat
49 simpr ⊢ C ∈ Cat ∧ x ∈ Base C → x ∈ Base C
50 2 4 47 48 49 catidcl ⊢ C ∈ Cat ∧ x ∈ Base C → Id ⁡ C ⁡ x ∈ x Hom ⁡ C x
51 fvresi ⊢ Id ⁡ C ⁡ x ∈ x Hom ⁡ C x → I ↾ x Hom ⁡ C x ⁡ Id ⁡ C ⁡ x = Id ⁡ C ⁡ x
52 50 51 syl ⊢ C ∈ Cat ∧ x ∈ Base C → I ↾ x Hom ⁡ C x ⁡ Id ⁡ C ⁡ x = Id ⁡ C ⁡ x
53 1 2 48 4 49 49 idfu2nd ⊢ C ∈ Cat ∧ x ∈ Base C → x 2 nd ⁡ I x = I ↾ x Hom ⁡ C x
54 53 fveq1d ⊢ C ∈ Cat ∧ x ∈ Base C → x 2 nd ⁡ I x ⁡ Id ⁡ C ⁡ x = I ↾ x Hom ⁡ C x ⁡ Id ⁡ C ⁡ x
55 fvresi ⊢ x ∈ Base C → I ↾ Base C ⁡ x = x
56 55 adantl ⊢ C ∈ Cat ∧ x ∈ Base C → I ↾ Base C ⁡ x = x
57 56 fveq2d ⊢ C ∈ Cat ∧ x ∈ Base C → Id ⁡ C ⁡ I ↾ Base C ⁡ x = Id ⁡ C ⁡ x
58 52 54 57 3eqtr4d ⊢ C ∈ Cat ∧ x ∈ Base C → x 2 nd ⁡ I x ⁡ Id ⁡ C ⁡ x = Id ⁡ C ⁡ I ↾ Base C ⁡ x
59 eqid ⊢ comp ⁡ C = comp ⁡ C
60 48 ad2antrr ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → C ∈ Cat
61 49 ad2antrr ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → x ∈ Base C
62 simplrl ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → y ∈ Base C
63 simplrr ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → z ∈ Base C
64 simprl ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → f ∈ x Hom ⁡ C y
65 simprr ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → g ∈ y Hom ⁡ C z
66 2 4 59 60 61 62 63 64 65 catcocl ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → g x y comp ⁡ C z f ∈ x Hom ⁡ C z
67 fvresi ⊢ g x y comp ⁡ C z f ∈ x Hom ⁡ C z → I ↾ x Hom ⁡ C z ⁡ g x y comp ⁡ C z f = g x y comp ⁡ C z f
68 66 67 syl ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → I ↾ x Hom ⁡ C z ⁡ g x y comp ⁡ C z f = g x y comp ⁡ C z f
69 1 2 60 4 61 63 idfu2nd ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → x 2 nd ⁡ I z = I ↾ x Hom ⁡ C z
70 69 fveq1d ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → x 2 nd ⁡ I z ⁡ g x y comp ⁡ C z f = I ↾ x Hom ⁡ C z ⁡ g x y comp ⁡ C z f
71 61 55 syl ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → I ↾ Base C ⁡ x = x
72 fvresi ⊢ y ∈ Base C → I ↾ Base C ⁡ y = y
73 62 72 syl ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → I ↾ Base C ⁡ y = y
74 71 73 opeq12d ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → I ↾ Base C ⁡ x I ↾ Base C ⁡ y = x y
75 fvresi ⊢ z ∈ Base C → I ↾ Base C ⁡ z = z
76 63 75 syl ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → I ↾ Base C ⁡ z = z
77 74 76 oveq12d ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → I ↾ Base C ⁡ x I ↾ Base C ⁡ y comp ⁡ C I ↾ Base C ⁡ z = x y comp ⁡ C z
78 1 2 60 4 62 63 65 idfu2 ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → y 2 nd ⁡ I z ⁡ g = g
79 1 2 60 4 61 62 64 idfu2 ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → x 2 nd ⁡ I y ⁡ f = f
80 77 78 79 oveq123d ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → y 2 nd ⁡ I z ⁡ g I ↾ Base C ⁡ x I ↾ Base C ⁡ y comp ⁡ C I ↾ Base C ⁡ z x 2 nd ⁡ I y ⁡ f = g x y comp ⁡ C z f
81 68 70 80 3eqtr4d ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C ∧ f ∈ x Hom ⁡ C y ∧ g ∈ y Hom ⁡ C z → x 2 nd ⁡ I z ⁡ g x y comp ⁡ C z f = y 2 nd ⁡ I z ⁡ g I ↾ Base C ⁡ x I ↾ Base C ⁡ y comp ⁡ C I ↾ Base C ⁡ z x 2 nd ⁡ I y ⁡ f
82 81 ralrimivva ⊢ C ∈ Cat ∧ x ∈ Base C ∧ y ∈ Base C ∧ z ∈ Base C → ∀ f ∈ x Hom ⁡ C y ∀ g ∈ y Hom ⁡ C z x 2 nd ⁡ I z ⁡ g x y comp ⁡ C z f = y 2 nd ⁡ I z ⁡ g I ↾ Base C ⁡ x I ↾ Base C ⁡ y comp ⁡ C I ↾ Base C ⁡ z x 2 nd ⁡ I y ⁡ f
83 82 ralrimivva ⊢ C ∈ Cat ∧ x ∈ Base C → ∀ y ∈ Base C ∀ z ∈ Base C ∀ f ∈ x Hom ⁡ C y ∀ g ∈ y Hom ⁡ C z x 2 nd ⁡ I z ⁡ g x y comp ⁡ C z f = y 2 nd ⁡ I z ⁡ g I ↾ Base C ⁡ x I ↾ Base C ⁡ y comp ⁡ C I ↾ Base C ⁡ z x 2 nd ⁡ I y ⁡ f
84 58 83 jca ⊢ C ∈ Cat ∧ x ∈ Base C → x 2 nd ⁡ I x ⁡ Id ⁡ C ⁡ x = Id ⁡ C ⁡ I ↾ Base C ⁡ x ∧ ∀ y ∈ Base C ∀ z ∈ Base C ∀ f ∈ x Hom ⁡ C y ∀ g ∈ y Hom ⁡ C z x 2 nd ⁡ I z ⁡ g x y comp ⁡ C z f = y 2 nd ⁡ I z ⁡ g I ↾ Base C ⁡ x I ↾ Base C ⁡ y comp ⁡ C I ↾ Base C ⁡ z x 2 nd ⁡ I y ⁡ f
85 84 ralrimiva ⊢ C ∈ Cat → ∀ x ∈ Base C x 2 nd ⁡ I x ⁡ Id ⁡ C ⁡ x = Id ⁡ C ⁡ I ↾ Base C ⁡ x ∧ ∀ y ∈ Base C ∀ z ∈ Base C ∀ f ∈ x Hom ⁡ C y ∀ g ∈ y Hom ⁡ C z x 2 nd ⁡ I z ⁡ g x y comp ⁡ C z f = y 2 nd ⁡ I z ⁡ g I ↾ Base C ⁡ x I ↾ Base C ⁡ y comp ⁡ C I ↾ Base C ⁡ z x 2 nd ⁡ I y ⁡ f
86 2 2 4 4 47 47 59 59 3 3 isfunc ⊢ C ∈ Cat → I ↾ Base C C Func C 2 nd ⁡ I ↔ I ↾ Base C : Base C ⟶ Base C ∧ 2 nd ⁡ I ∈ ⨉ z ∈ Base C × Base C I ↾ Base C ⁡ 1 st ⁡ z Hom ⁡ C I ↾ Base C ⁡ 2 nd ⁡ z Hom ⁡ C ⁡ z ∧ ∀ x ∈ Base C x 2 nd ⁡ I x ⁡ Id ⁡ C ⁡ x = Id ⁡ C ⁡ I ↾ Base C ⁡ x ∧ ∀ y ∈ Base C ∀ z ∈ Base C ∀ f ∈ x Hom ⁡ C y ∀ g ∈ y Hom ⁡ C z x 2 nd ⁡ I z ⁡ g x y comp ⁡ C z f = y 2 nd ⁡ I z ⁡ g I ↾ Base C ⁡ x I ↾ Base C ⁡ y comp ⁡ C I ↾ Base C ⁡ z x 2 nd ⁡ I y ⁡ f
87 18 46 85 86 mpbir3and ⊢ C ∈ Cat → I ↾ Base C C Func C 2 nd ⁡ I
88 df-br ⊢ I ↾ Base C C Func C 2 nd ⁡ I ↔ I ↾ Base C 2 nd ⁡ I ∈ C Func C
89 87 88 sylib ⊢ C ∈ Cat → I ↾ Base C 2 nd ⁡ I ∈ C Func C
90 15 89 eqeltrd ⊢ C ∈ Cat → I ∈ C Func C