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

Theorem ccatlen 11384
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 11344 . . . 4 (𝑆 ∈ Word 𝐴 → 𝑆 ∈ Fin)
2 wrdfin 11344 . . . 4 (𝑇 ∈ Word 𝐵 → 𝑇 ∈ Fin)
3 ccatfvalfi 11381 . . . 4 ((𝑆 ∈ Fin ∧ 𝑇 ∈ Fin) → (𝑆 ++ 𝑇) = (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))))
41, 2, 3syl2an 289 . . 3 ((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) = (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))))
54fveq2d 5702 . 2 ((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) → (♯‘(𝑆 ++ 𝑇)) = (♯‘(𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))))))
6 fvexg 5717 . . . . . . 7 ((𝑆 ∈ Word 𝐴 ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑆‘𝑥) ∈ V)
76adantlr 481 . . . . . 6 (((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑆‘𝑥) ∈ V)
8 simplr 533 . . . . . . 7 (((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → 𝑇 ∈ Word 𝐵)
9 elfzoelz 10570 . . . . . . . . 9 (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) → 𝑥 ∈ ℤ)
109adantl 277 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → 𝑥 ∈ ℤ)
11 lencl 11329 . . . . . . . . . 10 (𝑆 ∈ Word 𝐴 → (♯‘𝑆) ∈ ℕ0)
1211ad2antrr 492 . . . . . . . . 9 (((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → (♯‘𝑆) ∈ ℕ0)
1312nn0zd 9776 . . . . . . . 8 (((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → (♯‘𝑆) ∈ ℤ)
1410, 13zsubcld 9783 . . . . . . 7 (((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑥 − (♯‘𝑆)) ∈ ℤ)
15 fvexg 5717 . . . . . . 7 ((𝑇 ∈ Word 𝐵 ∧ (𝑥 − (♯‘𝑆)) ∈ ℤ) → (𝑇‘(𝑥 − (♯‘𝑆))) ∈ V)
168, 14, 15syl2anc 415 . . . . . 6 (((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → (𝑇‘(𝑥 − (♯‘𝑆))) ∈ V)
177, 16ifexd 4632 . . . . 5 (((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) ∧ 𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))) → if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))) ∈ V)
1817ralrimiva 2623 . . . 4 ((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) → ∀𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))) ∈ V)
19 eqid 2238 . . . . 5 (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))) = (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))))
2019fnmpt 5513 . . . 4 (∀𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇)))if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))) ∈ V → (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))) Fn (0..^((♯‘𝑆) + (♯‘𝑇))))
2118, 20syl 14 . . 3 ((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) → (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))) Fn (0..^((♯‘𝑆) + (♯‘𝑇))))
22 0zd 9665 . . . 4 ((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) → 0 ∈ ℤ)
2311adantr 276 . . . . . 6 ((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) → (♯‘𝑆) ∈ ℕ0)
2423nn0zd 9776 . . . . 5 ((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) → (♯‘𝑆) ∈ ℤ)
25 lencl 11329 . . . . . . 7 (𝑇 ∈ Word 𝐵 → (♯‘𝑇) ∈ ℕ0)
2625nn0zd 9776 . . . . . 6 (𝑇 ∈ Word 𝐵 → (♯‘𝑇) ∈ ℤ)
2726adantl 277 . . . . 5 ((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) → (♯‘𝑇) ∈ ℤ)
2824, 27zaddcld 9782 . . . 4 ((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) → ((♯‘𝑆) + (♯‘𝑇)) ∈ ℤ)
29 fzofig 10889 . . . 4 ((0 ∈ ℤ ∧ ((♯‘𝑆) + (♯‘𝑇)) ∈ ℤ) → (0..^((♯‘𝑆) + (♯‘𝑇))) ∈ Fin)
3022, 28, 29syl2anc 415 . . 3 ((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) → (0..^((♯‘𝑆) + (♯‘𝑇))) ∈ Fin)
31 fihashfn 11261 . . 3 (((𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))) Fn (0..^((♯‘𝑆) + (♯‘𝑇))) ∧ (0..^((♯‘𝑆) + (♯‘𝑇))) ∈ Fin) → (♯‘(𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))))) = (♯‘(0..^((♯‘𝑆) + (♯‘𝑇)))))
3221, 30, 31syl2anc 415 . 2 ((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) → (♯‘(𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆‘𝑥), (𝑇‘(𝑥 − (♯‘𝑆)))))) = (♯‘(0..^((♯‘𝑆) + (♯‘𝑇)))))
33 nn0addcl 9609 . . . 4 (((♯‘𝑆) ∈ ℕ0 ∧ (♯‘𝑇) ∈ ℕ0) → ((♯‘𝑆) + (♯‘𝑇)) ∈ ℕ0)
3411, 25, 33syl2an 289 . . 3 ((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) → ((♯‘𝑆) + (♯‘𝑇)) ∈ ℕ0)
35 hashfzo0 11285 . . 3 (((♯‘𝑆) + (♯‘𝑇)) ∈ ℕ0 → (♯‘(0..^((♯‘𝑆) + (♯‘𝑇)))) = ((♯‘𝑆) + (♯‘𝑇)))
3634, 35syl 14 . 2 ((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) → (♯‘(0..^((♯‘𝑆) + (♯‘𝑇)))) = ((♯‘𝑆) + (♯‘𝑇)))
375, 32, 363eqtrd 2275 1 ((𝑆 ∈ Word 𝐴 ∧ 𝑇 ∈ Word 𝐵) → (♯‘(𝑆 ++ 𝑇)) = ((♯‘𝑆) + (♯‘𝑇)))
Colors of variables:    wff set class
This proof depends on syntax axioms:   → wi 4   ∧ wa 104   = wceq 1402   ∈ wcel 2209  ∀wral 2528  Vcvv 2821  ifcif 3638   ↦ cmpt 4193   Fn wfn 5375  ‘cfv 5380  (class class class)co 6088  Fincfn 7028  0cc0 8185   + caddc 8188   − cmin 8504  ℕ0cn0 9574  ℤcz 9653  ..^cfzo 10565  ♯chash 11235  Word cword 11325   ++ cconcat 11379
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 623  ax-in2 624  ax-io 721  ax-5 1500  ax-7 1501  ax-gen 1502  ax-ie1 1546  ax-ie2 1547  ax-8 1557  ax-10 1558  ax-11 1559  ax-i12 1560  ax-bndl 1562  ax-4 1563  ax-17 1579  ax-i9 1583  ax-ial 1587  ax-i5r 1588  ax-14 2212  ax-ext 2220  ax-coll 4248  ax-sep 4251  ax-nul 4261  ax-pow 4313  ax-pr 4348  ax-un 4580  ax-setind 4686  ax-iinf 4737  ax-cnex 8276  ax-resscn 8277  ax-1cn 8278  ax-1re 8279  ax-icn 8280  ax-addcl 8281  ax-addrcl 8282  ax-mulcl 8283  ax-addcom 8285  ax-addass 8287  ax-distr 8289  ax-i2m1 8290  ax-0lt1 8291  ax-0id 8293  ax-rnegex 8294  ax-cnre 8296  ax-pre-ltirr 8297  ax-pre-ltwlin 8298  ax-pre-lttrn 8299  ax-pre-apti 8300  ax-pre-ltadd 8301
This proof depends on definitions:  df-bi 117  df-dc 847  df-3or 1010  df-3an 1011  df-tru 1405  df-fal 1408  df-nf 1514  df-sb 1816  df-eu 2089  df-mo 2090  df-clab 2225  df-cleq 2231  df-clel 2234  df-nfc 2381  df-ne 2421  df-nel 2516  df-ral 2533  df-rex 2534  df-reu 2535  df-rab 2537  df-v 2823  df-sbc 3052  df-csb 3148  df-dif 3222  df-un 3224  df-in 3226  df-ss 3233  df-nul 3521  df-if 3639  df-pw 3690  df-sn 3715  df-pr 3716  df-op 3718  df-uni 3936  df-int 3971  df-iun 4014  df-br 4132  df-opab 4194  df-mpt 4195  df-tr 4232  df-id 4440  df-iord 4513  df-on 4515  df-ilim 4516  df-suc 4518  df-iom 4740  df-xp 4782  df-rel 4783  df-cnv 4784  df-co 4785  df-dm 4786  df-rn 4787  df-res 4788  df-ima 4789  df-iota 5340  df-fun 5382  df-fn 5383  df-f 5384  df-f1 5385  df-fo 5386  df-f1o 5387  df-fv 5388  df-riota 6041  df-ov 6091  df-oprab 6092  df-mpo 6093  df-1st 6378  df-2nd 6379  df-recs 6581  df-frec 6667  df-1o 6692  df-er 6812  df-en 7029  df-dom 7030  df-fin 7031  df-pnf 8368  df-mnf 8369  df-xr 8370  df-ltxr 8371  df-le 8372  df-sub 8506  df-neg 8507  df-inn 9314  df-n0 9575  df-z 9654  df-uz 9937  df-fz 10428  df-fzo 10566  df-ihash 11236  df-word 11326  df-concat 11380
This theorem is used by:  ccat0  11385  elfzelfzccat  11389  ccatsymb  11391  ccatass  11397  lswccatn0lsw  11400  ccatws1leng  11423  ccatswrd  11463  swrdccat2  11464  ccatpfx  11494  pfxccat1  11495  lenrevpfxcctswrd  11505  ccatopth  11509  ccatopth2  11510  swrdccatfn  11517  swrdccatin2  11522  pfxccatin12lem2c  11523  cats1lend  11560  clwwlkccatlem  16863  clwwlknccat  16886
  Copyright terms: Public domain W3C validator