Metamath Proof Explorer


Theorem dfinito4

Description: An alternate definition of df-inito using universal property. See also the "Equivalent formulations" section of https://en.wikipedia.org/wiki/Initial_and_terminal_objects . (Contributed by Zhi Wang, 23-Oct-2025)

Ref Expression
Assertion dfinito4 InitO = ( 𝑐 ∈ Cat ↦ ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) )

Proof

Step Hyp Ref Expression
1 initofn InitO Fn Cat
2 ovex ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) ∈ V
3 2 dmex dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) ∈ V
4 3 csbex ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) ∈ V
5 4 csbex ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) ∈ V
6 eqid ( 𝑐 ∈ Cat ↦ ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) ) = ( 𝑐 ∈ Cat ↦ ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) )
7 5 6 fnmpti ( 𝑐 ∈ Cat ↦ ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) ) Fn Cat
8 eqfnfv ( ( InitO Fn Cat ∧ ( 𝑐 ∈ Cat ↦ ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) ) Fn Cat ) → ( InitO = ( 𝑐 ∈ Cat ↦ ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) ) ↔ ∀ 𝑒 ∈ Cat ( InitO ‘ 𝑒 ) = ( ( 𝑐 ∈ Cat ↦ ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) ) ‘ 𝑒 ) ) )
9 1 7 8 mp2an ( InitO = ( 𝑐 ∈ Cat ↦ ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) ) ↔ ∀ 𝑒 ∈ Cat ( InitO ‘ 𝑒 ) = ( ( 𝑐 ∈ Cat ↦ ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) ) ‘ 𝑒 ) )
10 eqid ( SetCat ‘ 1o ) = ( SetCat ‘ 1o )
11 eqid ( ( 1st ‘ ( ( SetCat ‘ 1o ) Δfunc 𝑒 ) ) ‘ ∅ ) = ( ( 1st ‘ ( ( SetCat ‘ 1o ) Δfunc 𝑒 ) ) ‘ ∅ )
12 10 11 isinito3 ( 𝑥 ∈ ( InitO ‘ 𝑒 ) ↔ 𝑥 ∈ dom ( ( ( 1st ‘ ( ( SetCat ‘ 1o ) Δfunc 𝑒 ) ) ‘ ∅ ) ( 𝑒 UP ( SetCat ‘ 1o ) ) ∅ ) )
13 12 eqriv ( InitO ‘ 𝑒 ) = dom ( ( ( 1st ‘ ( ( SetCat ‘ 1o ) Δfunc 𝑒 ) ) ‘ ∅ ) ( 𝑒 UP ( SetCat ‘ 1o ) ) ∅ )
14 fvex ( SetCat ‘ 1o ) ∈ V
15 fvexd ( 𝑑 = ( SetCat ‘ 1o ) → ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) ∈ V )
16 simpl ( ( 𝑑 = ( SetCat ‘ 1o ) ∧ 𝑓 = ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) ) → 𝑑 = ( SetCat ‘ 1o ) )
17 16 oveq2d ( ( 𝑑 = ( SetCat ‘ 1o ) ∧ 𝑓 = ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) ) → ( 𝑒 UP 𝑑 ) = ( 𝑒 UP ( SetCat ‘ 1o ) ) )
18 simpr ( ( 𝑑 = ( SetCat ‘ 1o ) ∧ 𝑓 = ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) ) → 𝑓 = ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) )
19 16 fvoveq1d ( ( 𝑑 = ( SetCat ‘ 1o ) ∧ 𝑓 = ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) ) → ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) = ( 1st ‘ ( ( SetCat ‘ 1o ) Δfunc 𝑒 ) ) )
20 19 fveq1d ( ( 𝑑 = ( SetCat ‘ 1o ) ∧ 𝑓 = ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) ) → ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) = ( ( 1st ‘ ( ( SetCat ‘ 1o ) Δfunc 𝑒 ) ) ‘ ∅ ) )
21 18 20 eqtrd ( ( 𝑑 = ( SetCat ‘ 1o ) ∧ 𝑓 = ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) ) → 𝑓 = ( ( 1st ‘ ( ( SetCat ‘ 1o ) Δfunc 𝑒 ) ) ‘ ∅ ) )
22 eqidd ( ( 𝑑 = ( SetCat ‘ 1o ) ∧ 𝑓 = ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) ) → ∅ = ∅ )
23 17 21 22 oveq123d ( ( 𝑑 = ( SetCat ‘ 1o ) ∧ 𝑓 = ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) ) → ( 𝑓 ( 𝑒 UP 𝑑 ) ∅ ) = ( ( ( 1st ‘ ( ( SetCat ‘ 1o ) Δfunc 𝑒 ) ) ‘ ∅ ) ( 𝑒 UP ( SetCat ‘ 1o ) ) ∅ ) )
24 23 dmeqd ( ( 𝑑 = ( SetCat ‘ 1o ) ∧ 𝑓 = ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) ) → dom ( 𝑓 ( 𝑒 UP 𝑑 ) ∅ ) = dom ( ( ( 1st ‘ ( ( SetCat ‘ 1o ) Δfunc 𝑒 ) ) ‘ ∅ ) ( 𝑒 UP ( SetCat ‘ 1o ) ) ∅ ) )
25 15 24 csbied ( 𝑑 = ( SetCat ‘ 1o ) → ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑒 UP 𝑑 ) ∅ ) = dom ( ( ( 1st ‘ ( ( SetCat ‘ 1o ) Δfunc 𝑒 ) ) ‘ ∅ ) ( 𝑒 UP ( SetCat ‘ 1o ) ) ∅ ) )
26 14 25 csbie ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑒 UP 𝑑 ) ∅ ) = dom ( ( ( 1st ‘ ( ( SetCat ‘ 1o ) Δfunc 𝑒 ) ) ‘ ∅ ) ( 𝑒 UP ( SetCat ‘ 1o ) ) ∅ )
27 13 26 eqtr4i ( InitO ‘ 𝑒 ) = ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑒 UP 𝑑 ) ∅ )
28 oveq2 ( 𝑐 = 𝑒 → ( 𝑑 Δfunc 𝑐 ) = ( 𝑑 Δfunc 𝑒 ) )
29 28 fveq2d ( 𝑐 = 𝑒 → ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) = ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) )
30 29 fveq1d ( 𝑐 = 𝑒 → ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) = ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) )
31 oveq1 ( 𝑐 = 𝑒 → ( 𝑐 UP 𝑑 ) = ( 𝑒 UP 𝑑 ) )
32 31 oveqd ( 𝑐 = 𝑒 → ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) = ( 𝑓 ( 𝑒 UP 𝑑 ) ∅ ) )
33 32 dmeqd ( 𝑐 = 𝑒 → dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) = dom ( 𝑓 ( 𝑒 UP 𝑑 ) ∅ ) )
34 30 33 csbeq12dv ( 𝑐 = 𝑒 ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) = ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑒 UP 𝑑 ) ∅ ) )
35 34 csbeq2dv ( 𝑐 = 𝑒 ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) = ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑒 UP 𝑑 ) ∅ ) )
36 ovex ( 𝑓 ( 𝑒 UP 𝑑 ) ∅ ) ∈ V
37 36 dmex dom ( 𝑓 ( 𝑒 UP 𝑑 ) ∅ ) ∈ V
38 37 csbex ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑒 UP 𝑑 ) ∅ ) ∈ V
39 38 csbex ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑒 UP 𝑑 ) ∅ ) ∈ V
40 35 6 39 fvmpt ( 𝑒 ∈ Cat → ( ( 𝑐 ∈ Cat ↦ ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) ) ‘ 𝑒 ) = ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑒 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑒 UP 𝑑 ) ∅ ) )
41 27 40 eqtr4id ( 𝑒 ∈ Cat → ( InitO ‘ 𝑒 ) = ( ( 𝑐 ∈ Cat ↦ ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) ) ‘ 𝑒 ) )
42 9 41 mprgbir InitO = ( 𝑐 ∈ Cat ↦ ( SetCat ‘ 1o ) / 𝑑 ( ( 1st ‘ ( 𝑑 Δfunc 𝑐 ) ) ‘ ∅ ) / 𝑓 dom ( 𝑓 ( 𝑐 UP 𝑑 ) ∅ ) )