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

Theorem termoeu1 17649
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 2738 . . . 4 (Base‘𝐶) = (Base‘𝐶)
3 eqid 2738 . . . 4 (Hom ‘𝐶) = (Hom ‘𝐶)
4 termoeu1.c . . . 4 (𝜑𝐶 ∈ Cat)
52, 3, 4istermoi 17631 . . 3 ((𝜑𝐵 ∈ (TermO‘𝐶)) → (𝐵 ∈ (Base‘𝐶) ∧ ∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵)))
61, 5mpdan 683 . 2 (𝜑 → (𝐵 ∈ (Base‘𝐶) ∧ ∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵)))
7 termoeu1.a . . . . 5 (𝜑𝐴 ∈ (TermO‘𝐶))
82, 3, 4istermoi 17631 . . . . 5 ((𝜑𝐴 ∈ (TermO‘𝐶)) → (𝐴 ∈ (Base‘𝐶) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)))
97, 8mpdan 683 . . . 4 (𝜑 → (𝐴 ∈ (Base‘𝐶) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)))
10 oveq1 7262 . . . . . . . . . 10 (𝑎 = 𝐴 → (𝑎(Hom ‘𝐶)𝐵) = (𝐴(Hom ‘𝐶)𝐵))
1110eleq2d 2824 . . . . . . . . 9 (𝑎 = 𝐴 → (𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) ↔ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)))
1211eubidv 2586 . . . . . . . 8 (𝑎 = 𝐴 → (∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) ↔ ∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)))
1312rspcv 3547 . . . . . . 7 (𝐴 ∈ (Base‘𝐶) → (∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) → ∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)))
14 eqid 2738 . . . . . . . . . . . . . 14 (Iso‘𝐶) = (Iso‘𝐶)
154adantr 480 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → 𝐶 ∈ Cat)
16 simprl 767 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → 𝐴 ∈ (Base‘𝐶))
17 simprr 769 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → 𝐵 ∈ (Base‘𝐶))
182, 3, 14, 15, 16, 17isohom 17405 . . . . . . . . . . . . 13 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (𝐴(Iso‘𝐶)𝐵) ⊆ (𝐴(Hom ‘𝐶)𝐵))
1918adantr 480 . . . . . . . . . . . 12 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴))) → (𝐴(Iso‘𝐶)𝐵) ⊆ (𝐴(Hom ‘𝐶)𝐵))
20 euex 2577 . . . . . . . . . . . . . . 15 (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → ∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵))
2120a1i 11 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → ∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)))
22 oveq1 7262 . . . . . . . . . . . . . . . . . . . 20 (𝑏 = 𝐵 → (𝑏(Hom ‘𝐶)𝐴) = (𝐵(Hom ‘𝐶)𝐴))
2322eleq2d 2824 . . . . . . . . . . . . . . . . . . 19 (𝑏 = 𝐵 → (𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴) ↔ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)))
2423eubidv 2586 . . . . . . . . . . . . . . . . . 18 (𝑏 = 𝐵 → (∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴) ↔ ∃!𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)))
2524rspcva 3550 . . . . . . . . . . . . . . . . 17 ((𝐵 ∈ (Base‘𝐶) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)) → ∃!𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴))
26 euex 2577 . . . . . . . . . . . . . . . . 17 (∃!𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴) → ∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴))
2725, 26syl 17 . . . . . . . . . . . . . . . 16 ((𝐵 ∈ (Base‘𝐶) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)) → ∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴))
2827ex 412 . . . . . . . . . . . . . . 15 (𝐵 ∈ (Base‘𝐶) → (∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴) → ∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)))
2928ad2antll 725 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴) → ∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)))
30 eqid 2738 . . . . . . . . . . . . . . . . . . . . 21 (Inv‘𝐶) = (Inv‘𝐶)
3115ad2antrr 722 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝐶 ∈ Cat)
3216ad2antrr 722 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝐴 ∈ (Base‘𝐶))
3317ad2antrr 722 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝐵 ∈ (Base‘𝐶))
344, 7, 12termoinv 17648 . . . . . . . . . . . . . . . . . . . . . 22 ((𝜑𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝑓(𝐴(Inv‘𝐶)𝐵)𝑔)
3534ad4ant134 1172 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝑓(𝐴(Inv‘𝐶)𝐵)𝑔)
362, 30, 31, 32, 33, 14, 35inviso1 17395 . . . . . . . . . . . . . . . . . . . 20 ((((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
3736ex 412 . . . . . . . . . . . . . . . . . . 19 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) → (𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))
3837eximdv 1921 . . . . . . . . . . . . . . . . . 18 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) → (∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))
3938expcom 413 . . . . . . . . . . . . . . . . 17 (𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴) → ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))))
4039exlimiv 1934 . . . . . . . . . . . . . . . 16 (∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴) → ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))))
4140com3l 89 . . . . . . . . . . . . . . 15 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → (∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))))
4241impd 410 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → ((∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))
4321, 29, 42syl2and 607 . . . . . . . . . . . . 13 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → ((∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))
4443imp 406 . . . . . . . . . . . 12 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴))) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
45 simprl 767 . . . . . . . . . . . 12 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴))) → ∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵))
46 euelss 4252 . . . . . . . . . . . 12 (((𝐴(Iso‘𝐶)𝐵) ⊆ (𝐴(Hom ‘𝐶)𝐵) ∧ ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵) ∧ ∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
4719, 44, 45, 46syl3anc 1369 . . . . . . . . . . 11 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴))) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
4847exp42 435 . . . . . . . . . 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 415 . . . . . . 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 410 . . . 4 (𝜑 → ((𝐴 ∈ (Base‘𝐶) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)) → (𝐵 ∈ (Base‘𝐶) → (∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))))
559, 54mpd 15 . . 3 (𝜑 → (𝐵 ∈ (Base‘𝐶) → (∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))))
5655impd 410 . 2 (𝜑 → ((𝐵 ∈ (Base‘𝐶) ∧ ∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵)) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))
576, 56mpd 15 1 (𝜑 → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 395   = wceq 1539  wex 1783  wcel 2108  ∃!weu 2568  wral 3063  wss 3883   class class class wbr 5070  cfv 6418  (class class class)co 7255  Basecbs 16840  Hom chom 16899  Catccat 17290  Invcinv 17374  Isociso 17375  TermOctermo 17613
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1799  ax-4 1813  ax-5 1914  ax-6 1972  ax-7 2012  ax-8 2110  ax-9 2118  ax-10 2139  ax-11 2156  ax-12 2173  ax-ext 2709  ax-rep 5205  ax-sep 5218  ax-nul 5225  ax-pow 5283  ax-pr 5347  ax-un 7566
This theorem depends on definitions:  df-bi 206  df-an 396  df-or 844  df-3an 1087  df-tru 1542  df-fal 1552  df-ex 1784  df-nf 1788  df-sb 2069  df-mo 2540  df-eu 2569  df-clab 2716  df-cleq 2730  df-clel 2817  df-nfc 2888  df-ne 2943  df-ral 3068  df-rex 3069  df-reu 3070  df-rmo 3071  df-rab 3072  df-v 3424  df-sbc 3712  df-csb 3829  df-dif 3886  df-un 3888  df-in 3890  df-ss 3900  df-nul 4254  df-if 4457  df-pw 4532  df-sn 4559  df-pr 4561  df-op 4565  df-uni 4837  df-iun 4923  df-br 5071  df-opab 5133  df-mpt 5154  df-id 5480  df-xp 5586  df-rel 5587  df-cnv 5588  df-co 5589  df-dm 5590  df-rn 5591  df-res 5592  df-ima 5593  df-iota 6376  df-fun 6420  df-fn 6421  df-f 6422  df-f1 6423  df-fo 6424  df-f1o 6425  df-fv 6426  df-riota 7212  df-ov 7258  df-oprab 7259  df-mpo 7260  df-1st 7804  df-2nd 7805  df-cat 17294  df-cid 17295  df-sect 17376  df-inv 17377  df-iso 17378  df-termo 17616
This theorem is referenced by:  termoeu1w  17650
  Copyright terms: Public domain W3C validator