Metamath Proof Explorer


Theorem gpgiedgdmellem

Description: Lemma for gpgiedgdmel and gpgedgel . (Contributed by AV, 2-Nov-2025)

Ref Expression
Hypotheses gpgvtxel.i 𝐼 = ( 0 ..^ 𝑁 )
gpgvtxel.j 𝐽 = ( 1 ..^ ( ⌈ ‘ ( 𝑁 / 2 ) ) )
Assertion gpgiedgdmellem ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) → ( ∃ 𝑥𝐼 ( 𝑌 = { ⟨ 0 , 𝑥 ⟩ , ⟨ 0 , ( ( 𝑥 + 1 ) mod 𝑁 ) ⟩ } ∨ 𝑌 = { ⟨ 0 , 𝑥 ⟩ , ⟨ 1 , 𝑥 ⟩ } ∨ 𝑌 = { ⟨ 1 , 𝑥 ⟩ , ⟨ 1 , ( ( 𝑥 + 𝐾 ) mod 𝑁 ) ⟩ } ) → 𝑌 ∈ 𝒫 ( { 0 , 1 } × 𝐼 ) ) )

Proof

Step Hyp Ref Expression
1 gpgvtxel.i 𝐼 = ( 0 ..^ 𝑁 )
2 gpgvtxel.j 𝐽 = ( 1 ..^ ( ⌈ ‘ ( 𝑁 / 2 ) ) )
3 prex { ⟨ 0 , 𝑥 ⟩ , ⟨ 0 , ( ( 𝑥 + 1 ) mod 𝑁 ) ⟩ } ∈ V
4 3 a1i ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → { ⟨ 0 , 𝑥 ⟩ , ⟨ 0 , ( ( 𝑥 + 1 ) mod 𝑁 ) ⟩ } ∈ V )
5 0elpr01 0 ∈ { 0 , 1 }
6 5 a1i ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → 0 ∈ { 0 , 1 } )
7 simpr ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → 𝑥𝐼 )
8 6 7 opelxpd ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → ⟨ 0 , 𝑥 ⟩ ∈ ( { 0 , 1 } × 𝐼 ) )
9 elfzoelz ( 𝑥 ∈ ( 0 ..^ 𝑁 ) → 𝑥 ∈ ℤ )
10 9 1 eleq2s ( 𝑥𝐼𝑥 ∈ ℤ )
11 10 adantl ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → 𝑥 ∈ ℤ )
12 11 peano2zd ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → ( 𝑥 + 1 ) ∈ ℤ )
13 simpll ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → 𝑁 ∈ ℕ )
14 zmodfzo ( ( ( 𝑥 + 1 ) ∈ ℤ ∧ 𝑁 ∈ ℕ ) → ( ( 𝑥 + 1 ) mod 𝑁 ) ∈ ( 0 ..^ 𝑁 ) )
15 12 13 14 syl2anc ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → ( ( 𝑥 + 1 ) mod 𝑁 ) ∈ ( 0 ..^ 𝑁 ) )
16 15 1 eleqtrrdi ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → ( ( 𝑥 + 1 ) mod 𝑁 ) ∈ 𝐼 )
17 6 16 opelxpd ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → ⟨ 0 , ( ( 𝑥 + 1 ) mod 𝑁 ) ⟩ ∈ ( { 0 , 1 } × 𝐼 ) )
18 8 17 prssd ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → { ⟨ 0 , 𝑥 ⟩ , ⟨ 0 , ( ( 𝑥 + 1 ) mod 𝑁 ) ⟩ } ⊆ ( { 0 , 1 } × 𝐼 ) )
19 4 18 elpwd ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → { ⟨ 0 , 𝑥 ⟩ , ⟨ 0 , ( ( 𝑥 + 1 ) mod 𝑁 ) ⟩ } ∈ 𝒫 ( { 0 , 1 } × 𝐼 ) )
20 eleq1 ( 𝑌 = { ⟨ 0 , 𝑥 ⟩ , ⟨ 0 , ( ( 𝑥 + 1 ) mod 𝑁 ) ⟩ } → ( 𝑌 ∈ 𝒫 ( { 0 , 1 } × 𝐼 ) ↔ { ⟨ 0 , 𝑥 ⟩ , ⟨ 0 , ( ( 𝑥 + 1 ) mod 𝑁 ) ⟩ } ∈ 𝒫 ( { 0 , 1 } × 𝐼 ) ) )
21 19 20 syl5ibrcom ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → ( 𝑌 = { ⟨ 0 , 𝑥 ⟩ , ⟨ 0 , ( ( 𝑥 + 1 ) mod 𝑁 ) ⟩ } → 𝑌 ∈ 𝒫 ( { 0 , 1 } × 𝐼 ) ) )
22 prex { ⟨ 0 , 𝑥 ⟩ , ⟨ 1 , 𝑥 ⟩ } ∈ V
23 22 a1i ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → { ⟨ 0 , 𝑥 ⟩ , ⟨ 1 , 𝑥 ⟩ } ∈ V )
24 1elpr01 1 ∈ { 0 , 1 }
25 24 a1i ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → 1 ∈ { 0 , 1 } )
26 25 7 opelxpd ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → ⟨ 1 , 𝑥 ⟩ ∈ ( { 0 , 1 } × 𝐼 ) )
27 8 26 prssd ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → { ⟨ 0 , 𝑥 ⟩ , ⟨ 1 , 𝑥 ⟩ } ⊆ ( { 0 , 1 } × 𝐼 ) )
28 23 27 elpwd ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → { ⟨ 0 , 𝑥 ⟩ , ⟨ 1 , 𝑥 ⟩ } ∈ 𝒫 ( { 0 , 1 } × 𝐼 ) )
29 eleq1 ( 𝑌 = { ⟨ 0 , 𝑥 ⟩ , ⟨ 1 , 𝑥 ⟩ } → ( 𝑌 ∈ 𝒫 ( { 0 , 1 } × 𝐼 ) ↔ { ⟨ 0 , 𝑥 ⟩ , ⟨ 1 , 𝑥 ⟩ } ∈ 𝒫 ( { 0 , 1 } × 𝐼 ) ) )
30 28 29 syl5ibrcom ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → ( 𝑌 = { ⟨ 0 , 𝑥 ⟩ , ⟨ 1 , 𝑥 ⟩ } → 𝑌 ∈ 𝒫 ( { 0 , 1 } × 𝐼 ) ) )
31 prex { ⟨ 1 , 𝑥 ⟩ , ⟨ 1 , ( ( 𝑥 + 𝐾 ) mod 𝑁 ) ⟩ } ∈ V
32 31 a1i ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → { ⟨ 1 , 𝑥 ⟩ , ⟨ 1 , ( ( 𝑥 + 𝐾 ) mod 𝑁 ) ⟩ } ∈ V )
33 elfzoelz ( 𝐾 ∈ ( 1 ..^ ( ⌈ ‘ ( 𝑁 / 2 ) ) ) → 𝐾 ∈ ℤ )
34 33 2 eleq2s ( 𝐾𝐽𝐾 ∈ ℤ )
35 34 ad2antlr ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → 𝐾 ∈ ℤ )
36 11 35 zaddcld ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → ( 𝑥 + 𝐾 ) ∈ ℤ )
37 zmodfzo ( ( ( 𝑥 + 𝐾 ) ∈ ℤ ∧ 𝑁 ∈ ℕ ) → ( ( 𝑥 + 𝐾 ) mod 𝑁 ) ∈ ( 0 ..^ 𝑁 ) )
38 36 13 37 syl2anc ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → ( ( 𝑥 + 𝐾 ) mod 𝑁 ) ∈ ( 0 ..^ 𝑁 ) )
39 38 1 eleqtrrdi ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → ( ( 𝑥 + 𝐾 ) mod 𝑁 ) ∈ 𝐼 )
40 25 39 opelxpd ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → ⟨ 1 , ( ( 𝑥 + 𝐾 ) mod 𝑁 ) ⟩ ∈ ( { 0 , 1 } × 𝐼 ) )
41 26 40 prssd ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → { ⟨ 1 , 𝑥 ⟩ , ⟨ 1 , ( ( 𝑥 + 𝐾 ) mod 𝑁 ) ⟩ } ⊆ ( { 0 , 1 } × 𝐼 ) )
42 32 41 elpwd ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → { ⟨ 1 , 𝑥 ⟩ , ⟨ 1 , ( ( 𝑥 + 𝐾 ) mod 𝑁 ) ⟩ } ∈ 𝒫 ( { 0 , 1 } × 𝐼 ) )
43 eleq1 ( 𝑌 = { ⟨ 1 , 𝑥 ⟩ , ⟨ 1 , ( ( 𝑥 + 𝐾 ) mod 𝑁 ) ⟩ } → ( 𝑌 ∈ 𝒫 ( { 0 , 1 } × 𝐼 ) ↔ { ⟨ 1 , 𝑥 ⟩ , ⟨ 1 , ( ( 𝑥 + 𝐾 ) mod 𝑁 ) ⟩ } ∈ 𝒫 ( { 0 , 1 } × 𝐼 ) ) )
44 42 43 syl5ibrcom ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → ( 𝑌 = { ⟨ 1 , 𝑥 ⟩ , ⟨ 1 , ( ( 𝑥 + 𝐾 ) mod 𝑁 ) ⟩ } → 𝑌 ∈ 𝒫 ( { 0 , 1 } × 𝐼 ) ) )
45 21 30 44 3jaod ( ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) ∧ 𝑥𝐼 ) → ( ( 𝑌 = { ⟨ 0 , 𝑥 ⟩ , ⟨ 0 , ( ( 𝑥 + 1 ) mod 𝑁 ) ⟩ } ∨ 𝑌 = { ⟨ 0 , 𝑥 ⟩ , ⟨ 1 , 𝑥 ⟩ } ∨ 𝑌 = { ⟨ 1 , 𝑥 ⟩ , ⟨ 1 , ( ( 𝑥 + 𝐾 ) mod 𝑁 ) ⟩ } ) → 𝑌 ∈ 𝒫 ( { 0 , 1 } × 𝐼 ) ) )
46 45 rexlimdva ( ( 𝑁 ∈ ℕ ∧ 𝐾𝐽 ) → ( ∃ 𝑥𝐼 ( 𝑌 = { ⟨ 0 , 𝑥 ⟩ , ⟨ 0 , ( ( 𝑥 + 1 ) mod 𝑁 ) ⟩ } ∨ 𝑌 = { ⟨ 0 , 𝑥 ⟩ , ⟨ 1 , 𝑥 ⟩ } ∨ 𝑌 = { ⟨ 1 , 𝑥 ⟩ , ⟨ 1 , ( ( 𝑥 + 𝐾 ) mod 𝑁 ) ⟩ } ) → 𝑌 ∈ 𝒫 ( { 0 , 1 } × 𝐼 ) ) )