Metamath Proof Explorer


Theorem gausslemma2dlem6

Description: Lemma 6 for gausslemma2d . (Contributed by AV, 16-Jun-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 gausslemma2dlem6 ( ๐œ‘ โ†’ ( ( ! โ€˜ ๐ป ) mod ๐‘ƒ ) = ( ( ( ( - 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 gausslemma2dlem4 โŠข ( ๐œ‘ โ†’ ( ! โ€˜ ๐ป ) = ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) ) )
7 6 oveq1d โŠข ( ๐œ‘ โ†’ ( ( ! โ€˜ ๐ป ) mod ๐‘ƒ ) = ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) ) mod ๐‘ƒ ) )
8 fzfid โŠข ( ๐œ‘ โ†’ ( 1 ... ๐‘€ ) โˆˆ Fin )
9 1 2 3 4 gausslemma2dlem2 โŠข ( ๐œ‘ โ†’ โˆ€ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘˜ ยท 2 ) )
10 9 adantr โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ) โ†’ โˆ€ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘˜ ยท 2 ) )
11 rspa โŠข ( ( โˆ€ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘˜ ยท 2 ) โˆง ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ) โ†’ ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘˜ ยท 2 ) )
12 11 expcom โŠข ( ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) โ†’ ( โˆ€ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘˜ ยท 2 ) โ†’ ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘˜ ยท 2 ) ) )
13 12 adantl โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ) โ†’ ( โˆ€ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘˜ ยท 2 ) โ†’ ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘˜ ยท 2 ) ) )
14 elfzelz โŠข ( ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) โ†’ ๐‘˜ โˆˆ โ„ค )
15 2z โŠข 2 โˆˆ โ„ค
16 15 a1i โŠข ( ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) โ†’ 2 โˆˆ โ„ค )
17 14 16 zmulcld โŠข ( ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) โ†’ ( ๐‘˜ ยท 2 ) โˆˆ โ„ค )
18 17 adantl โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ) โ†’ ( ๐‘˜ ยท 2 ) โˆˆ โ„ค )
19 eleq1 โŠข ( ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘˜ ยท 2 ) โ†’ ( ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ค โ†” ( ๐‘˜ ยท 2 ) โˆˆ โ„ค ) )
20 18 19 syl5ibrcom โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ) โ†’ ( ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘˜ ยท 2 ) โ†’ ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ค ) )
21 13 20 syld โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ) โ†’ ( โˆ€ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘˜ ยท 2 ) โ†’ ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ค ) )
22 10 21 mpd โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ) โ†’ ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ค )
23 8 22 fprodzcl โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ค )
24 fzfid โŠข ( ๐œ‘ โ†’ ( ( ๐‘€ + 1 ) ... ๐ป ) โˆˆ Fin )
25 1 2 3 4 gausslemma2dlem3 โŠข ( ๐œ‘ โ†’ โˆ€ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘ƒ โˆ’ ( ๐‘˜ ยท 2 ) ) )
26 25 adantr โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ) โ†’ โˆ€ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘ƒ โˆ’ ( ๐‘˜ ยท 2 ) ) )
27 rspa โŠข ( ( โˆ€ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘ƒ โˆ’ ( ๐‘˜ ยท 2 ) ) โˆง ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ) โ†’ ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘ƒ โˆ’ ( ๐‘˜ ยท 2 ) ) )
28 27 expcom โŠข ( ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) โ†’ ( โˆ€ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘ƒ โˆ’ ( ๐‘˜ ยท 2 ) ) โ†’ ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘ƒ โˆ’ ( ๐‘˜ ยท 2 ) ) ) )
29 28 adantl โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ) โ†’ ( โˆ€ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘ƒ โˆ’ ( ๐‘˜ ยท 2 ) ) โ†’ ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘ƒ โˆ’ ( ๐‘˜ ยท 2 ) ) ) )
30 1 gausslemma2dlem0a โŠข ( ๐œ‘ โ†’ ๐‘ƒ โˆˆ โ„• )
31 30 nnzd โŠข ( ๐œ‘ โ†’ ๐‘ƒ โˆˆ โ„ค )
32 elfzelz โŠข ( ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) โ†’ ๐‘˜ โˆˆ โ„ค )
33 15 a1i โŠข ( ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) โ†’ 2 โˆˆ โ„ค )
34 32 33 zmulcld โŠข ( ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) โ†’ ( ๐‘˜ ยท 2 ) โˆˆ โ„ค )
35 zsubcl โŠข ( ( ๐‘ƒ โˆˆ โ„ค โˆง ( ๐‘˜ ยท 2 ) โˆˆ โ„ค ) โ†’ ( ๐‘ƒ โˆ’ ( ๐‘˜ ยท 2 ) ) โˆˆ โ„ค )
36 31 34 35 syl2an โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ) โ†’ ( ๐‘ƒ โˆ’ ( ๐‘˜ ยท 2 ) ) โˆˆ โ„ค )
37 eleq1 โŠข ( ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘ƒ โˆ’ ( ๐‘˜ ยท 2 ) ) โ†’ ( ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ค โ†” ( ๐‘ƒ โˆ’ ( ๐‘˜ ยท 2 ) ) โˆˆ โ„ค ) )
38 36 37 syl5ibrcom โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ) โ†’ ( ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘ƒ โˆ’ ( ๐‘˜ ยท 2 ) ) โ†’ ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ค ) )
39 29 38 syld โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ) โ†’ ( โˆ€ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) = ( ๐‘ƒ โˆ’ ( ๐‘˜ ยท 2 ) ) โ†’ ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ค ) )
40 26 39 mpd โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ) โ†’ ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ค )
41 24 40 fprodzcl โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ค )
42 41 zred โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ )
43 nnoddn2prm โŠข ( ๐‘ƒ โˆˆ ( โ„™ โˆ– { 2 } ) โ†’ ( ๐‘ƒ โˆˆ โ„• โˆง ยฌ 2 โˆฅ ๐‘ƒ ) )
44 nnrp โŠข ( ๐‘ƒ โˆˆ โ„• โ†’ ๐‘ƒ โˆˆ โ„+ )
45 44 adantr โŠข ( ( ๐‘ƒ โˆˆ โ„• โˆง ยฌ 2 โˆฅ ๐‘ƒ ) โ†’ ๐‘ƒ โˆˆ โ„+ )
46 1 43 45 3syl โŠข ( ๐œ‘ โ†’ ๐‘ƒ โˆˆ โ„+ )
47 modmulmodr โŠข ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ค โˆง โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ โˆง ๐‘ƒ โˆˆ โ„+ ) โ†’ ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท ( โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) mod ๐‘ƒ ) ) mod ๐‘ƒ ) = ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) ) mod ๐‘ƒ ) )
48 47 eqcomd โŠข ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ค โˆง โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ โˆง ๐‘ƒ โˆˆ โ„+ ) โ†’ ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) ) mod ๐‘ƒ ) = ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท ( โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) mod ๐‘ƒ ) ) mod ๐‘ƒ ) )
49 23 42 46 48 syl3anc โŠข ( ๐œ‘ โ†’ ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) ) mod ๐‘ƒ ) = ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท ( โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) mod ๐‘ƒ ) ) mod ๐‘ƒ ) )
50 1 2 3 4 5 gausslemma2dlem5 โŠข ( ๐œ‘ โ†’ ( โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) mod ๐‘ƒ ) = ( ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) mod ๐‘ƒ ) )
51 50 oveq2d โŠข ( ๐œ‘ โ†’ ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท ( โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) mod ๐‘ƒ ) ) = ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท ( ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) mod ๐‘ƒ ) ) )
52 51 oveq1d โŠข ( ๐œ‘ โ†’ ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท ( โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) mod ๐‘ƒ ) ) mod ๐‘ƒ ) = ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท ( ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) mod ๐‘ƒ ) ) mod ๐‘ƒ ) )
53 neg1rr โŠข - 1 โˆˆ โ„
54 53 a1i โŠข ( ๐œ‘ โ†’ - 1 โˆˆ โ„ )
55 1 4 2 5 gausslemma2dlem0h โŠข ( ๐œ‘ โ†’ ๐‘ โˆˆ โ„•0 )
56 54 55 reexpcld โŠข ( ๐œ‘ โ†’ ( - 1 โ†‘ ๐‘ ) โˆˆ โ„ )
57 32 adantl โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ) โ†’ ๐‘˜ โˆˆ โ„ค )
58 15 a1i โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ) โ†’ 2 โˆˆ โ„ค )
59 57 58 zmulcld โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ) โ†’ ( ๐‘˜ ยท 2 ) โˆˆ โ„ค )
60 24 59 fprodzcl โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) โˆˆ โ„ค )
61 60 zred โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) โˆˆ โ„ )
62 56 61 remulcld โŠข ( ๐œ‘ โ†’ ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) โˆˆ โ„ )
63 modmulmodr โŠข ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„ค โˆง ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) โˆˆ โ„ โˆง ๐‘ƒ โˆˆ โ„+ ) โ†’ ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท ( ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) mod ๐‘ƒ ) ) mod ๐‘ƒ ) = ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) ) mod ๐‘ƒ ) )
64 23 62 46 63 syl3anc โŠข ( ๐œ‘ โ†’ ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท ( ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) mod ๐‘ƒ ) ) mod ๐‘ƒ ) = ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) ) mod ๐‘ƒ ) )
65 9 prodeq2d โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) = โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘˜ ยท 2 ) )
66 65 oveq1d โŠข ( ๐œ‘ โ†’ ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) = ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘˜ ยท 2 ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) )
67 fzfid โŠข ( ๐œ‘ โ†’ ( 1 ... ๐ป ) โˆˆ Fin )
68 elfzelz โŠข ( ๐‘˜ โˆˆ ( 1 ... ๐ป ) โ†’ ๐‘˜ โˆˆ โ„ค )
69 68 zcnd โŠข ( ๐‘˜ โˆˆ ( 1 ... ๐ป ) โ†’ ๐‘˜ โˆˆ โ„‚ )
70 69 adantl โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( 1 ... ๐ป ) ) โ†’ ๐‘˜ โˆˆ โ„‚ )
71 2cn โŠข 2 โˆˆ โ„‚
72 71 a1i โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( 1 ... ๐ป ) ) โ†’ 2 โˆˆ โ„‚ )
73 67 70 72 fprodmul โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( 1 ... ๐ป ) ( ๐‘˜ ยท 2 ) = ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐ป ) ๐‘˜ ยท โˆ ๐‘˜ โˆˆ ( 1 ... ๐ป ) 2 ) )
74 1 4 gausslemma2dlem0d โŠข ( ๐œ‘ โ†’ ๐‘€ โˆˆ โ„•0 )
75 74 nn0red โŠข ( ๐œ‘ โ†’ ๐‘€ โˆˆ โ„ )
76 75 ltp1d โŠข ( ๐œ‘ โ†’ ๐‘€ < ( ๐‘€ + 1 ) )
77 fzdisj โŠข ( ๐‘€ < ( ๐‘€ + 1 ) โ†’ ( ( 1 ... ๐‘€ ) โˆฉ ( ( ๐‘€ + 1 ) ... ๐ป ) ) = โˆ… )
78 76 77 syl โŠข ( ๐œ‘ โ†’ ( ( 1 ... ๐‘€ ) โˆฉ ( ( ๐‘€ + 1 ) ... ๐ป ) ) = โˆ… )
79 1zzd โŠข ( ๐œ‘ โ†’ 1 โˆˆ โ„ค )
80 nn0pzuz โŠข ( ( ๐‘€ โˆˆ โ„•0 โˆง 1 โˆˆ โ„ค ) โ†’ ( ๐‘€ + 1 ) โˆˆ ( โ„คโ‰ฅ โ€˜ 1 ) )
81 74 79 80 syl2anc โŠข ( ๐œ‘ โ†’ ( ๐‘€ + 1 ) โˆˆ ( โ„คโ‰ฅ โ€˜ 1 ) )
82 74 nn0zd โŠข ( ๐œ‘ โ†’ ๐‘€ โˆˆ โ„ค )
83 1 2 gausslemma2dlem0b โŠข ( ๐œ‘ โ†’ ๐ป โˆˆ โ„• )
84 83 nnzd โŠข ( ๐œ‘ โ†’ ๐ป โˆˆ โ„ค )
85 1 4 2 gausslemma2dlem0g โŠข ( ๐œ‘ โ†’ ๐‘€ โ‰ค ๐ป )
86 eluz2 โŠข ( ๐ป โˆˆ ( โ„คโ‰ฅ โ€˜ ๐‘€ ) โ†” ( ๐‘€ โˆˆ โ„ค โˆง ๐ป โˆˆ โ„ค โˆง ๐‘€ โ‰ค ๐ป ) )
87 82 84 85 86 syl3anbrc โŠข ( ๐œ‘ โ†’ ๐ป โˆˆ ( โ„คโ‰ฅ โ€˜ ๐‘€ ) )
88 fzsplit2 โŠข ( ( ( ๐‘€ + 1 ) โˆˆ ( โ„คโ‰ฅ โ€˜ 1 ) โˆง ๐ป โˆˆ ( โ„คโ‰ฅ โ€˜ ๐‘€ ) ) โ†’ ( 1 ... ๐ป ) = ( ( 1 ... ๐‘€ ) โˆช ( ( ๐‘€ + 1 ) ... ๐ป ) ) )
89 81 87 88 syl2anc โŠข ( ๐œ‘ โ†’ ( 1 ... ๐ป ) = ( ( 1 ... ๐‘€ ) โˆช ( ( ๐‘€ + 1 ) ... ๐ป ) ) )
90 15 a1i โŠข ( ๐‘˜ โˆˆ ( 1 ... ๐ป ) โ†’ 2 โˆˆ โ„ค )
91 68 90 zmulcld โŠข ( ๐‘˜ โˆˆ ( 1 ... ๐ป ) โ†’ ( ๐‘˜ ยท 2 ) โˆˆ โ„ค )
92 91 adantl โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( 1 ... ๐ป ) ) โ†’ ( ๐‘˜ ยท 2 ) โˆˆ โ„ค )
93 92 zcnd โŠข ( ( ๐œ‘ โˆง ๐‘˜ โˆˆ ( 1 ... ๐ป ) ) โ†’ ( ๐‘˜ ยท 2 ) โˆˆ โ„‚ )
94 78 89 67 93 fprodsplit โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( 1 ... ๐ป ) ( ๐‘˜ ยท 2 ) = ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘˜ ยท 2 ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) )
95 nnnn0 โŠข ( ๐‘ƒ โˆˆ โ„• โ†’ ๐‘ƒ โˆˆ โ„•0 )
96 95 anim1i โŠข ( ( ๐‘ƒ โˆˆ โ„• โˆง ยฌ 2 โˆฅ ๐‘ƒ ) โ†’ ( ๐‘ƒ โˆˆ โ„•0 โˆง ยฌ 2 โˆฅ ๐‘ƒ ) )
97 43 96 syl โŠข ( ๐‘ƒ โˆˆ ( โ„™ โˆ– { 2 } ) โ†’ ( ๐‘ƒ โˆˆ โ„•0 โˆง ยฌ 2 โˆฅ ๐‘ƒ ) )
98 nn0oddm1d2 โŠข ( ๐‘ƒ โˆˆ โ„•0 โ†’ ( ยฌ 2 โˆฅ ๐‘ƒ โ†” ( ( ๐‘ƒ โˆ’ 1 ) / 2 ) โˆˆ โ„•0 ) )
99 98 biimpa โŠข ( ( ๐‘ƒ โˆˆ โ„•0 โˆง ยฌ 2 โˆฅ ๐‘ƒ ) โ†’ ( ( ๐‘ƒ โˆ’ 1 ) / 2 ) โˆˆ โ„•0 )
100 2 99 eqeltrid โŠข ( ( ๐‘ƒ โˆˆ โ„•0 โˆง ยฌ 2 โˆฅ ๐‘ƒ ) โ†’ ๐ป โˆˆ โ„•0 )
101 1 97 100 3syl โŠข ( ๐œ‘ โ†’ ๐ป โˆˆ โ„•0 )
102 fprodfac โŠข ( ๐ป โˆˆ โ„•0 โ†’ ( ! โ€˜ ๐ป ) = โˆ ๐‘˜ โˆˆ ( 1 ... ๐ป ) ๐‘˜ )
103 101 102 syl โŠข ( ๐œ‘ โ†’ ( ! โ€˜ ๐ป ) = โˆ ๐‘˜ โˆˆ ( 1 ... ๐ป ) ๐‘˜ )
104 103 eqcomd โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( 1 ... ๐ป ) ๐‘˜ = ( ! โ€˜ ๐ป ) )
105 fzfi โŠข ( 1 ... ๐ป ) โˆˆ Fin
106 105 71 pm3.2i โŠข ( ( 1 ... ๐ป ) โˆˆ Fin โˆง 2 โˆˆ โ„‚ )
107 fprodconst โŠข ( ( ( 1 ... ๐ป ) โˆˆ Fin โˆง 2 โˆˆ โ„‚ ) โ†’ โˆ ๐‘˜ โˆˆ ( 1 ... ๐ป ) 2 = ( 2 โ†‘ ( โ™ฏ โ€˜ ( 1 ... ๐ป ) ) ) )
108 106 107 mp1i โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( 1 ... ๐ป ) 2 = ( 2 โ†‘ ( โ™ฏ โ€˜ ( 1 ... ๐ป ) ) ) )
109 104 108 oveq12d โŠข ( ๐œ‘ โ†’ ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐ป ) ๐‘˜ ยท โˆ ๐‘˜ โˆˆ ( 1 ... ๐ป ) 2 ) = ( ( ! โ€˜ ๐ป ) ยท ( 2 โ†‘ ( โ™ฏ โ€˜ ( 1 ... ๐ป ) ) ) ) )
110 hashfz1 โŠข ( ๐ป โˆˆ โ„•0 โ†’ ( โ™ฏ โ€˜ ( 1 ... ๐ป ) ) = ๐ป )
111 101 110 syl โŠข ( ๐œ‘ โ†’ ( โ™ฏ โ€˜ ( 1 ... ๐ป ) ) = ๐ป )
112 111 oveq2d โŠข ( ๐œ‘ โ†’ ( 2 โ†‘ ( โ™ฏ โ€˜ ( 1 ... ๐ป ) ) ) = ( 2 โ†‘ ๐ป ) )
113 112 oveq2d โŠข ( ๐œ‘ โ†’ ( ( ! โ€˜ ๐ป ) ยท ( 2 โ†‘ ( โ™ฏ โ€˜ ( 1 ... ๐ป ) ) ) ) = ( ( ! โ€˜ ๐ป ) ยท ( 2 โ†‘ ๐ป ) ) )
114 101 faccld โŠข ( ๐œ‘ โ†’ ( ! โ€˜ ๐ป ) โˆˆ โ„• )
115 114 nncnd โŠข ( ๐œ‘ โ†’ ( ! โ€˜ ๐ป ) โˆˆ โ„‚ )
116 2nn0 โŠข 2 โˆˆ โ„•0
117 nn0expcl โŠข ( ( 2 โˆˆ โ„•0 โˆง ๐ป โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ๐ป ) โˆˆ โ„•0 )
118 117 nn0cnd โŠข ( ( 2 โˆˆ โ„•0 โˆง ๐ป โˆˆ โ„•0 ) โ†’ ( 2 โ†‘ ๐ป ) โˆˆ โ„‚ )
119 116 101 118 sylancr โŠข ( ๐œ‘ โ†’ ( 2 โ†‘ ๐ป ) โˆˆ โ„‚ )
120 115 119 mulcomd โŠข ( ๐œ‘ โ†’ ( ( ! โ€˜ ๐ป ) ยท ( 2 โ†‘ ๐ป ) ) = ( ( 2 โ†‘ ๐ป ) ยท ( ! โ€˜ ๐ป ) ) )
121 109 113 120 3eqtrd โŠข ( ๐œ‘ โ†’ ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐ป ) ๐‘˜ ยท โˆ ๐‘˜ โˆˆ ( 1 ... ๐ป ) 2 ) = ( ( 2 โ†‘ ๐ป ) ยท ( ! โ€˜ ๐ป ) ) )
122 73 94 121 3eqtr3d โŠข ( ๐œ‘ โ†’ ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘˜ ยท 2 ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) = ( ( 2 โ†‘ ๐ป ) ยท ( ! โ€˜ ๐ป ) ) )
123 66 122 eqtrd โŠข ( ๐œ‘ โ†’ ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) = ( ( 2 โ†‘ ๐ป ) ยท ( ! โ€˜ ๐ป ) ) )
124 123 oveq2d โŠข ( ๐œ‘ โ†’ ( ( - 1 โ†‘ ๐‘ ) ยท ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) ) = ( ( - 1 โ†‘ ๐‘ ) ยท ( ( 2 โ†‘ ๐ป ) ยท ( ! โ€˜ ๐ป ) ) ) )
125 23 zcnd โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) โˆˆ โ„‚ )
126 56 recnd โŠข ( ๐œ‘ โ†’ ( - 1 โ†‘ ๐‘ ) โˆˆ โ„‚ )
127 60 zcnd โŠข ( ๐œ‘ โ†’ โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) โˆˆ โ„‚ )
128 125 126 127 mul12d โŠข ( ๐œ‘ โ†’ ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) ) = ( ( - 1 โ†‘ ๐‘ ) ยท ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) ) )
129 126 119 115 mulassd โŠข ( ๐œ‘ โ†’ ( ( ( - 1 โ†‘ ๐‘ ) ยท ( 2 โ†‘ ๐ป ) ) ยท ( ! โ€˜ ๐ป ) ) = ( ( - 1 โ†‘ ๐‘ ) ยท ( ( 2 โ†‘ ๐ป ) ยท ( ! โ€˜ ๐ป ) ) ) )
130 124 128 129 3eqtr4d โŠข ( ๐œ‘ โ†’ ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) ) = ( ( ( - 1 โ†‘ ๐‘ ) ยท ( 2 โ†‘ ๐ป ) ) ยท ( ! โ€˜ ๐ป ) ) )
131 130 oveq1d โŠข ( ๐œ‘ โ†’ ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท ( ( - 1 โ†‘ ๐‘ ) ยท โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘˜ ยท 2 ) ) ) mod ๐‘ƒ ) = ( ( ( ( - 1 โ†‘ ๐‘ ) ยท ( 2 โ†‘ ๐ป ) ) ยท ( ! โ€˜ ๐ป ) ) mod ๐‘ƒ ) )
132 52 64 131 3eqtrd โŠข ( ๐œ‘ โ†’ ( ( โˆ ๐‘˜ โˆˆ ( 1 ... ๐‘€ ) ( ๐‘… โ€˜ ๐‘˜ ) ยท ( โˆ ๐‘˜ โˆˆ ( ( ๐‘€ + 1 ) ... ๐ป ) ( ๐‘… โ€˜ ๐‘˜ ) mod ๐‘ƒ ) ) mod ๐‘ƒ ) = ( ( ( ( - 1 โ†‘ ๐‘ ) ยท ( 2 โ†‘ ๐ป ) ) ยท ( ! โ€˜ ๐ป ) ) mod ๐‘ƒ ) )
133 7 49 132 3eqtrd โŠข ( ๐œ‘ โ†’ ( ( ! โ€˜ ๐ป ) mod ๐‘ƒ ) = ( ( ( ( - 1 โ†‘ ๐‘ ) ยท ( 2 โ†‘ ๐ป ) ) ยท ( ! โ€˜ ๐ป ) ) mod ๐‘ƒ ) )