ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  ccatlen GIF version

Theorem ccatlen 11162
Description: The length of a concatenated word. (Contributed by Stefan O'Rear, 15-Aug-2015.) (Revised by JJ, 1-Jan-2024.)
Assertion
Ref Expression
ccatlen ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → (♯‘(𝑆 ++ 𝑇)) = ((♯‘𝑆) + (♯‘𝑇)))

Proof of Theorem ccatlen
Dummy variable 𝑥 is distinct from all other variables.
StepHypRef Expression
1 wrdfin 11122 . . . 4 (𝑆 ∈ Word 𝐴𝑆 ∈ Fin)
2 wrdfin 11122 . . . 4 (𝑇 ∈ Word 𝐵𝑇 ∈ Fin)
3 ccatfvalfi 11159 . . . 4 ((𝑆 ∈ Fin ∧ 𝑇 ∈ Fin) → (𝑆 ++ 𝑇) = (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))))
41, 2, 3syl2an 289 . . 3 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) = (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))))
54fveq2d 5639 . 2 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → (♯‘(𝑆 ++ 𝑇)) = (♯‘(𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))))))
6 fvexg 5654 . . . . . . 7 ((𝑆 ∈ Word 𝐴𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑆𝑥) ∈ V)
76adantlr 477 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑆𝑥) ∈ V)
8 simplr 528 . . . . . . 7 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → 𝑇 ∈ Word 𝐵)
9 elfzoelz 10372 . . . . . . . . 9 (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) → 𝑥 ∈ ℤ)
109adantl 277 . . . . . . . 8 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → 𝑥 ∈ ℤ)
11 lencl 11107 . . . . . . . . . 10 (𝑆 ∈ Word 𝐴 → (♯‘𝑆) ∈ ℕ0)
1211ad2antrr 488 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → (♯‘𝑆) ∈ ℕ0)
1312nn0zd 9590 . . . . . . . 8 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → (♯‘𝑆) ∈ ℤ)
1410, 13zsubcld 9597 . . . . . . 7 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑥 − (♯‘𝑆)) ∈ ℤ)
15 fvexg 5654 . . . . . . 7 ((𝑇 ∈ Word 𝐵 ∧ (𝑥 − (♯‘𝑆)) ∈ ℤ) → (𝑇‘(𝑥 − (♯‘𝑆))) ∈ V)
168, 14, 15syl2anc 411 . . . . . 6 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑇‘(𝑥 − (♯‘𝑆))) ∈ V)
177, 16ifexd 4579 . . . . 5 (((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))) ∈ V)
1817ralrimiva 2603 . . . 4 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))) ∈ V)
19 eqid 2229 . . . . 5 (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))) = (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))))
2019fnmpt 5456 . . . 4 (∀𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))) ∈ V → (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))) Fn (0..^((♯‘𝑆) + (♯‘𝑇))))
2118, 20syl 14 . . 3 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))) Fn (0..^((♯‘𝑆) + (♯‘𝑇))))
22 0zd 9481 . . . 4 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → 0 ∈ ℤ)
2311adantr 276 . . . . . 6 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → (♯‘𝑆) ∈ ℕ0)
2423nn0zd 9590 . . . . 5 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → (♯‘𝑆) ∈ ℤ)
25 lencl 11107 . . . . . . 7 (𝑇 ∈ Word 𝐵 → (♯‘𝑇) ∈ ℕ0)
2625nn0zd 9590 . . . . . 6 (𝑇 ∈ Word 𝐵 → (♯‘𝑇) ∈ ℤ)
2726adantl 277 . . . . 5 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → (♯‘𝑇) ∈ ℤ)
2824, 27zaddcld 9596 . . . 4 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → ((♯‘𝑆) + (♯‘𝑇)) ∈ ℤ)
29 fzofig 10684 . . . 4 ((0 ∈ ℤ ∧ ((♯‘𝑆) + (♯‘𝑇)) ∈ ℤ) → (0..^((♯‘𝑆) + (♯‘𝑇))) ∈ Fin)
3022, 28, 29syl2anc 411 . . 3 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → (0..^((♯‘𝑆) + (♯‘𝑇))) ∈ Fin)
31 fihashfn 11053 . . 3 (((𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))) Fn (0..^((♯‘𝑆) + (♯‘𝑇))) ∧ (0..^((♯‘𝑆) + (♯‘𝑇))) ∈ Fin) → (♯‘(𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))))) = (♯‘(0..^((♯‘𝑆) + (♯‘𝑇)))))
3221, 30, 31syl2anc 411 . 2 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → (♯‘(𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))))) = (♯‘(0..^((♯‘𝑆) + (♯‘𝑇)))))
33 nn0addcl 9427 . . . 4 (((♯‘𝑆) ∈ ℕ0 ∧ (♯‘𝑇) ∈ ℕ0) → ((♯‘𝑆) + (♯‘𝑇)) ∈ ℕ0)
3411, 25, 33syl2an 289 . . 3 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → ((♯‘𝑆) + (♯‘𝑇)) ∈ ℕ0)
35 hashfzo0 11077 . . 3 (((♯‘𝑆) + (♯‘𝑇)) ∈ ℕ0 → (♯‘(0..^((♯‘𝑆) + (♯‘𝑇)))) = ((♯‘𝑆) + (♯‘𝑇)))
3634, 35syl 14 . 2 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → (♯‘(0..^((♯‘𝑆) + (♯‘𝑇)))) = ((♯‘𝑆) + (♯‘𝑇)))
375, 32, 363eqtrd 2266 1 ((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → (♯‘(𝑆 ++ 𝑇)) = ((♯‘𝑆) + (♯‘𝑇)))
Colors of variables: wff set class
Syntax hints:  wi 4  wa 104   = wceq 1395  wcel 2200  wral 2508  Vcvv 2800  ifcif 3603  cmpt 4148   Fn wfn 5319  cfv 5324  (class class class)co 6013  Fincfn 6904  0cc0 8022   + caddc 8025  cmin 8340  0cn0 9392  cz 9469  ..^cfzo 10367  chash 11027  Word cword 11103   ++ cconcat 11157
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 617  ax-in2 618  ax-io 714  ax-5 1493  ax-7 1494  ax-gen 1495  ax-ie1 1539  ax-ie2 1540  ax-8 1550  ax-10 1551  ax-11 1552  ax-i12 1553  ax-bndl 1555  ax-4 1556  ax-17 1572  ax-i9 1576  ax-ial 1580  ax-i5r 1581  ax-13 2202  ax-14 2203  ax-ext 2211  ax-coll 4202  ax-sep 4205  ax-nul 4213  ax-pow 4262  ax-pr 4297  ax-un 4528  ax-setind 4633  ax-iinf 4684  ax-cnex 8113  ax-resscn 8114  ax-1cn 8115  ax-1re 8116  ax-icn 8117  ax-addcl 8118  ax-addrcl 8119  ax-mulcl 8120  ax-addcom 8122  ax-addass 8124  ax-distr 8126  ax-i2m1 8127  ax-0lt1 8128  ax-0id 8130  ax-rnegex 8131  ax-cnre 8133  ax-pre-ltirr 8134  ax-pre-ltwlin 8135  ax-pre-lttrn 8136  ax-pre-apti 8137  ax-pre-ltadd 8138
This theorem depends on definitions:  df-bi 117  df-dc 840  df-3or 1003  df-3an 1004  df-tru 1398  df-fal 1401  df-nf 1507  df-sb 1809  df-eu 2080  df-mo 2081  df-clab 2216  df-cleq 2222  df-clel 2225  df-nfc 2361  df-ne 2401  df-nel 2496  df-ral 2513  df-rex 2514  df-reu 2515  df-rab 2517  df-v 2802  df-sbc 3030  df-csb 3126  df-dif 3200  df-un 3202  df-in 3204  df-ss 3211  df-nul 3493  df-if 3604  df-pw 3652  df-sn 3673  df-pr 3674  df-op 3676  df-uni 3892  df-int 3927  df-iun 3970  df-br 4087  df-opab 4149  df-mpt 4150  df-tr 4186  df-id 4388  df-iord 4461  df-on 4463  df-ilim 4464  df-suc 4466  df-iom 4687  df-xp 4729  df-rel 4730  df-cnv 4731  df-co 4732  df-dm 4733  df-rn 4734  df-res 4735  df-ima 4736  df-iota 5284  df-fun 5326  df-fn 5327  df-f 5328  df-f1 5329  df-fo 5330  df-f1o 5331  df-fv 5332  df-riota 5966  df-ov 6016  df-oprab 6017  df-mpo 6018  df-1st 6298  df-2nd 6299  df-recs 6466  df-frec 6552  df-1o 6577  df-er 6697  df-en 6905  df-dom 6906  df-fin 6907  df-pnf 8206  df-mnf 8207  df-xr 8208  df-ltxr 8209  df-le 8210  df-sub 8342  df-neg 8343  df-inn 9134  df-n0 9393  df-z 9470  df-uz 9746  df-fz 10234  df-fzo 10368  df-ihash 11028  df-word 11104  df-concat 11158
This theorem is referenced by:  ccat0  11163  elfzelfzccat  11167  ccatsymb  11169  ccatass  11175  lswccatn0lsw  11178  ccatws1leng  11201  ccatswrd  11241  swrdccat2  11242  ccatpfx  11272  pfxccat1  11273  lenrevpfxcctswrd  11283  ccatopth  11287  ccatopth2  11288  swrdccatfn  11295  swrdccatin2  11300  pfxccatin12lem2c  11301  cats1lend  11338  clwwlkccatlem  16195  clwwlknccat  16218
  Copyright terms: Public domain W3C validator