Metamath Proof Explorer


Theorem incat

Description: Constructing a category with at most one object and at most two morphisms. If X is a set then C is the category A in Exercise 3G of Adamek p. 45. (Contributed by Zhi Wang, 5-Nov-2025)

Ref Expression
Hypotheses incat.c 𝐶 = { ⟨ ( Base ‘ ndx ) , { 𝑋 } ⟩ , ⟨ ( Hom ‘ ndx ) , { ⟨ 𝑋 , 𝑋 , 𝐻 ⟩ } ⟩ , ⟨ ( comp ‘ ndx ) , { ⟨ ⟨ 𝑋 , 𝑋 ⟩ , 𝑋 , · ⟩ } ⟩ }
incat.h 𝐻 = { 𝐹 , 𝐺 }
incat.x · = ( 𝑓𝐻 , 𝑔𝐻 ↦ ( 𝑓𝑔 ) )
Assertion incat ( ( 𝐹𝐺𝐺𝑉 ) → ( 𝐶 ∈ Cat ∧ ( Id ‘ 𝐶 ) = ( 𝑦 ∈ { 𝑋 } ↦ 𝐺 ) ) )

Proof

Step Hyp Ref Expression
1 incat.c 𝐶 = { ⟨ ( Base ‘ ndx ) , { 𝑋 } ⟩ , ⟨ ( Hom ‘ ndx ) , { ⟨ 𝑋 , 𝑋 , 𝐻 ⟩ } ⟩ , ⟨ ( comp ‘ ndx ) , { ⟨ ⟨ 𝑋 , 𝑋 ⟩ , 𝑋 , · ⟩ } ⟩ }
2 incat.h 𝐻 = { 𝐹 , 𝐺 }
3 incat.x · = ( 𝑓𝐻 , 𝑔𝐻 ↦ ( 𝑓𝑔 ) )
4 snex { 𝑋 } ∈ V
5 1 4 catbas { 𝑋 } = ( Base ‘ 𝐶 )
6 5 a1i ( ( 𝐹𝐺𝐺𝑉 ) → { 𝑋 } = ( Base ‘ 𝐶 ) )
7 snex { ⟨ 𝑋 , 𝑋 , 𝐻 ⟩ } ∈ V
8 1 7 cathomfval { ⟨ 𝑋 , 𝑋 , 𝐻 ⟩ } = ( Hom ‘ 𝐶 )
9 8 a1i ( ( 𝐹𝐺𝐺𝑉 ) → { ⟨ 𝑋 , 𝑋 , 𝐻 ⟩ } = ( Hom ‘ 𝐶 ) )
10 snex { ⟨ ⟨ 𝑋 , 𝑋 ⟩ , 𝑋 , · ⟩ } ∈ V
11 1 10 catcofval { ⟨ ⟨ 𝑋 , 𝑋 ⟩ , 𝑋 , · ⟩ } = ( comp ‘ 𝐶 )
12 11 a1i ( ( 𝐹𝐺𝐺𝑉 ) → { ⟨ ⟨ 𝑋 , 𝑋 ⟩ , 𝑋 , · ⟩ } = ( comp ‘ 𝐶 ) )
13 prex { 𝐹 , 𝐺 } ∈ V
14 2 13 eqeltri 𝐻 ∈ V
15 14 ovsn2 ( 𝑋 { ⟨ 𝑋 , 𝑋 , 𝐻 ⟩ } 𝑋 ) = 𝐻
16 15 2 eqtri ( 𝑋 { ⟨ 𝑋 , 𝑋 , 𝐻 ⟩ } 𝑋 ) = { 𝐹 , 𝐺 }
17 14 14 mpoex ( 𝑓𝐻 , 𝑔𝐻 ↦ ( 𝑓𝑔 ) ) ∈ V
18 3 17 eqeltri · ∈ V
19 18 ovsn2 ( ⟨ 𝑋 , 𝑋 ⟩ { ⟨ ⟨ 𝑋 , 𝑋 ⟩ , 𝑋 , · ⟩ } 𝑋 ) = ·
20 19 3 eqtri ( ⟨ 𝑋 , 𝑋 ⟩ { ⟨ ⟨ 𝑋 , 𝑋 ⟩ , 𝑋 , · ⟩ } 𝑋 ) = ( 𝑓𝐻 , 𝑔𝐻 ↦ ( 𝑓𝑔 ) )
21 20 a1i ( ( 𝐹𝐺𝐺𝑉 ) → ( ⟨ 𝑋 , 𝑋 ⟩ { ⟨ ⟨ 𝑋 , 𝑋 ⟩ , 𝑋 , · ⟩ } 𝑋 ) = ( 𝑓𝐻 , 𝑔𝐻 ↦ ( 𝑓𝑔 ) ) )
22 ineq12 ( ( 𝑓 = 𝐺𝑔 = 𝐺 ) → ( 𝑓𝑔 ) = ( 𝐺𝐺 ) )
23 inidm ( 𝐺𝐺 ) = 𝐺
24 22 23 eqtrdi ( ( 𝑓 = 𝐺𝑔 = 𝐺 ) → ( 𝑓𝑔 ) = 𝐺 )
25 24 adantl ( ( ( 𝐹𝐺𝐺𝑉 ) ∧ ( 𝑓 = 𝐺𝑔 = 𝐺 ) ) → ( 𝑓𝑔 ) = 𝐺 )
26 prid2g ( 𝐺𝑉𝐺 ∈ { 𝐹 , 𝐺 } )
27 26 2 eleqtrrdi ( 𝐺𝑉𝐺𝐻 )
28 27 adantl ( ( 𝐹𝐺𝐺𝑉 ) → 𝐺𝐻 )
29 21 25 28 28 28 ovmpod ( ( 𝐹𝐺𝐺𝑉 ) → ( 𝐺 ( ⟨ 𝑋 , 𝑋 ⟩ { ⟨ ⟨ 𝑋 , 𝑋 ⟩ , 𝑋 , · ⟩ } 𝑋 ) 𝐺 ) = 𝐺 )
30 ineq12 ( ( 𝑓 = 𝐺𝑔 = 𝐹 ) → ( 𝑓𝑔 ) = ( 𝐺𝐹 ) )
31 sseqin2 ( 𝐹𝐺 ↔ ( 𝐺𝐹 ) = 𝐹 )
32 31 biimpi ( 𝐹𝐺 → ( 𝐺𝐹 ) = 𝐹 )
33 32 adantr ( ( 𝐹𝐺𝐺𝑉 ) → ( 𝐺𝐹 ) = 𝐹 )
34 30 33 sylan9eqr ( ( ( 𝐹𝐺𝐺𝑉 ) ∧ ( 𝑓 = 𝐺𝑔 = 𝐹 ) ) → ( 𝑓𝑔 ) = 𝐹 )
35 ssexg ( ( 𝐹𝐺𝐺𝑉 ) → 𝐹 ∈ V )
36 prid1g ( 𝐹 ∈ V → 𝐹 ∈ { 𝐹 , 𝐺 } )
37 35 36 syl ( ( 𝐹𝐺𝐺𝑉 ) → 𝐹 ∈ { 𝐹 , 𝐺 } )
38 37 2 eleqtrrdi ( ( 𝐹𝐺𝐺𝑉 ) → 𝐹𝐻 )
39 21 34 28 38 38 ovmpod ( ( 𝐹𝐺𝐺𝑉 ) → ( 𝐺 ( ⟨ 𝑋 , 𝑋 ⟩ { ⟨ ⟨ 𝑋 , 𝑋 ⟩ , 𝑋 , · ⟩ } 𝑋 ) 𝐹 ) = 𝐹 )
40 ineq12 ( ( 𝑓 = 𝐹𝑔 = 𝐺 ) → ( 𝑓𝑔 ) = ( 𝐹𝐺 ) )
41 dfss2 ( 𝐹𝐺 ↔ ( 𝐹𝐺 ) = 𝐹 )
42 41 biimpi ( 𝐹𝐺 → ( 𝐹𝐺 ) = 𝐹 )
43 42 adantr ( ( 𝐹𝐺𝐺𝑉 ) → ( 𝐹𝐺 ) = 𝐹 )
44 40 43 sylan9eqr ( ( ( 𝐹𝐺𝐺𝑉 ) ∧ ( 𝑓 = 𝐹𝑔 = 𝐺 ) ) → ( 𝑓𝑔 ) = 𝐹 )
45 21 44 38 28 38 ovmpod ( ( 𝐹𝐺𝐺𝑉 ) → ( 𝐹 ( ⟨ 𝑋 , 𝑋 ⟩ { ⟨ ⟨ 𝑋 , 𝑋 ⟩ , 𝑋 , · ⟩ } 𝑋 ) 𝐺 ) = 𝐹 )
46 ineq12 ( ( 𝑓 = 𝐹𝑔 = 𝐹 ) → ( 𝑓𝑔 ) = ( 𝐹𝐹 ) )
47 inidm ( 𝐹𝐹 ) = 𝐹
48 46 47 eqtrdi ( ( 𝑓 = 𝐹𝑔 = 𝐹 ) → ( 𝑓𝑔 ) = 𝐹 )
49 48 adantl ( ( ( 𝐹𝐺𝐺𝑉 ) ∧ ( 𝑓 = 𝐹𝑔 = 𝐹 ) ) → ( 𝑓𝑔 ) = 𝐹 )
50 21 49 38 38 38 ovmpod ( ( 𝐹𝐺𝐺𝑉 ) → ( 𝐹 ( ⟨ 𝑋 , 𝑋 ⟩ { ⟨ ⟨ 𝑋 , 𝑋 ⟩ , 𝑋 , · ⟩ } 𝑋 ) 𝐹 ) = 𝐹 )
51 50 37 eqeltrd ( ( 𝐹𝐺𝐺𝑉 ) → ( 𝐹 ( ⟨ 𝑋 , 𝑋 ⟩ { ⟨ ⟨ 𝑋 , 𝑋 ⟩ , 𝑋 , · ⟩ } 𝑋 ) 𝐹 ) ∈ { 𝐹 , 𝐺 } )
52 6 9 12 16 29 39 45 51 2arwcat ( ( 𝐹𝐺𝐺𝑉 ) → ( 𝐶 ∈ Cat ∧ ( Id ‘ 𝐶 ) = ( 𝑦 ∈ { 𝑋 } ↦ 𝐺 ) ) )