Metamath Proof Explorer


Theorem coof

Description: The composition of ahomomorphism with a function operation. (Contributed by SN, 20-May-2025)

Ref Expression
Hypotheses coof.f ( 𝜑𝐹 : 𝐴𝐵 )
coof.g ( 𝜑𝐺 : 𝐴𝐵 )
coof.h ( 𝜑𝐻 Fn 𝐵 )
coof.a ( 𝜑𝐴𝑉 )
coof.1 ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐵 ) ) → ( 𝑏 𝑅 𝑐 ) ∈ 𝐵 )
coof.2 ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐵 ) ) → ( 𝐻 ‘ ( 𝑏 𝑅 𝑐 ) ) = ( ( 𝐻𝑏 ) 𝑆 ( 𝐻𝑐 ) ) )
Assertion coof ( 𝜑 → ( 𝐻 ∘ ( 𝐹f 𝑅 𝐺 ) ) = ( ( 𝐻𝐹 ) ∘f 𝑆 ( 𝐻𝐺 ) ) )

Proof

Step Hyp Ref Expression
1 coof.f ( 𝜑𝐹 : 𝐴𝐵 )
2 coof.g ( 𝜑𝐺 : 𝐴𝐵 )
3 coof.h ( 𝜑𝐻 Fn 𝐵 )
4 coof.a ( 𝜑𝐴𝑉 )
5 coof.1 ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐵 ) ) → ( 𝑏 𝑅 𝑐 ) ∈ 𝐵 )
6 coof.2 ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐵 ) ) → ( 𝐻 ‘ ( 𝑏 𝑅 𝑐 ) ) = ( ( 𝐻𝑏 ) 𝑆 ( 𝐻𝑐 ) ) )
7 1 ffvelcdmda ( ( 𝜑𝑥𝐴 ) → ( 𝐹𝑥 ) ∈ 𝐵 )
8 2 ffvelcdmda ( ( 𝜑𝑥𝐴 ) → ( 𝐺𝑥 ) ∈ 𝐵 )
9 6 ralrimivva ( 𝜑 → ∀ 𝑏𝐵𝑐𝐵 ( 𝐻 ‘ ( 𝑏 𝑅 𝑐 ) ) = ( ( 𝐻𝑏 ) 𝑆 ( 𝐻𝑐 ) ) )
10 9 adantr ( ( 𝜑𝑥𝐴 ) → ∀ 𝑏𝐵𝑐𝐵 ( 𝐻 ‘ ( 𝑏 𝑅 𝑐 ) ) = ( ( 𝐻𝑏 ) 𝑆 ( 𝐻𝑐 ) ) )
11 fvoveq1 ( 𝑏 = ( 𝐹𝑥 ) → ( 𝐻 ‘ ( 𝑏 𝑅 𝑐 ) ) = ( 𝐻 ‘ ( ( 𝐹𝑥 ) 𝑅 𝑐 ) ) )
12 fveq2 ( 𝑏 = ( 𝐹𝑥 ) → ( 𝐻𝑏 ) = ( 𝐻 ‘ ( 𝐹𝑥 ) ) )
13 12 oveq1d ( 𝑏 = ( 𝐹𝑥 ) → ( ( 𝐻𝑏 ) 𝑆 ( 𝐻𝑐 ) ) = ( ( 𝐻 ‘ ( 𝐹𝑥 ) ) 𝑆 ( 𝐻𝑐 ) ) )
14 11 13 eqeq12d ( 𝑏 = ( 𝐹𝑥 ) → ( ( 𝐻 ‘ ( 𝑏 𝑅 𝑐 ) ) = ( ( 𝐻𝑏 ) 𝑆 ( 𝐻𝑐 ) ) ↔ ( 𝐻 ‘ ( ( 𝐹𝑥 ) 𝑅 𝑐 ) ) = ( ( 𝐻 ‘ ( 𝐹𝑥 ) ) 𝑆 ( 𝐻𝑐 ) ) ) )
15 oveq2 ( 𝑐 = ( 𝐺𝑥 ) → ( ( 𝐹𝑥 ) 𝑅 𝑐 ) = ( ( 𝐹𝑥 ) 𝑅 ( 𝐺𝑥 ) ) )
16 15 fveq2d ( 𝑐 = ( 𝐺𝑥 ) → ( 𝐻 ‘ ( ( 𝐹𝑥 ) 𝑅 𝑐 ) ) = ( 𝐻 ‘ ( ( 𝐹𝑥 ) 𝑅 ( 𝐺𝑥 ) ) ) )
17 fveq2 ( 𝑐 = ( 𝐺𝑥 ) → ( 𝐻𝑐 ) = ( 𝐻 ‘ ( 𝐺𝑥 ) ) )
18 17 oveq2d ( 𝑐 = ( 𝐺𝑥 ) → ( ( 𝐻 ‘ ( 𝐹𝑥 ) ) 𝑆 ( 𝐻𝑐 ) ) = ( ( 𝐻 ‘ ( 𝐹𝑥 ) ) 𝑆 ( 𝐻 ‘ ( 𝐺𝑥 ) ) ) )
19 16 18 eqeq12d ( 𝑐 = ( 𝐺𝑥 ) → ( ( 𝐻 ‘ ( ( 𝐹𝑥 ) 𝑅 𝑐 ) ) = ( ( 𝐻 ‘ ( 𝐹𝑥 ) ) 𝑆 ( 𝐻𝑐 ) ) ↔ ( 𝐻 ‘ ( ( 𝐹𝑥 ) 𝑅 ( 𝐺𝑥 ) ) ) = ( ( 𝐻 ‘ ( 𝐹𝑥 ) ) 𝑆 ( 𝐻 ‘ ( 𝐺𝑥 ) ) ) ) )
20 14 19 rspc2va ( ( ( ( 𝐹𝑥 ) ∈ 𝐵 ∧ ( 𝐺𝑥 ) ∈ 𝐵 ) ∧ ∀ 𝑏𝐵𝑐𝐵 ( 𝐻 ‘ ( 𝑏 𝑅 𝑐 ) ) = ( ( 𝐻𝑏 ) 𝑆 ( 𝐻𝑐 ) ) ) → ( 𝐻 ‘ ( ( 𝐹𝑥 ) 𝑅 ( 𝐺𝑥 ) ) ) = ( ( 𝐻 ‘ ( 𝐹𝑥 ) ) 𝑆 ( 𝐻 ‘ ( 𝐺𝑥 ) ) ) )
21 7 8 10 20 syl21anc ( ( 𝜑𝑥𝐴 ) → ( 𝐻 ‘ ( ( 𝐹𝑥 ) 𝑅 ( 𝐺𝑥 ) ) ) = ( ( 𝐻 ‘ ( 𝐹𝑥 ) ) 𝑆 ( 𝐻 ‘ ( 𝐺𝑥 ) ) ) )
22 21 mpteq2dva ( 𝜑 → ( 𝑥𝐴 ↦ ( 𝐻 ‘ ( ( 𝐹𝑥 ) 𝑅 ( 𝐺𝑥 ) ) ) ) = ( 𝑥𝐴 ↦ ( ( 𝐻 ‘ ( 𝐹𝑥 ) ) 𝑆 ( 𝐻 ‘ ( 𝐺𝑥 ) ) ) ) )
23 1 ffnd ( 𝜑𝐹 Fn 𝐴 )
24 2 ffnd ( 𝜑𝐺 Fn 𝐴 )
25 inidm ( 𝐴𝐴 ) = 𝐴
26 eqidd ( ( 𝜑𝑥𝐴 ) → ( 𝐹𝑥 ) = ( 𝐹𝑥 ) )
27 eqidd ( ( 𝜑𝑥𝐴 ) → ( 𝐺𝑥 ) = ( 𝐺𝑥 ) )
28 23 24 4 4 25 26 27 offval ( 𝜑 → ( 𝐹f 𝑅 𝐺 ) = ( 𝑥𝐴 ↦ ( ( 𝐹𝑥 ) 𝑅 ( 𝐺𝑥 ) ) ) )
29 28 coeq2d ( 𝜑 → ( 𝐻 ∘ ( 𝐹f 𝑅 𝐺 ) ) = ( 𝐻 ∘ ( 𝑥𝐴 ↦ ( ( 𝐹𝑥 ) 𝑅 ( 𝐺𝑥 ) ) ) ) )
30 dffn3 ( 𝐻 Fn 𝐵𝐻 : 𝐵 ⟶ ran 𝐻 )
31 3 30 sylib ( 𝜑𝐻 : 𝐵 ⟶ ran 𝐻 )
32 7 8 jca ( ( 𝜑𝑥𝐴 ) → ( ( 𝐹𝑥 ) ∈ 𝐵 ∧ ( 𝐺𝑥 ) ∈ 𝐵 ) )
33 5 caovclg ( ( 𝜑 ∧ ( ( 𝐹𝑥 ) ∈ 𝐵 ∧ ( 𝐺𝑥 ) ∈ 𝐵 ) ) → ( ( 𝐹𝑥 ) 𝑅 ( 𝐺𝑥 ) ) ∈ 𝐵 )
34 32 33 syldan ( ( 𝜑𝑥𝐴 ) → ( ( 𝐹𝑥 ) 𝑅 ( 𝐺𝑥 ) ) ∈ 𝐵 )
35 31 34 cofmpt ( 𝜑 → ( 𝐻 ∘ ( 𝑥𝐴 ↦ ( ( 𝐹𝑥 ) 𝑅 ( 𝐺𝑥 ) ) ) ) = ( 𝑥𝐴 ↦ ( 𝐻 ‘ ( ( 𝐹𝑥 ) 𝑅 ( 𝐺𝑥 ) ) ) ) )
36 29 35 eqtrd ( 𝜑 → ( 𝐻 ∘ ( 𝐹f 𝑅 𝐺 ) ) = ( 𝑥𝐴 ↦ ( 𝐻 ‘ ( ( 𝐹𝑥 ) 𝑅 ( 𝐺𝑥 ) ) ) ) )
37 fnfco ( ( 𝐻 Fn 𝐵𝐹 : 𝐴𝐵 ) → ( 𝐻𝐹 ) Fn 𝐴 )
38 3 1 37 syl2anc ( 𝜑 → ( 𝐻𝐹 ) Fn 𝐴 )
39 fnfco ( ( 𝐻 Fn 𝐵𝐺 : 𝐴𝐵 ) → ( 𝐻𝐺 ) Fn 𝐴 )
40 3 2 39 syl2anc ( 𝜑 → ( 𝐻𝐺 ) Fn 𝐴 )
41 fvco2 ( ( 𝐹 Fn 𝐴𝑥𝐴 ) → ( ( 𝐻𝐹 ) ‘ 𝑥 ) = ( 𝐻 ‘ ( 𝐹𝑥 ) ) )
42 23 41 sylan ( ( 𝜑𝑥𝐴 ) → ( ( 𝐻𝐹 ) ‘ 𝑥 ) = ( 𝐻 ‘ ( 𝐹𝑥 ) ) )
43 fvco2 ( ( 𝐺 Fn 𝐴𝑥𝐴 ) → ( ( 𝐻𝐺 ) ‘ 𝑥 ) = ( 𝐻 ‘ ( 𝐺𝑥 ) ) )
44 24 43 sylan ( ( 𝜑𝑥𝐴 ) → ( ( 𝐻𝐺 ) ‘ 𝑥 ) = ( 𝐻 ‘ ( 𝐺𝑥 ) ) )
45 38 40 4 4 25 42 44 offval ( 𝜑 → ( ( 𝐻𝐹 ) ∘f 𝑆 ( 𝐻𝐺 ) ) = ( 𝑥𝐴 ↦ ( ( 𝐻 ‘ ( 𝐹𝑥 ) ) 𝑆 ( 𝐻 ‘ ( 𝐺𝑥 ) ) ) ) )
46 22 36 45 3eqtr4d ( 𝜑 → ( 𝐻 ∘ ( 𝐹f 𝑅 𝐺 ) ) = ( ( 𝐻𝐹 ) ∘f 𝑆 ( 𝐻𝐺 ) ) )