Metamath Proof Explorer


Theorem repswrevw

Description: The reverse of a "repeated symbol word". (Contributed by AV, 6-Nov-2018)

Ref Expression
Assertion repswrevw ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) → ( reverse ‘ ( 𝑆 repeatS 𝑁 ) ) = ( 𝑆 repeatS 𝑁 ) )

Proof

Step Hyp Ref Expression
1 repswlen ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) → ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) = 𝑁 )
2 1 oveq2d ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) → ( 0 ..^ ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) ) = ( 0 ..^ 𝑁 ) )
3 2 mpteq1d ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) → ( 𝑥 ∈ ( 0 ..^ ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) ) ↦ ( ( 𝑆 repeatS 𝑁 ) ‘ ( ( ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) − 1 ) − 𝑥 ) ) ) = ( 𝑥 ∈ ( 0 ..^ 𝑁 ) ↦ ( ( 𝑆 repeatS 𝑁 ) ‘ ( ( ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) − 1 ) − 𝑥 ) ) ) )
4 simpll ( ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) ∧ 𝑥 ∈ ( 0 ..^ 𝑁 ) ) → 𝑆𝑉 )
5 simplr ( ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) ∧ 𝑥 ∈ ( 0 ..^ 𝑁 ) ) → 𝑁 ∈ ℕ0 )
6 1 adantr ( ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) ∧ 𝑥 ∈ ( 0 ..^ 𝑁 ) ) → ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) = 𝑁 )
7 6 oveq1d ( ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) ∧ 𝑥 ∈ ( 0 ..^ 𝑁 ) ) → ( ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) − 1 ) = ( 𝑁 − 1 ) )
8 7 oveq1d ( ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) ∧ 𝑥 ∈ ( 0 ..^ 𝑁 ) ) → ( ( ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) − 1 ) − 𝑥 ) = ( ( 𝑁 − 1 ) − 𝑥 ) )
9 ubmelm1fzo ( 𝑥 ∈ ( 0 ..^ 𝑁 ) → ( ( 𝑁𝑥 ) − 1 ) ∈ ( 0 ..^ 𝑁 ) )
10 elfzoelz ( 𝑥 ∈ ( 0 ..^ 𝑁 ) → 𝑥 ∈ ℤ )
11 nn0cn ( 𝑁 ∈ ℕ0𝑁 ∈ ℂ )
12 11 ad2antll ( ( 𝑥 ∈ ℤ ∧ ( 𝑆𝑉𝑁 ∈ ℕ0 ) ) → 𝑁 ∈ ℂ )
13 zcn ( 𝑥 ∈ ℤ → 𝑥 ∈ ℂ )
14 13 adantr ( ( 𝑥 ∈ ℤ ∧ ( 𝑆𝑉𝑁 ∈ ℕ0 ) ) → 𝑥 ∈ ℂ )
15 1cnd ( ( 𝑥 ∈ ℤ ∧ ( 𝑆𝑉𝑁 ∈ ℕ0 ) ) → 1 ∈ ℂ )
16 12 14 15 sub32d ( ( 𝑥 ∈ ℤ ∧ ( 𝑆𝑉𝑁 ∈ ℕ0 ) ) → ( ( 𝑁𝑥 ) − 1 ) = ( ( 𝑁 − 1 ) − 𝑥 ) )
17 16 eleq1d ( ( 𝑥 ∈ ℤ ∧ ( 𝑆𝑉𝑁 ∈ ℕ0 ) ) → ( ( ( 𝑁𝑥 ) − 1 ) ∈ ( 0 ..^ 𝑁 ) ↔ ( ( 𝑁 − 1 ) − 𝑥 ) ∈ ( 0 ..^ 𝑁 ) ) )
18 17 biimpd ( ( 𝑥 ∈ ℤ ∧ ( 𝑆𝑉𝑁 ∈ ℕ0 ) ) → ( ( ( 𝑁𝑥 ) − 1 ) ∈ ( 0 ..^ 𝑁 ) → ( ( 𝑁 − 1 ) − 𝑥 ) ∈ ( 0 ..^ 𝑁 ) ) )
19 18 ex ( 𝑥 ∈ ℤ → ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) → ( ( ( 𝑁𝑥 ) − 1 ) ∈ ( 0 ..^ 𝑁 ) → ( ( 𝑁 − 1 ) − 𝑥 ) ∈ ( 0 ..^ 𝑁 ) ) ) )
20 10 19 syl ( 𝑥 ∈ ( 0 ..^ 𝑁 ) → ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) → ( ( ( 𝑁𝑥 ) − 1 ) ∈ ( 0 ..^ 𝑁 ) → ( ( 𝑁 − 1 ) − 𝑥 ) ∈ ( 0 ..^ 𝑁 ) ) ) )
21 9 20 mpid ( 𝑥 ∈ ( 0 ..^ 𝑁 ) → ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) → ( ( 𝑁 − 1 ) − 𝑥 ) ∈ ( 0 ..^ 𝑁 ) ) )
22 21 impcom ( ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) ∧ 𝑥 ∈ ( 0 ..^ 𝑁 ) ) → ( ( 𝑁 − 1 ) − 𝑥 ) ∈ ( 0 ..^ 𝑁 ) )
23 8 22 eqeltrd ( ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) ∧ 𝑥 ∈ ( 0 ..^ 𝑁 ) ) → ( ( ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) − 1 ) − 𝑥 ) ∈ ( 0 ..^ 𝑁 ) )
24 repswsymb ( ( 𝑆𝑉𝑁 ∈ ℕ0 ∧ ( ( ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) − 1 ) − 𝑥 ) ∈ ( 0 ..^ 𝑁 ) ) → ( ( 𝑆 repeatS 𝑁 ) ‘ ( ( ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) − 1 ) − 𝑥 ) ) = 𝑆 )
25 4 5 23 24 syl3anc ( ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) ∧ 𝑥 ∈ ( 0 ..^ 𝑁 ) ) → ( ( 𝑆 repeatS 𝑁 ) ‘ ( ( ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) − 1 ) − 𝑥 ) ) = 𝑆 )
26 25 mpteq2dva ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) → ( 𝑥 ∈ ( 0 ..^ 𝑁 ) ↦ ( ( 𝑆 repeatS 𝑁 ) ‘ ( ( ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) − 1 ) − 𝑥 ) ) ) = ( 𝑥 ∈ ( 0 ..^ 𝑁 ) ↦ 𝑆 ) )
27 3 26 eqtrd ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) → ( 𝑥 ∈ ( 0 ..^ ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) ) ↦ ( ( 𝑆 repeatS 𝑁 ) ‘ ( ( ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) − 1 ) − 𝑥 ) ) ) = ( 𝑥 ∈ ( 0 ..^ 𝑁 ) ↦ 𝑆 ) )
28 ovex ( 𝑆 repeatS 𝑁 ) ∈ V
29 revval ( ( 𝑆 repeatS 𝑁 ) ∈ V → ( reverse ‘ ( 𝑆 repeatS 𝑁 ) ) = ( 𝑥 ∈ ( 0 ..^ ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) ) ↦ ( ( 𝑆 repeatS 𝑁 ) ‘ ( ( ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) − 1 ) − 𝑥 ) ) ) )
30 28 29 mp1i ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) → ( reverse ‘ ( 𝑆 repeatS 𝑁 ) ) = ( 𝑥 ∈ ( 0 ..^ ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) ) ↦ ( ( 𝑆 repeatS 𝑁 ) ‘ ( ( ( ♯ ‘ ( 𝑆 repeatS 𝑁 ) ) − 1 ) − 𝑥 ) ) ) )
31 reps ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) → ( 𝑆 repeatS 𝑁 ) = ( 𝑥 ∈ ( 0 ..^ 𝑁 ) ↦ 𝑆 ) )
32 27 30 31 3eqtr4d ( ( 𝑆𝑉𝑁 ∈ ℕ0 ) → ( reverse ‘ ( 𝑆 repeatS 𝑁 ) ) = ( 𝑆 repeatS 𝑁 ) )