Metamath Proof Explorer


Theorem fprodfvdvdsd

Description: A finite product of integers is divisible by any of its factors being function values. (Contributed by AV, 1-Aug-2021)

Ref Expression
Hypotheses fprodfvdvdsd.a ( 𝜑𝐴 ∈ Fin )
fprodfvdvdsd.b ( 𝜑𝐴𝐵 )
fprodfvdvdsd.f ( 𝜑𝐹 : 𝐵 ⟶ ℤ )
Assertion fprodfvdvdsd ( 𝜑 → ∀ 𝑥𝐴 ( 𝐹𝑥 ) ∥ ∏ 𝑘𝐴 ( 𝐹𝑘 ) )

Proof

Step Hyp Ref Expression
1 fprodfvdvdsd.a ( 𝜑𝐴 ∈ Fin )
2 fprodfvdvdsd.b ( 𝜑𝐴𝐵 )
3 fprodfvdvdsd.f ( 𝜑𝐹 : 𝐵 ⟶ ℤ )
4 1 adantr ( ( 𝜑𝑥𝐴 ) → 𝐴 ∈ Fin )
5 diffi ( 𝐴 ∈ Fin → ( 𝐴 ∖ { 𝑥 } ) ∈ Fin )
6 4 5 syl ( ( 𝜑𝑥𝐴 ) → ( 𝐴 ∖ { 𝑥 } ) ∈ Fin )
7 3 adantr ( ( 𝜑𝑘 ∈ ( 𝐴 ∖ { 𝑥 } ) ) → 𝐹 : 𝐵 ⟶ ℤ )
8 2 ssdifssd ( 𝜑 → ( 𝐴 ∖ { 𝑥 } ) ⊆ 𝐵 )
9 8 sselda ( ( 𝜑𝑘 ∈ ( 𝐴 ∖ { 𝑥 } ) ) → 𝑘𝐵 )
10 7 9 ffvelrnd ( ( 𝜑𝑘 ∈ ( 𝐴 ∖ { 𝑥 } ) ) → ( 𝐹𝑘 ) ∈ ℤ )
11 10 adantlr ( ( ( 𝜑𝑥𝐴 ) ∧ 𝑘 ∈ ( 𝐴 ∖ { 𝑥 } ) ) → ( 𝐹𝑘 ) ∈ ℤ )
12 6 11 fprodzcl ( ( 𝜑𝑥𝐴 ) → ∏ 𝑘 ∈ ( 𝐴 ∖ { 𝑥 } ) ( 𝐹𝑘 ) ∈ ℤ )
13 3 adantr ( ( 𝜑𝑥𝐴 ) → 𝐹 : 𝐵 ⟶ ℤ )
14 2 sselda ( ( 𝜑𝑥𝐴 ) → 𝑥𝐵 )
15 13 14 ffvelrnd ( ( 𝜑𝑥𝐴 ) → ( 𝐹𝑥 ) ∈ ℤ )
16 dvdsmul2 ( ( ∏ 𝑘 ∈ ( 𝐴 ∖ { 𝑥 } ) ( 𝐹𝑘 ) ∈ ℤ ∧ ( 𝐹𝑥 ) ∈ ℤ ) → ( 𝐹𝑥 ) ∥ ( ∏ 𝑘 ∈ ( 𝐴 ∖ { 𝑥 } ) ( 𝐹𝑘 ) · ( 𝐹𝑥 ) ) )
17 12 15 16 syl2anc ( ( 𝜑𝑥𝐴 ) → ( 𝐹𝑥 ) ∥ ( ∏ 𝑘 ∈ ( 𝐴 ∖ { 𝑥 } ) ( 𝐹𝑘 ) · ( 𝐹𝑥 ) ) )
18 17 ralrimiva ( 𝜑 → ∀ 𝑥𝐴 ( 𝐹𝑥 ) ∥ ( ∏ 𝑘 ∈ ( 𝐴 ∖ { 𝑥 } ) ( 𝐹𝑘 ) · ( 𝐹𝑥 ) ) )
19 neldifsnd ( ( 𝜑𝑥𝐴 ) → ¬ 𝑥 ∈ ( 𝐴 ∖ { 𝑥 } ) )
20 disjsn ( ( ( 𝐴 ∖ { 𝑥 } ) ∩ { 𝑥 } ) = ∅ ↔ ¬ 𝑥 ∈ ( 𝐴 ∖ { 𝑥 } ) )
21 19 20 sylibr ( ( 𝜑𝑥𝐴 ) → ( ( 𝐴 ∖ { 𝑥 } ) ∩ { 𝑥 } ) = ∅ )
22 difsnid ( 𝑥𝐴 → ( ( 𝐴 ∖ { 𝑥 } ) ∪ { 𝑥 } ) = 𝐴 )
23 22 eqcomd ( 𝑥𝐴𝐴 = ( ( 𝐴 ∖ { 𝑥 } ) ∪ { 𝑥 } ) )
24 23 adantl ( ( 𝜑𝑥𝐴 ) → 𝐴 = ( ( 𝐴 ∖ { 𝑥 } ) ∪ { 𝑥 } ) )
25 13 adantr ( ( ( 𝜑𝑥𝐴 ) ∧ 𝑘𝐴 ) → 𝐹 : 𝐵 ⟶ ℤ )
26 2 adantr ( ( 𝜑𝑥𝐴 ) → 𝐴𝐵 )
27 26 sselda ( ( ( 𝜑𝑥𝐴 ) ∧ 𝑘𝐴 ) → 𝑘𝐵 )
28 25 27 ffvelrnd ( ( ( 𝜑𝑥𝐴 ) ∧ 𝑘𝐴 ) → ( 𝐹𝑘 ) ∈ ℤ )
29 28 zcnd ( ( ( 𝜑𝑥𝐴 ) ∧ 𝑘𝐴 ) → ( 𝐹𝑘 ) ∈ ℂ )
30 21 24 4 29 fprodsplit ( ( 𝜑𝑥𝐴 ) → ∏ 𝑘𝐴 ( 𝐹𝑘 ) = ( ∏ 𝑘 ∈ ( 𝐴 ∖ { 𝑥 } ) ( 𝐹𝑘 ) · ∏ 𝑘 ∈ { 𝑥 } ( 𝐹𝑘 ) ) )
31 simpr ( ( 𝜑𝑥𝐴 ) → 𝑥𝐴 )
32 15 zcnd ( ( 𝜑𝑥𝐴 ) → ( 𝐹𝑥 ) ∈ ℂ )
33 fveq2 ( 𝑘 = 𝑥 → ( 𝐹𝑘 ) = ( 𝐹𝑥 ) )
34 33 prodsn ( ( 𝑥𝐴 ∧ ( 𝐹𝑥 ) ∈ ℂ ) → ∏ 𝑘 ∈ { 𝑥 } ( 𝐹𝑘 ) = ( 𝐹𝑥 ) )
35 31 32 34 syl2anc ( ( 𝜑𝑥𝐴 ) → ∏ 𝑘 ∈ { 𝑥 } ( 𝐹𝑘 ) = ( 𝐹𝑥 ) )
36 35 oveq2d ( ( 𝜑𝑥𝐴 ) → ( ∏ 𝑘 ∈ ( 𝐴 ∖ { 𝑥 } ) ( 𝐹𝑘 ) · ∏ 𝑘 ∈ { 𝑥 } ( 𝐹𝑘 ) ) = ( ∏ 𝑘 ∈ ( 𝐴 ∖ { 𝑥 } ) ( 𝐹𝑘 ) · ( 𝐹𝑥 ) ) )
37 30 36 eqtrd ( ( 𝜑𝑥𝐴 ) → ∏ 𝑘𝐴 ( 𝐹𝑘 ) = ( ∏ 𝑘 ∈ ( 𝐴 ∖ { 𝑥 } ) ( 𝐹𝑘 ) · ( 𝐹𝑥 ) ) )
38 37 breq2d ( ( 𝜑𝑥𝐴 ) → ( ( 𝐹𝑥 ) ∥ ∏ 𝑘𝐴 ( 𝐹𝑘 ) ↔ ( 𝐹𝑥 ) ∥ ( ∏ 𝑘 ∈ ( 𝐴 ∖ { 𝑥 } ) ( 𝐹𝑘 ) · ( 𝐹𝑥 ) ) ) )
39 38 ralbidva ( 𝜑 → ( ∀ 𝑥𝐴 ( 𝐹𝑥 ) ∥ ∏ 𝑘𝐴 ( 𝐹𝑘 ) ↔ ∀ 𝑥𝐴 ( 𝐹𝑥 ) ∥ ( ∏ 𝑘 ∈ ( 𝐴 ∖ { 𝑥 } ) ( 𝐹𝑘 ) · ( 𝐹𝑥 ) ) ) )
40 18 39 mpbird ( 𝜑 → ∀ 𝑥𝐴 ( 𝐹𝑥 ) ∥ ∏ 𝑘𝐴 ( 𝐹𝑘 ) )