Metamath Proof Explorer


Theorem diag1f1olem

Description: To any functor from a terminal category can an object in the target base be assigned. (Contributed by Zhi Wang, 21-Oct-2025)

Ref Expression
Hypotheses diag1f1o.a 𝐴 = ( Base ‘ 𝐶 )
diag1f1o.d ( 𝜑𝐷 ∈ TermCat )
termcfuncval.k ( 𝜑𝐾 ∈ ( 𝐷 Func 𝐶 ) )
termcfuncval.b 𝐵 = ( Base ‘ 𝐷 )
termcfuncval.y ( 𝜑𝑌𝐵 )
termcfuncval.x 𝑋 = ( ( 1st𝐾 ) ‘ 𝑌 )
diag1f1olem.l 𝐿 = ( 𝐶 Δfunc 𝐷 )
Assertion diag1f1olem ( 𝜑 → ( 𝑋𝐴𝐾 = ( ( 1st𝐿 ) ‘ 𝑋 ) ) )

Proof

Step Hyp Ref Expression
1 diag1f1o.a 𝐴 = ( Base ‘ 𝐶 )
2 diag1f1o.d ( 𝜑𝐷 ∈ TermCat )
3 termcfuncval.k ( 𝜑𝐾 ∈ ( 𝐷 Func 𝐶 ) )
4 termcfuncval.b 𝐵 = ( Base ‘ 𝐷 )
5 termcfuncval.y ( 𝜑𝑌𝐵 )
6 termcfuncval.x 𝑋 = ( ( 1st𝐾 ) ‘ 𝑌 )
7 diag1f1olem.l 𝐿 = ( 𝐶 Δfunc 𝐷 )
8 eqid ( Id ‘ 𝐶 ) = ( Id ‘ 𝐶 )
9 eqid ( Id ‘ 𝐷 ) = ( Id ‘ 𝐷 )
10 1 2 3 4 5 6 8 9 termcfuncval ( 𝜑 → ( 𝑋𝐴𝐾 = ⟨ { ⟨ 𝑌 , 𝑋 ⟩ } , { ⟨ ⟨ 𝑌 , 𝑌 ⟩ , { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } ⟩ } ⟩ ) )
11 10 simpld ( 𝜑𝑋𝐴 )
12 2 4 5 termcbas2 ( 𝜑𝐵 = { 𝑌 } )
13 12 xpeq1d ( 𝜑 → ( 𝐵 × { 𝑋 } ) = ( { 𝑌 } × { 𝑋 } ) )
14 xpsng ( ( 𝑌𝐵𝑋𝐴 ) → ( { 𝑌 } × { 𝑋 } ) = { ⟨ 𝑌 , 𝑋 ⟩ } )
15 5 11 14 syl2anc ( 𝜑 → ( { 𝑌 } × { 𝑋 } ) = { ⟨ 𝑌 , 𝑋 ⟩ } )
16 13 15 eqtrd ( 𝜑 → ( 𝐵 × { 𝑋 } ) = { ⟨ 𝑌 , 𝑋 ⟩ } )
17 12 adantr ( ( 𝜑𝑦𝐵 ) → 𝐵 = { 𝑌 } )
18 2 adantr ( ( 𝜑 ∧ ( 𝑦𝐵𝑧𝐵 ) ) → 𝐷 ∈ TermCat )
19 simprl ( ( 𝜑 ∧ ( 𝑦𝐵𝑧𝐵 ) ) → 𝑦𝐵 )
20 simprr ( ( 𝜑 ∧ ( 𝑦𝐵𝑧𝐵 ) ) → 𝑧𝐵 )
21 eqid ( Hom ‘ 𝐷 ) = ( Hom ‘ 𝐷 )
22 5 adantr ( ( 𝜑 ∧ ( 𝑦𝐵𝑧𝐵 ) ) → 𝑌𝐵 )
23 18 4 19 20 21 9 22 termchom2 ( ( 𝜑 ∧ ( 𝑦𝐵𝑧𝐵 ) ) → ( 𝑦 ( Hom ‘ 𝐷 ) 𝑧 ) = { ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) } )
24 23 xpeq1d ( ( 𝜑 ∧ ( 𝑦𝐵𝑧𝐵 ) ) → ( ( 𝑦 ( Hom ‘ 𝐷 ) 𝑧 ) × { ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) } ) = ( { ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) } × { ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) } ) )
25 fvex ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) ∈ V
26 fvex ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ∈ V
27 25 26 xpsn ( { ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) } × { ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) } ) = { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ }
28 24 27 eqtrdi ( ( 𝜑 ∧ ( 𝑦𝐵𝑧𝐵 ) ) → ( ( 𝑦 ( Hom ‘ 𝐷 ) 𝑧 ) × { ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) } ) = { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } )
29 12 17 28 mpoeq123dva ( 𝜑 → ( 𝑦𝐵 , 𝑧𝐵 ↦ ( ( 𝑦 ( Hom ‘ 𝐷 ) 𝑧 ) × { ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) } ) ) = ( 𝑦 ∈ { 𝑌 } , 𝑧 ∈ { 𝑌 } ↦ { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } ) )
30 snex { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } ∈ V
31 30 a1i ( 𝜑 → { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } ∈ V )
32 eqid ( 𝑦 ∈ { 𝑌 } , 𝑧 ∈ { 𝑌 } ↦ { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } ) = ( 𝑦 ∈ { 𝑌 } , 𝑧 ∈ { 𝑌 } ↦ { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } )
33 eqidd ( 𝑦 = 𝑌 → { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } = { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } )
34 eqidd ( 𝑧 = 𝑌 → { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } = { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } )
35 32 33 34 mposn ( ( 𝑌𝐵𝑌𝐵 ∧ { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } ∈ V ) → ( 𝑦 ∈ { 𝑌 } , 𝑧 ∈ { 𝑌 } ↦ { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } ) = { ⟨ ⟨ 𝑌 , 𝑌 ⟩ , { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } ⟩ } )
36 5 5 31 35 syl3anc ( 𝜑 → ( 𝑦 ∈ { 𝑌 } , 𝑧 ∈ { 𝑌 } ↦ { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } ) = { ⟨ ⟨ 𝑌 , 𝑌 ⟩ , { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } ⟩ } )
37 29 36 eqtrd ( 𝜑 → ( 𝑦𝐵 , 𝑧𝐵 ↦ ( ( 𝑦 ( Hom ‘ 𝐷 ) 𝑧 ) × { ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) } ) ) = { ⟨ ⟨ 𝑌 , 𝑌 ⟩ , { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } ⟩ } )
38 16 37 opeq12d ( 𝜑 → ⟨ ( 𝐵 × { 𝑋 } ) , ( 𝑦𝐵 , 𝑧𝐵 ↦ ( ( 𝑦 ( Hom ‘ 𝐷 ) 𝑧 ) × { ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) } ) ) ⟩ = ⟨ { ⟨ 𝑌 , 𝑋 ⟩ } , { ⟨ ⟨ 𝑌 , 𝑌 ⟩ , { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } ⟩ } ⟩ )
39 3 func1st2nd ( 𝜑 → ( 1st𝐾 ) ( 𝐷 Func 𝐶 ) ( 2nd𝐾 ) )
40 39 funcrcl3 ( 𝜑𝐶 ∈ Cat )
41 2 termccd ( 𝜑𝐷 ∈ Cat )
42 eqid ( ( 1st𝐿 ) ‘ 𝑋 ) = ( ( 1st𝐿 ) ‘ 𝑋 )
43 7 40 41 1 11 42 4 21 8 diag1a ( 𝜑 → ( ( 1st𝐿 ) ‘ 𝑋 ) = ⟨ ( 𝐵 × { 𝑋 } ) , ( 𝑦𝐵 , 𝑧𝐵 ↦ ( ( 𝑦 ( Hom ‘ 𝐷 ) 𝑧 ) × { ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) } ) ) ⟩ )
44 10 simprd ( 𝜑𝐾 = ⟨ { ⟨ 𝑌 , 𝑋 ⟩ } , { ⟨ ⟨ 𝑌 , 𝑌 ⟩ , { ⟨ ( ( Id ‘ 𝐷 ) ‘ 𝑌 ) , ( ( Id ‘ 𝐶 ) ‘ 𝑋 ) ⟩ } ⟩ } ⟩ )
45 38 43 44 3eqtr4rd ( 𝜑𝐾 = ( ( 1st𝐿 ) ‘ 𝑋 ) )
46 11 45 jca ( 𝜑 → ( 𝑋𝐴𝐾 = ( ( 1st𝐿 ) ‘ 𝑋 ) ) )