Mathbox for Alexander van der Vekens < Previous   Next > Nearby theorems Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  crctcsh1wlkn0lem5 Structured version   Visualization version   GIF version

Theorem crctcsh1wlkn0lem5 41017
 Description: Lemma for crctcsh1wlkn0 41024. (Contributed by AV, 12-Mar-2021.)
Hypotheses
Ref Expression
crctcsh1wlkn0lem.s (𝜑𝑆 ∈ (1..^𝑁))
crctcsh1wlkn0lem.q 𝑄 = (𝑥 ∈ (0...𝑁) ↦ if(𝑥 ≤ (𝑁𝑆), (𝑃‘(𝑥 + 𝑆)), (𝑃‘((𝑥 + 𝑆) − 𝑁))))
crctcsh1wlkn0lem.h 𝐻 = (𝐹 cyclShift 𝑆)
crctcsh1wlkn0lem.n 𝑁 = (#‘𝐹)
crctcsh1wlkn0lem.f (𝜑𝐹 ∈ Word 𝐴)
crctcsh1wlkn0lem.p (𝜑 → ∀𝑖 ∈ (0..^𝑁)if-((𝑃𝑖) = (𝑃‘(𝑖 + 1)), (𝐼‘(𝐹𝑖)) = {(𝑃𝑖)}, {(𝑃𝑖), (𝑃‘(𝑖 + 1))} ⊆ (𝐼‘(𝐹𝑖))))
Assertion
Ref Expression
crctcsh1wlkn0lem5 (𝜑 → ∀𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)if-((𝑄𝑗) = (𝑄‘(𝑗 + 1)), (𝐼‘(𝐻𝑗)) = {(𝑄𝑗)}, {(𝑄𝑗), (𝑄‘(𝑗 + 1))} ⊆ (𝐼‘(𝐻𝑗))))
Distinct variable groups:   𝑥,𝑁   𝑥,𝑃   𝑥,𝑆   𝜑,𝑥   𝑖,𝐹   𝑖,𝐼   𝑖,𝑁   𝑃,𝑖   𝑆,𝑖   𝜑,𝑖,𝑗   𝑥,𝑗
Allowed substitution hints:   𝐴(𝑥,𝑖,𝑗)   𝑃(𝑗)   𝑄(𝑥,𝑖,𝑗)   𝑆(𝑗)   𝐹(𝑥,𝑗)   𝐻(𝑥,𝑖,𝑗)   𝐼(𝑥,𝑗)   𝑁(𝑗)

Proof of Theorem crctcsh1wlkn0lem5
StepHypRef Expression
1 crctcsh1wlkn0lem.p . . . . 5 (𝜑 → ∀𝑖 ∈ (0..^𝑁)if-((𝑃𝑖) = (𝑃‘(𝑖 + 1)), (𝐼‘(𝐹𝑖)) = {(𝑃𝑖)}, {(𝑃𝑖), (𝑃‘(𝑖 + 1))} ⊆ (𝐼‘(𝐹𝑖))))
2 crctcsh1wlkn0lem.s . . . . . . 7 (𝜑𝑆 ∈ (1..^𝑁))
3 elfzoelz 12339 . . . . . . . . . . . 12 (𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁) → 𝑗 ∈ ℤ)
43zcnd 11359 . . . . . . . . . . 11 (𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁) → 𝑗 ∈ ℂ)
54adantl 481 . . . . . . . . . 10 ((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → 𝑗 ∈ ℂ)
6 1cnd 9935 . . . . . . . . . 10 ((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → 1 ∈ ℂ)
7 elfzoelz 12339 . . . . . . . . . . . 12 (𝑆 ∈ (1..^𝑁) → 𝑆 ∈ ℤ)
87zcnd 11359 . . . . . . . . . . 11 (𝑆 ∈ (1..^𝑁) → 𝑆 ∈ ℂ)
98adantr 480 . . . . . . . . . 10 ((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → 𝑆 ∈ ℂ)
10 elfzoel2 12338 . . . . . . . . . . . 12 (𝑆 ∈ (1..^𝑁) → 𝑁 ∈ ℤ)
1110zcnd 11359 . . . . . . . . . . 11 (𝑆 ∈ (1..^𝑁) → 𝑁 ∈ ℂ)
1211adantr 480 . . . . . . . . . 10 ((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → 𝑁 ∈ ℂ)
135, 6, 9, 122addsubd 10321 . . . . . . . . 9 ((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → (((𝑗 + 1) + 𝑆) − 𝑁) = (((𝑗 + 𝑆) − 𝑁) + 1))
1413eqcomd 2616 . . . . . . . 8 ((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁))
15 elfzo1 12385 . . . . . . . . . . . 12 (𝑆 ∈ (1..^𝑁) ↔ (𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁))
16 nnz 11276 . . . . . . . . . . . . . . . . 17 (𝑁 ∈ ℕ → 𝑁 ∈ ℤ)
17163ad2ant2 1076 . . . . . . . . . . . . . . . 16 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → 𝑁 ∈ ℤ)
1817adantr 480 . . . . . . . . . . . . . . 15 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → 𝑁 ∈ ℤ)
193adantl 481 . . . . . . . . . . . . . . . 16 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → 𝑗 ∈ ℤ)
20 nnz 11276 . . . . . . . . . . . . . . . . . 18 (𝑆 ∈ ℕ → 𝑆 ∈ ℤ)
21203ad2ant1 1075 . . . . . . . . . . . . . . . . 17 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → 𝑆 ∈ ℤ)
2221adantr 480 . . . . . . . . . . . . . . . 16 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → 𝑆 ∈ ℤ)
2319, 22zaddcld 11362 . . . . . . . . . . . . . . 15 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → (𝑗 + 𝑆) ∈ ℤ)
24 elfzo2 12342 . . . . . . . . . . . . . . . . 17 (𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁) ↔ (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁))
25 eluz2 11569 . . . . . . . . . . . . . . . . . . . 20 (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ↔ (((𝑁𝑆) + 1) ∈ ℤ ∧ 𝑗 ∈ ℤ ∧ ((𝑁𝑆) + 1) ≤ 𝑗))
26 zre 11258 . . . . . . . . . . . . . . . . . . . . . . . 24 (𝑗 ∈ ℤ → 𝑗 ∈ ℝ)
27 nnre 10904 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (𝑆 ∈ ℕ → 𝑆 ∈ ℝ)
28 nnre 10904 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (𝑁 ∈ ℕ → 𝑁 ∈ ℝ)
2927, 28anim12i 588 . . . . . . . . . . . . . . . . . . . . . . . . . 26 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ) → (𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ))
30 simplr 788 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℝ) → 𝑁 ∈ ℝ)
31 simpll 786 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℝ) → 𝑆 ∈ ℝ)
3230, 31resubcld 10337 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℝ) → (𝑁𝑆) ∈ ℝ)
3332lep1d 10834 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℝ) → (𝑁𝑆) ≤ ((𝑁𝑆) + 1))
34 1red 9934 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℝ) → 1 ∈ ℝ)
3532, 34readdcld 9948 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℝ) → ((𝑁𝑆) + 1) ∈ ℝ)
36 simpr 476 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℝ) → 𝑗 ∈ ℝ)
37 letr 10010 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 (((𝑁𝑆) ∈ ℝ ∧ ((𝑁𝑆) + 1) ∈ ℝ ∧ 𝑗 ∈ ℝ) → (((𝑁𝑆) ≤ ((𝑁𝑆) + 1) ∧ ((𝑁𝑆) + 1) ≤ 𝑗) → (𝑁𝑆) ≤ 𝑗))
3832, 35, 36, 37syl3anc 1318 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℝ) → (((𝑁𝑆) ≤ ((𝑁𝑆) + 1) ∧ ((𝑁𝑆) + 1) ≤ 𝑗) → (𝑁𝑆) ≤ 𝑗))
3933, 38mpand 707 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℝ) → (((𝑁𝑆) + 1) ≤ 𝑗 → (𝑁𝑆) ≤ 𝑗))
4030, 31, 36lesubaddd 10503 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℝ) → ((𝑁𝑆) ≤ 𝑗𝑁 ≤ (𝑗 + 𝑆)))
4139, 40sylibd 228 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℝ) → (((𝑁𝑆) + 1) ≤ 𝑗𝑁 ≤ (𝑗 + 𝑆)))
4241ex 449 . . . . . . . . . . . . . . . . . . . . . . . . . 26 ((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) → (𝑗 ∈ ℝ → (((𝑁𝑆) + 1) ≤ 𝑗𝑁 ≤ (𝑗 + 𝑆))))
4329, 42syl 17 . . . . . . . . . . . . . . . . . . . . . . . . 25 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ) → (𝑗 ∈ ℝ → (((𝑁𝑆) + 1) ≤ 𝑗𝑁 ≤ (𝑗 + 𝑆))))
44433adant3 1074 . . . . . . . . . . . . . . . . . . . . . . . 24 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → (𝑗 ∈ ℝ → (((𝑁𝑆) + 1) ≤ 𝑗𝑁 ≤ (𝑗 + 𝑆))))
4526, 44syl5com 31 . . . . . . . . . . . . . . . . . . . . . . 23 (𝑗 ∈ ℤ → ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → (((𝑁𝑆) + 1) ≤ 𝑗𝑁 ≤ (𝑗 + 𝑆))))
4645com23 84 . . . . . . . . . . . . . . . . . . . . . 22 (𝑗 ∈ ℤ → (((𝑁𝑆) + 1) ≤ 𝑗 → ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → 𝑁 ≤ (𝑗 + 𝑆))))
4746imp 444 . . . . . . . . . . . . . . . . . . . . 21 ((𝑗 ∈ ℤ ∧ ((𝑁𝑆) + 1) ≤ 𝑗) → ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → 𝑁 ≤ (𝑗 + 𝑆)))
48473adant1 1072 . . . . . . . . . . . . . . . . . . . 20 ((((𝑁𝑆) + 1) ∈ ℤ ∧ 𝑗 ∈ ℤ ∧ ((𝑁𝑆) + 1) ≤ 𝑗) → ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → 𝑁 ≤ (𝑗 + 𝑆)))
4925, 48sylbi 206 . . . . . . . . . . . . . . . . . . 19 (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) → ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → 𝑁 ≤ (𝑗 + 𝑆)))
50493ad2ant1 1075 . . . . . . . . . . . . . . . . . 18 ((𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁) → ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → 𝑁 ≤ (𝑗 + 𝑆)))
5150com12 32 . . . . . . . . . . . . . . . . 17 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → ((𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁) → 𝑁 ≤ (𝑗 + 𝑆)))
5224, 51syl5bi 231 . . . . . . . . . . . . . . . 16 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → (𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁) → 𝑁 ≤ (𝑗 + 𝑆)))
5352imp 444 . . . . . . . . . . . . . . 15 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → 𝑁 ≤ (𝑗 + 𝑆))
54 eluz2 11569 . . . . . . . . . . . . . . 15 ((𝑗 + 𝑆) ∈ (ℤ𝑁) ↔ (𝑁 ∈ ℤ ∧ (𝑗 + 𝑆) ∈ ℤ ∧ 𝑁 ≤ (𝑗 + 𝑆)))
5518, 23, 53, 54syl3anbrc 1239 . . . . . . . . . . . . . 14 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → (𝑗 + 𝑆) ∈ (ℤ𝑁))
56 uznn0sub 11595 . . . . . . . . . . . . . 14 ((𝑗 + 𝑆) ∈ (ℤ𝑁) → ((𝑗 + 𝑆) − 𝑁) ∈ ℕ0)
5755, 56syl 17 . . . . . . . . . . . . 13 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → ((𝑗 + 𝑆) − 𝑁) ∈ ℕ0)
58 simpl2 1058 . . . . . . . . . . . . 13 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → 𝑁 ∈ ℕ)
5926adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℤ) → 𝑗 ∈ ℝ)
60 simpll 786 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℤ) → 𝑆 ∈ ℝ)
61 ax-1 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 (𝑁 ∈ ℝ → (𝑆 ∈ ℝ → 𝑁 ∈ ℝ))
6261imdistanri 723 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 ((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) → (𝑁 ∈ ℝ ∧ 𝑁 ∈ ℝ))
6362adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℤ) → (𝑁 ∈ ℝ ∧ 𝑁 ∈ ℝ))
64 lt2add 10392 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (((𝑗 ∈ ℝ ∧ 𝑆 ∈ ℝ) ∧ (𝑁 ∈ ℝ ∧ 𝑁 ∈ ℝ)) → ((𝑗 < 𝑁𝑆 < 𝑁) → (𝑗 + 𝑆) < (𝑁 + 𝑁)))
6559, 60, 63, 64syl21anc 1317 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℤ) → ((𝑗 < 𝑁𝑆 < 𝑁) → (𝑗 + 𝑆) < (𝑁 + 𝑁)))
6659, 60readdcld 9948 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℤ) → (𝑗 + 𝑆) ∈ ℝ)
67 simplr 788 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℤ) → 𝑁 ∈ ℝ)
6866, 67, 67ltsubaddd 10502 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℤ) → (((𝑗 + 𝑆) − 𝑁) < 𝑁 ↔ (𝑗 + 𝑆) < (𝑁 + 𝑁)))
6965, 68sylibrd 248 . . . . . . . . . . . . . . . . . . . . . . . . 25 (((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) ∧ 𝑗 ∈ ℤ) → ((𝑗 < 𝑁𝑆 < 𝑁) → ((𝑗 + 𝑆) − 𝑁) < 𝑁))
7069ex 449 . . . . . . . . . . . . . . . . . . . . . . . 24 ((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) → (𝑗 ∈ ℤ → ((𝑗 < 𝑁𝑆 < 𝑁) → ((𝑗 + 𝑆) − 𝑁) < 𝑁)))
7170com23 84 . . . . . . . . . . . . . . . . . . . . . . 23 ((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) → ((𝑗 < 𝑁𝑆 < 𝑁) → (𝑗 ∈ ℤ → ((𝑗 + 𝑆) − 𝑁) < 𝑁)))
7271expcomd 453 . . . . . . . . . . . . . . . . . . . . . 22 ((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) → (𝑆 < 𝑁 → (𝑗 < 𝑁 → (𝑗 ∈ ℤ → ((𝑗 + 𝑆) − 𝑁) < 𝑁))))
7329, 72syl 17 . . . . . . . . . . . . . . . . . . . . 21 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ) → (𝑆 < 𝑁 → (𝑗 < 𝑁 → (𝑗 ∈ ℤ → ((𝑗 + 𝑆) − 𝑁) < 𝑁))))
74733impia 1253 . . . . . . . . . . . . . . . . . . . 20 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → (𝑗 < 𝑁 → (𝑗 ∈ ℤ → ((𝑗 + 𝑆) − 𝑁) < 𝑁)))
7574com13 86 . . . . . . . . . . . . . . . . . . 19 (𝑗 ∈ ℤ → (𝑗 < 𝑁 → ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → ((𝑗 + 𝑆) − 𝑁) < 𝑁)))
76753ad2ant2 1076 . . . . . . . . . . . . . . . . . 18 ((((𝑁𝑆) + 1) ∈ ℤ ∧ 𝑗 ∈ ℤ ∧ ((𝑁𝑆) + 1) ≤ 𝑗) → (𝑗 < 𝑁 → ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → ((𝑗 + 𝑆) − 𝑁) < 𝑁)))
7725, 76sylbi 206 . . . . . . . . . . . . . . . . 17 (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) → (𝑗 < 𝑁 → ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → ((𝑗 + 𝑆) − 𝑁) < 𝑁)))
7877imp 444 . . . . . . . . . . . . . . . 16 ((𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑗 < 𝑁) → ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → ((𝑗 + 𝑆) − 𝑁) < 𝑁))
79783adant2 1073 . . . . . . . . . . . . . . 15 ((𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁) → ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → ((𝑗 + 𝑆) − 𝑁) < 𝑁))
8024, 79sylbi 206 . . . . . . . . . . . . . 14 (𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁) → ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → ((𝑗 + 𝑆) − 𝑁) < 𝑁))
8180impcom 445 . . . . . . . . . . . . 13 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → ((𝑗 + 𝑆) − 𝑁) < 𝑁)
8257, 58, 813jca 1235 . . . . . . . . . . . 12 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → (((𝑗 + 𝑆) − 𝑁) ∈ ℕ0𝑁 ∈ ℕ ∧ ((𝑗 + 𝑆) − 𝑁) < 𝑁))
8315, 82sylanb 488 . . . . . . . . . . 11 ((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → (((𝑗 + 𝑆) − 𝑁) ∈ ℕ0𝑁 ∈ ℕ ∧ ((𝑗 + 𝑆) − 𝑁) < 𝑁))
84 elfzo0 12376 . . . . . . . . . . 11 (((𝑗 + 𝑆) − 𝑁) ∈ (0..^𝑁) ↔ (((𝑗 + 𝑆) − 𝑁) ∈ ℕ0𝑁 ∈ ℕ ∧ ((𝑗 + 𝑆) − 𝑁) < 𝑁))
8583, 84sylibr 223 . . . . . . . . . 10 ((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → ((𝑗 + 𝑆) − 𝑁) ∈ (0..^𝑁))
8685adantr 480 . . . . . . . . 9 (((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) ∧ (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁)) → ((𝑗 + 𝑆) − 𝑁) ∈ (0..^𝑁))
87 fveq2 6103 . . . . . . . . . . . 12 (𝑖 = ((𝑗 + 𝑆) − 𝑁) → (𝑃𝑖) = (𝑃‘((𝑗 + 𝑆) − 𝑁)))
8887adantl 481 . . . . . . . . . . 11 ((((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) ∧ (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁)) ∧ 𝑖 = ((𝑗 + 𝑆) − 𝑁)) → (𝑃𝑖) = (𝑃‘((𝑗 + 𝑆) − 𝑁)))
89 oveq1 6556 . . . . . . . . . . . . 13 (𝑖 = ((𝑗 + 𝑆) − 𝑁) → (𝑖 + 1) = (((𝑗 + 𝑆) − 𝑁) + 1))
9089fveq2d 6107 . . . . . . . . . . . 12 (𝑖 = ((𝑗 + 𝑆) − 𝑁) → (𝑃‘(𝑖 + 1)) = (𝑃‘(((𝑗 + 𝑆) − 𝑁) + 1)))
91 simpr 476 . . . . . . . . . . . . 13 (((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) ∧ (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁)) → (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁))
9291fveq2d 6107 . . . . . . . . . . . 12 (((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) ∧ (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁)) → (𝑃‘(((𝑗 + 𝑆) − 𝑁) + 1)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)))
9390, 92sylan9eqr 2666 . . . . . . . . . . 11 ((((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) ∧ (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁)) ∧ 𝑖 = ((𝑗 + 𝑆) − 𝑁)) → (𝑃‘(𝑖 + 1)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)))
9488, 93eqeq12d 2625 . . . . . . . . . 10 ((((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) ∧ (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁)) ∧ 𝑖 = ((𝑗 + 𝑆) − 𝑁)) → ((𝑃𝑖) = (𝑃‘(𝑖 + 1)) ↔ (𝑃‘((𝑗 + 𝑆) − 𝑁)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁))))
95 fveq2 6103 . . . . . . . . . . . . 13 (𝑖 = ((𝑗 + 𝑆) − 𝑁) → (𝐹𝑖) = (𝐹‘((𝑗 + 𝑆) − 𝑁)))
9695fveq2d 6107 . . . . . . . . . . . 12 (𝑖 = ((𝑗 + 𝑆) − 𝑁) → (𝐼‘(𝐹𝑖)) = (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))))
9787sneqd 4137 . . . . . . . . . . . 12 (𝑖 = ((𝑗 + 𝑆) − 𝑁) → {(𝑃𝑖)} = {(𝑃‘((𝑗 + 𝑆) − 𝑁))})
9896, 97eqeq12d 2625 . . . . . . . . . . 11 (𝑖 = ((𝑗 + 𝑆) − 𝑁) → ((𝐼‘(𝐹𝑖)) = {(𝑃𝑖)} ↔ (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))) = {(𝑃‘((𝑗 + 𝑆) − 𝑁))}))
9998adantl 481 . . . . . . . . . 10 ((((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) ∧ (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁)) ∧ 𝑖 = ((𝑗 + 𝑆) − 𝑁)) → ((𝐼‘(𝐹𝑖)) = {(𝑃𝑖)} ↔ (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))) = {(𝑃‘((𝑗 + 𝑆) − 𝑁))}))
10088, 93preq12d 4220 . . . . . . . . . . 11 ((((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) ∧ (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁)) ∧ 𝑖 = ((𝑗 + 𝑆) − 𝑁)) → {(𝑃𝑖), (𝑃‘(𝑖 + 1))} = {(𝑃‘((𝑗 + 𝑆) − 𝑁)), (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁))})
101 simpr 476 . . . . . . . . . . . . 13 ((((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) ∧ (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁)) ∧ 𝑖 = ((𝑗 + 𝑆) − 𝑁)) → 𝑖 = ((𝑗 + 𝑆) − 𝑁))
102101fveq2d 6107 . . . . . . . . . . . 12 ((((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) ∧ (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁)) ∧ 𝑖 = ((𝑗 + 𝑆) − 𝑁)) → (𝐹𝑖) = (𝐹‘((𝑗 + 𝑆) − 𝑁)))
103102fveq2d 6107 . . . . . . . . . . 11 ((((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) ∧ (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁)) ∧ 𝑖 = ((𝑗 + 𝑆) − 𝑁)) → (𝐼‘(𝐹𝑖)) = (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))))
104100, 103sseq12d 3597 . . . . . . . . . 10 ((((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) ∧ (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁)) ∧ 𝑖 = ((𝑗 + 𝑆) − 𝑁)) → ({(𝑃𝑖), (𝑃‘(𝑖 + 1))} ⊆ (𝐼‘(𝐹𝑖)) ↔ {(𝑃‘((𝑗 + 𝑆) − 𝑁)), (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁))} ⊆ (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁)))))
10594, 99, 104ifpbi123d 1021 . . . . . . . . 9 ((((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) ∧ (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁)) ∧ 𝑖 = ((𝑗 + 𝑆) − 𝑁)) → (if-((𝑃𝑖) = (𝑃‘(𝑖 + 1)), (𝐼‘(𝐹𝑖)) = {(𝑃𝑖)}, {(𝑃𝑖), (𝑃‘(𝑖 + 1))} ⊆ (𝐼‘(𝐹𝑖))) ↔ if-((𝑃‘((𝑗 + 𝑆) − 𝑁)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)), (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))) = {(𝑃‘((𝑗 + 𝑆) − 𝑁))}, {(𝑃‘((𝑗 + 𝑆) − 𝑁)), (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁))} ⊆ (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))))))
10686, 105rspcdv 3285 . . . . . . . 8 (((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) ∧ (((𝑗 + 𝑆) − 𝑁) + 1) = (((𝑗 + 1) + 𝑆) − 𝑁)) → (∀𝑖 ∈ (0..^𝑁)if-((𝑃𝑖) = (𝑃‘(𝑖 + 1)), (𝐼‘(𝐹𝑖)) = {(𝑃𝑖)}, {(𝑃𝑖), (𝑃‘(𝑖 + 1))} ⊆ (𝐼‘(𝐹𝑖))) → if-((𝑃‘((𝑗 + 𝑆) − 𝑁)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)), (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))) = {(𝑃‘((𝑗 + 𝑆) − 𝑁))}, {(𝑃‘((𝑗 + 𝑆) − 𝑁)), (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁))} ⊆ (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))))))
10714, 106mpdan 699 . . . . . . 7 ((𝑆 ∈ (1..^𝑁) ∧ 𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → (∀𝑖 ∈ (0..^𝑁)if-((𝑃𝑖) = (𝑃‘(𝑖 + 1)), (𝐼‘(𝐹𝑖)) = {(𝑃𝑖)}, {(𝑃𝑖), (𝑃‘(𝑖 + 1))} ⊆ (𝐼‘(𝐹𝑖))) → if-((𝑃‘((𝑗 + 𝑆) − 𝑁)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)), (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))) = {(𝑃‘((𝑗 + 𝑆) − 𝑁))}, {(𝑃‘((𝑗 + 𝑆) − 𝑁)), (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁))} ⊆ (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))))))
1082, 107sylan 487 . . . . . 6 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → (∀𝑖 ∈ (0..^𝑁)if-((𝑃𝑖) = (𝑃‘(𝑖 + 1)), (𝐼‘(𝐹𝑖)) = {(𝑃𝑖)}, {(𝑃𝑖), (𝑃‘(𝑖 + 1))} ⊆ (𝐼‘(𝐹𝑖))) → if-((𝑃‘((𝑗 + 𝑆) − 𝑁)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)), (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))) = {(𝑃‘((𝑗 + 𝑆) − 𝑁))}, {(𝑃‘((𝑗 + 𝑆) − 𝑁)), (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁))} ⊆ (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))))))
109108ex 449 . . . . 5 (𝜑 → (𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁) → (∀𝑖 ∈ (0..^𝑁)if-((𝑃𝑖) = (𝑃‘(𝑖 + 1)), (𝐼‘(𝐹𝑖)) = {(𝑃𝑖)}, {(𝑃𝑖), (𝑃‘(𝑖 + 1))} ⊆ (𝐼‘(𝐹𝑖))) → if-((𝑃‘((𝑗 + 𝑆) − 𝑁)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)), (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))) = {(𝑃‘((𝑗 + 𝑆) − 𝑁))}, {(𝑃‘((𝑗 + 𝑆) − 𝑁)), (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁))} ⊆ (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁)))))))
1101, 109mpid 43 . . . 4 (𝜑 → (𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁) → if-((𝑃‘((𝑗 + 𝑆) − 𝑁)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)), (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))) = {(𝑃‘((𝑗 + 𝑆) − 𝑁))}, {(𝑃‘((𝑗 + 𝑆) − 𝑁)), (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁))} ⊆ (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))))))
111110imp 444 . . 3 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → if-((𝑃‘((𝑗 + 𝑆) − 𝑁)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)), (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))) = {(𝑃‘((𝑗 + 𝑆) − 𝑁))}, {(𝑃‘((𝑗 + 𝑆) − 𝑁)), (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁))} ⊆ (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁)))))
112 elfzofz 12354 . . . . 5 (𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁) → 𝑗 ∈ (((𝑁𝑆) + 1)...𝑁))
113 crctcsh1wlkn0lem.q . . . . . 6 𝑄 = (𝑥 ∈ (0...𝑁) ↦ if(𝑥 ≤ (𝑁𝑆), (𝑃‘(𝑥 + 𝑆)), (𝑃‘((𝑥 + 𝑆) − 𝑁))))
1142, 113crctcsh1wlkn0lem3 41015 . . . . 5 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)...𝑁)) → (𝑄𝑗) = (𝑃‘((𝑗 + 𝑆) − 𝑁)))
115112, 114sylan2 490 . . . 4 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → (𝑄𝑗) = (𝑃‘((𝑗 + 𝑆) − 𝑁)))
116 fzofzp1 12431 . . . . 5 (𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁) → (𝑗 + 1) ∈ (((𝑁𝑆) + 1)...𝑁))
1172, 113crctcsh1wlkn0lem3 41015 . . . . 5 ((𝜑 ∧ (𝑗 + 1) ∈ (((𝑁𝑆) + 1)...𝑁)) → (𝑄‘(𝑗 + 1)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)))
118116, 117sylan2 490 . . . 4 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → (𝑄‘(𝑗 + 1)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)))
119 crctcsh1wlkn0lem.h . . . . . . 7 𝐻 = (𝐹 cyclShift 𝑆)
120119fveq1i 6104 . . . . . 6 (𝐻𝑗) = ((𝐹 cyclShift 𝑆)‘𝑗)
121 crctcsh1wlkn0lem.f . . . . . . . . 9 (𝜑𝐹 ∈ Word 𝐴)
122121adantr 480 . . . . . . . 8 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → 𝐹 ∈ Word 𝐴)
1232, 7syl 17 . . . . . . . . 9 (𝜑𝑆 ∈ ℤ)
124123adantr 480 . . . . . . . 8 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → 𝑆 ∈ ℤ)
125 ltle 10005 . . . . . . . . . . . . . . . . 17 ((𝑆 ∈ ℝ ∧ 𝑁 ∈ ℝ) → (𝑆 < 𝑁𝑆𝑁))
12629, 125syl 17 . . . . . . . . . . . . . . . 16 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ) → (𝑆 < 𝑁𝑆𝑁))
1271263impia 1253 . . . . . . . . . . . . . . 15 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → 𝑆𝑁)
128 nnnn0 11176 . . . . . . . . . . . . . . . . . 18 (𝑆 ∈ ℕ → 𝑆 ∈ ℕ0)
129 nnnn0 11176 . . . . . . . . . . . . . . . . . 18 (𝑁 ∈ ℕ → 𝑁 ∈ ℕ0)
130128, 129anim12i 588 . . . . . . . . . . . . . . . . 17 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ) → (𝑆 ∈ ℕ0𝑁 ∈ ℕ0))
1311303adant3 1074 . . . . . . . . . . . . . . . 16 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → (𝑆 ∈ ℕ0𝑁 ∈ ℕ0))
132 nn0sub 11220 . . . . . . . . . . . . . . . 16 ((𝑆 ∈ ℕ0𝑁 ∈ ℕ0) → (𝑆𝑁 ↔ (𝑁𝑆) ∈ ℕ0))
133131, 132syl 17 . . . . . . . . . . . . . . 15 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → (𝑆𝑁 ↔ (𝑁𝑆) ∈ ℕ0))
134127, 133mpbid 221 . . . . . . . . . . . . . 14 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → (𝑁𝑆) ∈ ℕ0)
13515, 134sylbi 206 . . . . . . . . . . . . 13 (𝑆 ∈ (1..^𝑁) → (𝑁𝑆) ∈ ℕ0)
136 1nn0 11185 . . . . . . . . . . . . . 14 1 ∈ ℕ0
137136a1i 11 . . . . . . . . . . . . 13 (𝑆 ∈ (1..^𝑁) → 1 ∈ ℕ0)
138135, 137nn0addcld 11232 . . . . . . . . . . . 12 (𝑆 ∈ (1..^𝑁) → ((𝑁𝑆) + 1) ∈ ℕ0)
139 elnn0uz 11601 . . . . . . . . . . . 12 (((𝑁𝑆) + 1) ∈ ℕ0 ↔ ((𝑁𝑆) + 1) ∈ (ℤ‘0))
140138, 139sylib 207 . . . . . . . . . . 11 (𝑆 ∈ (1..^𝑁) → ((𝑁𝑆) + 1) ∈ (ℤ‘0))
141 fzoss1 12364 . . . . . . . . . . 11 (((𝑁𝑆) + 1) ∈ (ℤ‘0) → (((𝑁𝑆) + 1)..^𝑁) ⊆ (0..^𝑁))
1422, 140, 1413syl 18 . . . . . . . . . 10 (𝜑 → (((𝑁𝑆) + 1)..^𝑁) ⊆ (0..^𝑁))
143142sselda 3568 . . . . . . . . 9 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → 𝑗 ∈ (0..^𝑁))
144 crctcsh1wlkn0lem.n . . . . . . . . . 10 𝑁 = (#‘𝐹)
145144oveq2i 6560 . . . . . . . . 9 (0..^𝑁) = (0..^(#‘𝐹))
146143, 145syl6eleq 2698 . . . . . . . 8 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → 𝑗 ∈ (0..^(#‘𝐹)))
147 cshwidxmod 13400 . . . . . . . 8 ((𝐹 ∈ Word 𝐴𝑆 ∈ ℤ ∧ 𝑗 ∈ (0..^(#‘𝐹))) → ((𝐹 cyclShift 𝑆)‘𝑗) = (𝐹‘((𝑗 + 𝑆) mod (#‘𝐹))))
148122, 124, 146, 147syl3anc 1318 . . . . . . 7 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → ((𝐹 cyclShift 𝑆)‘𝑗) = (𝐹‘((𝑗 + 𝑆) mod (#‘𝐹))))
149144eqcomi 2619 . . . . . . . . . 10 (#‘𝐹) = 𝑁
150149oveq2i 6560 . . . . . . . . 9 ((𝑗 + 𝑆) mod (#‘𝐹)) = ((𝑗 + 𝑆) mod 𝑁)
151 eluzelre 11574 . . . . . . . . . . . . . . . . . . 19 (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) → 𝑗 ∈ ℝ)
1521513ad2ant1 1075 . . . . . . . . . . . . . . . . . 18 ((𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁) → 𝑗 ∈ ℝ)
153152adantl 481 . . . . . . . . . . . . . . . . 17 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁)) → 𝑗 ∈ ℝ)
154273ad2ant1 1075 . . . . . . . . . . . . . . . . . 18 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → 𝑆 ∈ ℝ)
155154adantr 480 . . . . . . . . . . . . . . . . 17 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁)) → 𝑆 ∈ ℝ)
156153, 155readdcld 9948 . . . . . . . . . . . . . . . 16 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁)) → (𝑗 + 𝑆) ∈ ℝ)
157 nnrp 11718 . . . . . . . . . . . . . . . . . 18 (𝑁 ∈ ℕ → 𝑁 ∈ ℝ+)
1581573ad2ant2 1076 . . . . . . . . . . . . . . . . 17 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → 𝑁 ∈ ℝ+)
159158adantr 480 . . . . . . . . . . . . . . . 16 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁)) → 𝑁 ∈ ℝ+)
16050impcom 445 . . . . . . . . . . . . . . . . 17 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁)) → 𝑁 ≤ (𝑗 + 𝑆))
161159rpred 11748 . . . . . . . . . . . . . . . . . 18 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁)) → 𝑁 ∈ ℝ)
162 simpr3 1062 . . . . . . . . . . . . . . . . . 18 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁)) → 𝑗 < 𝑁)
163 simpl3 1059 . . . . . . . . . . . . . . . . . 18 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁)) → 𝑆 < 𝑁)
164153, 155, 161, 162, 163lt2addmuld 11159 . . . . . . . . . . . . . . . . 17 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁)) → (𝑗 + 𝑆) < (2 · 𝑁))
165160, 164jca 553 . . . . . . . . . . . . . . . 16 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁)) → (𝑁 ≤ (𝑗 + 𝑆) ∧ (𝑗 + 𝑆) < (2 · 𝑁)))
166156, 159, 165jca31 555 . . . . . . . . . . . . . . 15 (((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) ∧ (𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁)) → (((𝑗 + 𝑆) ∈ ℝ ∧ 𝑁 ∈ ℝ+) ∧ (𝑁 ≤ (𝑗 + 𝑆) ∧ (𝑗 + 𝑆) < (2 · 𝑁))))
167166ex 449 . . . . . . . . . . . . . 14 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → ((𝑗 ∈ (ℤ‘((𝑁𝑆) + 1)) ∧ 𝑁 ∈ ℤ ∧ 𝑗 < 𝑁) → (((𝑗 + 𝑆) ∈ ℝ ∧ 𝑁 ∈ ℝ+) ∧ (𝑁 ≤ (𝑗 + 𝑆) ∧ (𝑗 + 𝑆) < (2 · 𝑁)))))
16824, 167syl5bi 231 . . . . . . . . . . . . 13 ((𝑆 ∈ ℕ ∧ 𝑁 ∈ ℕ ∧ 𝑆 < 𝑁) → (𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁) → (((𝑗 + 𝑆) ∈ ℝ ∧ 𝑁 ∈ ℝ+) ∧ (𝑁 ≤ (𝑗 + 𝑆) ∧ (𝑗 + 𝑆) < (2 · 𝑁)))))
16915, 168sylbi 206 . . . . . . . . . . . 12 (𝑆 ∈ (1..^𝑁) → (𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁) → (((𝑗 + 𝑆) ∈ ℝ ∧ 𝑁 ∈ ℝ+) ∧ (𝑁 ≤ (𝑗 + 𝑆) ∧ (𝑗 + 𝑆) < (2 · 𝑁)))))
1702, 169syl 17 . . . . . . . . . . 11 (𝜑 → (𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁) → (((𝑗 + 𝑆) ∈ ℝ ∧ 𝑁 ∈ ℝ+) ∧ (𝑁 ≤ (𝑗 + 𝑆) ∧ (𝑗 + 𝑆) < (2 · 𝑁)))))
171170imp 444 . . . . . . . . . 10 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → (((𝑗 + 𝑆) ∈ ℝ ∧ 𝑁 ∈ ℝ+) ∧ (𝑁 ≤ (𝑗 + 𝑆) ∧ (𝑗 + 𝑆) < (2 · 𝑁))))
172 2submod 12593 . . . . . . . . . 10 ((((𝑗 + 𝑆) ∈ ℝ ∧ 𝑁 ∈ ℝ+) ∧ (𝑁 ≤ (𝑗 + 𝑆) ∧ (𝑗 + 𝑆) < (2 · 𝑁))) → ((𝑗 + 𝑆) mod 𝑁) = ((𝑗 + 𝑆) − 𝑁))
173171, 172syl 17 . . . . . . . . 9 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → ((𝑗 + 𝑆) mod 𝑁) = ((𝑗 + 𝑆) − 𝑁))
174150, 173syl5eq 2656 . . . . . . . 8 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → ((𝑗 + 𝑆) mod (#‘𝐹)) = ((𝑗 + 𝑆) − 𝑁))
175174fveq2d 6107 . . . . . . 7 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → (𝐹‘((𝑗 + 𝑆) mod (#‘𝐹))) = (𝐹‘((𝑗 + 𝑆) − 𝑁)))
176148, 175eqtrd 2644 . . . . . 6 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → ((𝐹 cyclShift 𝑆)‘𝑗) = (𝐹‘((𝑗 + 𝑆) − 𝑁)))
177120, 176syl5eq 2656 . . . . 5 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → (𝐻𝑗) = (𝐹‘((𝑗 + 𝑆) − 𝑁)))
178177fveq2d 6107 . . . 4 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → (𝐼‘(𝐻𝑗)) = (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))))
179 simp1 1054 . . . . . 6 (((𝑄𝑗) = (𝑃‘((𝑗 + 𝑆) − 𝑁)) ∧ (𝑄‘(𝑗 + 1)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)) ∧ (𝐼‘(𝐻𝑗)) = (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁)))) → (𝑄𝑗) = (𝑃‘((𝑗 + 𝑆) − 𝑁)))
180 simp2 1055 . . . . . 6 (((𝑄𝑗) = (𝑃‘((𝑗 + 𝑆) − 𝑁)) ∧ (𝑄‘(𝑗 + 1)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)) ∧ (𝐼‘(𝐻𝑗)) = (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁)))) → (𝑄‘(𝑗 + 1)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)))
181179, 180eqeq12d 2625 . . . . 5 (((𝑄𝑗) = (𝑃‘((𝑗 + 𝑆) − 𝑁)) ∧ (𝑄‘(𝑗 + 1)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)) ∧ (𝐼‘(𝐻𝑗)) = (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁)))) → ((𝑄𝑗) = (𝑄‘(𝑗 + 1)) ↔ (𝑃‘((𝑗 + 𝑆) − 𝑁)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁))))
182 simp3 1056 . . . . . 6 (((𝑄𝑗) = (𝑃‘((𝑗 + 𝑆) − 𝑁)) ∧ (𝑄‘(𝑗 + 1)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)) ∧ (𝐼‘(𝐻𝑗)) = (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁)))) → (𝐼‘(𝐻𝑗)) = (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))))
183179sneqd 4137 . . . . . 6 (((𝑄𝑗) = (𝑃‘((𝑗 + 𝑆) − 𝑁)) ∧ (𝑄‘(𝑗 + 1)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)) ∧ (𝐼‘(𝐻𝑗)) = (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁)))) → {(𝑄𝑗)} = {(𝑃‘((𝑗 + 𝑆) − 𝑁))})
184182, 183eqeq12d 2625 . . . . 5 (((𝑄𝑗) = (𝑃‘((𝑗 + 𝑆) − 𝑁)) ∧ (𝑄‘(𝑗 + 1)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)) ∧ (𝐼‘(𝐻𝑗)) = (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁)))) → ((𝐼‘(𝐻𝑗)) = {(𝑄𝑗)} ↔ (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))) = {(𝑃‘((𝑗 + 𝑆) − 𝑁))}))
185179, 180preq12d 4220 . . . . . 6 (((𝑄𝑗) = (𝑃‘((𝑗 + 𝑆) − 𝑁)) ∧ (𝑄‘(𝑗 + 1)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)) ∧ (𝐼‘(𝐻𝑗)) = (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁)))) → {(𝑄𝑗), (𝑄‘(𝑗 + 1))} = {(𝑃‘((𝑗 + 𝑆) − 𝑁)), (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁))})
186185, 182sseq12d 3597 . . . . 5 (((𝑄𝑗) = (𝑃‘((𝑗 + 𝑆) − 𝑁)) ∧ (𝑄‘(𝑗 + 1)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)) ∧ (𝐼‘(𝐻𝑗)) = (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁)))) → ({(𝑄𝑗), (𝑄‘(𝑗 + 1))} ⊆ (𝐼‘(𝐻𝑗)) ↔ {(𝑃‘((𝑗 + 𝑆) − 𝑁)), (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁))} ⊆ (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁)))))
187181, 184, 186ifpbi123d 1021 . . . 4 (((𝑄𝑗) = (𝑃‘((𝑗 + 𝑆) − 𝑁)) ∧ (𝑄‘(𝑗 + 1)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)) ∧ (𝐼‘(𝐻𝑗)) = (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁)))) → (if-((𝑄𝑗) = (𝑄‘(𝑗 + 1)), (𝐼‘(𝐻𝑗)) = {(𝑄𝑗)}, {(𝑄𝑗), (𝑄‘(𝑗 + 1))} ⊆ (𝐼‘(𝐻𝑗))) ↔ if-((𝑃‘((𝑗 + 𝑆) − 𝑁)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)), (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))) = {(𝑃‘((𝑗 + 𝑆) − 𝑁))}, {(𝑃‘((𝑗 + 𝑆) − 𝑁)), (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁))} ⊆ (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))))))
188115, 118, 178, 187syl3anc 1318 . . 3 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → (if-((𝑄𝑗) = (𝑄‘(𝑗 + 1)), (𝐼‘(𝐻𝑗)) = {(𝑄𝑗)}, {(𝑄𝑗), (𝑄‘(𝑗 + 1))} ⊆ (𝐼‘(𝐻𝑗))) ↔ if-((𝑃‘((𝑗 + 𝑆) − 𝑁)) = (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁)), (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))) = {(𝑃‘((𝑗 + 𝑆) − 𝑁))}, {(𝑃‘((𝑗 + 𝑆) − 𝑁)), (𝑃‘(((𝑗 + 1) + 𝑆) − 𝑁))} ⊆ (𝐼‘(𝐹‘((𝑗 + 𝑆) − 𝑁))))))
189111, 188mpbird 246 . 2 ((𝜑𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)) → if-((𝑄𝑗) = (𝑄‘(𝑗 + 1)), (𝐼‘(𝐻𝑗)) = {(𝑄𝑗)}, {(𝑄𝑗), (𝑄‘(𝑗 + 1))} ⊆ (𝐼‘(𝐻𝑗))))
190189ralrimiva 2949 1 (𝜑 → ∀𝑗 ∈ (((𝑁𝑆) + 1)..^𝑁)if-((𝑄𝑗) = (𝑄‘(𝑗 + 1)), (𝐼‘(𝐻𝑗)) = {(𝑄𝑗)}, {(𝑄𝑗), (𝑄‘(𝑗 + 1))} ⊆ (𝐼‘(𝐻𝑗))))
 Colors of variables: wff setvar class Syntax hints:   → wi 4   ↔ wb 195   ∧ wa 383  if-wif 1006   ∧ w3a 1031   = wceq 1475   ∈ wcel 1977  ∀wral 2896   ⊆ wss 3540  ifcif 4036  {csn 4125  {cpr 4127   class class class wbr 4583   ↦ cmpt 4643  ‘cfv 5804  (class class class)co 6549  ℂcc 9813  ℝcr 9814  0cc0 9815  1c1 9816   + caddc 9818   · cmul 9820   < clt 9953   ≤ cle 9954   − cmin 10145  ℕcn 10897  2c2 10947  ℕ0cn0 11169  ℤcz 11254  ℤ≥cuz 11563  ℝ+crp 11708  ...cfz 12197  ..^cfzo 12334   mod cmo 12530  #chash 12979  Word cword 13146   cyclShift ccsh 13385 This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1713  ax-4 1728  ax-5 1827  ax-6 1875  ax-7 1922  ax-8 1979  ax-9 1986  ax-10 2006  ax-11 2021  ax-12 2034  ax-13 2234  ax-ext 2590  ax-rep 4699  ax-sep 4709  ax-nul 4717  ax-pow 4769  ax-pr 4833  ax-un 6847  ax-cnex 9871  ax-resscn 9872  ax-1cn 9873  ax-icn 9874  ax-addcl 9875  ax-addrcl 9876  ax-mulcl 9877  ax-mulrcl 9878  ax-mulcom 9879  ax-addass 9880  ax-mulass 9881  ax-distr 9882  ax-i2m1 9883  ax-1ne0 9884  ax-1rid 9885  ax-rnegex 9886  ax-rrecex 9887  ax-cnre 9888  ax-pre-lttri 9889  ax-pre-lttrn 9890  ax-pre-ltadd 9891  ax-pre-mulgt0 9892  ax-pre-sup 9893 This theorem depends on definitions:  df-bi 196  df-or 384  df-an 385  df-ifp 1007  df-3or 1032  df-3an 1033  df-tru 1478  df-ex 1696  df-nf 1701  df-sb 1868  df-eu 2462  df-mo 2463  df-clab 2597  df-cleq 2603  df-clel 2606  df-nfc 2740  df-ne 2782  df-nel 2783  df-ral 2901  df-rex 2902  df-reu 2903  df-rmo 2904  df-rab 2905  df-v 3175  df-sbc 3403  df-csb 3500  df-dif 3543  df-un 3545  df-in 3547  df-ss 3554  df-pss 3556  df-nul 3875  df-if 4037  df-pw 4110  df-sn 4126  df-pr 4128  df-tp 4130  df-op 4132  df-uni 4373  df-int 4411  df-iun 4457  df-br 4584  df-opab 4644  df-mpt 4645  df-tr 4681  df-eprel 4949  df-id 4953  df-po 4959  df-so 4960  df-fr 4997  df-we 4999  df-xp 5044  df-rel 5045  df-cnv 5046  df-co 5047  df-dm 5048  df-rn 5049  df-res 5050  df-ima 5051  df-pred 5597  df-ord 5643  df-on 5644  df-lim 5645  df-suc 5646  df-iota 5768  df-fun 5806  df-fn 5807  df-f 5808  df-f1 5809  df-fo 5810  df-f1o 5811  df-fv 5812  df-riota 6511  df-ov 6552  df-oprab 6553  df-mpt2 6554  df-om 6958  df-1st 7059  df-2nd 7060  df-wrecs 7294  df-recs 7355  df-rdg 7393  df-1o 7447  df-oadd 7451  df-er 7629  df-en 7842  df-dom 7843  df-sdom 7844  df-fin 7845  df-sup 8231  df-inf 8232  df-card 8648  df-pnf 9955  df-mnf 9956  df-xr 9957  df-ltxr 9958  df-le 9959  df-sub 10147  df-neg 10148  df-div 10564  df-nn 10898  df-2 10956  df-n0 11170  df-z 11255  df-uz 11564  df-rp 11709  df-fz 12198  df-fzo 12335  df-fl 12455  df-mod 12531  df-hash 12980  df-word 13154  df-concat 13156  df-substr 13158  df-csh 13386 This theorem is referenced by:  crctcsh1wlkn0lem7  41019
 Copyright terms: Public domain W3C validator