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

Theorem ccatfval 13313
Description: Value of the concatenation operator. (Contributed by Stefan O'Rear, 15-Aug-2015.)
Assertion
Ref Expression
ccatfval ((𝑆𝑉𝑇𝑊) → (𝑆 ++ 𝑇) = (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↦ if(𝑥 ∈ (0..^(#‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (#‘𝑆))))))
Distinct variable groups:   𝑥,𝑆   𝑥,𝑇
Allowed substitution hints:   𝑉(𝑥)   𝑊(𝑥)

Proof of Theorem ccatfval
Dummy variables 𝑡 𝑠 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 elex 3202 . 2 (𝑆𝑉𝑆 ∈ V)
2 elex 3202 . 2 (𝑇𝑊𝑇 ∈ V)
3 fveq2 6158 . . . . . 6 (𝑠 = 𝑆 → (#‘𝑠) = (#‘𝑆))
4 fveq2 6158 . . . . . 6 (𝑡 = 𝑇 → (#‘𝑡) = (#‘𝑇))
53, 4oveqan12d 6634 . . . . 5 ((𝑠 = 𝑆𝑡 = 𝑇) → ((#‘𝑠) + (#‘𝑡)) = ((#‘𝑆) + (#‘𝑇)))
65oveq2d 6631 . . . 4 ((𝑠 = 𝑆𝑡 = 𝑇) → (0..^((#‘𝑠) + (#‘𝑡))) = (0..^((#‘𝑆) + (#‘𝑇))))
73oveq2d 6631 . . . . . . 7 (𝑠 = 𝑆 → (0..^(#‘𝑠)) = (0..^(#‘𝑆)))
87eleq2d 2684 . . . . . 6 (𝑠 = 𝑆 → (𝑥 ∈ (0..^(#‘𝑠)) ↔ 𝑥 ∈ (0..^(#‘𝑆))))
98adantr 481 . . . . 5 ((𝑠 = 𝑆𝑡 = 𝑇) → (𝑥 ∈ (0..^(#‘𝑠)) ↔ 𝑥 ∈ (0..^(#‘𝑆))))
10 fveq1 6157 . . . . . 6 (𝑠 = 𝑆 → (𝑠𝑥) = (𝑆𝑥))
1110adantr 481 . . . . 5 ((𝑠 = 𝑆𝑡 = 𝑇) → (𝑠𝑥) = (𝑆𝑥))
12 simpr 477 . . . . . 6 ((𝑠 = 𝑆𝑡 = 𝑇) → 𝑡 = 𝑇)
133oveq2d 6631 . . . . . . 7 (𝑠 = 𝑆 → (𝑥 − (#‘𝑠)) = (𝑥 − (#‘𝑆)))
1413adantr 481 . . . . . 6 ((𝑠 = 𝑆𝑡 = 𝑇) → (𝑥 − (#‘𝑠)) = (𝑥 − (#‘𝑆)))
1512, 14fveq12d 6164 . . . . 5 ((𝑠 = 𝑆𝑡 = 𝑇) → (𝑡‘(𝑥 − (#‘𝑠))) = (𝑇‘(𝑥 − (#‘𝑆))))
169, 11, 15ifbieq12d 4091 . . . 4 ((𝑠 = 𝑆𝑡 = 𝑇) → if(𝑥 ∈ (0..^(#‘𝑠)), (𝑠𝑥), (𝑡‘(𝑥 − (#‘𝑠)))) = if(𝑥 ∈ (0..^(#‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (#‘𝑆)))))
176, 16mpteq12dv 4703 . . 3 ((𝑠 = 𝑆𝑡 = 𝑇) → (𝑥 ∈ (0..^((#‘𝑠) + (#‘𝑡))) ↦ if(𝑥 ∈ (0..^(#‘𝑠)), (𝑠𝑥), (𝑡‘(𝑥 − (#‘𝑠))))) = (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↦ if(𝑥 ∈ (0..^(#‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (#‘𝑆))))))
18 df-concat 13256 . . 3 ++ = (𝑠 ∈ V, 𝑡 ∈ V ↦ (𝑥 ∈ (0..^((#‘𝑠) + (#‘𝑡))) ↦ if(𝑥 ∈ (0..^(#‘𝑠)), (𝑠𝑥), (𝑡‘(𝑥 − (#‘𝑠))))))
19 ovex 6643 . . . 4 (0..^((#‘𝑆) + (#‘𝑇))) ∈ V
2019mptex 6451 . . 3 (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↦ if(𝑥 ∈ (0..^(#‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (#‘𝑆))))) ∈ V
2117, 18, 20ovmpt2a 6756 . 2 ((𝑆 ∈ V ∧ 𝑇 ∈ V) → (𝑆 ++ 𝑇) = (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↦ if(𝑥 ∈ (0..^(#‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (#‘𝑆))))))
221, 2, 21syl2an 494 1 ((𝑆𝑉𝑇𝑊) → (𝑆 ++ 𝑇) = (𝑥 ∈ (0..^((#‘𝑆) + (#‘𝑇))) ↦ if(𝑥 ∈ (0..^(#‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (#‘𝑆))))))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 196  wa 384   = wceq 1480  wcel 1987  Vcvv 3190  ifcif 4064  cmpt 4683  cfv 5857  (class class class)co 6615  0cc0 9896   + caddc 9899  cmin 10226  ..^cfzo 12422  #chash 13073   ++ cconcat 13248
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1719  ax-4 1734  ax-5 1836  ax-6 1885  ax-7 1932  ax-9 1996  ax-10 2016  ax-11 2031  ax-12 2044  ax-13 2245  ax-ext 2601  ax-rep 4741  ax-sep 4751  ax-nul 4759  ax-pr 4877
This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3an 1038  df-tru 1483  df-ex 1702  df-nf 1707  df-sb 1878  df-eu 2473  df-mo 2474  df-clab 2608  df-cleq 2614  df-clel 2617  df-nfc 2750  df-ne 2791  df-ral 2913  df-rex 2914  df-reu 2915  df-rab 2917  df-v 3192  df-sbc 3423  df-csb 3520  df-dif 3563  df-un 3565  df-in 3567  df-ss 3574  df-nul 3898  df-if 4065  df-sn 4156  df-pr 4158  df-op 4162  df-uni 4410  df-iun 4494  df-br 4624  df-opab 4684  df-mpt 4685  df-id 4999  df-xp 5090  df-rel 5091  df-cnv 5092  df-co 5093  df-dm 5094  df-rn 5095  df-res 5096  df-ima 5097  df-iota 5820  df-fun 5859  df-fn 5860  df-f 5861  df-f1 5862  df-fo 5863  df-f1o 5864  df-fv 5865  df-ov 6618  df-oprab 6619  df-mpt2 6620  df-concat 13256
This theorem is referenced by:  ccatcl  13314  ccatlen  13315  ccatval1  13316  ccatval2  13317  ccatvalfn  13320  ccatalpha  13330  repswccat  13485  ccatco  13534  ofccat  13658  ccatmulgnn0dir  30441
  Copyright terms: Public domain W3C validator