MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  termoeu1 Structured version   Visualization version   GIF version

Theorem termoeu1 18035
Description: Terminal objects are essentially unique (strong form), i.e. there is a unique isomorphism between two terminal objects, see statement in [Lang] p. 58 ("... if P, P' are two universal objects [...] then there exists a unique isomorphism between them.". (Proposed by BJ, 14-Apr-2020.) (Contributed by AV, 18-Apr-2020.)
Hypotheses
Ref Expression
termoeu1.c (𝜑𝐶 ∈ Cat)
termoeu1.a (𝜑𝐴 ∈ (TermO‘𝐶))
termoeu1.b (𝜑𝐵 ∈ (TermO‘𝐶))
Assertion
Ref Expression
termoeu1 (𝜑 → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
Distinct variable groups:   𝐴,𝑓   𝐵,𝑓   𝐶,𝑓   𝜑,𝑓

Proof of Theorem termoeu1
Dummy variables 𝑎 𝑔 𝑏 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 termoeu1.b . . 3 (𝜑𝐵 ∈ (TermO‘𝐶))
2 eqid 2726 . . . 4 (Base‘𝐶) = (Base‘𝐶)
3 eqid 2726 . . . 4 (Hom ‘𝐶) = (Hom ‘𝐶)
4 termoeu1.c . . . 4 (𝜑𝐶 ∈ Cat)
52, 3, 4istermoi 18017 . . 3 ((𝜑𝐵 ∈ (TermO‘𝐶)) → (𝐵 ∈ (Base‘𝐶) ∧ ∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵)))
61, 5mpdan 685 . 2 (𝜑 → (𝐵 ∈ (Base‘𝐶) ∧ ∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵)))
7 termoeu1.a . . . . 5 (𝜑𝐴 ∈ (TermO‘𝐶))
82, 3, 4istermoi 18017 . . . . 5 ((𝜑𝐴 ∈ (TermO‘𝐶)) → (𝐴 ∈ (Base‘𝐶) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)))
97, 8mpdan 685 . . . 4 (𝜑 → (𝐴 ∈ (Base‘𝐶) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)))
10 oveq1 7423 . . . . . . . . . 10 (𝑎 = 𝐴 → (𝑎(Hom ‘𝐶)𝐵) = (𝐴(Hom ‘𝐶)𝐵))
1110eleq2d 2812 . . . . . . . . 9 (𝑎 = 𝐴 → (𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) ↔ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)))
1211eubidv 2575 . . . . . . . 8 (𝑎 = 𝐴 → (∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) ↔ ∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)))
1312rspcv 3603 . . . . . . 7 (𝐴 ∈ (Base‘𝐶) → (∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) → ∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)))
14 eqid 2726 . . . . . . . . . . . . . 14 (Iso‘𝐶) = (Iso‘𝐶)
154adantr 479 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → 𝐶 ∈ Cat)
16 simprl 769 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → 𝐴 ∈ (Base‘𝐶))
17 simprr 771 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → 𝐵 ∈ (Base‘𝐶))
182, 3, 14, 15, 16, 17isohom 17787 . . . . . . . . . . . . 13 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (𝐴(Iso‘𝐶)𝐵) ⊆ (𝐴(Hom ‘𝐶)𝐵))
1918adantr 479 . . . . . . . . . . . 12 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴))) → (𝐴(Iso‘𝐶)𝐵) ⊆ (𝐴(Hom ‘𝐶)𝐵))
20 euex 2566 . . . . . . . . . . . . . . 15 (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → ∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵))
2120a1i 11 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → ∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)))
22 oveq1 7423 . . . . . . . . . . . . . . . . . . . 20 (𝑏 = 𝐵 → (𝑏(Hom ‘𝐶)𝐴) = (𝐵(Hom ‘𝐶)𝐴))
2322eleq2d 2812 . . . . . . . . . . . . . . . . . . 19 (𝑏 = 𝐵 → (𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴) ↔ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)))
2423eubidv 2575 . . . . . . . . . . . . . . . . . 18 (𝑏 = 𝐵 → (∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴) ↔ ∃!𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)))
2524rspcva 3605 . . . . . . . . . . . . . . . . 17 ((𝐵 ∈ (Base‘𝐶) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)) → ∃!𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴))
26 euex 2566 . . . . . . . . . . . . . . . . 17 (∃!𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴) → ∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴))
2725, 26syl 17 . . . . . . . . . . . . . . . 16 ((𝐵 ∈ (Base‘𝐶) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)) → ∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴))
2827ex 411 . . . . . . . . . . . . . . 15 (𝐵 ∈ (Base‘𝐶) → (∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴) → ∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)))
2928ad2antll 727 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴) → ∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)))
30 eqid 2726 . . . . . . . . . . . . . . . . . . . . 21 (Inv‘𝐶) = (Inv‘𝐶)
3115ad2antrr 724 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝐶 ∈ Cat)
3216ad2antrr 724 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝐴 ∈ (Base‘𝐶))
3317ad2antrr 724 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝐵 ∈ (Base‘𝐶))
344, 7, 12termoinv 18034 . . . . . . . . . . . . . . . . . . . . . 22 ((𝜑𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝑓(𝐴(Inv‘𝐶)𝐵)𝑔)
3534ad4ant134 1171 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝑓(𝐴(Inv‘𝐶)𝐵)𝑔)
362, 30, 31, 32, 33, 14, 35inviso1 17777 . . . . . . . . . . . . . . . . . . . 20 ((((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
3736ex 411 . . . . . . . . . . . . . . . . . . 19 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) → (𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))
3837eximdv 1913 . . . . . . . . . . . . . . . . . 18 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) → (∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))
3938expcom 412 . . . . . . . . . . . . . . . . 17 (𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴) → ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))))
4039exlimiv 1926 . . . . . . . . . . . . . . . 16 (∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴) → ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))))
4140com3l 89 . . . . . . . . . . . . . . 15 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → (∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))))
4241impd 409 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → ((∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))
4321, 29, 42syl2and 606 . . . . . . . . . . . . 13 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → ((∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))
4443imp 405 . . . . . . . . . . . 12 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴))) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
45 simprl 769 . . . . . . . . . . . 12 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴))) → ∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵))
46 euelss 4321 . . . . . . . . . . . 12 (((𝐴(Iso‘𝐶)𝐵) ⊆ (𝐴(Hom ‘𝐶)𝐵) ∧ ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵) ∧ ∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
4719, 44, 45, 46syl3anc 1368 . . . . . . . . . . 11 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴))) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
4847exp42 434 . . . . . . . . . 10 (𝜑 → (𝐴 ∈ (Base‘𝐶) → (𝐵 ∈ (Base‘𝐶) → ((∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))))
4948com24 95 . . . . . . . . 9 (𝜑 → ((∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)) → (𝐵 ∈ (Base‘𝐶) → (𝐴 ∈ (Base‘𝐶) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))))
5049com14 96 . . . . . . . 8 (𝐴 ∈ (Base‘𝐶) → ((∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)) → (𝐵 ∈ (Base‘𝐶) → (𝜑 → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))))
5150expd 414 . . . . . . 7 (𝐴 ∈ (Base‘𝐶) → (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → (∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴) → (𝐵 ∈ (Base‘𝐶) → (𝜑 → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))))))
5213, 51syldc 48 . . . . . 6 (∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) → (𝐴 ∈ (Base‘𝐶) → (∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴) → (𝐵 ∈ (Base‘𝐶) → (𝜑 → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))))))
5352com15 101 . . . . 5 (𝜑 → (𝐴 ∈ (Base‘𝐶) → (∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴) → (𝐵 ∈ (Base‘𝐶) → (∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))))))
5453impd 409 . . . 4 (𝜑 → ((𝐴 ∈ (Base‘𝐶) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)) → (𝐵 ∈ (Base‘𝐶) → (∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))))
559, 54mpd 15 . . 3 (𝜑 → (𝐵 ∈ (Base‘𝐶) → (∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))))
5655impd 409 . 2 (𝜑 → ((𝐵 ∈ (Base‘𝐶) ∧ ∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵)) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))
576, 56mpd 15 1 (𝜑 → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 394   = wceq 1534  wex 1774  wcel 2099  ∃!weu 2557  wral 3051  wss 3946   class class class wbr 5145  cfv 6546  (class class class)co 7416  Basecbs 17208  Hom chom 17272  Catccat 17672  Invcinv 17756  Isociso 17757  TermOctermo 17999
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1790  ax-4 1804  ax-5 1906  ax-6 1964  ax-7 2004  ax-8 2101  ax-9 2109  ax-10 2130  ax-11 2147  ax-12 2167  ax-ext 2697  ax-rep 5282  ax-sep 5296  ax-nul 5303  ax-pow 5361  ax-pr 5425  ax-un 7738
This theorem depends on definitions:  df-bi 206  df-an 395  df-or 846  df-3an 1086  df-tru 1537  df-fal 1547  df-ex 1775  df-nf 1779  df-sb 2061  df-mo 2529  df-eu 2558  df-clab 2704  df-cleq 2718  df-clel 2803  df-nfc 2878  df-ne 2931  df-ral 3052  df-rex 3061  df-rmo 3364  df-reu 3365  df-rab 3420  df-v 3464  df-sbc 3776  df-csb 3892  df-dif 3949  df-un 3951  df-in 3953  df-ss 3963  df-nul 4323  df-if 4524  df-pw 4599  df-sn 4624  df-pr 4626  df-op 4630  df-uni 4906  df-iun 4995  df-br 5146  df-opab 5208  df-mpt 5229  df-id 5572  df-xp 5680  df-rel 5681  df-cnv 5682  df-co 5683  df-dm 5684  df-rn 5685  df-res 5686  df-ima 5687  df-iota 6498  df-fun 6548  df-fn 6549  df-f 6550  df-f1 6551  df-fo 6552  df-f1o 6553  df-fv 6554  df-riota 7372  df-ov 7419  df-oprab 7420  df-mpo 7421  df-1st 7995  df-2nd 7996  df-cat 17676  df-cid 17677  df-sect 17758  df-inv 17759  df-iso 17760  df-termo 18002
This theorem is referenced by:  termoeu1w  18036
  Copyright terms: Public domain W3C validator