Metamath Proof Explorer


Theorem gausslemma2dlem5

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

Ref Expression
Hypotheses gausslemma2d.p โŠข ( ๐œ‘ โ†’ ๐‘ƒ โˆˆ ( โ„™ โˆ– { 2 } ) )
gausslemma2d.h โŠข ๐ป = ( ( ๐‘ƒ โˆ’ 1 ) / 2 )
gausslemma2d.r โŠข ๐‘… = ( ๐‘ฅ โˆˆ ( 1 ... ๐ป ) โ†ฆ if ( ( ๐‘ฅ ยท 2 ) < ( ๐‘ƒ / 2 ) , ( ๐‘ฅ ยท 2 ) , ( ๐‘ƒ โˆ’ ( ๐‘ฅ ยท 2 ) ) ) )
gausslemma2d.m โŠข ๐‘€ = ( โŒŠ โ€˜ ( ๐‘ƒ / 4 ) )
gausslemma2d.n โŠข ๐‘ = ( ๐ป โˆ’ ๐‘€ )
Assertion gausslemma2dlem5 ( ๐œ‘ โ†’ ( โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) mod ๐‘ƒ ) = ( ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) mod ๐‘ƒ ) )

Proof

Step Hyp Ref Expression
1 gausslemma2d.p โŠข ( ๐œ‘ โ†’ ๐‘ƒ โˆˆ ( โ„™ โˆ– { 2 } ) )
2 gausslemma2d.h โŠข ๐ป = ( ( ๐‘ƒ โˆ’ 1 ) / 2 )
3 gausslemma2d.r โŠข ๐‘… = ( ๐‘ฅ โˆˆ ( 1 ... ๐ป ) โ†ฆ if ( ( ๐‘ฅ ยท 2 ) < ( ๐‘ƒ / 2 ) , ( ๐‘ฅ ยท 2 ) , ( ๐‘ƒ โˆ’ ( ๐‘ฅ ยท 2 ) ) ) )
4 gausslemma2d.m โŠข ๐‘€ = ( โŒŠ โ€˜ ( ๐‘ƒ / 4 ) )
5 gausslemma2d.n โŠข ๐‘ = ( ๐ป โˆ’ ๐‘€ )
6 1 2 3 4 gausslemma2dlem5a โŠข ( ๐œ‘ โ†’ ( โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) mod ๐‘ƒ ) = ( โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( - 1 ยท ( ๐‘˜ ยท 2 ) ) mod ๐‘ƒ ) )
7 fzfi โŠข ( ( ๐‘€ + 1 ) ... ๐ป ) โˆˆ Fin
8 7 a1i โŠข ( ๐œ‘ โ†’ ( ( ๐‘€ + 1 ) ... ๐ป ) โˆˆ Fin )
9 neg1cn โŠข - 1 โˆˆ โ„‚
10 9 a1i โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ) โ†’ - 1 โˆˆ โ„‚ )
11 elfzelz โŠข ( ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) โ†’ ๐‘˜ โˆˆ โ„ค )
12 2z โŠข 2 โˆˆ โ„ค
13 12 a1i โŠข ( ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) โ†’ 2 โˆˆ โ„ค )
14 11 13 zmulcld โŠข ( ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) โ†’ ( ๐‘˜ ยท 2 ) โˆˆ โ„ค )
15 14 zcnd โŠข ( ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) โ†’ ( ๐‘˜ ยท 2 ) โˆˆ โ„‚ )
16 15 adantl โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ) โ†’ ( ๐‘˜ ยท 2 ) โˆˆ โ„‚ )
17 8 10 16 fprodmul โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( - 1 ยท ( ๐‘˜ ยท 2 ) ) = ( โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) - 1 ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) )
18 7 9 pm3.2i โŠข ( ( ( ๐‘€ + 1 ) ... ๐ป ) โˆˆ Fin โˆง - 1 โˆˆ โ„‚ )
19 fprodconst โŠข ( ( ( ( ๐‘€ + 1 ) ... ๐ป ) โˆˆ Fin โˆง - 1 โˆˆ โ„‚ ) โ†’ โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) - 1 = ( - 1 โ†‘ ( โ™ฏ โ€˜ ( ( ๐‘€ + 1 ) ... ๐ป ) ) ) )
20 18 19 mp1i โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) - 1 = ( - 1 โ†‘ ( โ™ฏ โ€˜ ( ( ๐‘€ + 1 ) ... ๐ป ) ) ) )
21 nnoddn2prm โŠข ( ๐‘ƒ โˆˆ ( โ„™ โˆ– { 2 } ) โ†’ ( ๐‘ƒ โˆˆ โ„• โˆง ยฌ 2 โˆฅ ๐‘ƒ ) )
22 nnre โŠข ( ๐‘ƒ โˆˆ โ„• โ†’ ๐‘ƒ โˆˆ โ„ )
23 22 adantr โŠข ( ( ๐‘ƒ โˆˆ โ„• โˆง ยฌ 2 โˆฅ ๐‘ƒ ) โ†’ ๐‘ƒ โˆˆ โ„ )
24 1 21 23 3syl โŠข ( ๐œ‘ โ†’ ๐‘ƒ โˆˆ โ„ )
25 4re โŠข 4 โˆˆ โ„
26 25 a1i โŠข ( ๐œ‘ โ†’ 4 โˆˆ โ„ )
27 4ne0 โŠข 4 โ‰  0
28 27 a1i โŠข ( ๐œ‘ โ†’ 4 โ‰  0 )
29 24 26 28 redivcld โŠข ( ๐œ‘ โ†’ ( ๐‘ƒ / 4 ) โˆˆ โ„ )
30 29 flcld โŠข ( ๐œ‘ โ†’ ( โŒŠ โ€˜ ( ๐‘ƒ / 4 ) ) โˆˆ โ„ค )
31 4 30 eqeltrid โŠข ( ๐œ‘ โ†’ ๐‘€ โˆˆ โ„ค )
32 31 peano2zd โŠข ( ๐œ‘ โ†’ ( ๐‘€ + 1 ) โˆˆ โ„ค )
33 nnz โŠข ( ๐‘ƒ โˆˆ โ„• โ†’ ๐‘ƒ โˆˆ โ„ค )
34 oddm1d2 โŠข ( ๐‘ƒ โˆˆ โ„ค โ†’ ( ยฌ 2 โˆฅ ๐‘ƒ โ†” ( ( ๐‘ƒ โˆ’ 1 ) / 2 ) โˆˆ โ„ค ) )
35 33 34 syl โŠข ( ๐‘ƒ โˆˆ โ„• โ†’ ( ยฌ 2 โˆฅ ๐‘ƒ โ†” ( ( ๐‘ƒ โˆ’ 1 ) / 2 ) โˆˆ โ„ค ) )
36 35 biimpa โŠข ( ( ๐‘ƒ โˆˆ โ„• โˆง ยฌ 2 โˆฅ ๐‘ƒ ) โ†’ ( ( ๐‘ƒ โˆ’ 1 ) / 2 ) โˆˆ โ„ค )
37 1 21 36 3syl โŠข ( ๐œ‘ โ†’ ( ( ๐‘ƒ โˆ’ 1 ) / 2 ) โˆˆ โ„ค )
38 2 37 eqeltrid โŠข ( ๐œ‘ โ†’ ๐ป โˆˆ โ„ค )
39 1 4 2 gausslemma2dlem0f โŠข ( ๐œ‘ โ†’ ( ๐‘€ + 1 ) โ‰ค ๐ป )
40 eluz2 โŠข ( ๐ป โˆˆ ( โ„คโ‰ฅ โ€˜ ( ๐‘€ + 1 ) ) โ†” ( ( ๐‘€ + 1 ) โˆˆ โ„ค โˆง ๐ป โˆˆ โ„ค โˆง ( ๐‘€ + 1 ) โ‰ค ๐ป ) )
41 32 38 39 40 syl3anbrc โŠข ( ๐œ‘ โ†’ ๐ป โˆˆ ( โ„คโ‰ฅ โ€˜ ( ๐‘€ + 1 ) ) )
42 hashfz โŠข ( ๐ป โˆˆ ( โ„คโ‰ฅ โ€˜ ( ๐‘€ + 1 ) ) โ†’ ( โ™ฏ โ€˜ ( ( ๐‘€ + 1 ) ... ๐ป ) ) = ( ( ๐ป โˆ’ ( ๐‘€ + 1 ) ) + 1 ) )
43 41 42 syl โŠข ( ๐œ‘ โ†’ ( โ™ฏ โ€˜ ( ( ๐‘€ + 1 ) ... ๐ป ) ) = ( ( ๐ป โˆ’ ( ๐‘€ + 1 ) ) + 1 ) )
44 38 zcnd โŠข ( ๐œ‘ โ†’ ๐ป โˆˆ โ„‚ )
45 31 zcnd โŠข ( ๐œ‘ โ†’ ๐‘€ โˆˆ โ„‚ )
46 1cnd โŠข ( ๐œ‘ โ†’ 1 โˆˆ โ„‚ )
47 44 45 46 nppcan2d โŠข ( ๐œ‘ โ†’ ( ( ๐ป โˆ’ ( ๐‘€ + 1 ) ) + 1 ) = ( ๐ป โˆ’ ๐‘€ ) )
48 47 5 eqtr4di โŠข ( ๐œ‘ โ†’ ( ( ๐ป โˆ’ ( ๐‘€ + 1 ) ) + 1 ) = ๐‘ )
49 43 48 eqtrd โŠข ( ๐œ‘ โ†’ ( โ™ฏ โ€˜ ( ( ๐‘€ + 1 ) ... ๐ป ) ) = ๐‘ )
50 49 oveq2d โŠข ( ๐œ‘ โ†’ ( - 1 โ†‘ ( โ™ฏ โ€˜ ( ( ๐‘€ + 1 ) ... ๐ป ) ) ) = ( - 1 โ†‘ ๐‘ ) )
51 20 50 eqtrd โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) - 1 = ( - 1 โ†‘ ๐‘ ) )
52 51 oveq1d โŠข ( ๐œ‘ โ†’ ( โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) - 1 ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) = ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) )
53 17 52 eqtrd โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( - 1 ยท ( ๐‘˜ ยท 2 ) ) = ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) )
54 53 oveq1d โŠข ( ๐œ‘ โ†’ ( โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( - 1 ยท ( ๐‘˜ ยท 2 ) ) mod ๐‘ƒ ) = ( ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) mod ๐‘ƒ ) )
55 6 54 eqtrd โŠข ( ๐œ‘ โ†’ ( โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) mod ๐‘ƒ ) = ( ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) mod ๐‘ƒ ) )