| Step | Hyp | Ref | Expression | 
|---|
| 1 |  | id 22 | . . . 4
⊢ (𝐶 ∈ TermCat → 𝐶 ∈
TermCat) | 
| 2 |  | eqid 2736 | . . . 4
⊢
(Base‘𝐶) =
(Base‘𝐶) | 
| 3 | 1, 2 | termcbas 49152 | . . 3
⊢ (𝐶 ∈ TermCat →
∃𝑥(Base‘𝐶) = {𝑥}) | 
| 4 |  | eqid 2736 | . . . . 5
⊢
(Homa‘𝐶) = (Homa‘𝐶) | 
| 5 | 1 | adantr 480 | . . . . . 6
⊢ ((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) → 𝐶 ∈ TermCat) | 
| 6 | 5 | termccd 49151 | . . . . 5
⊢ ((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) → 𝐶 ∈ Cat) | 
| 7 |  | eqid 2736 | . . . . 5
⊢ (Hom
‘𝐶) = (Hom
‘𝐶) | 
| 8 |  | vsnid 4662 | . . . . . 6
⊢ 𝑥 ∈ {𝑥} | 
| 9 |  | simpr 484 | . . . . . 6
⊢ ((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) → (Base‘𝐶) = {𝑥}) | 
| 10 | 8, 9 | eleqtrrid 2847 | . . . . 5
⊢ ((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) → 𝑥 ∈ (Base‘𝐶)) | 
| 11 |  | eqid 2736 | . . . . . 6
⊢
(Id‘𝐶) =
(Id‘𝐶) | 
| 12 | 2, 7, 11, 6, 10 | catidcl 17726 | . . . . 5
⊢ ((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) → ((Id‘𝐶)‘𝑥) ∈ (𝑥(Hom ‘𝐶)𝑥)) | 
| 13 | 4, 2, 6, 7, 10, 10, 12 | elhomai2 18080 | . . . 4
⊢ ((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) → 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉 ∈ (𝑥(Homa‘𝐶)𝑥)) | 
| 14 |  | eqid 2736 | . . . . . . . . 9
⊢
(Arrow‘𝐶) =
(Arrow‘𝐶) | 
| 15 | 14 | arwdmcd 18098 | . . . . . . . 8
⊢ (𝑎 ∈ (Arrow‘𝐶) → 𝑎 = 〈(doma‘𝑎),
(coda‘𝑎), (2nd ‘𝑎)〉) | 
| 16 | 15 | adantl 481 | . . . . . . 7
⊢ (((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) ∧ 𝑎 ∈ (Arrow‘𝐶)) → 𝑎 = 〈(doma‘𝑎),
(coda‘𝑎), (2nd ‘𝑎)〉) | 
| 17 | 5 | adantr 480 | . . . . . . . . 9
⊢ (((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) ∧ 𝑎 ∈ (Arrow‘𝐶)) → 𝐶 ∈ TermCat) | 
| 18 | 14, 2 | arwdm 18093 | . . . . . . . . . 10
⊢ (𝑎 ∈ (Arrow‘𝐶) →
(doma‘𝑎) ∈ (Base‘𝐶)) | 
| 19 | 18 | adantl 481 | . . . . . . . . 9
⊢ (((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) ∧ 𝑎 ∈ (Arrow‘𝐶)) →
(doma‘𝑎) ∈ (Base‘𝐶)) | 
| 20 | 10 | adantr 480 | . . . . . . . . 9
⊢ (((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) ∧ 𝑎 ∈ (Arrow‘𝐶)) → 𝑥 ∈ (Base‘𝐶)) | 
| 21 | 17, 2, 19, 20 | termcbasmo 49154 | . . . . . . . 8
⊢ (((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) ∧ 𝑎 ∈ (Arrow‘𝐶)) →
(doma‘𝑎) = 𝑥) | 
| 22 | 14, 2 | arwcd 18094 | . . . . . . . . . 10
⊢ (𝑎 ∈ (Arrow‘𝐶) →
(coda‘𝑎) ∈ (Base‘𝐶)) | 
| 23 | 22 | adantl 481 | . . . . . . . . 9
⊢ (((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) ∧ 𝑎 ∈ (Arrow‘𝐶)) →
(coda‘𝑎) ∈ (Base‘𝐶)) | 
| 24 | 17, 2, 23, 20 | termcbasmo 49154 | . . . . . . . 8
⊢ (((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) ∧ 𝑎 ∈ (Arrow‘𝐶)) →
(coda‘𝑎) = 𝑥) | 
| 25 | 14, 7 | arwhom 18097 | . . . . . . . . . 10
⊢ (𝑎 ∈ (Arrow‘𝐶) → (2nd
‘𝑎) ∈
((doma‘𝑎)(Hom ‘𝐶)(coda‘𝑎))) | 
| 26 | 25 | adantl 481 | . . . . . . . . 9
⊢ (((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) ∧ 𝑎 ∈ (Arrow‘𝐶)) → (2nd ‘𝑎) ∈
((doma‘𝑎)(Hom ‘𝐶)(coda‘𝑎))) | 
| 27 | 12 | adantr 480 | . . . . . . . . 9
⊢ (((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) ∧ 𝑎 ∈ (Arrow‘𝐶)) → ((Id‘𝐶)‘𝑥) ∈ (𝑥(Hom ‘𝐶)𝑥)) | 
| 28 | 17, 2, 19, 23, 7, 26, 20, 20, 27 | termchommo 49156 | . . . . . . . 8
⊢ (((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) ∧ 𝑎 ∈ (Arrow‘𝐶)) → (2nd ‘𝑎) = ((Id‘𝐶)‘𝑥)) | 
| 29 | 21, 24, 28 | oteq123d 4887 | . . . . . . 7
⊢ (((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) ∧ 𝑎 ∈ (Arrow‘𝐶)) →
〈(doma‘𝑎), (coda‘𝑎), (2nd ‘𝑎)〉 = 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉) | 
| 30 | 16, 29 | eqtrd 2776 | . . . . . 6
⊢ (((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) ∧ 𝑎 ∈ (Arrow‘𝐶)) → 𝑎 = 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉) | 
| 31 |  | simpr 484 | . . . . . . 7
⊢ (((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) ∧ 𝑎 = 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉) → 𝑎 = 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉) | 
| 32 | 14, 4 | homarw 18092 | . . . . . . . . 9
⊢ (𝑥(Homa‘𝐶)𝑥) ⊆ (Arrow‘𝐶) | 
| 33 | 32, 13 | sselid 3980 | . . . . . . . 8
⊢ ((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) → 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉 ∈ (Arrow‘𝐶)) | 
| 34 | 33 | adantr 480 | . . . . . . 7
⊢ (((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) ∧ 𝑎 = 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉) → 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉 ∈ (Arrow‘𝐶)) | 
| 35 | 31, 34 | eqeltrd 2840 | . . . . . 6
⊢ (((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) ∧ 𝑎 = 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉) → 𝑎 ∈ (Arrow‘𝐶)) | 
| 36 | 30, 35 | impbida 800 | . . . . 5
⊢ ((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) → (𝑎 ∈ (Arrow‘𝐶) ↔ 𝑎 = 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉)) | 
| 37 | 36 | alrimiv 1926 | . . . 4
⊢ ((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) → ∀𝑎(𝑎 ∈ (Arrow‘𝐶) ↔ 𝑎 = 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉)) | 
| 38 |  | eqeq2 2748 | . . . . . 6
⊢ (𝑏 = 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉 → (𝑎 = 𝑏 ↔ 𝑎 = 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉)) | 
| 39 | 38 | bibi2d 342 | . . . . 5
⊢ (𝑏 = 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉 → ((𝑎 ∈ (Arrow‘𝐶) ↔ 𝑎 = 𝑏) ↔ (𝑎 ∈ (Arrow‘𝐶) ↔ 𝑎 = 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉))) | 
| 40 | 39 | albidv 1919 | . . . 4
⊢ (𝑏 = 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉 → (∀𝑎(𝑎 ∈ (Arrow‘𝐶) ↔ 𝑎 = 𝑏) ↔ ∀𝑎(𝑎 ∈ (Arrow‘𝐶) ↔ 𝑎 = 〈𝑥, 𝑥, ((Id‘𝐶)‘𝑥)〉))) | 
| 41 | 13, 37, 40 | spcedv 3597 | . . 3
⊢ ((𝐶 ∈ TermCat ∧
(Base‘𝐶) = {𝑥}) → ∃𝑏∀𝑎(𝑎 ∈ (Arrow‘𝐶) ↔ 𝑎 = 𝑏)) | 
| 42 | 3, 41 | exlimddv 1934 | . 2
⊢ (𝐶 ∈ TermCat →
∃𝑏∀𝑎(𝑎 ∈ (Arrow‘𝐶) ↔ 𝑎 = 𝑏)) | 
| 43 |  | eu6im 2574 | . 2
⊢
(∃𝑏∀𝑎(𝑎 ∈ (Arrow‘𝐶) ↔ 𝑎 = 𝑏) → ∃!𝑎 𝑎 ∈ (Arrow‘𝐶)) | 
| 44 | 42, 43 | syl 17 | 1
⊢ (𝐶 ∈ TermCat →
∃!𝑎 𝑎 ∈ (Arrow‘𝐶)) |