Metamath Proof Explorer


Theorem discsubc

Description: A discrete category, whose only morphisms are the identity morphisms, is a subcategory. (Contributed by Zhi Wang, 1-Nov-2025)

Ref Expression
Hypotheses discsubc.j 𝐽 = ( 𝑥𝑆 , 𝑦𝑆 ↦ if ( 𝑥 = 𝑦 , { ( 𝐼𝑥 ) } , ∅ ) )
discsubc.b 𝐵 = ( Base ‘ 𝐶 )
discsubc.i 𝐼 = ( Id ‘ 𝐶 )
discsubc.s ( 𝜑𝑆𝐵 )
discsubc.c ( 𝜑𝐶 ∈ Cat )
Assertion discsubc ( 𝜑𝐽 ∈ ( Subcat ‘ 𝐶 ) )

Proof

Step Hyp Ref Expression
1 discsubc.j 𝐽 = ( 𝑥𝑆 , 𝑦𝑆 ↦ if ( 𝑥 = 𝑦 , { ( 𝐼𝑥 ) } , ∅ ) )
2 discsubc.b 𝐵 = ( Base ‘ 𝐶 )
3 discsubc.i 𝐼 = ( Id ‘ 𝐶 )
4 discsubc.s ( 𝜑𝑆𝐵 )
5 discsubc.c ( 𝜑𝐶 ∈ Cat )
6 eqeq12 ( ( 𝑥 = 𝑎𝑦 = 𝑏 ) → ( 𝑥 = 𝑦𝑎 = 𝑏 ) )
7 simpl ( ( 𝑥 = 𝑎𝑦 = 𝑏 ) → 𝑥 = 𝑎 )
8 7 fveq2d ( ( 𝑥 = 𝑎𝑦 = 𝑏 ) → ( 𝐼𝑥 ) = ( 𝐼𝑎 ) )
9 8 sneqd ( ( 𝑥 = 𝑎𝑦 = 𝑏 ) → { ( 𝐼𝑥 ) } = { ( 𝐼𝑎 ) } )
10 6 9 ifbieq1d ( ( 𝑥 = 𝑎𝑦 = 𝑏 ) → if ( 𝑥 = 𝑦 , { ( 𝐼𝑥 ) } , ∅ ) = if ( 𝑎 = 𝑏 , { ( 𝐼𝑎 ) } , ∅ ) )
11 snex { ( 𝐼𝑎 ) } ∈ V
12 0ex ∅ ∈ V
13 11 12 ifex if ( 𝑎 = 𝑏 , { ( 𝐼𝑎 ) } , ∅ ) ∈ V
14 10 1 13 ovmpoa ( ( 𝑎𝑆𝑏𝑆 ) → ( 𝑎 𝐽 𝑏 ) = if ( 𝑎 = 𝑏 , { ( 𝐼𝑎 ) } , ∅ ) )
15 14 adantl ( ( 𝜑 ∧ ( 𝑎𝑆𝑏𝑆 ) ) → ( 𝑎 𝐽 𝑏 ) = if ( 𝑎 = 𝑏 , { ( 𝐼𝑎 ) } , ∅ ) )
16 sseq1 ( { ( 𝐼𝑎 ) } = if ( 𝑎 = 𝑏 , { ( 𝐼𝑎 ) } , ∅ ) → ( { ( 𝐼𝑎 ) } ⊆ ( 𝑎 ( Homf𝐶 ) 𝑏 ) ↔ if ( 𝑎 = 𝑏 , { ( 𝐼𝑎 ) } , ∅ ) ⊆ ( 𝑎 ( Homf𝐶 ) 𝑏 ) ) )
17 sseq1 ( ∅ = if ( 𝑎 = 𝑏 , { ( 𝐼𝑎 ) } , ∅ ) → ( ∅ ⊆ ( 𝑎 ( Homf𝐶 ) 𝑏 ) ↔ if ( 𝑎 = 𝑏 , { ( 𝐼𝑎 ) } , ∅ ) ⊆ ( 𝑎 ( Homf𝐶 ) 𝑏 ) ) )
18 eqid ( Hom ‘ 𝐶 ) = ( Hom ‘ 𝐶 )
19 5 ad2antrr ( ( ( 𝜑 ∧ ( 𝑎𝑆𝑏𝑆 ) ) ∧ 𝑎 = 𝑏 ) → 𝐶 ∈ Cat )
20 4 ad2antrr ( ( ( 𝜑 ∧ ( 𝑎𝑆𝑏𝑆 ) ) ∧ 𝑎 = 𝑏 ) → 𝑆𝐵 )
21 simplrl ( ( ( 𝜑 ∧ ( 𝑎𝑆𝑏𝑆 ) ) ∧ 𝑎 = 𝑏 ) → 𝑎𝑆 )
22 20 21 sseldd ( ( ( 𝜑 ∧ ( 𝑎𝑆𝑏𝑆 ) ) ∧ 𝑎 = 𝑏 ) → 𝑎𝐵 )
23 2 18 3 19 22 catidcl ( ( ( 𝜑 ∧ ( 𝑎𝑆𝑏𝑆 ) ) ∧ 𝑎 = 𝑏 ) → ( 𝐼𝑎 ) ∈ ( 𝑎 ( Hom ‘ 𝐶 ) 𝑎 ) )
24 eqid ( Homf𝐶 ) = ( Homf𝐶 )
25 24 2 18 22 22 homfval ( ( ( 𝜑 ∧ ( 𝑎𝑆𝑏𝑆 ) ) ∧ 𝑎 = 𝑏 ) → ( 𝑎 ( Homf𝐶 ) 𝑎 ) = ( 𝑎 ( Hom ‘ 𝐶 ) 𝑎 ) )
26 simpr ( ( ( 𝜑 ∧ ( 𝑎𝑆𝑏𝑆 ) ) ∧ 𝑎 = 𝑏 ) → 𝑎 = 𝑏 )
27 26 oveq2d ( ( ( 𝜑 ∧ ( 𝑎𝑆𝑏𝑆 ) ) ∧ 𝑎 = 𝑏 ) → ( 𝑎 ( Homf𝐶 ) 𝑎 ) = ( 𝑎 ( Homf𝐶 ) 𝑏 ) )
28 25 27 eqtr3d ( ( ( 𝜑 ∧ ( 𝑎𝑆𝑏𝑆 ) ) ∧ 𝑎 = 𝑏 ) → ( 𝑎 ( Hom ‘ 𝐶 ) 𝑎 ) = ( 𝑎 ( Homf𝐶 ) 𝑏 ) )
29 23 28 eleqtrd ( ( ( 𝜑 ∧ ( 𝑎𝑆𝑏𝑆 ) ) ∧ 𝑎 = 𝑏 ) → ( 𝐼𝑎 ) ∈ ( 𝑎 ( Homf𝐶 ) 𝑏 ) )
30 29 snssd ( ( ( 𝜑 ∧ ( 𝑎𝑆𝑏𝑆 ) ) ∧ 𝑎 = 𝑏 ) → { ( 𝐼𝑎 ) } ⊆ ( 𝑎 ( Homf𝐶 ) 𝑏 ) )
31 0ss ∅ ⊆ ( 𝑎 ( Homf𝐶 ) 𝑏 )
32 31 a1i ( ( ( 𝜑 ∧ ( 𝑎𝑆𝑏𝑆 ) ) ∧ ¬ 𝑎 = 𝑏 ) → ∅ ⊆ ( 𝑎 ( Homf𝐶 ) 𝑏 ) )
33 16 17 30 32 ifbothda ( ( 𝜑 ∧ ( 𝑎𝑆𝑏𝑆 ) ) → if ( 𝑎 = 𝑏 , { ( 𝐼𝑎 ) } , ∅ ) ⊆ ( 𝑎 ( Homf𝐶 ) 𝑏 ) )
34 15 33 eqsstrd ( ( 𝜑 ∧ ( 𝑎𝑆𝑏𝑆 ) ) → ( 𝑎 𝐽 𝑏 ) ⊆ ( 𝑎 ( Homf𝐶 ) 𝑏 ) )
35 34 ralrimivva ( 𝜑 → ∀ 𝑎𝑆𝑏𝑆 ( 𝑎 𝐽 𝑏 ) ⊆ ( 𝑎 ( Homf𝐶 ) 𝑏 ) )
36 1 discsubclem 𝐽 Fn ( 𝑆 × 𝑆 )
37 36 a1i ( 𝜑𝐽 Fn ( 𝑆 × 𝑆 ) )
38 24 2 homffn ( Homf𝐶 ) Fn ( 𝐵 × 𝐵 )
39 38 a1i ( 𝜑 → ( Homf𝐶 ) Fn ( 𝐵 × 𝐵 ) )
40 2 fvexi 𝐵 ∈ V
41 40 a1i ( 𝜑𝐵 ∈ V )
42 37 39 41 isssc ( 𝜑 → ( 𝐽cat ( Homf𝐶 ) ↔ ( 𝑆𝐵 ∧ ∀ 𝑎𝑆𝑏𝑆 ( 𝑎 𝐽 𝑏 ) ⊆ ( 𝑎 ( Homf𝐶 ) 𝑏 ) ) ) )
43 4 35 42 mpbir2and ( 𝜑𝐽cat ( Homf𝐶 ) )
44 fvex ( 𝐼𝑎 ) ∈ V
45 44 snid ( 𝐼𝑎 ) ∈ { ( 𝐼𝑎 ) }
46 simpr ( ( 𝜑𝑎𝑆 ) → 𝑎𝑆 )
47 equtr2 ( ( 𝑥 = 𝑎𝑦 = 𝑎 ) → 𝑥 = 𝑦 )
48 47 iftrued ( ( 𝑥 = 𝑎𝑦 = 𝑎 ) → if ( 𝑥 = 𝑦 , { ( 𝐼𝑥 ) } , ∅ ) = { ( 𝐼𝑥 ) } )
49 simpl ( ( 𝑥 = 𝑎𝑦 = 𝑎 ) → 𝑥 = 𝑎 )
50 49 fveq2d ( ( 𝑥 = 𝑎𝑦 = 𝑎 ) → ( 𝐼𝑥 ) = ( 𝐼𝑎 ) )
51 50 sneqd ( ( 𝑥 = 𝑎𝑦 = 𝑎 ) → { ( 𝐼𝑥 ) } = { ( 𝐼𝑎 ) } )
52 48 51 eqtrd ( ( 𝑥 = 𝑎𝑦 = 𝑎 ) → if ( 𝑥 = 𝑦 , { ( 𝐼𝑥 ) } , ∅ ) = { ( 𝐼𝑎 ) } )
53 52 1 11 ovmpoa ( ( 𝑎𝑆𝑎𝑆 ) → ( 𝑎 𝐽 𝑎 ) = { ( 𝐼𝑎 ) } )
54 46 46 53 syl2anc ( ( 𝜑𝑎𝑆 ) → ( 𝑎 𝐽 𝑎 ) = { ( 𝐼𝑎 ) } )
55 45 54 eleqtrrid ( ( 𝜑𝑎𝑆 ) → ( 𝐼𝑎 ) ∈ ( 𝑎 𝐽 𝑎 ) )
56 45 a1i ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → ( 𝐼𝑎 ) ∈ { ( 𝐼𝑎 ) } )
57 simprl ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) )
58 46 ad2antrr ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑎𝑆 )
59 simplrl ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑏𝑆 )
60 58 59 14 syl2anc ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → ( 𝑎 𝐽 𝑏 ) = if ( 𝑎 = 𝑏 , { ( 𝐼𝑎 ) } , ∅ ) )
61 57 60 eleqtrd ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑓 ∈ if ( 𝑎 = 𝑏 , { ( 𝐼𝑎 ) } , ∅ ) )
62 61 ne0d ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → if ( 𝑎 = 𝑏 , { ( 𝐼𝑎 ) } , ∅ ) ≠ ∅ )
63 iffalse ( ¬ 𝑎 = 𝑏 → if ( 𝑎 = 𝑏 , { ( 𝐼𝑎 ) } , ∅ ) = ∅ )
64 63 necon1ai ( if ( 𝑎 = 𝑏 , { ( 𝐼𝑎 ) } , ∅ ) ≠ ∅ → 𝑎 = 𝑏 )
65 62 64 syl ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑎 = 𝑏 )
66 65 opeq2d ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → ⟨ 𝑎 , 𝑎 ⟩ = ⟨ 𝑎 , 𝑏 ⟩ )
67 simprr ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) )
68 eqeq12 ( ( 𝑥 = 𝑏𝑦 = 𝑐 ) → ( 𝑥 = 𝑦𝑏 = 𝑐 ) )
69 simpl ( ( 𝑥 = 𝑏𝑦 = 𝑐 ) → 𝑥 = 𝑏 )
70 69 fveq2d ( ( 𝑥 = 𝑏𝑦 = 𝑐 ) → ( 𝐼𝑥 ) = ( 𝐼𝑏 ) )
71 70 sneqd ( ( 𝑥 = 𝑏𝑦 = 𝑐 ) → { ( 𝐼𝑥 ) } = { ( 𝐼𝑏 ) } )
72 68 71 ifbieq1d ( ( 𝑥 = 𝑏𝑦 = 𝑐 ) → if ( 𝑥 = 𝑦 , { ( 𝐼𝑥 ) } , ∅ ) = if ( 𝑏 = 𝑐 , { ( 𝐼𝑏 ) } , ∅ ) )
73 snex { ( 𝐼𝑏 ) } ∈ V
74 73 12 ifex if ( 𝑏 = 𝑐 , { ( 𝐼𝑏 ) } , ∅ ) ∈ V
75 72 1 74 ovmpoa ( ( 𝑏𝑆𝑐𝑆 ) → ( 𝑏 𝐽 𝑐 ) = if ( 𝑏 = 𝑐 , { ( 𝐼𝑏 ) } , ∅ ) )
76 75 ad2antlr ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → ( 𝑏 𝐽 𝑐 ) = if ( 𝑏 = 𝑐 , { ( 𝐼𝑏 ) } , ∅ ) )
77 67 76 eleqtrd ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑔 ∈ if ( 𝑏 = 𝑐 , { ( 𝐼𝑏 ) } , ∅ ) )
78 77 ne0d ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → if ( 𝑏 = 𝑐 , { ( 𝐼𝑏 ) } , ∅ ) ≠ ∅ )
79 iffalse ( ¬ 𝑏 = 𝑐 → if ( 𝑏 = 𝑐 , { ( 𝐼𝑏 ) } , ∅ ) = ∅ )
80 79 necon1ai ( if ( 𝑏 = 𝑐 , { ( 𝐼𝑏 ) } , ∅ ) ≠ ∅ → 𝑏 = 𝑐 )
81 78 80 syl ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑏 = 𝑐 )
82 65 81 eqtrd ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑎 = 𝑐 )
83 66 82 oveq12d ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → ( ⟨ 𝑎 , 𝑎 ⟩ ( comp ‘ 𝐶 ) 𝑎 ) = ( ⟨ 𝑎 , 𝑏 ⟩ ( comp ‘ 𝐶 ) 𝑐 ) )
84 83 eqcomd ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → ( ⟨ 𝑎 , 𝑏 ⟩ ( comp ‘ 𝐶 ) 𝑐 ) = ( ⟨ 𝑎 , 𝑎 ⟩ ( comp ‘ 𝐶 ) 𝑎 ) )
85 81 iftrued ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → if ( 𝑏 = 𝑐 , { ( 𝐼𝑏 ) } , ∅ ) = { ( 𝐼𝑏 ) } )
86 77 85 eleqtrd ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑔 ∈ { ( 𝐼𝑏 ) } )
87 86 elsnd ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑔 = ( 𝐼𝑏 ) )
88 65 fveq2d ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → ( 𝐼𝑎 ) = ( 𝐼𝑏 ) )
89 87 88 eqtr4d ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑔 = ( 𝐼𝑎 ) )
90 65 iftrued ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → if ( 𝑎 = 𝑏 , { ( 𝐼𝑎 ) } , ∅ ) = { ( 𝐼𝑎 ) } )
91 61 90 eleqtrd ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑓 ∈ { ( 𝐼𝑎 ) } )
92 91 elsnd ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑓 = ( 𝐼𝑎 ) )
93 84 89 92 oveq123d ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → ( 𝑔 ( ⟨ 𝑎 , 𝑏 ⟩ ( comp ‘ 𝐶 ) 𝑐 ) 𝑓 ) = ( ( 𝐼𝑎 ) ( ⟨ 𝑎 , 𝑎 ⟩ ( comp ‘ 𝐶 ) 𝑎 ) ( 𝐼𝑎 ) ) )
94 5 ad3antrrr ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝐶 ∈ Cat )
95 4 ad3antrrr ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑆𝐵 )
96 95 58 sseldd ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → 𝑎𝐵 )
97 eqid ( comp ‘ 𝐶 ) = ( comp ‘ 𝐶 )
98 2 18 3 94 96 catidcl ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → ( 𝐼𝑎 ) ∈ ( 𝑎 ( Hom ‘ 𝐶 ) 𝑎 ) )
99 2 18 3 94 96 97 96 98 catlid ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → ( ( 𝐼𝑎 ) ( ⟨ 𝑎 , 𝑎 ⟩ ( comp ‘ 𝐶 ) 𝑎 ) ( 𝐼𝑎 ) ) = ( 𝐼𝑎 ) )
100 93 99 eqtrd ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → ( 𝑔 ( ⟨ 𝑎 , 𝑏 ⟩ ( comp ‘ 𝐶 ) 𝑐 ) 𝑓 ) = ( 𝐼𝑎 ) )
101 82 oveq2d ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → ( 𝑎 𝐽 𝑎 ) = ( 𝑎 𝐽 𝑐 ) )
102 58 58 53 syl2anc ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → ( 𝑎 𝐽 𝑎 ) = { ( 𝐼𝑎 ) } )
103 101 102 eqtr3d ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → ( 𝑎 𝐽 𝑐 ) = { ( 𝐼𝑎 ) } )
104 56 100 103 3eltr4d ( ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) ∧ ( 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∧ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ) ) → ( 𝑔 ( ⟨ 𝑎 , 𝑏 ⟩ ( comp ‘ 𝐶 ) 𝑐 ) 𝑓 ) ∈ ( 𝑎 𝐽 𝑐 ) )
105 104 ralrimivva ( ( ( 𝜑𝑎𝑆 ) ∧ ( 𝑏𝑆𝑐𝑆 ) ) → ∀ 𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∀ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ( 𝑔 ( ⟨ 𝑎 , 𝑏 ⟩ ( comp ‘ 𝐶 ) 𝑐 ) 𝑓 ) ∈ ( 𝑎 𝐽 𝑐 ) )
106 105 ralrimivva ( ( 𝜑𝑎𝑆 ) → ∀ 𝑏𝑆𝑐𝑆𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∀ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ( 𝑔 ( ⟨ 𝑎 , 𝑏 ⟩ ( comp ‘ 𝐶 ) 𝑐 ) 𝑓 ) ∈ ( 𝑎 𝐽 𝑐 ) )
107 55 106 jca ( ( 𝜑𝑎𝑆 ) → ( ( 𝐼𝑎 ) ∈ ( 𝑎 𝐽 𝑎 ) ∧ ∀ 𝑏𝑆𝑐𝑆𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∀ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ( 𝑔 ( ⟨ 𝑎 , 𝑏 ⟩ ( comp ‘ 𝐶 ) 𝑐 ) 𝑓 ) ∈ ( 𝑎 𝐽 𝑐 ) ) )
108 107 ralrimiva ( 𝜑 → ∀ 𝑎𝑆 ( ( 𝐼𝑎 ) ∈ ( 𝑎 𝐽 𝑎 ) ∧ ∀ 𝑏𝑆𝑐𝑆𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∀ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ( 𝑔 ( ⟨ 𝑎 , 𝑏 ⟩ ( comp ‘ 𝐶 ) 𝑐 ) 𝑓 ) ∈ ( 𝑎 𝐽 𝑐 ) ) )
109 24 3 97 5 37 issubc2 ( 𝜑 → ( 𝐽 ∈ ( Subcat ‘ 𝐶 ) ↔ ( 𝐽cat ( Homf𝐶 ) ∧ ∀ 𝑎𝑆 ( ( 𝐼𝑎 ) ∈ ( 𝑎 𝐽 𝑎 ) ∧ ∀ 𝑏𝑆𝑐𝑆𝑓 ∈ ( 𝑎 𝐽 𝑏 ) ∀ 𝑔 ∈ ( 𝑏 𝐽 𝑐 ) ( 𝑔 ( ⟨ 𝑎 , 𝑏 ⟩ ( comp ‘ 𝐶 ) 𝑐 ) 𝑓 ) ∈ ( 𝑎 𝐽 𝑐 ) ) ) ) )
110 43 108 109 mpbir2and ( 𝜑𝐽 ∈ ( Subcat ‘ 𝐶 ) )