Metamath Proof Explorer


Theorem euendfunc

Description: If there exists a unique endofunctor (a functor from a category to itself) for a non-empty category, then the category is terminal. This partially explains why two categories are sufficient in termc2 . (Contributed by Zhi Wang, 20-Oct-2025)

Ref Expression
Hypotheses euendfunc.f ⊢ φ → ∃! f f ∈ C Func C
euendfunc.b ⊢ B = Base C
euendfunc.0 ⊢ φ → B ≠ ∅
Assertion euendfunc Could not format assertion : No typesetting found for |- ( ph -> C e. TermCat ) with typecode |-

Proof

Step Hyp Ref Expression
1 euendfunc.f ⊢ φ → ∃! f f ∈ C Func C
2 euendfunc.b ⊢ B = Base C
3 euendfunc.0 ⊢ φ → B ≠ ∅
4 n0 ⊢ B ≠ ∅ ↔ ∃ x x ∈ B
5 3 4 sylib ⊢ φ → ∃ x x ∈ B
6 eqid ⊢ id func ⁡ C = id func ⁡ C
7 eqid ⊢ C Δ func C = C Δ func C
8 1 adantr ⊢ φ ∧ x ∈ B → ∃! f f ∈ C Func C
9 euex ⊢ ∃! f f ∈ C Func C → ∃ f f ∈ C Func C
10 8 9 syl ⊢ φ ∧ x ∈ B → ∃ f f ∈ C Func C
11 funcrcl ⊢ f ∈ C Func C → C ∈ Cat ∧ C ∈ Cat
12 11 simpld ⊢ f ∈ C Func C → C ∈ Cat
13 12 exlimiv ⊢ ∃ f f ∈ C Func C → C ∈ Cat
14 10 13 syl ⊢ φ ∧ x ∈ B → C ∈ Cat
15 simpr ⊢ φ ∧ x ∈ B → x ∈ B
16 eqid ⊢ 1 st ⁡ C Δ func C ⁡ x = 1 st ⁡ C Δ func C ⁡ x
17 6 idfucl ⊢ C ∈ Cat → id func ⁡ C ∈ C Func C
18 14 17 syl ⊢ φ ∧ x ∈ B → id func ⁡ C ∈ C Func C
19 7 14 14 2 15 16 diag1cl ⊢ φ ∧ x ∈ B → 1 st ⁡ C Δ func C ⁡ x ∈ C Func C
20 eumo ⊢ ∃! f f ∈ C Func C → ∃* f f ∈ C Func C
21 8 20 syl ⊢ φ ∧ x ∈ B → ∃* f f ∈ C Func C
22 eleq1w ⊢ f = g → f ∈ C Func C ↔ g ∈ C Func C
23 22 mo4 ⊢ ∃* f f ∈ C Func C ↔ ∀ f ∀ g f ∈ C Func C ∧ g ∈ C Func C → f = g
24 21 23 sylib ⊢ φ ∧ x ∈ B → ∀ f ∀ g f ∈ C Func C ∧ g ∈ C Func C → f = g
25 fvex ⊢ id func ⁡ C ∈ V
26 fvex ⊢ 1 st ⁡ C Δ func C ⁡ x ∈ V
27 simpl ⊢ f = id func ⁡ C ∧ g = 1 st ⁡ C Δ func C ⁡ x → f = id func ⁡ C
28 27 eleq1d ⊢ f = id func ⁡ C ∧ g = 1 st ⁡ C Δ func C ⁡ x → f ∈ C Func C ↔ id func ⁡ C ∈ C Func C
29 simpr ⊢ f = id func ⁡ C ∧ g = 1 st ⁡ C Δ func C ⁡ x → g = 1 st ⁡ C Δ func C ⁡ x
30 29 eleq1d ⊢ f = id func ⁡ C ∧ g = 1 st ⁡ C Δ func C ⁡ x → g ∈ C Func C ↔ 1 st ⁡ C Δ func C ⁡ x ∈ C Func C
31 28 30 anbi12d ⊢ f = id func ⁡ C ∧ g = 1 st ⁡ C Δ func C ⁡ x → f ∈ C Func C ∧ g ∈ C Func C ↔ id func ⁡ C ∈ C Func C ∧ 1 st ⁡ C Δ func C ⁡ x ∈ C Func C
32 eqeq12 ⊢ f = id func ⁡ C ∧ g = 1 st ⁡ C Δ func C ⁡ x → f = g ↔ id func ⁡ C = 1 st ⁡ C Δ func C ⁡ x
33 31 32 imbi12d ⊢ f = id func ⁡ C ∧ g = 1 st ⁡ C Δ func C ⁡ x → f ∈ C Func C ∧ g ∈ C Func C → f = g ↔ id func ⁡ C ∈ C Func C ∧ 1 st ⁡ C Δ func C ⁡ x ∈ C Func C → id func ⁡ C = 1 st ⁡ C Δ func C ⁡ x
34 33 spc2gv ⊢ id func ⁡ C ∈ V ∧ 1 st ⁡ C Δ func C ⁡ x ∈ V → ∀ f ∀ g f ∈ C Func C ∧ g ∈ C Func C → f = g → id func ⁡ C ∈ C Func C ∧ 1 st ⁡ C Δ func C ⁡ x ∈ C Func C → id func ⁡ C = 1 st ⁡ C Δ func C ⁡ x
35 25 26 34 mp2an ⊢ ∀ f ∀ g f ∈ C Func C ∧ g ∈ C Func C → f = g → id func ⁡ C ∈ C Func C ∧ 1 st ⁡ C Δ func C ⁡ x ∈ C Func C → id func ⁡ C = 1 st ⁡ C Δ func C ⁡ x
36 24 35 syl ⊢ φ ∧ x ∈ B → id func ⁡ C ∈ C Func C ∧ 1 st ⁡ C Δ func C ⁡ x ∈ C Func C → id func ⁡ C = 1 st ⁡ C Δ func C ⁡ x
37 18 19 36 mp2and ⊢ φ ∧ x ∈ B → id func ⁡ C = 1 st ⁡ C Δ func C ⁡ x
38 6 7 14 2 15 16 37 idfudiag1 Could not format ( ( ph /\ x e. B ) -> C e. TermCat ) : No typesetting found for |- ( ( ph /\ x e. B ) -> C e. TermCat ) with typecode |-
39 5 38 exlimddv Could not format ( ph -> C e. TermCat ) : No typesetting found for |- ( ph -> C e. TermCat ) with typecode |-