Metamath Proof Explorer


Theorem gausslemma2dlem1

Description: Lemma 1 for gausslemma2d . (Contributed by AV, 5-Jul-2021)

Ref Expression
Hypotheses gausslemma2d.p ( 𝜑𝑃 ∈ ( ℙ ∖ { 2 } ) )
gausslemma2d.h 𝐻 = ( ( 𝑃 − 1 ) / 2 )
gausslemma2d.r 𝑅 = ( 𝑥 ∈ ( 1 ... 𝐻 ) ↦ if ( ( 𝑥 · 2 ) < ( 𝑃 / 2 ) , ( 𝑥 · 2 ) , ( 𝑃 − ( 𝑥 · 2 ) ) ) )
Assertion gausslemma2dlem1 ( 𝜑 → ( ! ‘ 𝐻 ) = ∏ 𝑘 ∈ ( 1 ... 𝐻 ) ( 𝑅𝑘 ) )

Proof

Step Hyp Ref Expression
1 gausslemma2d.p ( 𝜑𝑃 ∈ ( ℙ ∖ { 2 } ) )
2 gausslemma2d.h 𝐻 = ( ( 𝑃 − 1 ) / 2 )
3 gausslemma2d.r 𝑅 = ( 𝑥 ∈ ( 1 ... 𝐻 ) ↦ if ( ( 𝑥 · 2 ) < ( 𝑃 / 2 ) , ( 𝑥 · 2 ) , ( 𝑃 − ( 𝑥 · 2 ) ) ) )
4 1 2 gausslemma2dlem0b ( 𝜑𝐻 ∈ ℕ )
5 4 nnnn0d ( 𝜑𝐻 ∈ ℕ0 )
6 fprodfac ( 𝐻 ∈ ℕ0 → ( ! ‘ 𝐻 ) = ∏ 𝑙 ∈ ( 1 ... 𝐻 ) 𝑙 )
7 5 6 syl ( 𝜑 → ( ! ‘ 𝐻 ) = ∏ 𝑙 ∈ ( 1 ... 𝐻 ) 𝑙 )
8 id ( 𝑙 = ( 𝑅𝑘 ) → 𝑙 = ( 𝑅𝑘 ) )
9 fzfid ( 𝜑 → ( 1 ... 𝐻 ) ∈ Fin )
10 fzfi ( 1 ... 𝐻 ) ∈ Fin
11 ovex ( 𝑥 · 2 ) ∈ V
12 ovex ( 𝑃 − ( 𝑥 · 2 ) ) ∈ V
13 11 12 ifex if ( ( 𝑥 · 2 ) < ( 𝑃 / 2 ) , ( 𝑥 · 2 ) , ( 𝑃 − ( 𝑥 · 2 ) ) ) ∈ V
14 13 3 fnmpti 𝑅 Fn ( 1 ... 𝐻 )
15 1 2 3 gausslemma2dlem1a ( 𝜑 → ran 𝑅 = ( 1 ... 𝐻 ) )
16 rneqdmfinf1o ( ( ( 1 ... 𝐻 ) ∈ Fin ∧ 𝑅 Fn ( 1 ... 𝐻 ) ∧ ran 𝑅 = ( 1 ... 𝐻 ) ) → 𝑅 : ( 1 ... 𝐻 ) –1-1-onto→ ( 1 ... 𝐻 ) )
17 10 14 15 16 mp3an12i ( 𝜑𝑅 : ( 1 ... 𝐻 ) –1-1-onto→ ( 1 ... 𝐻 ) )
18 eqidd ( ( 𝜑𝑘 ∈ ( 1 ... 𝐻 ) ) → ( 𝑅𝑘 ) = ( 𝑅𝑘 ) )
19 elfzelz ( 𝑙 ∈ ( 1 ... 𝐻 ) → 𝑙 ∈ ℤ )
20 19 zcnd ( 𝑙 ∈ ( 1 ... 𝐻 ) → 𝑙 ∈ ℂ )
21 20 adantl ( ( 𝜑𝑙 ∈ ( 1 ... 𝐻 ) ) → 𝑙 ∈ ℂ )
22 8 9 17 18 21 fprodf1o ( 𝜑 → ∏ 𝑙 ∈ ( 1 ... 𝐻 ) 𝑙 = ∏ 𝑘 ∈ ( 1 ... 𝐻 ) ( 𝑅𝑘 ) )
23 7 22 eqtrd ( 𝜑 → ( ! ‘ 𝐻 ) = ∏ 𝑘 ∈ ( 1 ... 𝐻 ) ( 𝑅𝑘 ) )