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

Theorem ccatalpha 14628
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 14608 . . . 4 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (𝐴 ++ 𝐵) = (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))))
21eleq1d 2824 . . 3 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝐴 ++ 𝐵) ∈ Word 𝑆 ↔ (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ∈ Word 𝑆))
3 wrdf 14554 . . . 4 ((𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ∈ Word 𝑆 → (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^(♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))))⟶𝑆)
4 funmpt 6606 . . . . . . . . 9 Fun (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))
5 fzofi 14012 . . . . . . . . . . 11 (0..^((♯‘𝐴) + (♯‘𝐵))) ∈ Fin
6 mptfi 9389 . . . . . . . . . . 11 ((0..^((♯‘𝐴) + (♯‘𝐵))) ∈ Fin → (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ∈ Fin)
75, 6ax-mp 5 . . . . . . . . . 10 (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ∈ Fin
8 hashfun 14473 . . . . . . . . . 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 233 . . . . . . . 8 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))) = (♯‘dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))))
11 dmmptg 6264 . . . . . . . . . . 11 (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ V → dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) = (0..^((♯‘𝐴) + (♯‘𝐵))))
12 fvex 6920 . . . . . . . . . . . . 13 (𝐴𝑥) ∈ V
13 fvex 6920 . . . . . . . . . . . . 13 (𝐵‘(𝑥 − (♯‘𝐴))) ∈ V
1412, 13ifex 4581 . . . . . . . . . . . 12 if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ V
1514a1i 11 . . . . . . . . . . 11 (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) → if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ V)
1611, 15mprg 3065 . . . . . . . . . 10 dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) = (0..^((♯‘𝐴) + (♯‘𝐵)))
1716fveq2i 6910 . . . . . . . . 9 (♯‘dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))) = (♯‘(0..^((♯‘𝐴) + (♯‘𝐵))))
18 lencl 14568 . . . . . . . . . . 11 (𝐴 ∈ Word V → (♯‘𝐴) ∈ ℕ0)
19 lencl 14568 . . . . . . . . . . 11 (𝐵 ∈ Word V → (♯‘𝐵) ∈ ℕ0)
20 nn0addcl 12559 . . . . . . . . . . 11 (((♯‘𝐴) ∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) → ((♯‘𝐴) + (♯‘𝐵)) ∈ ℕ0)
2118, 19, 20syl2an 596 . . . . . . . . . 10 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((♯‘𝐴) + (♯‘𝐵)) ∈ ℕ0)
22 hashfzo0 14466 . . . . . . . . . 10 (((♯‘𝐴) + (♯‘𝐵)) ∈ ℕ0 → (♯‘(0..^((♯‘𝐴) + (♯‘𝐵)))) = ((♯‘𝐴) + (♯‘𝐵)))
2321, 22syl 17 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘(0..^((♯‘𝐴) + (♯‘𝐵)))) = ((♯‘𝐴) + (♯‘𝐵)))
2417, 23eqtrid 2787 . . . . . . . 8 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))) = ((♯‘𝐴) + (♯‘𝐵)))
2510, 24eqtrd 2775 . . . . . . 7 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))) = ((♯‘𝐴) + (♯‘𝐵)))
2625oveq2d 7447 . . . . . 6 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (0..^(♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))))) = (0..^((♯‘𝐴) + (♯‘𝐵))))
2726feq2d 6723 . . . . 5 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^(♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))))⟶𝑆 ↔ (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^((♯‘𝐴) + (♯‘𝐵)))⟶𝑆))
28 eqid 2735 . . . . . . 7 (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) = (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))
2928fmpt 7130 . . . . . 6 (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 ↔ (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^((♯‘𝐴) + (♯‘𝐵)))⟶𝑆)
30 simpl 482 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → 𝐴 ∈ Word V)
31 nn0cn 12534 . . . . . . . . . . . . . . . . . 18 ((♯‘𝐴) ∈ ℕ0 → (♯‘𝐴) ∈ ℂ)
32 nn0cn 12534 . . . . . . . . . . . . . . . . . 18 ((♯‘𝐵) ∈ ℕ0 → (♯‘𝐵) ∈ ℂ)
33 addcom 11445 . . . . . . . . . . . . . . . . . 18 (((♯‘𝐴) ∈ ℂ ∧ (♯‘𝐵) ∈ ℂ) → ((♯‘𝐴) + (♯‘𝐵)) = ((♯‘𝐵) + (♯‘𝐴)))
3431, 32, 33syl2an 596 . . . . . . . . . . . . . . . . 17 (((♯‘𝐴) ∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) → ((♯‘𝐴) + (♯‘𝐵)) = ((♯‘𝐵) + (♯‘𝐴)))
35 nn0z 12636 . . . . . . . . . . . . . . . . . . 19 ((♯‘𝐴) ∈ ℕ0 → (♯‘𝐴) ∈ ℤ)
3635anim1ci 616 . . . . . . . . . . . . . . . . . 18 (((♯‘𝐴) ∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) → ((♯‘𝐵) ∈ ℕ0 ∧ (♯‘𝐴) ∈ ℤ))
37 nn0pzuz 12945 . . . . . . . . . . . . . . . . . 18 (((♯‘𝐵) ∈ ℕ0 ∧ (♯‘𝐴) ∈ ℤ) → ((♯‘𝐵) + (♯‘𝐴)) ∈ (ℤ‘(♯‘𝐴)))
3836, 37syl 17 . . . . . . . . . . . . . . . . 17 (((♯‘𝐴) ∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) → ((♯‘𝐵) + (♯‘𝐴)) ∈ (ℤ‘(♯‘𝐴)))
3934, 38eqeltrd 2839 . . . . . . . . . . . . . . . 16 (((♯‘𝐴) ∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) → ((♯‘𝐴) + (♯‘𝐵)) ∈ (ℤ‘(♯‘𝐴)))
4018, 19, 39syl2an 596 . . . . . . . . . . . . . . 15 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((♯‘𝐴) + (♯‘𝐵)) ∈ (ℤ‘(♯‘𝐴)))
41 fzoss2 13724 . . . . . . . . . . . . . . 15 (((♯‘𝐴) + (♯‘𝐵)) ∈ (ℤ‘(♯‘𝐴)) → (0..^(♯‘𝐴)) ⊆ (0..^((♯‘𝐴) + (♯‘𝐵))))
4240, 41syl 17 . . . . . . . . . . . . . 14 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (0..^(♯‘𝐴)) ⊆ (0..^((♯‘𝐴) + (♯‘𝐵))))
4342sselda 3995 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐴))) → 𝑦 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))))
44 eleq1 2827 . . . . . . . . . . . . . . . 16 (𝑥 = 𝑦 → (𝑥 ∈ (0..^(♯‘𝐴)) ↔ 𝑦 ∈ (0..^(♯‘𝐴))))
45 fveq2 6907 . . . . . . . . . . . . . . . 16 (𝑥 = 𝑦 → (𝐴𝑥) = (𝐴𝑦))
46 fvoveq1 7454 . . . . . . . . . . . . . . . 16 (𝑥 = 𝑦 → (𝐵‘(𝑥 − (♯‘𝐴))) = (𝐵‘(𝑦 − (♯‘𝐴))))
4744, 45, 46ifbieq12d 4559 . . . . . . . . . . . . . . 15 (𝑥 = 𝑦 → if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) = if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))))
4847eleq1d 2824 . . . . . . . . . . . . . 14 (𝑥 = 𝑦 → (if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 ↔ if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) ∈ 𝑆))
4948rspcv 3618 . . . . . . . . . . . . 13 (𝑦 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) ∈ 𝑆))
5043, 49syl 17 . . . . . . . . . . . 12 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐴))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) ∈ 𝑆))
51 iftrue 4537 . . . . . . . . . . . . . 14 (𝑦 ∈ (0..^(♯‘𝐴)) → if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) = (𝐴𝑦))
5251adantl 481 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐴))) → if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) = (𝐴𝑦))
5352eleq1d 2824 . . . . . . . . . . . 12 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐴))) → (if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) ∈ 𝑆 ↔ (𝐴𝑦) ∈ 𝑆))
5450, 53sylibd 239 . . . . . . . . . . 11 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐴))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → (𝐴𝑦) ∈ 𝑆))
5554impancom 451 . . . . . . . . . 10 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → (𝑦 ∈ (0..^(♯‘𝐴)) → (𝐴𝑦) ∈ 𝑆))
5655ralrimiv 3143 . . . . . . . . 9 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → ∀𝑦 ∈ (0..^(♯‘𝐴))(𝐴𝑦) ∈ 𝑆)
57 iswrdsymb 14566 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ ∀𝑦 ∈ (0..^(♯‘𝐴))(𝐴𝑦) ∈ 𝑆) → 𝐴 ∈ Word 𝑆)
5830, 56, 57syl2an2r 685 . . . . . . . 8 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → 𝐴 ∈ Word 𝑆)
59 simpr 484 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → 𝐵 ∈ Word V)
60 simpr 484 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → 𝑦 ∈ (0..^(♯‘𝐵)))
6118adantr 480 . . . . . . . . . . . . . . . 16 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘𝐴) ∈ ℕ0)
6261adantr 480 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (♯‘𝐴) ∈ ℕ0)
63 elincfzoext 13759 . . . . . . . . . . . . . . 15 ((𝑦 ∈ (0..^(♯‘𝐵)) ∧ (♯‘𝐴) ∈ ℕ0) → (𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐵) + (♯‘𝐴))))
6460, 62, 63syl2anc 584 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐵) + (♯‘𝐴))))
6518nn0cnd 12587 . . . . . . . . . . . . . . . . . 18 (𝐴 ∈ Word V → (♯‘𝐴) ∈ ℂ)
6619nn0cnd 12587 . . . . . . . . . . . . . . . . . 18 (𝐵 ∈ Word V → (♯‘𝐵) ∈ ℂ)
6765, 66, 33syl2an 596 . . . . . . . . . . . . . . . . 17 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((♯‘𝐴) + (♯‘𝐵)) = ((♯‘𝐵) + (♯‘𝐴)))
6867oveq2d 7447 . . . . . . . . . . . . . . . 16 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (0..^((♯‘𝐴) + (♯‘𝐵))) = (0..^((♯‘𝐵) + (♯‘𝐴))))
6968eleq2d 2825 . . . . . . . . . . . . . . 15 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↔ (𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐵) + (♯‘𝐴)))))
7069adantr 480 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ((𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↔ (𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐵) + (♯‘𝐴)))))
7164, 70mpbird 257 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐴) + (♯‘𝐵))))
72 eleq1 2827 . . . . . . . . . . . . . . . 16 (𝑥 = (𝑦 + (♯‘𝐴)) → (𝑥 ∈ (0..^(♯‘𝐴)) ↔ (𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴))))
73 fveq2 6907 . . . . . . . . . . . . . . . 16 (𝑥 = (𝑦 + (♯‘𝐴)) → (𝐴𝑥) = (𝐴‘(𝑦 + (♯‘𝐴))))
74 fvoveq1 7454 . . . . . . . . . . . . . . . 16 (𝑥 = (𝑦 + (♯‘𝐴)) → (𝐵‘(𝑥 − (♯‘𝐴))) = (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))))
7572, 73, 74ifbieq12d 4559 . . . . . . . . . . . . . . 15 (𝑥 = (𝑦 + (♯‘𝐴)) → if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) = if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))))
7675eleq1d 2824 . . . . . . . . . . . . . 14 (𝑥 = (𝑦 + (♯‘𝐴)) → (if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 ↔ if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) ∈ 𝑆))
7776rspcv 3618 . . . . . . . . . . . . 13 ((𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) ∈ 𝑆))
7871, 77syl 17 . . . . . . . . . . . 12 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) ∈ 𝑆))
7918nn0red 12586 . . . . . . . . . . . . . . . . . . . 20 (𝐴 ∈ Word V → (♯‘𝐴) ∈ ℝ)
8079adantr 480 . . . . . . . . . . . . . . . . . . 19 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘𝐴) ∈ ℝ)
8180adantr 480 . . . . . . . . . . . . . . . . . 18 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (♯‘𝐴) ∈ ℝ)
82 elfzoelz 13696 . . . . . . . . . . . . . . . . . . . . . 22 (𝑦 ∈ (0..^(♯‘𝐵)) → 𝑦 ∈ ℤ)
8382zred 12720 . . . . . . . . . . . . . . . . . . . . 21 (𝑦 ∈ (0..^(♯‘𝐵)) → 𝑦 ∈ ℝ)
8483adantr 480 . . . . . . . . . . . . . . . . . . . 20 ((𝑦 ∈ (0..^(♯‘𝐵)) ∧ (𝐴 ∈ Word V ∧ 𝐵 ∈ Word V)) → 𝑦 ∈ ℝ)
8580adantl 481 . . . . . . . . . . . . . . . . . . . 20 ((𝑦 ∈ (0..^(♯‘𝐵)) ∧ (𝐴 ∈ Word V ∧ 𝐵 ∈ Word V)) → (♯‘𝐴) ∈ ℝ)
8684, 85readdcld 11288 . . . . . . . . . . . . . . . . . . 19 ((𝑦 ∈ (0..^(♯‘𝐵)) ∧ (𝐴 ∈ Word V ∧ 𝐵 ∈ Word V)) → (𝑦 + (♯‘𝐴)) ∈ ℝ)
8786ancoms 458 . . . . . . . . . . . . . . . . . 18 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (𝑦 + (♯‘𝐴)) ∈ ℝ)
88 elfzole1 13704 . . . . . . . . . . . . . . . . . . . 20 (𝑦 ∈ (0..^(♯‘𝐵)) → 0 ≤ 𝑦)
8988adantl 481 . . . . . . . . . . . . . . . . . . 19 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → 0 ≤ 𝑦)
90 addge02 11772 . . . . . . . . . . . . . . . . . . . 20 (((♯‘𝐴) ∈ ℝ ∧ 𝑦 ∈ ℝ) → (0 ≤ 𝑦 ↔ (♯‘𝐴) ≤ (𝑦 + (♯‘𝐴))))
9180, 83, 90syl2an 596 . . . . . . . . . . . . . . . . . . 19 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (0 ≤ 𝑦 ↔ (♯‘𝐴) ≤ (𝑦 + (♯‘𝐴))))
9289, 91mpbid 232 . . . . . . . . . . . . . . . . . 18 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (♯‘𝐴) ≤ (𝑦 + (♯‘𝐴)))
9381, 87, 92lensymd 11410 . . . . . . . . . . . . . . . . 17 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ¬ (𝑦 + (♯‘𝐴)) < (♯‘𝐴))
9493intn3an3d 1480 . . . . . . . . . . . . . . . 16 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ¬ ((𝑦 + (♯‘𝐴)) ∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ ∧ (𝑦 + (♯‘𝐴)) < (♯‘𝐴)))
95 elfzo0 13737 . . . . . . . . . . . . . . . 16 ((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)) ↔ ((𝑦 + (♯‘𝐴)) ∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ ∧ (𝑦 + (♯‘𝐴)) < (♯‘𝐴)))
9694, 95sylnibr 329 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ¬ (𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)))
9796iffalsed 4542 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) = (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))))
9897eleq1d 2824 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) ∈ 𝑆 ↔ (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))) ∈ 𝑆))
9982zcnd 12721 . . . . . . . . . . . . . . . . 17 (𝑦 ∈ (0..^(♯‘𝐵)) → 𝑦 ∈ ℂ)
10065adantr 480 . . . . . . . . . . . . . . . . 17 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘𝐴) ∈ ℂ)
101 pncan 11512 . . . . . . . . . . . . . . . . 17 ((𝑦 ∈ ℂ ∧ (♯‘𝐴) ∈ ℂ) → ((𝑦 + (♯‘𝐴)) − (♯‘𝐴)) = 𝑦)
10299, 100, 101syl2anr 597 . . . . . . . . . . . . . . . 16 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ((𝑦 + (♯‘𝐴)) − (♯‘𝐴)) = 𝑦)
103102fveq2d 6911 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))) = (𝐵𝑦))
104103eleq1d 2824 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ((𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))) ∈ 𝑆 ↔ (𝐵𝑦) ∈ 𝑆))
105104biimpd 229 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ((𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))) ∈ 𝑆 → (𝐵𝑦) ∈ 𝑆))
10698, 105sylbid 240 . . . . . . . . . . . 12 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) ∈ 𝑆 → (𝐵𝑦) ∈ 𝑆))
10778, 106syld 47 . . . . . . . . . . 11 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → (𝐵𝑦) ∈ 𝑆))
108107impancom 451 . . . . . . . . . 10 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → (𝑦 ∈ (0..^(♯‘𝐵)) → (𝐵𝑦) ∈ 𝑆))
109108ralrimiv 3143 . . . . . . . . 9 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → ∀𝑦 ∈ (0..^(♯‘𝐵))(𝐵𝑦) ∈ 𝑆)
110 iswrdsymb 14566 . . . . . . . . 9 ((𝐵 ∈ Word V ∧ ∀𝑦 ∈ (0..^(♯‘𝐵))(𝐵𝑦) ∈ 𝑆) → 𝐵 ∈ Word 𝑆)
11159, 109, 110syl2an2r 685 . . . . . . . 8 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → 𝐵 ∈ Word 𝑆)
11258, 111jca 511 . . . . . . 7 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆))
113112ex 412 . . . . . 6 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
11429, 113biimtrrid 243 . . . . 5 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^((♯‘𝐴) + (♯‘𝐵)))⟶𝑆 → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
11527, 114sylbid 240 . . . 4 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^(♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))))⟶𝑆 → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
1163, 115syl5 34 . . 3 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ∈ Word 𝑆 → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
1172, 116sylbid 240 . 2 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝐴 ++ 𝐵) ∈ Word 𝑆 → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
118 ccatcl 14609 . 2 ((𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆) → (𝐴 ++ 𝐵) ∈ Word 𝑆)
119117, 118impbid1 225 1 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝐴 ++ 𝐵) ∈ Word 𝑆 ↔ (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 206  wa 395  w3a 1086   = wceq 1537  wcel 2106  wral 3059  Vcvv 3478  wss 3963  ifcif 4531   class class class wbr 5148  cmpt 5231  dom cdm 5689  Fun wfun 6557  wf 6559  cfv 6563  (class class class)co 7431  Fincfn 8984  cc 11151  cr 11152  0cc0 11153   + caddc 11156   < clt 11293  cle 11294  cmin 11490  cn 12264  0cn0 12524  cz 12611  cuz 12876  ..^cfzo 13691  chash 14366  Word cword 14549   ++ cconcat 14605
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1792  ax-4 1806  ax-5 1908  ax-6 1965  ax-7 2005  ax-8 2108  ax-9 2116  ax-10 2139  ax-11 2155  ax-12 2175  ax-ext 2706  ax-rep 5285  ax-sep 5302  ax-nul 5312  ax-pow 5371  ax-pr 5438  ax-un 7754  ax-cnex 11209  ax-resscn 11210  ax-1cn 11211  ax-icn 11212  ax-addcl 11213  ax-addrcl 11214  ax-mulcl 11215  ax-mulrcl 11216  ax-mulcom 11217  ax-addass 11218  ax-mulass 11219  ax-distr 11220  ax-i2m1 11221  ax-1ne0 11222  ax-1rid 11223  ax-rnegex 11224  ax-rrecex 11225  ax-cnre 11226  ax-pre-lttri 11227  ax-pre-lttrn 11228  ax-pre-ltadd 11229  ax-pre-mulgt0 11230
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 848  df-3or 1087  df-3an 1088  df-tru 1540  df-fal 1550  df-ex 1777  df-nf 1781  df-sb 2063  df-mo 2538  df-eu 2567  df-clab 2713  df-cleq 2727  df-clel 2814  df-nfc 2890  df-ne 2939  df-nel 3045  df-ral 3060  df-rex 3069  df-reu 3379  df-rab 3434  df-v 3480  df-sbc 3792  df-csb 3909  df-dif 3966  df-un 3968  df-in 3970  df-ss 3980  df-pss 3983  df-nul 4340  df-if 4532  df-pw 4607  df-sn 4632  df-pr 4634  df-op 4638  df-uni 4913  df-int 4952  df-iun 4998  df-br 5149  df-opab 5211  df-mpt 5232  df-tr 5266  df-id 5583  df-eprel 5589  df-po 5597  df-so 5598  df-fr 5641  df-we 5643  df-xp 5695  df-rel 5696  df-cnv 5697  df-co 5698  df-dm 5699  df-rn 5700  df-res 5701  df-ima 5702  df-pred 6323  df-ord 6389  df-on 6390  df-lim 6391  df-suc 6392  df-iota 6516  df-fun 6565  df-fn 6566  df-f 6567  df-f1 6568  df-fo 6569  df-f1o 6570  df-fv 6571  df-riota 7388  df-ov 7434  df-oprab 7435  df-mpo 7436  df-om 7888  df-1st 8013  df-2nd 8014  df-frecs 8305  df-wrecs 8336  df-recs 8410  df-rdg 8449  df-1o 8505  df-2o 8506  df-oadd 8509  df-er 8744  df-en 8985  df-dom 8986  df-sdom 8987  df-fin 8988  df-dju 9939  df-card 9977  df-pnf 11295  df-mnf 11296  df-xr 11297  df-ltxr 11298  df-le 11299  df-sub 11492  df-neg 11493  df-nn 12265  df-2 12327  df-n0 12525  df-xnn0 12598  df-z 12612  df-uz 12877  df-fz 13545  df-fzo 13692  df-hash 14367  df-word 14550  df-concat 14606
This theorem is referenced by:  ccatrcl1  14629  ccats1alpha  14654  clwwlkwwlksb  30083
  Copyright terms: Public domain W3C validator