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

Theorem termoeu1 17478
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 2736 . . . 4 (Base‘𝐶) = (Base‘𝐶)
3 eqid 2736 . . . 4 (Hom ‘𝐶) = (Hom ‘𝐶)
4 termoeu1.c . . . 4 (𝜑𝐶 ∈ Cat)
52, 3, 4istermoi 17460 . . 3 ((𝜑𝐵 ∈ (TermO‘𝐶)) → (𝐵 ∈ (Base‘𝐶) ∧ ∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵)))
61, 5mpdan 687 . 2 (𝜑 → (𝐵 ∈ (Base‘𝐶) ∧ ∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵)))
7 termoeu1.a . . . . 5 (𝜑𝐴 ∈ (TermO‘𝐶))
82, 3, 4istermoi 17460 . . . . 5 ((𝜑𝐴 ∈ (TermO‘𝐶)) → (𝐴 ∈ (Base‘𝐶) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)))
97, 8mpdan 687 . . . 4 (𝜑 → (𝐴 ∈ (Base‘𝐶) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)))
10 oveq1 7198 . . . . . . . . . 10 (𝑎 = 𝐴 → (𝑎(Hom ‘𝐶)𝐵) = (𝐴(Hom ‘𝐶)𝐵))
1110eleq2d 2816 . . . . . . . . 9 (𝑎 = 𝐴 → (𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) ↔ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)))
1211eubidv 2585 . . . . . . . 8 (𝑎 = 𝐴 → (∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) ↔ ∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)))
1312rspcv 3522 . . . . . . 7 (𝐴 ∈ (Base‘𝐶) → (∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) → ∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)))
14 eqid 2736 . . . . . . . . . . . . . 14 (Iso‘𝐶) = (Iso‘𝐶)
154adantr 484 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → 𝐶 ∈ Cat)
16 simprl 771 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → 𝐴 ∈ (Base‘𝐶))
17 simprr 773 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → 𝐵 ∈ (Base‘𝐶))
182, 3, 14, 15, 16, 17isohom 17235 . . . . . . . . . . . . 13 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (𝐴(Iso‘𝐶)𝐵) ⊆ (𝐴(Hom ‘𝐶)𝐵))
1918adantr 484 . . . . . . . . . . . 12 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴))) → (𝐴(Iso‘𝐶)𝐵) ⊆ (𝐴(Hom ‘𝐶)𝐵))
20 euex 2576 . . . . . . . . . . . . . . 15 (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → ∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵))
2120a1i 11 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → ∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)))
22 oveq1 7198 . . . . . . . . . . . . . . . . . . . 20 (𝑏 = 𝐵 → (𝑏(Hom ‘𝐶)𝐴) = (𝐵(Hom ‘𝐶)𝐴))
2322eleq2d 2816 . . . . . . . . . . . . . . . . . . 19 (𝑏 = 𝐵 → (𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴) ↔ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)))
2423eubidv 2585 . . . . . . . . . . . . . . . . . 18 (𝑏 = 𝐵 → (∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴) ↔ ∃!𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)))
2524rspcva 3525 . . . . . . . . . . . . . . . . 17 ((𝐵 ∈ (Base‘𝐶) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)) → ∃!𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴))
26 euex 2576 . . . . . . . . . . . . . . . . 17 (∃!𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴) → ∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴))
2725, 26syl 17 . . . . . . . . . . . . . . . 16 ((𝐵 ∈ (Base‘𝐶) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)) → ∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴))
2827ex 416 . . . . . . . . . . . . . . 15 (𝐵 ∈ (Base‘𝐶) → (∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴) → ∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)))
2928ad2antll 729 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴) → ∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)))
30 eqid 2736 . . . . . . . . . . . . . . . . . . . . 21 (Inv‘𝐶) = (Inv‘𝐶)
3115ad2antrr 726 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝐶 ∈ Cat)
3216ad2antrr 726 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝐴 ∈ (Base‘𝐶))
3317ad2antrr 726 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝐵 ∈ (Base‘𝐶))
344, 7, 12termoinv 17477 . . . . . . . . . . . . . . . . . . . . . 22 ((𝜑𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝑓(𝐴(Inv‘𝐶)𝐵)𝑔)
3534ad4ant134 1176 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝑓(𝐴(Inv‘𝐶)𝐵)𝑔)
362, 30, 31, 32, 33, 14, 35inviso1 17225 . . . . . . . . . . . . . . . . . . . 20 ((((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) ∧ 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
3736ex 416 . . . . . . . . . . . . . . . . . . 19 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) → (𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))
3837eximdv 1925 . . . . . . . . . . . . . . . . . 18 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) → (∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))
3938expcom 417 . . . . . . . . . . . . . . . . 17 (𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴) → ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))))
4039exlimiv 1938 . . . . . . . . . . . . . . . 16 (∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴) → ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))))
4140com3l 89 . . . . . . . . . . . . . . 15 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → (∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) → (∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))))
4241impd 414 . . . . . . . . . . . . . 14 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → ((∃𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∃𝑔 𝑔 ∈ (𝐵(Hom ‘𝐶)𝐴)) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))
4321, 29, 42syl2and 611 . . . . . . . . . . . . 13 ((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) → ((∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))
4443imp 410 . . . . . . . . . . . 12 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴))) → ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
45 simprl 771 . . . . . . . . . . . 12 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴))) → ∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵))
46 euelss 4222 . . . . . . . . . . . 12 (((𝐴(Iso‘𝐶)𝐵) ⊆ (𝐴(Hom ‘𝐶)𝐵) ∧ ∃𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵) ∧ ∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵)) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
4719, 44, 45, 46syl3anc 1373 . . . . . . . . . . 11 (((𝜑 ∧ (𝐴 ∈ (Base‘𝐶) ∧ 𝐵 ∈ (Base‘𝐶))) ∧ (∃!𝑓 𝑓 ∈ (𝐴(Hom ‘𝐶)𝐵) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴))) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
4847exp42 439 . . . . . . . . . 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 419 . . . . . . 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 414 . . . 4 (𝜑 → ((𝐴 ∈ (Base‘𝐶) ∧ ∀𝑏 ∈ (Base‘𝐶)∃!𝑔 𝑔 ∈ (𝑏(Hom ‘𝐶)𝐴)) → (𝐵 ∈ (Base‘𝐶) → (∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))))
559, 54mpd 15 . . 3 (𝜑 → (𝐵 ∈ (Base‘𝐶) → (∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))))
5655impd 414 . 2 (𝜑 → ((𝐵 ∈ (Base‘𝐶) ∧ ∀𝑎 ∈ (Base‘𝐶)∃!𝑓 𝑓 ∈ (𝑎(Hom ‘𝐶)𝐵)) → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵)))
576, 56mpd 15 1 (𝜑 → ∃!𝑓 𝑓 ∈ (𝐴(Iso‘𝐶)𝐵))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 399   = wceq 1543  wex 1787  wcel 2112  ∃!weu 2567  wral 3051  wss 3853   class class class wbr 5039  cfv 6358  (class class class)co 7191  Basecbs 16666  Hom chom 16760  Catccat 17121  Invcinv 17204  Isociso 17205  TermOctermo 17442
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1803  ax-4 1817  ax-5 1918  ax-6 1976  ax-7 2018  ax-8 2114  ax-9 2122  ax-10 2143  ax-11 2160  ax-12 2177  ax-ext 2708  ax-rep 5164  ax-sep 5177  ax-nul 5184  ax-pow 5243  ax-pr 5307  ax-un 7501
This theorem depends on definitions:  df-bi 210  df-an 400  df-or 848  df-3an 1091  df-tru 1546  df-fal 1556  df-ex 1788  df-nf 1792  df-sb 2073  df-mo 2539  df-eu 2568  df-clab 2715  df-cleq 2728  df-clel 2809  df-nfc 2879  df-ne 2933  df-ral 3056  df-rex 3057  df-reu 3058  df-rmo 3059  df-rab 3060  df-v 3400  df-sbc 3684  df-csb 3799  df-dif 3856  df-un 3858  df-in 3860  df-ss 3870  df-nul 4224  df-if 4426  df-pw 4501  df-sn 4528  df-pr 4530  df-op 4534  df-uni 4806  df-iun 4892  df-br 5040  df-opab 5102  df-mpt 5121  df-id 5440  df-xp 5542  df-rel 5543  df-cnv 5544  df-co 5545  df-dm 5546  df-rn 5547  df-res 5548  df-ima 5549  df-iota 6316  df-fun 6360  df-fn 6361  df-f 6362  df-f1 6363  df-fo 6364  df-f1o 6365  df-fv 6366  df-riota 7148  df-ov 7194  df-oprab 7195  df-mpo 7196  df-1st 7739  df-2nd 7740  df-cat 17125  df-cid 17126  df-sect 17206  df-inv 17207  df-iso 17208  df-termo 17445
This theorem is referenced by:  termoeu1w  17479
  Copyright terms: Public domain W3C validator