Metamath Proof Explorer


Theorem setcthin

Description: A category of sets all of whose objects contain at most one element is thin. (Contributed by Zhi Wang, 20-Sep-2024)

Ref Expression
Hypotheses setcthin.c ( 𝜑𝐶 = ( SetCat ‘ 𝑈 ) )
setcthin.u ( 𝜑𝑈𝑉 )
setcthin.x ( 𝜑 → ∀ 𝑥𝑈 ∃* 𝑝 𝑝𝑥 )
Assertion setcthin ( 𝜑𝐶 ∈ ThinCat )

Proof

Step Hyp Ref Expression
1 setcthin.c ( 𝜑𝐶 = ( SetCat ‘ 𝑈 ) )
2 setcthin.u ( 𝜑𝑈𝑉 )
3 setcthin.x ( 𝜑 → ∀ 𝑥𝑈 ∃* 𝑝 𝑝𝑥 )
4 eqid ( SetCat ‘ 𝑈 ) = ( SetCat ‘ 𝑈 )
5 4 2 setcbas ( 𝜑𝑈 = ( Base ‘ ( SetCat ‘ 𝑈 ) ) )
6 eqidd ( 𝜑 → ( Hom ‘ ( SetCat ‘ 𝑈 ) ) = ( Hom ‘ ( SetCat ‘ 𝑈 ) ) )
7 elequ2 ( 𝑥 = 𝑧 → ( 𝑝𝑥𝑝𝑧 ) )
8 7 mobidv ( 𝑥 = 𝑧 → ( ∃* 𝑝 𝑝𝑥 ↔ ∃* 𝑝 𝑝𝑧 ) )
9 3 adantr ( ( 𝜑 ∧ ( 𝑦𝑈𝑧𝑈 ) ) → ∀ 𝑥𝑈 ∃* 𝑝 𝑝𝑥 )
10 simprr ( ( 𝜑 ∧ ( 𝑦𝑈𝑧𝑈 ) ) → 𝑧𝑈 )
11 8 9 10 rspcdva ( ( 𝜑 ∧ ( 𝑦𝑈𝑧𝑈 ) ) → ∃* 𝑝 𝑝𝑧 )
12 mofmo ( ∃* 𝑝 𝑝𝑧 → ∃* 𝑓 𝑓 : 𝑦𝑧 )
13 11 12 syl ( ( 𝜑 ∧ ( 𝑦𝑈𝑧𝑈 ) ) → ∃* 𝑓 𝑓 : 𝑦𝑧 )
14 2 adantr ( ( 𝜑 ∧ ( 𝑦𝑈𝑧𝑈 ) ) → 𝑈𝑉 )
15 eqid ( Hom ‘ ( SetCat ‘ 𝑈 ) ) = ( Hom ‘ ( SetCat ‘ 𝑈 ) )
16 simprl ( ( 𝜑 ∧ ( 𝑦𝑈𝑧𝑈 ) ) → 𝑦𝑈 )
17 4 14 15 16 10 elsetchom ( ( 𝜑 ∧ ( 𝑦𝑈𝑧𝑈 ) ) → ( 𝑓 ∈ ( 𝑦 ( Hom ‘ ( SetCat ‘ 𝑈 ) ) 𝑧 ) ↔ 𝑓 : 𝑦𝑧 ) )
18 17 mobidv ( ( 𝜑 ∧ ( 𝑦𝑈𝑧𝑈 ) ) → ( ∃* 𝑓 𝑓 ∈ ( 𝑦 ( Hom ‘ ( SetCat ‘ 𝑈 ) ) 𝑧 ) ↔ ∃* 𝑓 𝑓 : 𝑦𝑧 ) )
19 13 18 mpbird ( ( 𝜑 ∧ ( 𝑦𝑈𝑧𝑈 ) ) → ∃* 𝑓 𝑓 ∈ ( 𝑦 ( Hom ‘ ( SetCat ‘ 𝑈 ) ) 𝑧 ) )
20 4 setccat ( 𝑈𝑉 → ( SetCat ‘ 𝑈 ) ∈ Cat )
21 2 20 syl ( 𝜑 → ( SetCat ‘ 𝑈 ) ∈ Cat )
22 5 6 19 21 isthincd ( 𝜑 → ( SetCat ‘ 𝑈 ) ∈ ThinCat )
23 1 22 eqeltrd ( 𝜑𝐶 ∈ ThinCat )