Metamath Proof Explorer


Theorem iscat

Description: The predicate "is a category". (Contributed by Mario Carneiro, 2-Jan-2017)

Ref Expression
Hypotheses iscat.b ⊢ B = Base C
iscat.h ⊢ H = Hom ⁡ C
iscat.o ⊢ · ˙ = comp ⁡ C
Assertion iscat ⊢ C ∈ V → C ∈ Cat ↔ ∀ x ∈ B ∃ g ∈ x H x ∀ y ∈ B ∀ f ∈ y H x g y x · ˙ x f = f ∧ ∀ f ∈ x H y f x x · ˙ y g = f ∧ ∀ y ∈ B ∀ z ∈ B ∀ f ∈ x H y ∀ g ∈ y H z g x y · ˙ z f ∈ x H z ∧ ∀ w ∈ B ∀ k ∈ z H w k y z · ˙ w g x y · ˙ w f = k x z · ˙ w g x y · ˙ z f

Proof

Step Hyp Ref Expression
1 iscat.b ⊢ B = Base C
2 iscat.h ⊢ H = Hom ⁡ C
3 iscat.o ⊢ · ˙ = comp ⁡ C
4 fvexd ⊢ c = C → Base c ∈ V
5 fveq2 ⊢ c = C → Base c = Base C
6 5 1 eqtr4di ⊢ c = C → Base c = B
7 fvexd ⊢ c = C ∧ b = B → Hom ⁡ c ∈ V
8 simpl ⊢ c = C ∧ b = B → c = C
9 8 fveq2d ⊢ c = C ∧ b = B → Hom ⁡ c = Hom ⁡ C
10 9 2 eqtr4di ⊢ c = C ∧ b = B → Hom ⁡ c = H
11 fvexd ⊢ c = C ∧ b = B ∧ h = H → comp ⁡ c ∈ V
12 simpll ⊢ c = C ∧ b = B ∧ h = H → c = C
13 12 fveq2d ⊢ c = C ∧ b = B ∧ h = H → comp ⁡ c = comp ⁡ C
14 13 3 eqtr4di ⊢ c = C ∧ b = B ∧ h = H → comp ⁡ c = · ˙
15 simpllr ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → b = B
16 simplr ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → h = H
17 16 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → x h x = x H x
18 16 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → y h x = y H x
19 simpr ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → o = · ˙
20 19 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → y x o x = y x · ˙ x
21 20 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → g y x o x f = g y x · ˙ x f
22 21 eqeq1d ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → g y x o x f = f ↔ g y x · ˙ x f = f
23 18 22 raleqbidv ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → ∀ f ∈ y h x g y x o x f = f ↔ ∀ f ∈ y H x g y x · ˙ x f = f
24 16 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → x h y = x H y
25 19 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → x x o y = x x · ˙ y
26 25 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → f x x o y g = f x x · ˙ y g
27 26 eqeq1d ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → f x x o y g = f ↔ f x x · ˙ y g = f
28 24 27 raleqbidv ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → ∀ f ∈ x h y f x x o y g = f ↔ ∀ f ∈ x H y f x x · ˙ y g = f
29 23 28 anbi12d ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → ∀ f ∈ y h x g y x o x f = f ∧ ∀ f ∈ x h y f x x o y g = f ↔ ∀ f ∈ y H x g y x · ˙ x f = f ∧ ∀ f ∈ x H y f x x · ˙ y g = f
30 15 29 raleqbidv ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → ∀ y ∈ b ∀ f ∈ y h x g y x o x f = f ∧ ∀ f ∈ x h y f x x o y g = f ↔ ∀ y ∈ B ∀ f ∈ y H x g y x · ˙ x f = f ∧ ∀ f ∈ x H y f x x · ˙ y g = f
31 17 30 rexeqbidv ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → ∃ g ∈ x h x ∀ y ∈ b ∀ f ∈ y h x g y x o x f = f ∧ ∀ f ∈ x h y f x x o y g = f ↔ ∃ g ∈ x H x ∀ y ∈ B ∀ f ∈ y H x g y x · ˙ x f = f ∧ ∀ f ∈ x H y f x x · ˙ y g = f
32 16 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → y h z = y H z
33 19 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → x y o z = x y · ˙ z
34 33 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → g x y o z f = g x y · ˙ z f
35 16 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → x h z = x H z
36 34 35 eleq12d ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → g x y o z f ∈ x h z ↔ g x y · ˙ z f ∈ x H z
37 16 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → z h w = z H w
38 19 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → x y o w = x y · ˙ w
39 19 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → y z o w = y z · ˙ w
40 39 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → k y z o w g = k y z · ˙ w g
41 eqidd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → f = f
42 38 40 41 oveq123d ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → k y z o w g x y o w f = k y z · ˙ w g x y · ˙ w f
43 19 oveqd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → x z o w = x z · ˙ w
44 eqidd ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → k = k
45 43 44 34 oveq123d ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → k x z o w g x y o z f = k x z · ˙ w g x y · ˙ z f
46 42 45 eqeq12d ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → k y z o w g x y o w f = k x z o w g x y o z f ↔ k y z · ˙ w g x y · ˙ w f = k x z · ˙ w g x y · ˙ z f
47 37 46 raleqbidv ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → ∀ k ∈ z h w k y z o w g x y o w f = k x z o w g x y o z f ↔ ∀ k ∈ z H w k y z · ˙ w g x y · ˙ w f = k x z · ˙ w g x y · ˙ z f
48 15 47 raleqbidv ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → ∀ w ∈ b ∀ k ∈ z h w k y z o w g x y o w f = k x z o w g x y o z f ↔ ∀ w ∈ B ∀ k ∈ z H w k y z · ˙ w g x y · ˙ w f = k x z · ˙ w g x y · ˙ z f
49 36 48 anbi12d ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → g x y o z f ∈ x h z ∧ ∀ w ∈ b ∀ k ∈ z h w k y z o w g x y o w f = k x z o w g x y o z f ↔ g x y · ˙ z f ∈ x H z ∧ ∀ w ∈ B ∀ k ∈ z H w k y z · ˙ w g x y · ˙ w f = k x z · ˙ w g x y · ˙ z f
50 32 49 raleqbidv ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → ∀ g ∈ y h z g x y o z f ∈ x h z ∧ ∀ w ∈ b ∀ k ∈ z h w k y z o w g x y o w f = k x z o w g x y o z f ↔ ∀ g ∈ y H z g x y · ˙ z f ∈ x H z ∧ ∀ w ∈ B ∀ k ∈ z H w k y z · ˙ w g x y · ˙ w f = k x z · ˙ w g x y · ˙ z f
51 24 50 raleqbidv ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → ∀ f ∈ x h y ∀ g ∈ y h z g x y o z f ∈ x h z ∧ ∀ w ∈ b ∀ k ∈ z h w k y z o w g x y o w f = k x z o w g x y o z f ↔ ∀ f ∈ x H y ∀ g ∈ y H z g x y · ˙ z f ∈ x H z ∧ ∀ w ∈ B ∀ k ∈ z H w k y z · ˙ w g x y · ˙ w f = k x z · ˙ w g x y · ˙ z f
52 15 51 raleqbidv ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → ∀ z ∈ b ∀ f ∈ x h y ∀ g ∈ y h z g x y o z f ∈ x h z ∧ ∀ w ∈ b ∀ k ∈ z h w k y z o w g x y o w f = k x z o w g x y o z f ↔ ∀ z ∈ B ∀ f ∈ x H y ∀ g ∈ y H z g x y · ˙ z f ∈ x H z ∧ ∀ w ∈ B ∀ k ∈ z H w k y z · ˙ w g x y · ˙ w f = k x z · ˙ w g x y · ˙ z f
53 15 52 raleqbidv ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → ∀ y ∈ b ∀ z ∈ b ∀ f ∈ x h y ∀ g ∈ y h z g x y o z f ∈ x h z ∧ ∀ w ∈ b ∀ k ∈ z h w k y z o w g x y o w f = k x z o w g x y o z f ↔ ∀ y ∈ B ∀ z ∈ B ∀ f ∈ x H y ∀ g ∈ y H z g x y · ˙ z f ∈ x H z ∧ ∀ w ∈ B ∀ k ∈ z H w k y z · ˙ w g x y · ˙ w f = k x z · ˙ w g x y · ˙ z f
54 31 53 anbi12d ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → ∃ g ∈ x h x ∀ y ∈ b ∀ f ∈ y h x g y x o x f = f ∧ ∀ f ∈ x h y f x x o y g = f ∧ ∀ y ∈ b ∀ z ∈ b ∀ f ∈ x h y ∀ g ∈ y h z g x y o z f ∈ x h z ∧ ∀ w ∈ b ∀ k ∈ z h w k y z o w g x y o w f = k x z o w g x y o z f ↔ ∃ g ∈ x H x ∀ y ∈ B ∀ f ∈ y H x g y x · ˙ x f = f ∧ ∀ f ∈ x H y f x x · ˙ y g = f ∧ ∀ y ∈ B ∀ z ∈ B ∀ f ∈ x H y ∀ g ∈ y H z g x y · ˙ z f ∈ x H z ∧ ∀ w ∈ B ∀ k ∈ z H w k y z · ˙ w g x y · ˙ w f = k x z · ˙ w g x y · ˙ z f
55 15 54 raleqbidv ⊢ c = C ∧ b = B ∧ h = H ∧ o = · ˙ → ∀ x ∈ b ∃ g ∈ x h x ∀ y ∈ b ∀ f ∈ y h x g y x o x f = f ∧ ∀ f ∈ x h y f x x o y g = f ∧ ∀ y ∈ b ∀ z ∈ b ∀ f ∈ x h y ∀ g ∈ y h z g x y o z f ∈ x h z ∧ ∀ w ∈ b ∀ k ∈ z h w k y z o w g x y o w f = k x z o w g x y o z f ↔ ∀ x ∈ B ∃ g ∈ x H x ∀ y ∈ B ∀ f ∈ y H x g y x · ˙ x f = f ∧ ∀ f ∈ x H y f x x · ˙ y g = f ∧ ∀ y ∈ B ∀ z ∈ B ∀ f ∈ x H y ∀ g ∈ y H z g x y · ˙ z f ∈ x H z ∧ ∀ w ∈ B ∀ k ∈ z H w k y z · ˙ w g x y · ˙ w f = k x z · ˙ w g x y · ˙ z f
56 11 14 55 sbcied2 ⊢ c = C ∧ b = B ∧ h = H → [˙ comp ⁡ c / o]˙ ∀ x ∈ b ∃ g ∈ x h x ∀ y ∈ b ∀ f ∈ y h x g y x o x f = f ∧ ∀ f ∈ x h y f x x o y g = f ∧ ∀ y ∈ b ∀ z ∈ b ∀ f ∈ x h y ∀ g ∈ y h z g x y o z f ∈ x h z ∧ ∀ w ∈ b ∀ k ∈ z h w k y z o w g x y o w f = k x z o w g x y o z f ↔ ∀ x ∈ B ∃ g ∈ x H x ∀ y ∈ B ∀ f ∈ y H x g y x · ˙ x f = f ∧ ∀ f ∈ x H y f x x · ˙ y g = f ∧ ∀ y ∈ B ∀ z ∈ B ∀ f ∈ x H y ∀ g ∈ y H z g x y · ˙ z f ∈ x H z ∧ ∀ w ∈ B ∀ k ∈ z H w k y z · ˙ w g x y · ˙ w f = k x z · ˙ w g x y · ˙ z f
57 7 10 56 sbcied2 ⊢ c = C ∧ b = B → [˙ Hom ⁡ c / h]˙ [˙ comp ⁡ c / o]˙ ∀ x ∈ b ∃ g ∈ x h x ∀ y ∈ b ∀ f ∈ y h x g y x o x f = f ∧ ∀ f ∈ x h y f x x o y g = f ∧ ∀ y ∈ b ∀ z ∈ b ∀ f ∈ x h y ∀ g ∈ y h z g x y o z f ∈ x h z ∧ ∀ w ∈ b ∀ k ∈ z h w k y z o w g x y o w f = k x z o w g x y o z f ↔ ∀ x ∈ B ∃ g ∈ x H x ∀ y ∈ B ∀ f ∈ y H x g y x · ˙ x f = f ∧ ∀ f ∈ x H y f x x · ˙ y g = f ∧ ∀ y ∈ B ∀ z ∈ B ∀ f ∈ x H y ∀ g ∈ y H z g x y · ˙ z f ∈ x H z ∧ ∀ w ∈ B ∀ k ∈ z H w k y z · ˙ w g x y · ˙ w f = k x z · ˙ w g x y · ˙ z f
58 4 6 57 sbcied2 ⊢ c = C → [˙Base c / b]˙ [˙ Hom ⁡ c / h]˙ [˙ comp ⁡ c / o]˙ ∀ x ∈ b ∃ g ∈ x h x ∀ y ∈ b ∀ f ∈ y h x g y x o x f = f ∧ ∀ f ∈ x h y f x x o y g = f ∧ ∀ y ∈ b ∀ z ∈ b ∀ f ∈ x h y ∀ g ∈ y h z g x y o z f ∈ x h z ∧ ∀ w ∈ b ∀ k ∈ z h w k y z o w g x y o w f = k x z o w g x y o z f ↔ ∀ x ∈ B ∃ g ∈ x H x ∀ y ∈ B ∀ f ∈ y H x g y x · ˙ x f = f ∧ ∀ f ∈ x H y f x x · ˙ y g = f ∧ ∀ y ∈ B ∀ z ∈ B ∀ f ∈ x H y ∀ g ∈ y H z g x y · ˙ z f ∈ x H z ∧ ∀ w ∈ B ∀ k ∈ z H w k y z · ˙ w g x y · ˙ w f = k x z · ˙ w g x y · ˙ z f
59 df-cat ⊢ Cat = c | [˙Base c / b]˙ [˙ Hom ⁡ c / h]˙ [˙ comp ⁡ c / o]˙ ∀ x ∈ b ∃ g ∈ x h x ∀ y ∈ b ∀ f ∈ y h x g y x o x f = f ∧ ∀ f ∈ x h y f x x o y g = f ∧ ∀ y ∈ b ∀ z ∈ b ∀ f ∈ x h y ∀ g ∈ y h z g x y o z f ∈ x h z ∧ ∀ w ∈ b ∀ k ∈ z h w k y z o w g x y o w f = k x z o w g x y o z f
60 58 59 elab2g ⊢ C ∈ V → C ∈ Cat ↔ ∀ x ∈ B ∃ g ∈ x H x ∀ y ∈ B ∀ f ∈ y H x g y x · ˙ x f = f ∧ ∀ f ∈ x H y f x x · ˙ y g = f ∧ ∀ y ∈ B ∀ z ∈ B ∀ f ∈ x H y ∀ g ∈ y H z g x y · ˙ z f ∈ x H z ∧ ∀ w ∈ B ∀ k ∈ z H w k y z · ˙ w g x y · ˙ w f = k x z · ˙ w g x y · ˙ z f