Metamath Proof Explorer


Theorem crctcshwlkn0lem2

Description: Lemma for crctcshwlkn0 . (Contributed by AV, 12-Mar-2021)

Ref Expression
Hypotheses crctcshwlkn0lem.s ( 𝜑𝑆 ∈ ( 1 ..^ 𝑁 ) )
crctcshwlkn0lem.q 𝑄 = ( 𝑥 ∈ ( 0 ... 𝑁 ) ↦ if ( 𝑥 ≤ ( 𝑁𝑆 ) , ( 𝑃 ‘ ( 𝑥 + 𝑆 ) ) , ( 𝑃 ‘ ( ( 𝑥 + 𝑆 ) − 𝑁 ) ) ) )
Assertion crctcshwlkn0lem2 ( ( 𝜑𝐽 ∈ ( 0 ... ( 𝑁𝑆 ) ) ) → ( 𝑄𝐽 ) = ( 𝑃 ‘ ( 𝐽 + 𝑆 ) ) )

Proof

Step Hyp Ref Expression
1 crctcshwlkn0lem.s ( 𝜑𝑆 ∈ ( 1 ..^ 𝑁 ) )
2 crctcshwlkn0lem.q 𝑄 = ( 𝑥 ∈ ( 0 ... 𝑁 ) ↦ if ( 𝑥 ≤ ( 𝑁𝑆 ) , ( 𝑃 ‘ ( 𝑥 + 𝑆 ) ) , ( 𝑃 ‘ ( ( 𝑥 + 𝑆 ) − 𝑁 ) ) ) )
3 breq1 ( 𝑥 = 𝐽 → ( 𝑥 ≤ ( 𝑁𝑆 ) ↔ 𝐽 ≤ ( 𝑁𝑆 ) ) )
4 fvoveq1 ( 𝑥 = 𝐽 → ( 𝑃 ‘ ( 𝑥 + 𝑆 ) ) = ( 𝑃 ‘ ( 𝐽 + 𝑆 ) ) )
5 oveq1 ( 𝑥 = 𝐽 → ( 𝑥 + 𝑆 ) = ( 𝐽 + 𝑆 ) )
6 5 fvoveq1d ( 𝑥 = 𝐽 → ( 𝑃 ‘ ( ( 𝑥 + 𝑆 ) − 𝑁 ) ) = ( 𝑃 ‘ ( ( 𝐽 + 𝑆 ) − 𝑁 ) ) )
7 3 4 6 ifbieq12d ( 𝑥 = 𝐽 → if ( 𝑥 ≤ ( 𝑁𝑆 ) , ( 𝑃 ‘ ( 𝑥 + 𝑆 ) ) , ( 𝑃 ‘ ( ( 𝑥 + 𝑆 ) − 𝑁 ) ) ) = if ( 𝐽 ≤ ( 𝑁𝑆 ) , ( 𝑃 ‘ ( 𝐽 + 𝑆 ) ) , ( 𝑃 ‘ ( ( 𝐽 + 𝑆 ) − 𝑁 ) ) ) )
8 fzo0ss1 ( 1 ..^ 𝑁 ) ⊆ ( 0 ..^ 𝑁 )
9 8 sseli ( 𝑆 ∈ ( 1 ..^ 𝑁 ) → 𝑆 ∈ ( 0 ..^ 𝑁 ) )
10 elfzoel2 ( 𝑆 ∈ ( 0 ..^ 𝑁 ) → 𝑁 ∈ ℤ )
11 elfzonn0 ( 𝑆 ∈ ( 0 ..^ 𝑁 ) → 𝑆 ∈ ℕ0 )
12 eluzmn ( ( 𝑁 ∈ ℤ ∧ 𝑆 ∈ ℕ0 ) → 𝑁 ∈ ( ℤ ‘ ( 𝑁𝑆 ) ) )
13 10 11 12 syl2anc ( 𝑆 ∈ ( 0 ..^ 𝑁 ) → 𝑁 ∈ ( ℤ ‘ ( 𝑁𝑆 ) ) )
14 fzss2 ( 𝑁 ∈ ( ℤ ‘ ( 𝑁𝑆 ) ) → ( 0 ... ( 𝑁𝑆 ) ) ⊆ ( 0 ... 𝑁 ) )
15 13 14 syl ( 𝑆 ∈ ( 0 ..^ 𝑁 ) → ( 0 ... ( 𝑁𝑆 ) ) ⊆ ( 0 ... 𝑁 ) )
16 15 sseld ( 𝑆 ∈ ( 0 ..^ 𝑁 ) → ( 𝐽 ∈ ( 0 ... ( 𝑁𝑆 ) ) → 𝐽 ∈ ( 0 ... 𝑁 ) ) )
17 1 9 16 3syl ( 𝜑 → ( 𝐽 ∈ ( 0 ... ( 𝑁𝑆 ) ) → 𝐽 ∈ ( 0 ... 𝑁 ) ) )
18 17 imp ( ( 𝜑𝐽 ∈ ( 0 ... ( 𝑁𝑆 ) ) ) → 𝐽 ∈ ( 0 ... 𝑁 ) )
19 fvex ( 𝑃 ‘ ( 𝐽 + 𝑆 ) ) ∈ V
20 fvex ( 𝑃 ‘ ( ( 𝐽 + 𝑆 ) − 𝑁 ) ) ∈ V
21 19 20 ifex if ( 𝐽 ≤ ( 𝑁𝑆 ) , ( 𝑃 ‘ ( 𝐽 + 𝑆 ) ) , ( 𝑃 ‘ ( ( 𝐽 + 𝑆 ) − 𝑁 ) ) ) ∈ V
22 21 a1i ( ( 𝜑𝐽 ∈ ( 0 ... ( 𝑁𝑆 ) ) ) → if ( 𝐽 ≤ ( 𝑁𝑆 ) , ( 𝑃 ‘ ( 𝐽 + 𝑆 ) ) , ( 𝑃 ‘ ( ( 𝐽 + 𝑆 ) − 𝑁 ) ) ) ∈ V )
23 2 7 18 22 fvmptd3 ( ( 𝜑𝐽 ∈ ( 0 ... ( 𝑁𝑆 ) ) ) → ( 𝑄𝐽 ) = if ( 𝐽 ≤ ( 𝑁𝑆 ) , ( 𝑃 ‘ ( 𝐽 + 𝑆 ) ) , ( 𝑃 ‘ ( ( 𝐽 + 𝑆 ) − 𝑁 ) ) ) )
24 elfzle2 ( 𝐽 ∈ ( 0 ... ( 𝑁𝑆 ) ) → 𝐽 ≤ ( 𝑁𝑆 ) )
25 24 adantl ( ( 𝜑𝐽 ∈ ( 0 ... ( 𝑁𝑆 ) ) ) → 𝐽 ≤ ( 𝑁𝑆 ) )
26 25 iftrued ( ( 𝜑𝐽 ∈ ( 0 ... ( 𝑁𝑆 ) ) ) → if ( 𝐽 ≤ ( 𝑁𝑆 ) , ( 𝑃 ‘ ( 𝐽 + 𝑆 ) ) , ( 𝑃 ‘ ( ( 𝐽 + 𝑆 ) − 𝑁 ) ) ) = ( 𝑃 ‘ ( 𝐽 + 𝑆 ) ) )
27 23 26 eqtrd ( ( 𝜑𝐽 ∈ ( 0 ... ( 𝑁𝑆 ) ) ) → ( 𝑄𝐽 ) = ( 𝑃 ‘ ( 𝐽 + 𝑆 ) ) )