Metamath Proof Explorer


Theorem gausslemma2dlem6

Description: Lemma 6 for gausslemma2d . (Contributed by AV, 16-Jun-2021)

Ref Expression
Hypotheses gausslemma2d.p ⊢ φ → P ∈ ℙ ∖ 2
gausslemma2d.h ⊢ H = P − 1 2
gausslemma2d.r ⊢ R = x ∈ 1 … H ⟼ if x ⋅ 2 < P 2 x ⋅ 2 P − x ⋅ 2
gausslemma2d.m ⊢ M = P 4
gausslemma2d.n ⊢ N = H − M
Assertion gausslemma2dlem6 ⊢ φ → H ! mod P = − 1 N ⁢ 2 H ⁢ H ! mod P

Proof

Step Hyp Ref Expression
1 gausslemma2d.p ⊢ φ → P ∈ ℙ ∖ 2
2 gausslemma2d.h ⊢ H = P − 1 2
3 gausslemma2d.r ⊢ R = x ∈ 1 … H ⟼ if x ⋅ 2 < P 2 x ⋅ 2 P − x ⋅ 2
4 gausslemma2d.m ⊢ M = P 4
5 gausslemma2d.n ⊢ N = H − M
6 1 2 3 4 gausslemma2dlem4 ⊢ φ → H ! = ∏ k = 1 M R ⁡ k ⁢ ∏ k = M + 1 H R ⁡ k
7 6 oveq1d ⊢ φ → H ! mod P = ∏ k = 1 M R ⁡ k ⁢ ∏ k = M + 1 H R ⁡ k mod P
8 fzfid ⊢ φ → 1 … M ∈ Fin
9 1 2 3 4 gausslemma2dlem2 ⊢ φ → ∀ k ∈ 1 … M R ⁡ k = k ⋅ 2
10 9 adantr ⊢ φ ∧ k ∈ 1 … M → ∀ k ∈ 1 … M R ⁡ k = k ⋅ 2
11 rspa ⊢ ∀ k ∈ 1 … M R ⁡ k = k ⋅ 2 ∧ k ∈ 1 … M → R ⁡ k = k ⋅ 2
12 11 expcom ⊢ k ∈ 1 … M → ∀ k ∈ 1 … M R ⁡ k = k ⋅ 2 → R ⁡ k = k ⋅ 2
13 12 adantl ⊢ φ ∧ k ∈ 1 … M → ∀ k ∈ 1 … M R ⁡ k = k ⋅ 2 → R ⁡ k = k ⋅ 2
14 elfzelz ⊢ k ∈ 1 … M → k ∈ ℤ
15 2z ⊢ 2 ∈ ℤ
16 15 a1i ⊢ k ∈ 1 … M → 2 ∈ ℤ
17 14 16 zmulcld ⊢ k ∈ 1 … M → k ⋅ 2 ∈ ℤ
18 17 adantl ⊢ φ ∧ k ∈ 1 … M → k ⋅ 2 ∈ ℤ
19 eleq1 ⊢ R ⁡ k = k ⋅ 2 → R ⁡ k ∈ ℤ ↔ k ⋅ 2 ∈ ℤ
20 18 19 syl5ibrcom ⊢ φ ∧ k ∈ 1 … M → R ⁡ k = k ⋅ 2 → R ⁡ k ∈ ℤ
21 13 20 syld ⊢ φ ∧ k ∈ 1 … M → ∀ k ∈ 1 … M R ⁡ k = k ⋅ 2 → R ⁡ k ∈ ℤ
22 10 21 mpd ⊢ φ ∧ k ∈ 1 … M → R ⁡ k ∈ ℤ
23 8 22 fprodzcl ⊢ φ → ∏ k = 1 M R ⁡ k ∈ ℤ
24 fzfid ⊢ φ → M + 1 … H ∈ Fin
25 1 2 3 4 gausslemma2dlem3 ⊢ φ → ∀ k ∈ M + 1 … H R ⁡ k = P − k ⋅ 2
26 25 adantr ⊢ φ ∧ k ∈ M + 1 … H → ∀ k ∈ M + 1 … H R ⁡ k = P − k ⋅ 2
27 rspa ⊢ ∀ k ∈ M + 1 … H R ⁡ k = P − k ⋅ 2 ∧ k ∈ M + 1 … H → R ⁡ k = P − k ⋅ 2
28 27 expcom ⊢ k ∈ M + 1 … H → ∀ k ∈ M + 1 … H R ⁡ k = P − k ⋅ 2 → R ⁡ k = P − k ⋅ 2
29 28 adantl ⊢ φ ∧ k ∈ M + 1 … H → ∀ k ∈ M + 1 … H R ⁡ k = P − k ⋅ 2 → R ⁡ k = P − k ⋅ 2
30 1 gausslemma2dlem0a ⊢ φ → P ∈ ℕ
31 30 nnzd ⊢ φ → P ∈ ℤ
32 elfzelz ⊢ k ∈ M + 1 … H → k ∈ ℤ
33 15 a1i ⊢ k ∈ M + 1 … H → 2 ∈ ℤ
34 32 33 zmulcld ⊢ k ∈ M + 1 … H → k ⋅ 2 ∈ ℤ
35 zsubcl ⊢ P ∈ ℤ ∧ k ⋅ 2 ∈ ℤ → P − k ⋅ 2 ∈ ℤ
36 31 34 35 syl2an ⊢ φ ∧ k ∈ M + 1 … H → P − k ⋅ 2 ∈ ℤ
37 eleq1 ⊢ R ⁡ k = P − k ⋅ 2 → R ⁡ k ∈ ℤ ↔ P − k ⋅ 2 ∈ ℤ
38 36 37 syl5ibrcom ⊢ φ ∧ k ∈ M + 1 … H → R ⁡ k = P − k ⋅ 2 → R ⁡ k ∈ ℤ
39 29 38 syld ⊢ φ ∧ k ∈ M + 1 … H → ∀ k ∈ M + 1 … H R ⁡ k = P − k ⋅ 2 → R ⁡ k ∈ ℤ
40 26 39 mpd ⊢ φ ∧ k ∈ M + 1 … H → R ⁡ k ∈ ℤ
41 24 40 fprodzcl ⊢ φ → ∏ k = M + 1 H R ⁡ k ∈ ℤ
42 41 zred ⊢ φ → ∏ k = M + 1 H R ⁡ k ∈ ℝ
43 nnoddn2prm ⊢ P ∈ ℙ ∖ 2 → P ∈ ℕ ∧ ¬ 2 ∥ P
44 nnrp ⊢ P ∈ ℕ → P ∈ ℝ +
45 44 adantr ⊢ P ∈ ℕ ∧ ¬ 2 ∥ P → P ∈ ℝ +
46 1 43 45 3syl ⊢ φ → P ∈ ℝ +
47 modmulmodr ⊢ ∏ k = 1 M R ⁡ k ∈ ℤ ∧ ∏ k = M + 1 H R ⁡ k ∈ ℝ ∧ P ∈ ℝ + → ∏ k = 1 M R ⁡ k ⁢ ∏ k = M + 1 H R ⁡ k mod P mod P = ∏ k = 1 M R ⁡ k ⁢ ∏ k = M + 1 H R ⁡ k mod P
48 47 eqcomd ⊢ ∏ k = 1 M R ⁡ k ∈ ℤ ∧ ∏ k = M + 1 H R ⁡ k ∈ ℝ ∧ P ∈ ℝ + → ∏ k = 1 M R ⁡ k ⁢ ∏ k = M + 1 H R ⁡ k mod P = ∏ k = 1 M R ⁡ k ⁢ ∏ k = M + 1 H R ⁡ k mod P mod P
49 23 42 46 48 syl3anc ⊢ φ → ∏ k = 1 M R ⁡ k ⁢ ∏ k = M + 1 H R ⁡ k mod P = ∏ k = 1 M R ⁡ k ⁢ ∏ k = M + 1 H R ⁡ k mod P mod P
50 1 2 3 4 5 gausslemma2dlem5 ⊢ φ → ∏ k = M + 1 H R ⁡ k mod P = − 1 N ⁢ ∏ k = M + 1 H k ⋅ 2 mod P
51 50 oveq2d ⊢ φ → ∏ k = 1 M R ⁡ k ⁢ ∏ k = M + 1 H R ⁡ k mod P = ∏ k = 1 M R ⁡ k ⁢ − 1 N ⁢ ∏ k = M + 1 H k ⋅ 2 mod P
52 51 oveq1d ⊢ φ → ∏ k = 1 M R ⁡ k ⁢ ∏ k = M + 1 H R ⁡ k mod P mod P = ∏ k = 1 M R ⁡ k ⁢ − 1 N ⁢ ∏ k = M + 1 H k ⋅ 2 mod P mod P
53 neg1rr ⊢ − 1 ∈ ℝ
54 53 a1i ⊢ φ → − 1 ∈ ℝ
55 1 4 2 5 gausslemma2dlem0h ⊢ φ → N ∈ ℕ 0
56 54 55 reexpcld ⊢ φ → − 1 N ∈ ℝ
57 32 adantl ⊢ φ ∧ k ∈ M + 1 … H → k ∈ ℤ
58 15 a1i ⊢ φ ∧ k ∈ M + 1 … H → 2 ∈ ℤ
59 57 58 zmulcld ⊢ φ ∧ k ∈ M + 1 … H → k ⋅ 2 ∈ ℤ
60 24 59 fprodzcl ⊢ φ → ∏ k = M + 1 H k ⋅ 2 ∈ ℤ
61 60 zred ⊢ φ → ∏ k = M + 1 H k ⋅ 2 ∈ ℝ
62 56 61 remulcld ⊢ φ → − 1 N ⁢ ∏ k = M + 1 H k ⋅ 2 ∈ ℝ
63 modmulmodr ⊢ ∏ k = 1 M R ⁡ k ∈ ℤ ∧ − 1 N ⁢ ∏ k = M + 1 H k ⋅ 2 ∈ ℝ ∧ P ∈ ℝ + → ∏ k = 1 M R ⁡ k ⁢ − 1 N ⁢ ∏ k = M + 1 H k ⋅ 2 mod P mod P = ∏ k = 1 M R ⁡ k ⁢ − 1 N ⁢ ∏ k = M + 1 H k ⋅ 2 mod P
64 23 62 46 63 syl3anc ⊢ φ → ∏ k = 1 M R ⁡ k ⁢ − 1 N ⁢ ∏ k = M + 1 H k ⋅ 2 mod P mod P = ∏ k = 1 M R ⁡ k ⁢ − 1 N ⁢ ∏ k = M + 1 H k ⋅ 2 mod P
65 9 prodeq2d ⊢ φ → ∏ k = 1 M R ⁡ k = ∏ k = 1 M k ⋅ 2
66 65 oveq1d ⊢ φ → ∏ k = 1 M R ⁡ k ⁢ ∏ k = M + 1 H k ⋅ 2 = ∏ k = 1 M k ⋅ 2 ⁢ ∏ k = M + 1 H k ⋅ 2
67 fzfid ⊢ φ → 1 … H ∈ Fin
68 elfzelz ⊢ k ∈ 1 … H → k ∈ ℤ
69 68 zcnd ⊢ k ∈ 1 … H → k ∈ ℂ
70 69 adantl ⊢ φ ∧ k ∈ 1 … H → k ∈ ℂ
71 2cn ⊢ 2 ∈ ℂ
72 71 a1i ⊢ φ ∧ k ∈ 1 … H → 2 ∈ ℂ
73 67 70 72 fprodmul ⊢ φ → ∏ k = 1 H k ⋅ 2 = ∏ k = 1 H k ⁢ ∏ k = 1 H 2
74 1 4 gausslemma2dlem0d ⊢ φ → M ∈ ℕ 0
75 74 nn0red ⊢ φ → M ∈ ℝ
76 75 ltp1d ⊢ φ → M < M + 1
77 fzdisj ⊢ M < M + 1 → 1 … M ∩ M + 1 … H = ∅
78 76 77 syl ⊢ φ → 1 … M ∩ M + 1 … H = ∅
79 1zzd ⊢ φ → 1 ∈ ℤ
80 nn0pzuz ⊢ M ∈ ℕ 0 ∧ 1 ∈ ℤ → M + 1 ∈ ℤ ≥ 1
81 74 79 80 syl2anc ⊢ φ → M + 1 ∈ ℤ ≥ 1
82 74 nn0zd ⊢ φ → M ∈ ℤ
83 1 2 gausslemma2dlem0b ⊢ φ → H ∈ ℕ
84 83 nnzd ⊢ φ → H ∈ ℤ
85 1 4 2 gausslemma2dlem0g ⊢ φ → M ≤ H
86 eluz2 ⊢ H ∈ ℤ ≥ M ↔ M ∈ ℤ ∧ H ∈ ℤ ∧ M ≤ H
87 82 84 85 86 syl3anbrc ⊢ φ → H ∈ ℤ ≥ M
88 fzsplit2 ⊢ M + 1 ∈ ℤ ≥ 1 ∧ H ∈ ℤ ≥ M → 1 … H = 1 … M ∪ M + 1 … H
89 81 87 88 syl2anc ⊢ φ → 1 … H = 1 … M ∪ M + 1 … H
90 15 a1i ⊢ k ∈ 1 … H → 2 ∈ ℤ
91 68 90 zmulcld ⊢ k ∈ 1 … H → k ⋅ 2 ∈ ℤ
92 91 adantl ⊢ φ ∧ k ∈ 1 … H → k ⋅ 2 ∈ ℤ
93 92 zcnd ⊢ φ ∧ k ∈ 1 … H → k ⋅ 2 ∈ ℂ
94 78 89 67 93 fprodsplit ⊢ φ → ∏ k = 1 H k ⋅ 2 = ∏ k = 1 M k ⋅ 2 ⁢ ∏ k = M + 1 H k ⋅ 2
95 nnnn0 ⊢ P ∈ ℕ → P ∈ ℕ 0
96 95 anim1i ⊢ P ∈ ℕ ∧ ¬ 2 ∥ P → P ∈ ℕ 0 ∧ ¬ 2 ∥ P
97 43 96 syl ⊢ P ∈ ℙ ∖ 2 → P ∈ ℕ 0 ∧ ¬ 2 ∥ P
98 nn0oddm1d2 ⊢ P ∈ ℕ 0 → ¬ 2 ∥ P ↔ P − 1 2 ∈ ℕ 0
99 98 biimpa ⊢ P ∈ ℕ 0 ∧ ¬ 2 ∥ P → P − 1 2 ∈ ℕ 0
100 2 99 eqeltrid ⊢ P ∈ ℕ 0 ∧ ¬ 2 ∥ P → H ∈ ℕ 0
101 1 97 100 3syl ⊢ φ → H ∈ ℕ 0
102 fprodfac ⊢ H ∈ ℕ 0 → H ! = ∏ k = 1 H k
103 101 102 syl ⊢ φ → H ! = ∏ k = 1 H k
104 103 eqcomd ⊢ φ → ∏ k = 1 H k = H !
105 fzfi ⊢ 1 … H ∈ Fin
106 105 71 pm3.2i ⊢ 1 … H ∈ Fin ∧ 2 ∈ ℂ
107 fprodconst ⊢ 1 … H ∈ Fin ∧ 2 ∈ ℂ → ∏ k = 1 H 2 = 2 1 … H
108 106 107 mp1i ⊢ φ → ∏ k = 1 H 2 = 2 1 … H
109 104 108 oveq12d ⊢ φ → ∏ k = 1 H k ⁢ ∏ k = 1 H 2 = H ! ⁢ 2 1 … H
110 hashfz1 ⊢ H ∈ ℕ 0 → 1 … H = H
111 101 110 syl ⊢ φ → 1 … H = H
112 111 oveq2d ⊢ φ → 2 1 … H = 2 H
113 112 oveq2d ⊢ φ → H ! ⁢ 2 1 … H = H ! ⁢ 2 H
114 101 faccld ⊢ φ → H ! ∈ ℕ
115 114 nncnd ⊢ φ → H ! ∈ ℂ
116 2nn0 ⊢ 2 ∈ ℕ 0
117 nn0expcl ⊢ 2 ∈ ℕ 0 ∧ H ∈ ℕ 0 → 2 H ∈ ℕ 0
118 117 nn0cnd ⊢ 2 ∈ ℕ 0 ∧ H ∈ ℕ 0 → 2 H ∈ ℂ
119 116 101 118 sylancr ⊢ φ → 2 H ∈ ℂ
120 115 119 mulcomd ⊢ φ → H ! ⁢ 2 H = 2 H ⁢ H !
121 109 113 120 3eqtrd ⊢ φ → ∏ k = 1 H k ⁢ ∏ k = 1 H 2 = 2 H ⁢ H !
122 73 94 121 3eqtr3d ⊢ φ → ∏ k = 1 M k ⋅ 2 ⁢ ∏ k = M + 1 H k ⋅ 2 = 2 H ⁢ H !
123 66 122 eqtrd ⊢ φ → ∏ k = 1 M R ⁡ k ⁢ ∏ k = M + 1 H k ⋅ 2 = 2 H ⁢ H !
124 123 oveq2d ⊢ φ → − 1 N ⁢ ∏ k = 1 M R ⁡ k ⁢ ∏ k = M + 1 H k ⋅ 2 = − 1 N ⁢ 2 H ⁢ H !
125 23 zcnd ⊢ φ → ∏ k = 1 M R ⁡ k ∈ ℂ
126 56 recnd ⊢ φ → − 1 N ∈ ℂ
127 60 zcnd ⊢ φ → ∏ k = M + 1 H k ⋅ 2 ∈ ℂ
128 125 126 127 mul12d ⊢ φ → ∏ k = 1 M R ⁡ k ⁢ − 1 N ⁢ ∏ k = M + 1 H k ⋅ 2 = − 1 N ⁢ ∏ k = 1 M R ⁡ k ⁢ ∏ k = M + 1 H k ⋅ 2
129 126 119 115 mulassd ⊢ φ → − 1 N ⁢ 2 H ⁢ H ! = − 1 N ⁢ 2 H ⁢ H !
130 124 128 129 3eqtr4d ⊢ φ → ∏ k = 1 M R ⁡ k ⁢ − 1 N ⁢ ∏ k = M + 1 H k ⋅ 2 = − 1 N ⁢ 2 H ⁢ H !
131 130 oveq1d ⊢ φ → ∏ k = 1 M R ⁡ k ⁢ − 1 N ⁢ ∏ k = M + 1 H k ⋅ 2 mod P = − 1 N ⁢ 2 H ⁢ H ! mod P
132 52 64 131 3eqtrd ⊢ φ → ∏ k = 1 M R ⁡ k ⁢ ∏ k = M + 1 H R ⁡ k mod P mod P = − 1 N ⁢ 2 H ⁢ H ! mod P
133 7 49 132 3eqtrd ⊢ φ → H ! mod P = − 1 N ⁢ 2 H ⁢ H ! mod P