Metamath Proof Explorer


Theorem gausslemma2dlem2

Description: Lemma 2 for gausslemma2d . (Contributed by AV, 4-Jul-2021)

Ref Expression
Hypotheses gausslemma2d.p ( 𝜑𝑃 ∈ ( ℙ ∖ { 2 } ) )
gausslemma2d.h 𝐻 = ( ( 𝑃 − 1 ) / 2 )
gausslemma2d.r 𝑅 = ( 𝑥 ∈ ( 1 ... 𝐻 ) ↦ if ( ( 𝑥 · 2 ) < ( 𝑃 / 2 ) , ( 𝑥 · 2 ) , ( 𝑃 − ( 𝑥 · 2 ) ) ) )
gausslemma2d.m 𝑀 = ( ⌊ ‘ ( 𝑃 / 4 ) )
Assertion gausslemma2dlem2 ( 𝜑 → ∀ 𝑘 ∈ ( 1 ... 𝑀 ) ( 𝑅𝑘 ) = ( 𝑘 · 2 ) )

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 oveq1 ( 𝑥 = 𝑘 → ( 𝑥 · 2 ) = ( 𝑘 · 2 ) )
6 5 breq1d ( 𝑥 = 𝑘 → ( ( 𝑥 · 2 ) < ( 𝑃 / 2 ) ↔ ( 𝑘 · 2 ) < ( 𝑃 / 2 ) ) )
7 5 oveq2d ( 𝑥 = 𝑘 → ( 𝑃 − ( 𝑥 · 2 ) ) = ( 𝑃 − ( 𝑘 · 2 ) ) )
8 6 5 7 ifbieq12d ( 𝑥 = 𝑘 → if ( ( 𝑥 · 2 ) < ( 𝑃 / 2 ) , ( 𝑥 · 2 ) , ( 𝑃 − ( 𝑥 · 2 ) ) ) = if ( ( 𝑘 · 2 ) < ( 𝑃 / 2 ) , ( 𝑘 · 2 ) , ( 𝑃 − ( 𝑘 · 2 ) ) ) )
9 8 adantl ( ( ( 𝜑𝑘 ∈ ( 1 ... 𝑀 ) ) ∧ 𝑥 = 𝑘 ) → if ( ( 𝑥 · 2 ) < ( 𝑃 / 2 ) , ( 𝑥 · 2 ) , ( 𝑃 − ( 𝑥 · 2 ) ) ) = if ( ( 𝑘 · 2 ) < ( 𝑃 / 2 ) , ( 𝑘 · 2 ) , ( 𝑃 − ( 𝑘 · 2 ) ) ) )
10 elfz1b ( 𝑘 ∈ ( 1 ... 𝑀 ) ↔ ( 𝑘 ∈ ℕ ∧ 𝑀 ∈ ℕ ∧ 𝑘𝑀 ) )
11 nnre ( 𝑘 ∈ ℕ → 𝑘 ∈ ℝ )
12 11 adantr ( ( 𝑘 ∈ ℕ ∧ 𝑀 ∈ ℕ ) → 𝑘 ∈ ℝ )
13 nnre ( 𝑀 ∈ ℕ → 𝑀 ∈ ℝ )
14 13 adantl ( ( 𝑘 ∈ ℕ ∧ 𝑀 ∈ ℕ ) → 𝑀 ∈ ℝ )
15 2re 2 ∈ ℝ
16 2pos 0 < 2
17 15 16 pm3.2i ( 2 ∈ ℝ ∧ 0 < 2 )
18 17 a1i ( ( 𝑘 ∈ ℕ ∧ 𝑀 ∈ ℕ ) → ( 2 ∈ ℝ ∧ 0 < 2 ) )
19 lemul1 ( ( 𝑘 ∈ ℝ ∧ 𝑀 ∈ ℝ ∧ ( 2 ∈ ℝ ∧ 0 < 2 ) ) → ( 𝑘𝑀 ↔ ( 𝑘 · 2 ) ≤ ( 𝑀 · 2 ) ) )
20 12 14 18 19 syl3anc ( ( 𝑘 ∈ ℕ ∧ 𝑀 ∈ ℕ ) → ( 𝑘𝑀 ↔ ( 𝑘 · 2 ) ≤ ( 𝑀 · 2 ) ) )
21 1 4 gausslemma2dlem0e ( 𝜑 → ( 𝑀 · 2 ) < ( 𝑃 / 2 ) )
22 21 adantl ( ( ( 𝑘 ∈ ℕ ∧ 𝑀 ∈ ℕ ) ∧ 𝜑 ) → ( 𝑀 · 2 ) < ( 𝑃 / 2 ) )
23 15 a1i ( 𝑘 ∈ ℕ → 2 ∈ ℝ )
24 11 23 remulcld ( 𝑘 ∈ ℕ → ( 𝑘 · 2 ) ∈ ℝ )
25 24 adantr ( ( 𝑘 ∈ ℕ ∧ 𝑀 ∈ ℕ ) → ( 𝑘 · 2 ) ∈ ℝ )
26 15 a1i ( 𝑀 ∈ ℕ → 2 ∈ ℝ )
27 13 26 remulcld ( 𝑀 ∈ ℕ → ( 𝑀 · 2 ) ∈ ℝ )
28 27 adantl ( ( 𝑘 ∈ ℕ ∧ 𝑀 ∈ ℕ ) → ( 𝑀 · 2 ) ∈ ℝ )
29 1 gausslemma2dlem0a ( 𝜑𝑃 ∈ ℕ )
30 29 nnred ( 𝜑𝑃 ∈ ℝ )
31 30 rehalfcld ( 𝜑 → ( 𝑃 / 2 ) ∈ ℝ )
32 lelttr ( ( ( 𝑘 · 2 ) ∈ ℝ ∧ ( 𝑀 · 2 ) ∈ ℝ ∧ ( 𝑃 / 2 ) ∈ ℝ ) → ( ( ( 𝑘 · 2 ) ≤ ( 𝑀 · 2 ) ∧ ( 𝑀 · 2 ) < ( 𝑃 / 2 ) ) → ( 𝑘 · 2 ) < ( 𝑃 / 2 ) ) )
33 25 28 31 32 syl2an3an ( ( ( 𝑘 ∈ ℕ ∧ 𝑀 ∈ ℕ ) ∧ 𝜑 ) → ( ( ( 𝑘 · 2 ) ≤ ( 𝑀 · 2 ) ∧ ( 𝑀 · 2 ) < ( 𝑃 / 2 ) ) → ( 𝑘 · 2 ) < ( 𝑃 / 2 ) ) )
34 22 33 mpan2d ( ( ( 𝑘 ∈ ℕ ∧ 𝑀 ∈ ℕ ) ∧ 𝜑 ) → ( ( 𝑘 · 2 ) ≤ ( 𝑀 · 2 ) → ( 𝑘 · 2 ) < ( 𝑃 / 2 ) ) )
35 34 ex ( ( 𝑘 ∈ ℕ ∧ 𝑀 ∈ ℕ ) → ( 𝜑 → ( ( 𝑘 · 2 ) ≤ ( 𝑀 · 2 ) → ( 𝑘 · 2 ) < ( 𝑃 / 2 ) ) ) )
36 35 com23 ( ( 𝑘 ∈ ℕ ∧ 𝑀 ∈ ℕ ) → ( ( 𝑘 · 2 ) ≤ ( 𝑀 · 2 ) → ( 𝜑 → ( 𝑘 · 2 ) < ( 𝑃 / 2 ) ) ) )
37 20 36 sylbid ( ( 𝑘 ∈ ℕ ∧ 𝑀 ∈ ℕ ) → ( 𝑘𝑀 → ( 𝜑 → ( 𝑘 · 2 ) < ( 𝑃 / 2 ) ) ) )
38 37 3impia ( ( 𝑘 ∈ ℕ ∧ 𝑀 ∈ ℕ ∧ 𝑘𝑀 ) → ( 𝜑 → ( 𝑘 · 2 ) < ( 𝑃 / 2 ) ) )
39 10 38 sylbi ( 𝑘 ∈ ( 1 ... 𝑀 ) → ( 𝜑 → ( 𝑘 · 2 ) < ( 𝑃 / 2 ) ) )
40 39 impcom ( ( 𝜑𝑘 ∈ ( 1 ... 𝑀 ) ) → ( 𝑘 · 2 ) < ( 𝑃 / 2 ) )
41 40 adantr ( ( ( 𝜑𝑘 ∈ ( 1 ... 𝑀 ) ) ∧ 𝑥 = 𝑘 ) → ( 𝑘 · 2 ) < ( 𝑃 / 2 ) )
42 41 iftrued ( ( ( 𝜑𝑘 ∈ ( 1 ... 𝑀 ) ) ∧ 𝑥 = 𝑘 ) → if ( ( 𝑘 · 2 ) < ( 𝑃 / 2 ) , ( 𝑘 · 2 ) , ( 𝑃 − ( 𝑘 · 2 ) ) ) = ( 𝑘 · 2 ) )
43 9 42 eqtrd ( ( ( 𝜑𝑘 ∈ ( 1 ... 𝑀 ) ) ∧ 𝑥 = 𝑘 ) → if ( ( 𝑥 · 2 ) < ( 𝑃 / 2 ) , ( 𝑥 · 2 ) , ( 𝑃 − ( 𝑥 · 2 ) ) ) = ( 𝑘 · 2 ) )
44 1 4 gausslemma2dlem0d ( 𝜑𝑀 ∈ ℕ0 )
45 44 nn0zd ( 𝜑𝑀 ∈ ℤ )
46 1 2 gausslemma2dlem0b ( 𝜑𝐻 ∈ ℕ )
47 46 nnzd ( 𝜑𝐻 ∈ ℤ )
48 1 4 2 gausslemma2dlem0g ( 𝜑𝑀𝐻 )
49 eluz2 ( 𝐻 ∈ ( ℤ𝑀 ) ↔ ( 𝑀 ∈ ℤ ∧ 𝐻 ∈ ℤ ∧ 𝑀𝐻 ) )
50 45 47 48 49 syl3anbrc ( 𝜑𝐻 ∈ ( ℤ𝑀 ) )
51 fzss2 ( 𝐻 ∈ ( ℤ𝑀 ) → ( 1 ... 𝑀 ) ⊆ ( 1 ... 𝐻 ) )
52 50 51 syl ( 𝜑 → ( 1 ... 𝑀 ) ⊆ ( 1 ... 𝐻 ) )
53 52 sselda ( ( 𝜑𝑘 ∈ ( 1 ... 𝑀 ) ) → 𝑘 ∈ ( 1 ... 𝐻 ) )
54 ovexd ( ( 𝜑𝑘 ∈ ( 1 ... 𝑀 ) ) → ( 𝑘 · 2 ) ∈ V )
55 3 43 53 54 fvmptd2 ( ( 𝜑𝑘 ∈ ( 1 ... 𝑀 ) ) → ( 𝑅𝑘 ) = ( 𝑘 · 2 ) )
56 55 ralrimiva ( 𝜑 → ∀ 𝑘 ∈ ( 1 ... 𝑀 ) ( 𝑅𝑘 ) = ( 𝑘 · 2 ) )