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

Theorem ccatcl 13392
 Description: The concatenation of two words is a word. (Contributed by FL, 2-Feb-2014.) (Proof shortened by Stefan O'Rear, 15-Aug-2015.) (Proof shortened by AV, 29-Apr-2020.)
Assertion
Ref Expression
ccatcl ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) ∈ Word 𝐵)

Proof of Theorem ccatcl
Dummy variable 𝑥 is distinct from all other variables.
StepHypRef Expression
1 ccatfval 13391 . 2 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) = (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↦ if(𝑥 ∈ (0..^(#‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (#‘𝑆))))))
2 wrdf 13342 . . . . . . 7 (𝑆 ∈ Word 𝐵𝑆:(0..^(#‘𝑆))⟶𝐵)
32ad2antrr 762 . . . . . 6 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))) → 𝑆:(0..^(#‘𝑆))⟶𝐵)
43ffvelrnda 6399 . . . . 5 ((((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))) ∧ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑆𝑥) ∈ 𝐵)
5 wrdf 13342 . . . . . . 7 (𝑇 ∈ Word 𝐵𝑇:(0..^(#‘𝑇))⟶𝐵)
65ad3antlr 767 . . . . . 6 ((((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))) ∧ ¬ 𝑥 ∈ (0..^(#‘𝑆))) → 𝑇:(0..^(#‘𝑇))⟶𝐵)
7 simpr 476 . . . . . . . 8 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))) → 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))))
87anim1i 591 . . . . . . 7 ((((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))) ∧ ¬ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ∧ ¬ 𝑥 ∈ (0..^(#‘𝑆))))
9 lencl 13356 . . . . . . . . . 10 (𝑆 ∈ Word 𝐵 → (#‘𝑆) ∈ ℕ0)
109nn0zd 11518 . . . . . . . . 9 (𝑆 ∈ Word 𝐵 → (#‘𝑆) ∈ ℤ)
11 lencl 13356 . . . . . . . . . 10 (𝑇 ∈ Word 𝐵 → (#‘𝑇) ∈ ℕ0)
1211nn0zd 11518 . . . . . . . . 9 (𝑇 ∈ Word 𝐵 → (#‘𝑇) ∈ ℤ)
1310, 12anim12i 589 . . . . . . . 8 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((#‘𝑆) ∈ ℤ ∧ (#‘𝑇) ∈ ℤ))
1413ad2antrr 762 . . . . . . 7 ((((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))) ∧ ¬ 𝑥 ∈ (0..^(#‘𝑆))) → ((#‘𝑆) ∈ ℤ ∧ (#‘𝑇) ∈ ℤ))
15 fzocatel 12571 . . . . . . 7 (((𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ∧ ¬ 𝑥 ∈ (0..^(#‘𝑆))) ∧ ((#‘𝑆) ∈ ℤ ∧ (#‘𝑇) ∈ ℤ)) → (𝑥 − (#‘𝑆)) ∈ (0..^(#‘𝑇)))
168, 14, 15syl2anc 694 . . . . . 6 ((((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))) ∧ ¬ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑥 − (#‘𝑆)) ∈ (0..^(#‘𝑇)))
176, 16ffvelrnd 6400 . . . . 5 ((((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))) ∧ ¬ 𝑥 ∈ (0..^(#‘𝑆))) → (𝑇‘(𝑥 − (#‘𝑆))) ∈ 𝐵)
184, 17ifclda 4153 . . . 4 (((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇)))) → if(𝑥 ∈ (0..^(#‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (#‘𝑆)))) ∈ 𝐵)
19 eqid 2651 . . . 4 (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↦ if(𝑥 ∈ (0..^(#‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (#‘𝑆))))) = (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↦ if(𝑥 ∈ (0..^(#‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (#‘𝑆)))))
2018, 19fmptd 6425 . . 3 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↦ if(𝑥 ∈ (0..^(#‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (#‘𝑆))))):(0..^((#‘𝑆) + (#‘𝑇)))⟶𝐵)
21 iswrdi 13341 . . 3 ((𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↦ if(𝑥 ∈ (0..^(#‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (#‘𝑆))))):(0..^((#‘𝑆) + (#‘𝑇)))⟶𝐵 → (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↦ if(𝑥 ∈ (0..^(#‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (#‘𝑆))))) ∈ Word 𝐵)
2220, 21syl 17 . 2 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↦ if(𝑥 ∈ (0..^(#‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (#‘𝑆))))) ∈ Word 𝐵)
231, 22eqeltrd 2730 1 ((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) ∈ Word 𝐵)
 Colors of variables: wff setvar class Syntax hints:  ¬ wn 3   → wi 4   ∧ wa 383   ∈ wcel 2030  ifcif 4119   ↦ cmpt 4762  ⟶wf 5922  ‘cfv 5926  (class class class)co 6690  0cc0 9974   + caddc 9977   − cmin 10304  ℤcz 11415  ..^cfzo 12504  #chash 13157  Word cword 13323   ++ cconcat 13325 This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1762  ax-4 1777  ax-5 1879  ax-6 1945  ax-7 1981  ax-8 2032  ax-9 2039  ax-10 2059  ax-11 2074  ax-12 2087  ax-13 2282  ax-ext 2631  ax-rep 4804  ax-sep 4814  ax-nul 4822  ax-pow 4873  ax-pr 4936  ax-un 6991  ax-cnex 10030  ax-resscn 10031  ax-1cn 10032  ax-icn 10033  ax-addcl 10034  ax-addrcl 10035  ax-mulcl 10036  ax-mulrcl 10037  ax-mulcom 10038  ax-addass 10039  ax-mulass 10040  ax-distr 10041  ax-i2m1 10042  ax-1ne0 10043  ax-1rid 10044  ax-rnegex 10045  ax-rrecex 10046  ax-cnre 10047  ax-pre-lttri 10048  ax-pre-lttrn 10049  ax-pre-ltadd 10050  ax-pre-mulgt0 10051 This theorem depends on definitions:  df-bi 197  df-or 384  df-an 385  df-3or 1055  df-3an 1056  df-tru 1526  df-ex 1745  df-nf 1750  df-sb 1938  df-eu 2502  df-mo 2503  df-clab 2638  df-cleq 2644  df-clel 2647  df-nfc 2782  df-ne 2824  df-nel 2927  df-ral 2946  df-rex 2947  df-reu 2948  df-rab 2950  df-v 3233  df-sbc 3469  df-csb 3567  df-dif 3610  df-un 3612  df-in 3614  df-ss 3621  df-pss 3623  df-nul 3949  df-if 4120  df-pw 4193  df-sn 4211  df-pr 4213  df-tp 4215  df-op 4217  df-uni 4469  df-int 4508  df-iun 4554  df-br 4686  df-opab 4746  df-mpt 4763  df-tr 4786  df-id 5053  df-eprel 5058  df-po 5064  df-so 5065  df-fr 5102  df-we 5104  df-xp 5149  df-rel 5150  df-cnv 5151  df-co 5152  df-dm 5153  df-rn 5154  df-res 5155  df-ima 5156  df-pred 5718  df-ord 5764  df-on 5765  df-lim 5766  df-suc 5767  df-iota 5889  df-fun 5928  df-fn 5929  df-f 5930  df-f1 5931  df-fo 5932  df-f1o 5933  df-fv 5934  df-riota 6651  df-ov 6693  df-oprab 6694  df-mpt2 6695  df-om 7108  df-1st 7210  df-2nd 7211  df-wrecs 7452  df-recs 7513  df-rdg 7551  df-1o 7605  df-oadd 7609  df-er 7787  df-en 7998  df-dom 7999  df-sdom 8000  df-fin 8001  df-card 8803  df-pnf 10114  df-mnf 10115  df-xr 10116  df-ltxr 10117  df-le 10118  df-sub 10306  df-neg 10307  df-nn 11059  df-n0 11331  df-z 11416  df-uz 11726  df-fz 12365  df-fzo 12505  df-hash 13158  df-word 13331  df-concat 13333 This theorem is referenced by:  ccat0  13394  ccatsymb  13400  ccatass  13406  ccatalpha  13411  ccatws1cl  13433  ccatws1clv  13434  ccatswrd  13502  swrdccat1  13503  swrdccat2  13504  swrdccatfn  13528  swrdccatin1  13529  swrdccatin2  13533  swrdccatin12lem2c  13534  swrdccatin12  13537  splcl  13549  spllen  13551  splfv1  13552  splfv2a  13553  splval2  13554  revccat  13561  cshwcl  13590  cats1cld  13646  cats1cli  13648  cats2cat  13653  gsumccat  17425  gsumspl  17428  gsumwspan  17430  frmdplusg  17438  frmdmnd  17443  frmdsssubm  17445  frmdup1  17448  psgnuni  17965  efginvrel2  18186  efgsp1  18196  efgredleme  18202  efgredlemc  18204  efgcpbllemb  18214  efgcpbl2  18216  frgpuplem  18231  frgpup1  18234  psgnghm  19974  wwlksnext  26856  clwlkclwwlk2  26969  clwwlkel  27009  wwlksext2clwwlk  27021  wwlksext2clwwlkOLD  27022  clwwlkccat  27332  numclwlk1lem2fo  27348  sseqf  30582  ofcccat  30748  signstfvn  30774  signstfvp  30776  signstfvc  30779  signsvfn  30787  signsvtn  30789  signshf  30793  mrsubccat  31541  mrsubco  31544  ccatpfx  41734  pfxccat1  41735  pfxccatin12  41750  pfxccatpfx1  41752  pfxccatpfx2  41753
 Copyright terms: Public domain W3C validator