MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  ccat1st1st Structured version   Visualization version   GIF version

Theorem ccat1st1st 13785
Description: The first symbol of a word concatenated with its first symbol is the first symbol of the word. This theorem holds even if 𝑊 is the empty word. (Contributed by AV, 26-Mar-2022.)
Assertion
Ref Expression
ccat1st1st (𝑊 ∈ Word 𝑉 → ((𝑊 ++ ⟨“(𝑊‘0)”⟩)‘0) = (𝑊‘0))

Proof of Theorem ccat1st1st
StepHypRef Expression
1 hasheq0 13533 . . . 4 (𝑊 ∈ Word 𝑉 → ((♯‘𝑊) = 0 ↔ 𝑊 = ∅))
21biimpac 471 . . 3 (((♯‘𝑊) = 0 ∧ 𝑊 ∈ Word 𝑉) → 𝑊 = ∅)
3 s1cli 13762 . . . . . . 7 ⟨“∅”⟩ ∈ Word V
4 ccatlid 13743 . . . . . . 7 (⟨“∅”⟩ ∈ Word V → (∅ ++ ⟨“∅”⟩) = ⟨“∅”⟩)
53, 4ax-mp 5 . . . . . 6 (∅ ++ ⟨“∅”⟩) = ⟨“∅”⟩
65fveq1i 6494 . . . . 5 ((∅ ++ ⟨“∅”⟩)‘0) = (⟨“∅”⟩‘0)
7 0ex 5062 . . . . . 6 ∅ ∈ V
8 s1fv 13767 . . . . . 6 (∅ ∈ V → (⟨“∅”⟩‘0) = ∅)
97, 8ax-mp 5 . . . . 5 (⟨“∅”⟩‘0) = ∅
106, 9eqtri 2796 . . . 4 ((∅ ++ ⟨“∅”⟩)‘0) = ∅
11 id 22 . . . . . 6 (𝑊 = ∅ → 𝑊 = ∅)
12 fveq1 6492 . . . . . . . 8 (𝑊 = ∅ → (𝑊‘0) = (∅‘0))
13 0fv 6533 . . . . . . . 8 (∅‘0) = ∅
1412, 13syl6eq 2824 . . . . . . 7 (𝑊 = ∅ → (𝑊‘0) = ∅)
1514s1eqd 13758 . . . . . 6 (𝑊 = ∅ → ⟨“(𝑊‘0)”⟩ = ⟨“∅”⟩)
1611, 15oveq12d 6988 . . . . 5 (𝑊 = ∅ → (𝑊 ++ ⟨“(𝑊‘0)”⟩) = (∅ ++ ⟨“∅”⟩))
1716fveq1d 6495 . . . 4 (𝑊 = ∅ → ((𝑊 ++ ⟨“(𝑊‘0)”⟩)‘0) = ((∅ ++ ⟨“∅”⟩)‘0))
1810, 17, 143eqtr4a 2834 . . 3 (𝑊 = ∅ → ((𝑊 ++ ⟨“(𝑊‘0)”⟩)‘0) = (𝑊‘0))
192, 18syl 17 . 2 (((♯‘𝑊) = 0 ∧ 𝑊 ∈ Word 𝑉) → ((𝑊 ++ ⟨“(𝑊‘0)”⟩)‘0) = (𝑊‘0))
20 wrdv 13682 . . . 4 (𝑊 ∈ Word 𝑉𝑊 ∈ Word V)
2120adantl 474 . . 3 ((¬ (♯‘𝑊) = 0 ∧ 𝑊 ∈ Word 𝑉) → 𝑊 ∈ Word V)
22 fvexd 6508 . . 3 ((¬ (♯‘𝑊) = 0 ∧ 𝑊 ∈ Word 𝑉) → (𝑊‘0) ∈ V)
23 lencl 13688 . . . . . 6 (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℕ0)
24 df-ne 2962 . . . . . . 7 ((♯‘𝑊) ≠ 0 ↔ ¬ (♯‘𝑊) = 0)
25 elnnne0 11717 . . . . . . . 8 ((♯‘𝑊) ∈ ℕ ↔ ((♯‘𝑊) ∈ ℕ0 ∧ (♯‘𝑊) ≠ 0))
2625simplbi2 493 . . . . . . 7 ((♯‘𝑊) ∈ ℕ0 → ((♯‘𝑊) ≠ 0 → (♯‘𝑊) ∈ ℕ))
2724, 26syl5bir 235 . . . . . 6 ((♯‘𝑊) ∈ ℕ0 → (¬ (♯‘𝑊) = 0 → (♯‘𝑊) ∈ ℕ))
2823, 27syl 17 . . . . 5 (𝑊 ∈ Word 𝑉 → (¬ (♯‘𝑊) = 0 → (♯‘𝑊) ∈ ℕ))
2928impcom 399 . . . 4 ((¬ (♯‘𝑊) = 0 ∧ 𝑊 ∈ Word 𝑉) → (♯‘𝑊) ∈ ℕ)
30 lbfzo0 12886 . . . 4 (0 ∈ (0..^(♯‘𝑊)) ↔ (♯‘𝑊) ∈ ℕ)
3129, 30sylibr 226 . . 3 ((¬ (♯‘𝑊) = 0 ∧ 𝑊 ∈ Word 𝑉) → 0 ∈ (0..^(♯‘𝑊)))
32 ccats1val1 13783 . . 3 ((𝑊 ∈ Word V ∧ (𝑊‘0) ∈ V ∧ 0 ∈ (0..^(♯‘𝑊))) → ((𝑊 ++ ⟨“(𝑊‘0)”⟩)‘0) = (𝑊‘0))
3321, 22, 31, 32syl3anc 1351 . 2 ((¬ (♯‘𝑊) = 0 ∧ 𝑊 ∈ Word 𝑉) → ((𝑊 ++ ⟨“(𝑊‘0)”⟩)‘0) = (𝑊‘0))
3419, 33pm2.61ian 799 1 (𝑊 ∈ Word 𝑉 → ((𝑊 ++ ⟨“(𝑊‘0)”⟩)‘0) = (𝑊‘0))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 387   = wceq 1507  wcel 2050  wne 2961  Vcvv 3409  c0 4172  cfv 6182  (class class class)co 6970  0cc0 10329  cn 11433  0cn0 11701  ..^cfzo 12843  chash 13499  Word cword 13666   ++ cconcat 13727  ⟨“cs1 13752
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1758  ax-4 1772  ax-5 1869  ax-6 1928  ax-7 1965  ax-8 2052  ax-9 2059  ax-10 2079  ax-11 2093  ax-12 2106  ax-13 2301  ax-ext 2744  ax-rep 5043  ax-sep 5054  ax-nul 5061  ax-pow 5113  ax-pr 5180  ax-un 7273  ax-cnex 10385  ax-resscn 10386  ax-1cn 10387  ax-icn 10388  ax-addcl 10389  ax-addrcl 10390  ax-mulcl 10391  ax-mulrcl 10392  ax-mulcom 10393  ax-addass 10394  ax-mulass 10395  ax-distr 10396  ax-i2m1 10397  ax-1ne0 10398  ax-1rid 10399  ax-rnegex 10400  ax-rrecex 10401  ax-cnre 10402  ax-pre-lttri 10403  ax-pre-lttrn 10404  ax-pre-ltadd 10405  ax-pre-mulgt0 10406
This theorem depends on definitions:  df-bi 199  df-an 388  df-or 834  df-3or 1069  df-3an 1070  df-tru 1510  df-ex 1743  df-nf 1747  df-sb 2016  df-mo 2547  df-eu 2584  df-clab 2753  df-cleq 2765  df-clel 2840  df-nfc 2912  df-ne 2962  df-nel 3068  df-ral 3087  df-rex 3088  df-reu 3089  df-rab 3091  df-v 3411  df-sbc 3676  df-csb 3781  df-dif 3826  df-un 3828  df-in 3830  df-ss 3837  df-pss 3839  df-nul 4173  df-if 4345  df-pw 4418  df-sn 4436  df-pr 4438  df-tp 4440  df-op 4442  df-uni 4707  df-int 4744  df-iun 4788  df-br 4924  df-opab 4986  df-mpt 5003  df-tr 5025  df-id 5306  df-eprel 5311  df-po 5320  df-so 5321  df-fr 5360  df-we 5362  df-xp 5407  df-rel 5408  df-cnv 5409  df-co 5410  df-dm 5411  df-rn 5412  df-res 5413  df-ima 5414  df-pred 5980  df-ord 6026  df-on 6027  df-lim 6028  df-suc 6029  df-iota 6146  df-fun 6184  df-fn 6185  df-f 6186  df-f1 6187  df-fo 6188  df-f1o 6189  df-fv 6190  df-riota 6931  df-ov 6973  df-oprab 6974  df-mpo 6975  df-om 7391  df-1st 7495  df-2nd 7496  df-wrecs 7744  df-recs 7806  df-rdg 7844  df-1o 7899  df-oadd 7903  df-er 8083  df-en 8301  df-dom 8302  df-sdom 8303  df-fin 8304  df-card 9156  df-pnf 10470  df-mnf 10471  df-xr 10472  df-ltxr 10473  df-le 10474  df-sub 10666  df-neg 10667  df-nn 11434  df-n0 11702  df-z 11788  df-uz 12053  df-fz 12703  df-fzo 12844  df-hash 13500  df-word 13667  df-concat 13728  df-s1 13753
This theorem is referenced by:  clwwlknonwwlknonb  27628
  Copyright terms: Public domain W3C validator