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

Theorem ccatalpha 13411
Description: A concatenation of two arbitrary words is a word over an alphabet iff the symbols of both words belong to the alphabet. (Contributed by AV, 28-Feb-2021.)
Assertion
Ref Expression
ccatalpha ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝐴 ++ 𝐵) ∈ Word 𝑆 ↔ (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))

Proof of Theorem ccatalpha
Dummy variables 𝑥 𝑦 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 ccatfval 13391 . . . 4 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (𝐴 ++ 𝐵) = (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))))
21eleq1d 2715 . . 3 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝐴 ++ 𝐵) ∈ Word 𝑆 ↔ (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))) ∈ Word 𝑆))
3 wrdf 13342 . . . 4 ((𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))) ∈ Word 𝑆 → (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))):(0..^(#‘(𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))))))⟶𝑆)
4 funmpt 5964 . . . . . . . . 9 Fun (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))))
5 fzofi 12813 . . . . . . . . . . 11 (0..^((#‘𝐴) + (#‘𝐵))) ∈ Fin
6 mptfi 8306 . . . . . . . . . . 11 ((0..^((#‘𝐴) + (#‘𝐵))) ∈ Fin → (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))) ∈ Fin)
75, 6ax-mp 5 . . . . . . . . . 10 (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))) ∈ Fin
8 hashfun 13262 . . . . . . . . . 10 ((𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))) ∈ Fin → (Fun (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))) ↔ (#‘(𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))))) = (#‘dom (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))))))
97, 8mp1i 13 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (Fun (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))) ↔ (#‘(𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))))) = (#‘dom (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))))))
104, 9mpbii 223 . . . . . . . 8 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (#‘(𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))))) = (#‘dom (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))))))
11 dmmptg 5670 . . . . . . . . . . 11 (∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ V → dom (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))) = (0..^((#‘𝐴) + (#‘𝐵))))
12 fvex 6239 . . . . . . . . . . . . 13 (𝐴𝑥) ∈ V
13 fvex 6239 . . . . . . . . . . . . 13 (𝐵‘(𝑥 − (#‘𝐴))) ∈ V
1412, 13ifex 4189 . . . . . . . . . . . 12 if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ V
1514a1i 11 . . . . . . . . . . 11 (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) → if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ V)
1611, 15mprg 2955 . . . . . . . . . 10 dom (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))) = (0..^((#‘𝐴) + (#‘𝐵)))
1716fveq2i 6232 . . . . . . . . 9 (#‘dom (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))))) = (#‘(0..^((#‘𝐴) + (#‘𝐵))))
18 lencl 13356 . . . . . . . . . . 11 (𝐴 ∈ Word V → (#‘𝐴) ∈ ℕ0)
19 lencl 13356 . . . . . . . . . . 11 (𝐵 ∈ Word V → (#‘𝐵) ∈ ℕ0)
20 nn0addcl 11366 . . . . . . . . . . 11 (((#‘𝐴) ∈ ℕ0 ∧ (#‘𝐵) ∈ ℕ0) → ((#‘𝐴) + (#‘𝐵)) ∈ ℕ0)
2118, 19, 20syl2an 493 . . . . . . . . . 10 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((#‘𝐴) + (#‘𝐵)) ∈ ℕ0)
22 hashfzo0 13255 . . . . . . . . . 10 (((#‘𝐴) + (#‘𝐵)) ∈ ℕ0 → (#‘(0..^((#‘𝐴) + (#‘𝐵)))) = ((#‘𝐴) + (#‘𝐵)))
2321, 22syl 17 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (#‘(0..^((#‘𝐴) + (#‘𝐵)))) = ((#‘𝐴) + (#‘𝐵)))
2417, 23syl5eq 2697 . . . . . . . 8 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (#‘dom (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))))) = ((#‘𝐴) + (#‘𝐵)))
2510, 24eqtrd 2685 . . . . . . 7 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (#‘(𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))))) = ((#‘𝐴) + (#‘𝐵)))
2625oveq2d 6706 . . . . . 6 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (0..^(#‘(𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))))) = (0..^((#‘𝐴) + (#‘𝐵))))
2726feq2d 6069 . . . . 5 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))):(0..^(#‘(𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))))))⟶𝑆 ↔ (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))):(0..^((#‘𝐴) + (#‘𝐵)))⟶𝑆))
28 eqid 2651 . . . . . . 7 (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))) = (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))))
2928fmpt 6421 . . . . . 6 (∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆 ↔ (𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))):(0..^((#‘𝐴) + (#‘𝐵)))⟶𝑆)
30 simpl 472 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → 𝐴 ∈ Word V)
31 nn0cn 11340 . . . . . . . . . . . . . . . . . . 19 ((#‘𝐴) ∈ ℕ0 → (#‘𝐴) ∈ ℂ)
32 nn0cn 11340 . . . . . . . . . . . . . . . . . . 19 ((#‘𝐵) ∈ ℕ0 → (#‘𝐵) ∈ ℂ)
33 addcom 10260 . . . . . . . . . . . . . . . . . . 19 (((#‘𝐴) ∈ ℂ ∧ (#‘𝐵) ∈ ℂ) → ((#‘𝐴) + (#‘𝐵)) = ((#‘𝐵) + (#‘𝐴)))
3431, 32, 33syl2an 493 . . . . . . . . . . . . . . . . . 18 (((#‘𝐴) ∈ ℕ0 ∧ (#‘𝐵) ∈ ℕ0) → ((#‘𝐴) + (#‘𝐵)) = ((#‘𝐵) + (#‘𝐴)))
35 nn0z 11438 . . . . . . . . . . . . . . . . . . . . 21 ((#‘𝐴) ∈ ℕ0 → (#‘𝐴) ∈ ℤ)
3635anim1i 591 . . . . . . . . . . . . . . . . . . . 20 (((#‘𝐴) ∈ ℕ0 ∧ (#‘𝐵) ∈ ℕ0) → ((#‘𝐴) ∈ ℤ ∧ (#‘𝐵) ∈ ℕ0))
3736ancomd 466 . . . . . . . . . . . . . . . . . . 19 (((#‘𝐴) ∈ ℕ0 ∧ (#‘𝐵) ∈ ℕ0) → ((#‘𝐵) ∈ ℕ0 ∧ (#‘𝐴) ∈ ℤ))
38 nn0pzuz 11783 . . . . . . . . . . . . . . . . . . 19 (((#‘𝐵) ∈ ℕ0 ∧ (#‘𝐴) ∈ ℤ) → ((#‘𝐵) + (#‘𝐴)) ∈ (ℤ‘(#‘𝐴)))
3937, 38syl 17 . . . . . . . . . . . . . . . . . 18 (((#‘𝐴) ∈ ℕ0 ∧ (#‘𝐵) ∈ ℕ0) → ((#‘𝐵) + (#‘𝐴)) ∈ (ℤ‘(#‘𝐴)))
4034, 39eqeltrd 2730 . . . . . . . . . . . . . . . . 17 (((#‘𝐴) ∈ ℕ0 ∧ (#‘𝐵) ∈ ℕ0) → ((#‘𝐴) + (#‘𝐵)) ∈ (ℤ‘(#‘𝐴)))
4118, 19, 40syl2an 493 . . . . . . . . . . . . . . . 16 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((#‘𝐴) + (#‘𝐵)) ∈ (ℤ‘(#‘𝐴)))
42 fzoss2 12535 . . . . . . . . . . . . . . . 16 (((#‘𝐴) + (#‘𝐵)) ∈ (ℤ‘(#‘𝐴)) → (0..^(#‘𝐴)) ⊆ (0..^((#‘𝐴) + (#‘𝐵))))
4341, 42syl 17 . . . . . . . . . . . . . . 15 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (0..^(#‘𝐴)) ⊆ (0..^((#‘𝐴) + (#‘𝐵))))
4443sselda 3636 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐴))) → 𝑦 ∈ (0..^((#‘𝐴) + (#‘𝐵))))
45 eleq1 2718 . . . . . . . . . . . . . . . . 17 (𝑥 = 𝑦 → (𝑥 ∈ (0..^(#‘𝐴)) ↔ 𝑦 ∈ (0..^(#‘𝐴))))
46 fveq2 6229 . . . . . . . . . . . . . . . . 17 (𝑥 = 𝑦 → (𝐴𝑥) = (𝐴𝑦))
47 oveq1 6697 . . . . . . . . . . . . . . . . . 18 (𝑥 = 𝑦 → (𝑥 − (#‘𝐴)) = (𝑦 − (#‘𝐴)))
4847fveq2d 6233 . . . . . . . . . . . . . . . . 17 (𝑥 = 𝑦 → (𝐵‘(𝑥 − (#‘𝐴))) = (𝐵‘(𝑦 − (#‘𝐴))))
4945, 46, 48ifbieq12d 4146 . . . . . . . . . . . . . . . 16 (𝑥 = 𝑦 → if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) = if(𝑦 ∈ (0..^(#‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (#‘𝐴)))))
5049eleq1d 2715 . . . . . . . . . . . . . . 15 (𝑥 = 𝑦 → (if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆 ↔ if(𝑦 ∈ (0..^(#‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (#‘𝐴)))) ∈ 𝑆))
5150rspcv 3336 . . . . . . . . . . . . . 14 (𝑦 ∈ (0..^((#‘𝐴) + (#‘𝐵))) → (∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆 → if(𝑦 ∈ (0..^(#‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (#‘𝐴)))) ∈ 𝑆))
5244, 51syl 17 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐴))) → (∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆 → if(𝑦 ∈ (0..^(#‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (#‘𝐴)))) ∈ 𝑆))
53 iftrue 4125 . . . . . . . . . . . . . . 15 (𝑦 ∈ (0..^(#‘𝐴)) → if(𝑦 ∈ (0..^(#‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (#‘𝐴)))) = (𝐴𝑦))
5453adantl 481 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐴))) → if(𝑦 ∈ (0..^(#‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (#‘𝐴)))) = (𝐴𝑦))
5554eleq1d 2715 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐴))) → (if(𝑦 ∈ (0..^(#‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (#‘𝐴)))) ∈ 𝑆 ↔ (𝐴𝑦) ∈ 𝑆))
5652, 55sylibd 229 . . . . . . . . . . . 12 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐴))) → (∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆 → (𝐴𝑦) ∈ 𝑆))
5756impancom 455 . . . . . . . . . . 11 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆) → (𝑦 ∈ (0..^(#‘𝐴)) → (𝐴𝑦) ∈ 𝑆))
5857imp 444 . . . . . . . . . 10 ((((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆) ∧ 𝑦 ∈ (0..^(#‘𝐴))) → (𝐴𝑦) ∈ 𝑆)
5958ralrimiva 2995 . . . . . . . . 9 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆) → ∀𝑦 ∈ (0..^(#‘𝐴))(𝐴𝑦) ∈ 𝑆)
60 iswrdsymb 13354 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ ∀𝑦 ∈ (0..^(#‘𝐴))(𝐴𝑦) ∈ 𝑆) → 𝐴 ∈ Word 𝑆)
6130, 59, 60syl2an2r 893 . . . . . . . 8 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆) → 𝐴 ∈ Word 𝑆)
62 simpr 476 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → 𝐵 ∈ Word V)
63 simpr 476 . . . . . . . . . . . . . . . 16 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → 𝑦 ∈ (0..^(#‘𝐵)))
6418adantr 480 . . . . . . . . . . . . . . . . 17 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (#‘𝐴) ∈ ℕ0)
6564adantr 480 . . . . . . . . . . . . . . . 16 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → (#‘𝐴) ∈ ℕ0)
66 elincfzoext 12565 . . . . . . . . . . . . . . . 16 ((𝑦 ∈ (0..^(#‘𝐵)) ∧ (#‘𝐴) ∈ ℕ0) → (𝑦 + (#‘𝐴)) ∈ (0..^((#‘𝐵) + (#‘𝐴))))
6763, 65, 66syl2anc 694 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → (𝑦 + (#‘𝐴)) ∈ (0..^((#‘𝐵) + (#‘𝐴))))
6818nn0cnd 11391 . . . . . . . . . . . . . . . . . . 19 (𝐴 ∈ Word V → (#‘𝐴) ∈ ℂ)
6919nn0cnd 11391 . . . . . . . . . . . . . . . . . . 19 (𝐵 ∈ Word V → (#‘𝐵) ∈ ℂ)
7068, 69, 33syl2an 493 . . . . . . . . . . . . . . . . . 18 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((#‘𝐴) + (#‘𝐵)) = ((#‘𝐵) + (#‘𝐴)))
7170oveq2d 6706 . . . . . . . . . . . . . . . . 17 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (0..^((#‘𝐴) + (#‘𝐵))) = (0..^((#‘𝐵) + (#‘𝐴))))
7271eleq2d 2716 . . . . . . . . . . . . . . . 16 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑦 + (#‘𝐴)) ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↔ (𝑦 + (#‘𝐴)) ∈ (0..^((#‘𝐵) + (#‘𝐴)))))
7372adantr 480 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → ((𝑦 + (#‘𝐴)) ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↔ (𝑦 + (#‘𝐴)) ∈ (0..^((#‘𝐵) + (#‘𝐴)))))
7467, 73mpbird 247 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → (𝑦 + (#‘𝐴)) ∈ (0..^((#‘𝐴) + (#‘𝐵))))
75 eleq1 2718 . . . . . . . . . . . . . . . . 17 (𝑥 = (𝑦 + (#‘𝐴)) → (𝑥 ∈ (0..^(#‘𝐴)) ↔ (𝑦 + (#‘𝐴)) ∈ (0..^(#‘𝐴))))
76 fveq2 6229 . . . . . . . . . . . . . . . . 17 (𝑥 = (𝑦 + (#‘𝐴)) → (𝐴𝑥) = (𝐴‘(𝑦 + (#‘𝐴))))
77 oveq1 6697 . . . . . . . . . . . . . . . . . 18 (𝑥 = (𝑦 + (#‘𝐴)) → (𝑥 − (#‘𝐴)) = ((𝑦 + (#‘𝐴)) − (#‘𝐴)))
7877fveq2d 6233 . . . . . . . . . . . . . . . . 17 (𝑥 = (𝑦 + (#‘𝐴)) → (𝐵‘(𝑥 − (#‘𝐴))) = (𝐵‘((𝑦 + (#‘𝐴)) − (#‘𝐴))))
7975, 76, 78ifbieq12d 4146 . . . . . . . . . . . . . . . 16 (𝑥 = (𝑦 + (#‘𝐴)) → if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) = if((𝑦 + (#‘𝐴)) ∈ (0..^(#‘𝐴)), (𝐴‘(𝑦 + (#‘𝐴))), (𝐵‘((𝑦 + (#‘𝐴)) − (#‘𝐴)))))
8079eleq1d 2715 . . . . . . . . . . . . . . 15 (𝑥 = (𝑦 + (#‘𝐴)) → (if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆 ↔ if((𝑦 + (#‘𝐴)) ∈ (0..^(#‘𝐴)), (𝐴‘(𝑦 + (#‘𝐴))), (𝐵‘((𝑦 + (#‘𝐴)) − (#‘𝐴)))) ∈ 𝑆))
8180rspcv 3336 . . . . . . . . . . . . . 14 ((𝑦 + (#‘𝐴)) ∈ (0..^((#‘𝐴) + (#‘𝐵))) → (∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆 → if((𝑦 + (#‘𝐴)) ∈ (0..^(#‘𝐴)), (𝐴‘(𝑦 + (#‘𝐴))), (𝐵‘((𝑦 + (#‘𝐴)) − (#‘𝐴)))) ∈ 𝑆))
8274, 81syl 17 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → (∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆 → if((𝑦 + (#‘𝐴)) ∈ (0..^(#‘𝐴)), (𝐴‘(𝑦 + (#‘𝐴))), (𝐵‘((𝑦 + (#‘𝐴)) − (#‘𝐴)))) ∈ 𝑆))
8318nn0red 11390 . . . . . . . . . . . . . . . . . . . . 21 (𝐴 ∈ Word V → (#‘𝐴) ∈ ℝ)
8483adantr 480 . . . . . . . . . . . . . . . . . . . 20 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (#‘𝐴) ∈ ℝ)
8584adantr 480 . . . . . . . . . . . . . . . . . . 19 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → (#‘𝐴) ∈ ℝ)
86 elfzoelz 12509 . . . . . . . . . . . . . . . . . . . . . . 23 (𝑦 ∈ (0..^(#‘𝐵)) → 𝑦 ∈ ℤ)
8786zred 11520 . . . . . . . . . . . . . . . . . . . . . 22 (𝑦 ∈ (0..^(#‘𝐵)) → 𝑦 ∈ ℝ)
8887adantr 480 . . . . . . . . . . . . . . . . . . . . 21 ((𝑦 ∈ (0..^(#‘𝐵)) ∧ (𝐴 ∈ Word V ∧ 𝐵 ∈ Word V)) → 𝑦 ∈ ℝ)
8984adantl 481 . . . . . . . . . . . . . . . . . . . . 21 ((𝑦 ∈ (0..^(#‘𝐵)) ∧ (𝐴 ∈ Word V ∧ 𝐵 ∈ Word V)) → (#‘𝐴) ∈ ℝ)
9088, 89readdcld 10107 . . . . . . . . . . . . . . . . . . . 20 ((𝑦 ∈ (0..^(#‘𝐵)) ∧ (𝐴 ∈ Word V ∧ 𝐵 ∈ Word V)) → (𝑦 + (#‘𝐴)) ∈ ℝ)
9190ancoms 468 . . . . . . . . . . . . . . . . . . 19 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → (𝑦 + (#‘𝐴)) ∈ ℝ)
92 elfzole1 12517 . . . . . . . . . . . . . . . . . . . . 21 (𝑦 ∈ (0..^(#‘𝐵)) → 0 ≤ 𝑦)
9392adantl 481 . . . . . . . . . . . . . . . . . . . 20 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → 0 ≤ 𝑦)
94 addge02 10577 . . . . . . . . . . . . . . . . . . . . 21 (((#‘𝐴) ∈ ℝ ∧ 𝑦 ∈ ℝ) → (0 ≤ 𝑦 ↔ (#‘𝐴) ≤ (𝑦 + (#‘𝐴))))
9584, 87, 94syl2an 493 . . . . . . . . . . . . . . . . . . . 20 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → (0 ≤ 𝑦 ↔ (#‘𝐴) ≤ (𝑦 + (#‘𝐴))))
9693, 95mpbid 222 . . . . . . . . . . . . . . . . . . 19 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → (#‘𝐴) ≤ (𝑦 + (#‘𝐴)))
9785, 91, 96lensymd 10226 . . . . . . . . . . . . . . . . . 18 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → ¬ (𝑦 + (#‘𝐴)) < (#‘𝐴))
9897intn3an3d 1484 . . . . . . . . . . . . . . . . 17 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → ¬ ((𝑦 + (#‘𝐴)) ∈ ℕ0 ∧ (#‘𝐴) ∈ ℕ ∧ (𝑦 + (#‘𝐴)) < (#‘𝐴)))
99 elfzo0 12548 . . . . . . . . . . . . . . . . 17 ((𝑦 + (#‘𝐴)) ∈ (0..^(#‘𝐴)) ↔ ((𝑦 + (#‘𝐴)) ∈ ℕ0 ∧ (#‘𝐴) ∈ ℕ ∧ (𝑦 + (#‘𝐴)) < (#‘𝐴)))
10098, 99sylnibr 318 . . . . . . . . . . . . . . . 16 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → ¬ (𝑦 + (#‘𝐴)) ∈ (0..^(#‘𝐴)))
101100iffalsed 4130 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → if((𝑦 + (#‘𝐴)) ∈ (0..^(#‘𝐴)), (𝐴‘(𝑦 + (#‘𝐴))), (𝐵‘((𝑦 + (#‘𝐴)) − (#‘𝐴)))) = (𝐵‘((𝑦 + (#‘𝐴)) − (#‘𝐴))))
102101eleq1d 2715 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → (if((𝑦 + (#‘𝐴)) ∈ (0..^(#‘𝐴)), (𝐴‘(𝑦 + (#‘𝐴))), (𝐵‘((𝑦 + (#‘𝐴)) − (#‘𝐴)))) ∈ 𝑆 ↔ (𝐵‘((𝑦 + (#‘𝐴)) − (#‘𝐴))) ∈ 𝑆))
10386zcnd 11521 . . . . . . . . . . . . . . . . . 18 (𝑦 ∈ (0..^(#‘𝐵)) → 𝑦 ∈ ℂ)
10468adantr 480 . . . . . . . . . . . . . . . . . 18 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (#‘𝐴) ∈ ℂ)
105 pncan 10325 . . . . . . . . . . . . . . . . . 18 ((𝑦 ∈ ℂ ∧ (#‘𝐴) ∈ ℂ) → ((𝑦 + (#‘𝐴)) − (#‘𝐴)) = 𝑦)
106103, 104, 105syl2anr 494 . . . . . . . . . . . . . . . . 17 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → ((𝑦 + (#‘𝐴)) − (#‘𝐴)) = 𝑦)
107106fveq2d 6233 . . . . . . . . . . . . . . . 16 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → (𝐵‘((𝑦 + (#‘𝐴)) − (#‘𝐴))) = (𝐵𝑦))
108107eleq1d 2715 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → ((𝐵‘((𝑦 + (#‘𝐴)) − (#‘𝐴))) ∈ 𝑆 ↔ (𝐵𝑦) ∈ 𝑆))
109108biimpd 219 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → ((𝐵‘((𝑦 + (#‘𝐴)) − (#‘𝐴))) ∈ 𝑆 → (𝐵𝑦) ∈ 𝑆))
110102, 109sylbid 230 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → (if((𝑦 + (#‘𝐴)) ∈ (0..^(#‘𝐴)), (𝐴‘(𝑦 + (#‘𝐴))), (𝐵‘((𝑦 + (#‘𝐴)) − (#‘𝐴)))) ∈ 𝑆 → (𝐵𝑦) ∈ 𝑆))
11182, 110syld 47 . . . . . . . . . . . 12 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → (∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆 → (𝐵𝑦) ∈ 𝑆))
112111impancom 455 . . . . . . . . . . 11 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆) → (𝑦 ∈ (0..^(#‘𝐵)) → (𝐵𝑦) ∈ 𝑆))
113112imp 444 . . . . . . . . . 10 ((((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆) ∧ 𝑦 ∈ (0..^(#‘𝐵))) → (𝐵𝑦) ∈ 𝑆)
114113ralrimiva 2995 . . . . . . . . 9 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆) → ∀𝑦 ∈ (0..^(#‘𝐵))(𝐵𝑦) ∈ 𝑆)
115 iswrdsymb 13354 . . . . . . . . 9 ((𝐵 ∈ Word V ∧ ∀𝑦 ∈ (0..^(#‘𝐵))(𝐵𝑦) ∈ 𝑆) → 𝐵 ∈ Word 𝑆)
11662, 114, 115syl2an2r 893 . . . . . . . 8 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆) → 𝐵 ∈ Word 𝑆)
11761, 116jca 553 . . . . . . 7 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆) → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆))
118117ex 449 . . . . . 6 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (∀𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵)))if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))) ∈ 𝑆 → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
11929, 118syl5bir 233 . . . . 5 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))):(0..^((#‘𝐴) + (#‘𝐵)))⟶𝑆 → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
12027, 119sylbid 230 . . . 4 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))):(0..^(#‘(𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴)))))))⟶𝑆 → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
1213, 120syl5 34 . . 3 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑥 ∈ (0..^((#‘𝐴) + (#‘𝐵))) ↦ if(𝑥 ∈ (0..^(#‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (#‘𝐴))))) ∈ Word 𝑆 → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
1222, 121sylbid 230 . 2 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝐴 ++ 𝐵) ∈ Word 𝑆 → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
123 ccatcl 13392 . 2 ((𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆) → (𝐴 ++ 𝐵) ∈ Word 𝑆)
124122, 123impbid1 215 1 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝐴 ++ 𝐵) ∈ Word 𝑆 ↔ (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 196  wa 383  w3a 1054   = wceq 1523  wcel 2030  wral 2941  Vcvv 3231  wss 3607  ifcif 4119   class class class wbr 4685  cmpt 4762  dom cdm 5143  Fun wfun 5920  wf 5922  cfv 5926  (class class class)co 6690  Fincfn 7997  cc 9972  cr 9973  0cc0 9974   + caddc 9977   < clt 10112  cle 10113  cmin 10304  cn 11058  0cn0 11330  cz 11415  cuz 11725  ..^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-rmo 2949  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-cda 9028  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-2 11117  df-n0 11331  df-xnn0 11402  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:  ccatrcl1  13412  ccats1alpha  13436  clwwlkwwlksb  27018
  Copyright terms: Public domain W3C validator