Metamath Proof Explorer


Theorem diag2f1olem

Description: Lemma for diag2f1o . (Contributed by Zhi Wang, 21-Oct-2025)

Ref Expression
Hypotheses diag2f1o.l 𝐿 = ( 𝐶 Δfunc 𝐷 )
diag2f1o.a 𝐴 = ( Base ‘ 𝐶 )
diag2f1o.h 𝐻 = ( Hom ‘ 𝐶 )
diag2f1o.x ( 𝜑𝑋𝐴 )
diag2f1o.y ( 𝜑𝑌𝐴 )
diag2f1o.n 𝑁 = ( 𝐷 Nat 𝐶 )
diag2f1o.d ( 𝜑𝐷 ∈ TermCat )
diag2f1olem.m ( 𝜑𝑀 ∈ ( ( ( 1st𝐿 ) ‘ 𝑋 ) 𝑁 ( ( 1st𝐿 ) ‘ 𝑌 ) ) )
diag2f1olem.b 𝐵 = ( Base ‘ 𝐷 )
diag2f1olem.z ( 𝜑𝑍𝐵 )
diag2f1olem.f 𝐹 = ( 𝑀𝑍 )
Assertion diag2f1olem ( 𝜑 → ( 𝐹 ∈ ( 𝑋 𝐻 𝑌 ) ∧ 𝑀 = ( ( 𝑋 ( 2nd𝐿 ) 𝑌 ) ‘ 𝐹 ) ) )

Proof

Step Hyp Ref Expression
1 diag2f1o.l 𝐿 = ( 𝐶 Δfunc 𝐷 )
2 diag2f1o.a 𝐴 = ( Base ‘ 𝐶 )
3 diag2f1o.h 𝐻 = ( Hom ‘ 𝐶 )
4 diag2f1o.x ( 𝜑𝑋𝐴 )
5 diag2f1o.y ( 𝜑𝑌𝐴 )
6 diag2f1o.n 𝑁 = ( 𝐷 Nat 𝐶 )
7 diag2f1o.d ( 𝜑𝐷 ∈ TermCat )
8 diag2f1olem.m ( 𝜑𝑀 ∈ ( ( ( 1st𝐿 ) ‘ 𝑋 ) 𝑁 ( ( 1st𝐿 ) ‘ 𝑌 ) ) )
9 diag2f1olem.b 𝐵 = ( Base ‘ 𝐷 )
10 diag2f1olem.z ( 𝜑𝑍𝐵 )
11 diag2f1olem.f 𝐹 = ( 𝑀𝑍 )
12 6 8 nat1st2nd ( 𝜑𝑀 ∈ ( ⟨ ( 1st ‘ ( ( 1st𝐿 ) ‘ 𝑋 ) ) , ( 2nd ‘ ( ( 1st𝐿 ) ‘ 𝑋 ) ) ⟩ 𝑁 ⟨ ( 1st ‘ ( ( 1st𝐿 ) ‘ 𝑌 ) ) , ( 2nd ‘ ( ( 1st𝐿 ) ‘ 𝑌 ) ) ⟩ ) )
13 6 12 9 3 10 natcl ( 𝜑 → ( 𝑀𝑍 ) ∈ ( ( ( 1st ‘ ( ( 1st𝐿 ) ‘ 𝑋 ) ) ‘ 𝑍 ) 𝐻 ( ( 1st ‘ ( ( 1st𝐿 ) ‘ 𝑌 ) ) ‘ 𝑍 ) ) )
14 6 12 natrcl2 ( 𝜑 → ( 1st ‘ ( ( 1st𝐿 ) ‘ 𝑋 ) ) ( 𝐷 Func 𝐶 ) ( 2nd ‘ ( ( 1st𝐿 ) ‘ 𝑋 ) ) )
15 14 funcrcl3 ( 𝜑𝐶 ∈ Cat )
16 7 termccd ( 𝜑𝐷 ∈ Cat )
17 eqid ( ( 1st𝐿 ) ‘ 𝑋 ) = ( ( 1st𝐿 ) ‘ 𝑋 )
18 1 15 16 2 4 17 9 10 diag11 ( 𝜑 → ( ( 1st ‘ ( ( 1st𝐿 ) ‘ 𝑋 ) ) ‘ 𝑍 ) = 𝑋 )
19 eqid ( ( 1st𝐿 ) ‘ 𝑌 ) = ( ( 1st𝐿 ) ‘ 𝑌 )
20 1 15 16 2 5 19 9 10 diag11 ( 𝜑 → ( ( 1st ‘ ( ( 1st𝐿 ) ‘ 𝑌 ) ) ‘ 𝑍 ) = 𝑌 )
21 18 20 oveq12d ( 𝜑 → ( ( ( 1st ‘ ( ( 1st𝐿 ) ‘ 𝑋 ) ) ‘ 𝑍 ) 𝐻 ( ( 1st ‘ ( ( 1st𝐿 ) ‘ 𝑌 ) ) ‘ 𝑍 ) ) = ( 𝑋 𝐻 𝑌 ) )
22 13 21 eleqtrd ( 𝜑 → ( 𝑀𝑍 ) ∈ ( 𝑋 𝐻 𝑌 ) )
23 11 22 eqeltrid ( 𝜑𝐹 ∈ ( 𝑋 𝐻 𝑌 ) )
24 7 6 8 9 10 11 termcnatval ( 𝜑𝑀 = { ⟨ 𝑍 , 𝐹 ⟩ } )
25 1 2 9 3 15 16 4 5 23 diag2 ( 𝜑 → ( ( 𝑋 ( 2nd𝐿 ) 𝑌 ) ‘ 𝐹 ) = ( 𝐵 × { 𝐹 } ) )
26 7 9 10 termcbas2 ( 𝜑𝐵 = { 𝑍 } )
27 26 xpeq1d ( 𝜑 → ( 𝐵 × { 𝐹 } ) = ( { 𝑍 } × { 𝐹 } ) )
28 xpsng ( ( 𝑍𝐵𝐹 ∈ ( 𝑋 𝐻 𝑌 ) ) → ( { 𝑍 } × { 𝐹 } ) = { ⟨ 𝑍 , 𝐹 ⟩ } )
29 10 23 28 syl2anc ( 𝜑 → ( { 𝑍 } × { 𝐹 } ) = { ⟨ 𝑍 , 𝐹 ⟩ } )
30 25 27 29 3eqtrd ( 𝜑 → ( ( 𝑋 ( 2nd𝐿 ) 𝑌 ) ‘ 𝐹 ) = { ⟨ 𝑍 , 𝐹 ⟩ } )
31 24 30 eqtr4d ( 𝜑𝑀 = ( ( 𝑋 ( 2nd𝐿 ) 𝑌 ) ‘ 𝐹 ) )
32 23 31 jca ( 𝜑 → ( 𝐹 ∈ ( 𝑋 𝐻 𝑌 ) ∧ 𝑀 = ( ( 𝑋 ( 2nd𝐿 ) 𝑌 ) ‘ 𝐹 ) ) )