Users' Mathboxes Mathbox for Thierry Arnoux < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  iwrdsplit Structured version   Visualization version   GIF version

Theorem iwrdsplit 29569
Description: Lemma for sseqp1 29577. (Contributed by Thierry Arnoux, 25-Apr-2019.)
Hypotheses
Ref Expression
iwrdsplit.s (𝜑𝑆 ∈ V)
iwrdsplit.f (𝜑𝐹:ℕ0𝑆)
iwrdsplit.n (𝜑𝑁 ∈ ℕ0)
Assertion
Ref Expression
iwrdsplit (𝜑 → (𝐹 ↾ (0..^(𝑁 + 1))) = ((𝐹 ↾ (0..^𝑁)) ++ ⟨“(𝐹𝑁)”⟩))

Proof of Theorem iwrdsplit
StepHypRef Expression
1 iwrdsplit.s . . . 4 (𝜑𝑆 ∈ V)
2 iwrdsplit.f . . . 4 (𝜑𝐹:ℕ0𝑆)
3 iwrdsplit.n . . . . 5 (𝜑𝑁 ∈ ℕ0)
4 1nn0 11157 . . . . . 6 1 ∈ ℕ0
54a1i 11 . . . . 5 (𝜑 → 1 ∈ ℕ0)
63, 5nn0addcld 11204 . . . 4 (𝜑 → (𝑁 + 1) ∈ ℕ0)
71, 2, 6subiwrd 29567 . . 3 (𝜑 → (𝐹 ↾ (0..^(𝑁 + 1))) ∈ Word 𝑆)
8 1re 9895 . . . . . 6 1 ∈ ℝ
9 nn0addge2 11189 . . . . . 6 ((1 ∈ ℝ ∧ 𝑁 ∈ ℕ0) → 1 ≤ (𝑁 + 1))
108, 3, 9sylancr 693 . . . . 5 (𝜑 → 1 ≤ (𝑁 + 1))
111, 2, 6subiwrdlen 29568 . . . . 5 (𝜑 → (#‘(𝐹 ↾ (0..^(𝑁 + 1)))) = (𝑁 + 1))
1210, 11breqtrrd 4605 . . . 4 (𝜑 → 1 ≤ (#‘(𝐹 ↾ (0..^(𝑁 + 1)))))
13 wrdlenge1n0 13143 . . . . 5 ((𝐹 ↾ (0..^(𝑁 + 1))) ∈ Word 𝑆 → ((𝐹 ↾ (0..^(𝑁 + 1))) ≠ ∅ ↔ 1 ≤ (#‘(𝐹 ↾ (0..^(𝑁 + 1))))))
147, 13syl 17 . . . 4 (𝜑 → ((𝐹 ↾ (0..^(𝑁 + 1))) ≠ ∅ ↔ 1 ≤ (#‘(𝐹 ↾ (0..^(𝑁 + 1))))))
1512, 14mpbird 245 . . 3 (𝜑 → (𝐹 ↾ (0..^(𝑁 + 1))) ≠ ∅)
16 swrdccatwrd 13268 . . 3 (((𝐹 ↾ (0..^(𝑁 + 1))) ∈ Word 𝑆 ∧ (𝐹 ↾ (0..^(𝑁 + 1))) ≠ ∅) → (((𝐹 ↾ (0..^(𝑁 + 1))) substr ⟨0, ((#‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1)⟩) ++ ⟨“( lastS ‘(𝐹 ↾ (0..^(𝑁 + 1))))”⟩) = (𝐹 ↾ (0..^(𝑁 + 1))))
177, 15, 16syl2anc 690 . 2 (𝜑 → (((𝐹 ↾ (0..^(𝑁 + 1))) substr ⟨0, ((#‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1)⟩) ++ ⟨“( lastS ‘(𝐹 ↾ (0..^(𝑁 + 1))))”⟩) = (𝐹 ↾ (0..^(𝑁 + 1))))
1811oveq1d 6541 . . . . . . 7 (𝜑 → ((#‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1) = ((𝑁 + 1) − 1))
193nn0cnd 11202 . . . . . . . 8 (𝜑𝑁 ∈ ℂ)
20 1cnd 9912 . . . . . . . 8 (𝜑 → 1 ∈ ℂ)
2119, 20pncand 10244 . . . . . . 7 (𝜑 → ((𝑁 + 1) − 1) = 𝑁)
2218, 21eqtrd 2643 . . . . . 6 (𝜑 → ((#‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1) = 𝑁)
2322opeq2d 4341 . . . . 5 (𝜑 → ⟨0, ((#‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1)⟩ = ⟨0, 𝑁⟩)
2423oveq2d 6542 . . . 4 (𝜑 → ((𝐹 ↾ (0..^(𝑁 + 1))) substr ⟨0, ((#‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1)⟩) = ((𝐹 ↾ (0..^(𝑁 + 1))) substr ⟨0, 𝑁⟩))
25 nn0fz0 12263 . . . . . . . 8 (𝑁 ∈ ℕ0𝑁 ∈ (0...𝑁))
263, 25sylib 206 . . . . . . 7 (𝜑𝑁 ∈ (0...𝑁))
27 elfz0add 12264 . . . . . . . 8 ((𝑁 ∈ ℕ0 ∧ 1 ∈ ℕ0) → (𝑁 ∈ (0...𝑁) → 𝑁 ∈ (0...(𝑁 + 1))))
2827imp 443 . . . . . . 7 (((𝑁 ∈ ℕ0 ∧ 1 ∈ ℕ0) ∧ 𝑁 ∈ (0...𝑁)) → 𝑁 ∈ (0...(𝑁 + 1)))
293, 5, 26, 28syl21anc 1316 . . . . . 6 (𝜑𝑁 ∈ (0...(𝑁 + 1)))
3011oveq2d 6542 . . . . . 6 (𝜑 → (0...(#‘(𝐹 ↾ (0..^(𝑁 + 1))))) = (0...(𝑁 + 1)))
3129, 30eleqtrrd 2690 . . . . 5 (𝜑𝑁 ∈ (0...(#‘(𝐹 ↾ (0..^(𝑁 + 1))))))
32 swrd0val 13221 . . . . 5 (((𝐹 ↾ (0..^(𝑁 + 1))) ∈ Word 𝑆𝑁 ∈ (0...(#‘(𝐹 ↾ (0..^(𝑁 + 1)))))) → ((𝐹 ↾ (0..^(𝑁 + 1))) substr ⟨0, 𝑁⟩) = ((𝐹 ↾ (0..^(𝑁 + 1))) ↾ (0..^𝑁)))
337, 31, 32syl2anc 690 . . . 4 (𝜑 → ((𝐹 ↾ (0..^(𝑁 + 1))) substr ⟨0, 𝑁⟩) = ((𝐹 ↾ (0..^(𝑁 + 1))) ↾ (0..^𝑁)))
34 fzossfzop1 12369 . . . . 5 (𝑁 ∈ ℕ0 → (0..^𝑁) ⊆ (0..^(𝑁 + 1)))
35 resabs1 5333 . . . . 5 ((0..^𝑁) ⊆ (0..^(𝑁 + 1)) → ((𝐹 ↾ (0..^(𝑁 + 1))) ↾ (0..^𝑁)) = (𝐹 ↾ (0..^𝑁)))
363, 34, 353syl 18 . . . 4 (𝜑 → ((𝐹 ↾ (0..^(𝑁 + 1))) ↾ (0..^𝑁)) = (𝐹 ↾ (0..^𝑁)))
3724, 33, 363eqtrd 2647 . . 3 (𝜑 → ((𝐹 ↾ (0..^(𝑁 + 1))) substr ⟨0, ((#‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1)⟩) = (𝐹 ↾ (0..^𝑁)))
38 lsw 13152 . . . . . 6 ((𝐹 ↾ (0..^(𝑁 + 1))) ∈ Word 𝑆 → ( lastS ‘(𝐹 ↾ (0..^(𝑁 + 1)))) = ((𝐹 ↾ (0..^(𝑁 + 1)))‘((#‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1)))
397, 38syl 17 . . . . 5 (𝜑 → ( lastS ‘(𝐹 ↾ (0..^(𝑁 + 1)))) = ((𝐹 ↾ (0..^(𝑁 + 1)))‘((#‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1)))
4022fveq2d 6091 . . . . 5 (𝜑 → ((𝐹 ↾ (0..^(𝑁 + 1)))‘((#‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1)) = ((𝐹 ↾ (0..^(𝑁 + 1)))‘𝑁))
41 fzonn0p1 12368 . . . . . 6 (𝑁 ∈ ℕ0𝑁 ∈ (0..^(𝑁 + 1)))
42 fvres 6101 . . . . . 6 (𝑁 ∈ (0..^(𝑁 + 1)) → ((𝐹 ↾ (0..^(𝑁 + 1)))‘𝑁) = (𝐹𝑁))
433, 41, 423syl 18 . . . . 5 (𝜑 → ((𝐹 ↾ (0..^(𝑁 + 1)))‘𝑁) = (𝐹𝑁))
4439, 40, 433eqtrd 2647 . . . 4 (𝜑 → ( lastS ‘(𝐹 ↾ (0..^(𝑁 + 1)))) = (𝐹𝑁))
4544s1eqd 13182 . . 3 (𝜑 → ⟨“( lastS ‘(𝐹 ↾ (0..^(𝑁 + 1))))”⟩ = ⟨“(𝐹𝑁)”⟩)
4637, 45oveq12d 6544 . 2 (𝜑 → (((𝐹 ↾ (0..^(𝑁 + 1))) substr ⟨0, ((#‘(𝐹 ↾ (0..^(𝑁 + 1)))) − 1)⟩) ++ ⟨“( lastS ‘(𝐹 ↾ (0..^(𝑁 + 1))))”⟩) = ((𝐹 ↾ (0..^𝑁)) ++ ⟨“(𝐹𝑁)”⟩))
4717, 46eqtr3d 2645 1 (𝜑 → (𝐹 ↾ (0..^(𝑁 + 1))) = ((𝐹 ↾ (0..^𝑁)) ++ ⟨“(𝐹𝑁)”⟩))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 194  wa 382   = wceq 1474  wcel 1976  wne 2779  Vcvv 3172  wss 3539  c0 3873  cop 4130   class class class wbr 4577  cres 5029  wf 5785  cfv 5789  (class class class)co 6526  cr 9791  0cc0 9792  1c1 9793   + caddc 9795  cle 9931  cmin 10117  0cn0 11141  ...cfz 12154  ..^cfzo 12291  #chash 12936  Word cword 13094   lastS clsw 13095   ++ cconcat 13096  ⟨“cs1 13097   substr csubstr 13098
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1712  ax-4 1727  ax-5 1826  ax-6 1874  ax-7 1921  ax-8 1978  ax-9 1985  ax-10 2005  ax-11 2020  ax-12 2033  ax-13 2233  ax-ext 2589  ax-rep 4693  ax-sep 4703  ax-nul 4711  ax-pow 4763  ax-pr 4827  ax-un 6824  ax-cnex 9848  ax-resscn 9849  ax-1cn 9850  ax-icn 9851  ax-addcl 9852  ax-addrcl 9853  ax-mulcl 9854  ax-mulrcl 9855  ax-mulcom 9856  ax-addass 9857  ax-mulass 9858  ax-distr 9859  ax-i2m1 9860  ax-1ne0 9861  ax-1rid 9862  ax-rnegex 9863  ax-rrecex 9864  ax-cnre 9865  ax-pre-lttri 9866  ax-pre-lttrn 9867  ax-pre-ltadd 9868  ax-pre-mulgt0 9869
This theorem depends on definitions:  df-bi 195  df-or 383  df-an 384  df-3or 1031  df-3an 1032  df-tru 1477  df-ex 1695  df-nf 1700  df-sb 1867  df-eu 2461  df-mo 2462  df-clab 2596  df-cleq 2602  df-clel 2605  df-nfc 2739  df-ne 2781  df-nel 2782  df-ral 2900  df-rex 2901  df-reu 2902  df-rab 2904  df-v 3174  df-sbc 3402  df-csb 3499  df-dif 3542  df-un 3544  df-in 3546  df-ss 3553  df-pss 3555  df-nul 3874  df-if 4036  df-pw 4109  df-sn 4125  df-pr 4127  df-tp 4129  df-op 4131  df-uni 4367  df-int 4405  df-iun 4451  df-br 4578  df-opab 4638  df-mpt 4639  df-tr 4675  df-eprel 4938  df-id 4942  df-po 4948  df-so 4949  df-fr 4986  df-we 4988  df-xp 5033  df-rel 5034  df-cnv 5035  df-co 5036  df-dm 5037  df-rn 5038  df-res 5039  df-ima 5040  df-pred 5582  df-ord 5628  df-on 5629  df-lim 5630  df-suc 5631  df-iota 5753  df-fun 5791  df-fn 5792  df-f 5793  df-f1 5794  df-fo 5795  df-f1o 5796  df-fv 5797  df-riota 6488  df-ov 6529  df-oprab 6530  df-mpt2 6531  df-om 6935  df-1st 7036  df-2nd 7037  df-wrecs 7271  df-recs 7332  df-rdg 7370  df-1o 7424  df-oadd 7428  df-er 7606  df-en 7819  df-dom 7820  df-sdom 7821  df-fin 7822  df-card 8625  df-pnf 9932  df-mnf 9933  df-xr 9934  df-ltxr 9935  df-le 9936  df-sub 10119  df-neg 10120  df-nn 10870  df-n0 11142  df-z 11213  df-uz 11522  df-fz 12155  df-fzo 12292  df-hash 12937  df-word 13102  df-lsw 13103  df-concat 13104  df-s1 13105  df-substr 13106
This theorem is referenced by:  sseqp1  29577
  Copyright terms: Public domain W3C validator