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

Theorem ccatalpha 14767
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 14745 . . . 4 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (𝐴 ++ 𝐵) = (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))))
21eleq1d 2849 . . 3 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝐴 ++ 𝐵) ∈ Word 𝑆 ↔ (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ∈ Word 𝑆))
3 wrdf 14690 . . . 4 ((𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ∈ Word 𝑆 → (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^(♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))))⟶𝑆)
4 funmpt 6598 . . . . . . . . 9 Fun (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))
5 fzofi 14144 . . . . . . . . . . 11 (0..^((♯‘𝐴) + (♯‘𝐵))) ∈ Fin
6 mptfi 9368 . . . . . . . . . . 11 ((0..^((♯‘𝐴) + (♯‘𝐵))) ∈ Fin → (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ∈ Fin)
75, 6ax-mp 5 . . . . . . . . . 10 (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ∈ Fin
8 hashfun 14609 . . . . . . . . . 10 ((𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ∈ Fin → (Fun (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ↔ (♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))) = (♯‘dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))))))
97, 8mp1i 14 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (Fun (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ↔ (♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))) = (♯‘dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))))))
104, 9mpbii 236 . . . . . . . 8 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))) = (♯‘dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))))
11 dmmptg 6256 . . . . . . . . . . 11 (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ V → dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) = (0..^((♯‘𝐴) + (♯‘𝐵))))
12 fvex 6921 . . . . . . . . . . . . 13 (𝐴‘𝑥) ∈ V
13 fvex 6921 . . . . . . . . . . . . 13 (𝐵‘(𝑥 − (♯‘𝐴))) ∈ V
1412, 13ifex 4536 . . . . . . . . . . . 12 if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ V
1514a1i 11 . . . . . . . . . . 11 (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) → if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ V)
1611, 15mprg 3086 . . . . . . . . . 10 dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) = (0..^((♯‘𝐴) + (♯‘𝐵)))
1716fveq2i 6911 . . . . . . . . 9 (♯‘dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))) = (♯‘(0..^((♯‘𝐴) + (♯‘𝐵))))
18 lencl 14705 . . . . . . . . . . 11 (𝐴 ∈ Word V → (♯‘𝐴) ∈ ℕ0)
19 lencl 14705 . . . . . . . . . . 11 (𝐵 ∈ Word V → (♯‘𝐵) ∈ ℕ0)
20 nn0addcl 12668 . . . . . . . . . . 11 (((♯‘𝐴) ∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) → ((♯‘𝐴) + (♯‘𝐵)) ∈ ℕ0)
2118, 19, 20syl2an 608 . . . . . . . . . 10 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((♯‘𝐴) + (♯‘𝐵)) ∈ ℕ0)
22 hashfzo0 14602 . . . . . . . . . 10 (((♯‘𝐴) + (♯‘𝐵)) ∈ ℕ0 → (♯‘(0..^((♯‘𝐴) + (♯‘𝐵)))) = ((♯‘𝐴) + (♯‘𝐵)))
2321, 22syl 18 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘(0..^((♯‘𝐴) + (♯‘𝐵)))) = ((♯‘𝐴) + (♯‘𝐵)))
2417, 23eqtrid 2810 . . . . . . . 8 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))) = ((♯‘𝐴) + (♯‘𝐵)))
2510, 24eqtrd 2798 . . . . . . 7 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))) = ((♯‘𝐴) + (♯‘𝐵)))
2625oveq2d 7459 . . . . . 6 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (0..^(♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))))) = (0..^((♯‘𝐴) + (♯‘𝐵))))
2726feq2d 6715 . . . . 5 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^(♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))))⟶𝑆 ↔ (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^((♯‘𝐴) + (♯‘𝐵)))⟶𝑆))
28 eqid 2763 . . . . . . 7 (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) = (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))
2928fmpt 7134 . . . . . 6 (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 ↔ (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^((♯‘𝐴) + (♯‘𝐵)))⟶𝑆)
30 simpl 488 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → 𝐴 ∈ Word V)
31 nn0cn 12643 . . . . . . . . . . . . . . . . . 18 ((♯‘𝐴) ∈ ℕ0 → (♯‘𝐴) ∈ ℂ)
32 nn0cn 12643 . . . . . . . . . . . . . . . . . 18 ((♯‘𝐵) ∈ ℕ0 → (♯‘𝐵) ∈ ℂ)
33 addcom 11523 . . . . . . . . . . . . . . . . . 18 (((♯‘𝐴) ∈ ℂ ∧ (♯‘𝐵) ∈ ℂ) → ((♯‘𝐴) + (♯‘𝐵)) = ((♯‘𝐵) + (♯‘𝐴)))
3431, 32, 33syl2an 608 . . . . . . . . . . . . . . . . 17 (((♯‘𝐴) ∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) → ((♯‘𝐴) + (♯‘𝐵)) = ((♯‘𝐵) + (♯‘𝐴)))
35 nn0z 12744 . . . . . . . . . . . . . . . . . . 19 ((♯‘𝐴) ∈ ℕ0 → (♯‘𝐴) ∈ ℤ)
3635anim1ci 628 . . . . . . . . . . . . . . . . . 18 (((♯‘𝐴) ∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) → ((♯‘𝐵) ∈ ℕ0 ∧ (♯‘𝐴) ∈ ℤ))
37 nn0pzuz 13059 . . . . . . . . . . . . . . . . . 18 (((♯‘𝐵) ∈ ℕ0 ∧ (♯‘𝐴) ∈ ℤ) → ((♯‘𝐵) + (♯‘𝐴)) ∈ (ℤ≥‘(♯‘𝐴)))
3836, 37syl 18 . . . . . . . . . . . . . . . . 17 (((♯‘𝐴) ∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) → ((♯‘𝐵) + (♯‘𝐴)) ∈ (ℤ≥‘(♯‘𝐴)))
3934, 38eqeltrd 2864 . . . . . . . . . . . . . . . 16 (((♯‘𝐴) ∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) → ((♯‘𝐴) + (♯‘𝐵)) ∈ (ℤ≥‘(♯‘𝐴)))
4018, 19, 39syl2an 608 . . . . . . . . . . . . . . 15 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((♯‘𝐴) + (♯‘𝐵)) ∈ (ℤ≥‘(♯‘𝐴)))
41 fzoss2 13849 . . . . . . . . . . . . . . 15 (((♯‘𝐴) + (♯‘𝐵)) ∈ (ℤ≥‘(♯‘𝐴)) → (0..^(♯‘𝐴)) ⊆ (0..^((♯‘𝐴) + (♯‘𝐵))))
4240, 41syl 18 . . . . . . . . . . . . . 14 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (0..^(♯‘𝐴)) ⊆ (0..^((♯‘𝐴) + (♯‘𝐵))))
4342sselda 3913 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐴))) → 𝑦 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))))
44 eleq1 2852 . . . . . . . . . . . . . . . 16 (𝑥 = 𝑦 → (𝑥 ∈ (0..^(♯‘𝐴)) ↔ 𝑦 ∈ (0..^(♯‘𝐴))))
45 fveq2 6908 . . . . . . . . . . . . . . . 16 (𝑥 = 𝑦 → (𝐴‘𝑥) = (𝐴‘𝑦))
46 fvoveq1 7466 . . . . . . . . . . . . . . . 16 (𝑥 = 𝑦 → (𝐵‘(𝑥 − (♯‘𝐴))) = (𝐵‘(𝑦 − (♯‘𝐴))))
4744, 45, 46ifbieq12d 4514 . . . . . . . . . . . . . . 15 (𝑥 = 𝑦 → if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) = if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))))
4847eleq1d 2849 . . . . . . . . . . . . . 14 (𝑥 = 𝑦 → (if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 ↔ if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) ∈ 𝑆))
4948rspcv 3576 . . . . . . . . . . . . 13 (𝑦 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) ∈ 𝑆))
5043, 49syl 18 . . . . . . . . . . . 12 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐴))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) ∈ 𝑆))
51 iftrue 4491 . . . . . . . . . . . . . 14 (𝑦 ∈ (0..^(♯‘𝐴)) → if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) = (𝐴‘𝑦))
5251adantl 487 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐴))) → if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) = (𝐴‘𝑦))
5352eleq1d 2849 . . . . . . . . . . . 12 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐴))) → (if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) ∈ 𝑆 ↔ (𝐴‘𝑦) ∈ 𝑆))
5450, 53sylibd 242 . . . . . . . . . . 11 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐴))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → (𝐴‘𝑦) ∈ 𝑆))
5554impancom 457 . . . . . . . . . 10 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → (𝑦 ∈ (0..^(♯‘𝐴)) → (𝐴‘𝑦) ∈ 𝑆))
5655ralrimiv 3157 . . . . . . . . 9 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → ∀𝑦 ∈ (0..^(♯‘𝐴))(𝐴‘𝑦) ∈ 𝑆)
57 iswrdsymb 14703 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ ∀𝑦 ∈ (0..^(♯‘𝐴))(𝐴‘𝑦) ∈ 𝑆) → 𝐴 ∈ Word 𝑆)
5830, 56, 57syl2an2r 698 . . . . . . . 8 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → 𝐴 ∈ Word 𝑆)
59 simpr 490 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → 𝐵 ∈ Word V)
60 simpr 490 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → 𝑦 ∈ (0..^(♯‘𝐵)))
6118adantr 486 . . . . . . . . . . . . . . . 16 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘𝐴) ∈ ℕ0)
6261adantr 486 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (♯‘𝐴) ∈ ℕ0)
63 elincfzoext 13885 . . . . . . . . . . . . . . 15 ((𝑦 ∈ (0..^(♯‘𝐵)) ∧ (♯‘𝐴) ∈ ℕ0) → (𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐵) + (♯‘𝐴))))
6460, 62, 63syl2anc 596 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐵) + (♯‘𝐴))))
6518nn0cnd 12696 . . . . . . . . . . . . . . . . . 18 (𝐴 ∈ Word V → (♯‘𝐴) ∈ ℂ)
6619nn0cnd 12696 . . . . . . . . . . . . . . . . . 18 (𝐵 ∈ Word V → (♯‘𝐵) ∈ ℂ)
6765, 66, 33syl2an 608 . . . . . . . . . . . . . . . . 17 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((♯‘𝐴) + (♯‘𝐵)) = ((♯‘𝐵) + (♯‘𝐴)))
6867oveq2d 7459 . . . . . . . . . . . . . . . 16 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (0..^((♯‘𝐴) + (♯‘𝐵))) = (0..^((♯‘𝐵) + (♯‘𝐴))))
6968eleq2d 2850 . . . . . . . . . . . . . . 15 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↔ (𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐵) + (♯‘𝐴)))))
7069adantr 486 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ((𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↔ (𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐵) + (♯‘𝐴)))))
7164, 70mpbird 260 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐴) + (♯‘𝐵))))
72 eleq1 2852 . . . . . . . . . . . . . . . 16 (𝑥 = (𝑦 + (♯‘𝐴)) → (𝑥 ∈ (0..^(♯‘𝐴)) ↔ (𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴))))
73 fveq2 6908 . . . . . . . . . . . . . . . 16 (𝑥 = (𝑦 + (♯‘𝐴)) → (𝐴‘𝑥) = (𝐴‘(𝑦 + (♯‘𝐴))))
74 fvoveq1 7466 . . . . . . . . . . . . . . . 16 (𝑥 = (𝑦 + (♯‘𝐴)) → (𝐵‘(𝑥 − (♯‘𝐴))) = (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))))
7572, 73, 74ifbieq12d 4514 . . . . . . . . . . . . . . 15 (𝑥 = (𝑦 + (♯‘𝐴)) → if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) = if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))))
7675eleq1d 2849 . . . . . . . . . . . . . 14 (𝑥 = (𝑦 + (♯‘𝐴)) → (if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 ↔ if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) ∈ 𝑆))
7776rspcv 3576 . . . . . . . . . . . . 13 ((𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) ∈ 𝑆))
7871, 77syl 18 . . . . . . . . . . . 12 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) ∈ 𝑆))
7918nn0red 12695 . . . . . . . . . . . . . . . . . . . 20 (𝐴 ∈ Word V → (♯‘𝐴) ∈ ℝ)
8079adantr 486 . . . . . . . . . . . . . . . . . . 19 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘𝐴) ∈ ℝ)
8180adantr 486 . . . . . . . . . . . . . . . . . 18 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (♯‘𝐴) ∈ ℝ)
82 elfzoelz 13820 . . . . . . . . . . . . . . . . . . . . . 22 (𝑦 ∈ (0..^(♯‘𝐵)) → 𝑦 ∈ ℤ)
8382zred 12830 . . . . . . . . . . . . . . . . . . . . 21 (𝑦 ∈ (0..^(♯‘𝐵)) → 𝑦 ∈ ℝ)
8483adantr 486 . . . . . . . . . . . . . . . . . . . 20 ((𝑦 ∈ (0..^(♯‘𝐵)) ∧ (𝐴 ∈ Word V ∧ 𝐵 ∈ Word V)) → 𝑦 ∈ ℝ)
8580adantl 487 . . . . . . . . . . . . . . . . . . . 20 ((𝑦 ∈ (0..^(♯‘𝐵)) ∧ (𝐴 ∈ Word V ∧ 𝐵 ∈ Word V)) → (♯‘𝐴) ∈ ℝ)
8684, 85readdcld 11365 . . . . . . . . . . . . . . . . . . 19 ((𝑦 ∈ (0..^(♯‘𝐵)) ∧ (𝐴 ∈ Word V ∧ 𝐵 ∈ Word V)) → (𝑦 + (♯‘𝐴)) ∈ ℝ)
8786ancoms 464 . . . . . . . . . . . . . . . . . 18 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (𝑦 + (♯‘𝐴)) ∈ ℝ)
88 elfzole1 13829 . . . . . . . . . . . . . . . . . . . 20 (𝑦 ∈ (0..^(♯‘𝐵)) → 0 ≤ 𝑦)
8988adantl 487 . . . . . . . . . . . . . . . . . . 19 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → 0 ≤ 𝑦)
90 addge02 11854 . . . . . . . . . . . . . . . . . . . 20 (((♯‘𝐴) ∈ ℝ ∧ 𝑦 ∈ ℝ) → (0 ≤ 𝑦 ↔ (♯‘𝐴) ≤ (𝑦 + (♯‘𝐴))))
9180, 83, 90syl2an 608 . . . . . . . . . . . . . . . . . . 19 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (0 ≤ 𝑦 ↔ (♯‘𝐴) ≤ (𝑦 + (♯‘𝐴))))
9289, 91mpbid 235 . . . . . . . . . . . . . . . . . 18 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (♯‘𝐴) ≤ (𝑦 + (♯‘𝐴)))
9381, 87, 92lensymd 11488 . . . . . . . . . . . . . . . . 17 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ¬ (𝑦 + (♯‘𝐴)) < (♯‘𝐴))
9493intn3an3d 1513 . . . . . . . . . . . . . . . 16 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ¬ ((𝑦 + (♯‘𝐴)) ∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ ∧ (𝑦 + (♯‘𝐴)) < (♯‘𝐴)))
95 elfzo0 13862 . . . . . . . . . . . . . . . 16 ((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)) ↔ ((𝑦 + (♯‘𝐴)) ∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ ∧ (𝑦 + (♯‘𝐴)) < (♯‘𝐴)))
9694, 95sylnibr 332 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ¬ (𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)))
9796iffalsed 4496 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) = (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))))
9897eleq1d 2849 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) ∈ 𝑆 ↔ (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))) ∈ 𝑆))
9982zcnd 12831 . . . . . . . . . . . . . . . . 17 (𝑦 ∈ (0..^(♯‘𝐵)) → 𝑦 ∈ ℂ)
10065adantr 486 . . . . . . . . . . . . . . . . 17 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘𝐴) ∈ ℂ)
101 pncan 11590 . . . . . . . . . . . . . . . . 17 ((𝑦 ∈ ℂ ∧ (♯‘𝐴) ∈ ℂ) → ((𝑦 + (♯‘𝐴)) − (♯‘𝐴)) = 𝑦)
10299, 100, 101syl2anr 609 . . . . . . . . . . . . . . . 16 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ((𝑦 + (♯‘𝐴)) − (♯‘𝐴)) = 𝑦)
103102fveq2d 6912 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))) = (𝐵‘𝑦))
104103eleq1d 2849 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ((𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))) ∈ 𝑆 ↔ (𝐵‘𝑦) ∈ 𝑆))
105104biimpd 232 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ((𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))) ∈ 𝑆 → (𝐵‘𝑦) ∈ 𝑆))
10698, 105sylbid 243 . . . . . . . . . . . 12 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) ∈ 𝑆 → (𝐵‘𝑦) ∈ 𝑆))
10778, 106syld 48 . . . . . . . . . . 11 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → (𝐵‘𝑦) ∈ 𝑆))
108107impancom 457 . . . . . . . . . 10 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → (𝑦 ∈ (0..^(♯‘𝐵)) → (𝐵‘𝑦) ∈ 𝑆))
109108ralrimiv 3157 . . . . . . . . 9 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → ∀𝑦 ∈ (0..^(♯‘𝐵))(𝐵‘𝑦) ∈ 𝑆)
110 iswrdsymb 14703 . . . . . . . . 9 ((𝐵 ∈ Word V ∧ ∀𝑦 ∈ (0..^(♯‘𝐵))(𝐵‘𝑦) ∈ 𝑆) → 𝐵 ∈ Word 𝑆)
11159, 109, 110syl2an2r 698 . . . . . . . 8 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → 𝐵 ∈ Word 𝑆)
11258, 111jca 521 . . . . . . 7 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → (𝐴 ∈ Word 𝑆 ∧ 𝐵 ∈ Word 𝑆))
113112ex 418 . . . . . 6 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → (𝐴 ∈ Word 𝑆 ∧ 𝐵 ∈ Word 𝑆)))
11429, 113biimtrrid 246 . . . . 5 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^((♯‘𝐴) + (♯‘𝐵)))⟶𝑆 → (𝐴 ∈ Word 𝑆 ∧ 𝐵 ∈ Word 𝑆)))
11527, 114sylbid 243 . . . 4 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^(♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))))⟶𝑆 → (𝐴 ∈ Word 𝑆 ∧ 𝐵 ∈ Word 𝑆)))
1163, 115syl5 35 . . 3 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴‘𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ∈ Word 𝑆 → (𝐴 ∈ Word 𝑆 ∧ 𝐵 ∈ Word 𝑆)))
1172, 116sylbid 243 . 2 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝐴 ++ 𝐵) ∈ Word 𝑆 → (𝐴 ∈ Word 𝑆 ∧ 𝐵 ∈ Word 𝑆)))
118 ccatcl 14746 . 2 ((𝐴 ∈ Word 𝑆 ∧ 𝐵 ∈ Word 𝑆) → (𝐴 ++ 𝐵) ∈ Word 𝑆)
119117, 118impbid1 228 1 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝐴 ++ 𝐵) ∈ Word 𝑆 ↔ (𝐴 ∈ Word 𝑆 ∧ 𝐵 ∈ Word 𝑆)))
Colors of variables:    wff setvar class
This proof depends on syntax axioms:   → wi 4   ↔ wb 209   ∧ wa 401   ∧ w3a 1103   = wceq 1570   ∈ wcel 2147  ∀wral 3080  Vcvv 3454   ⊆ wss 3900  ifcif 4485   class class class wbr 5106   ↦ cmpt 5189  dom cdm 5655  Fun wfun 6552  ⟶wf 6554  ‘cfv 6558  (class class class)co 7443  Fincfn 9001  ℂcc 11225  ℝcr 11226  0cc0 11227   + caddc 11230   < clt 11370   ≤ cle 11371   − cmin 11568  ℕcn 12362  ℕ0cn0 12633  ℤcz 12720  ℤ≥cuz 12992  ..^cfzo 13815  ♯chash 14501  Word cword 14685   ++ cconcat 14742
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1828  ax-4 1842  ax-5 1945  ax-6 2002  ax-7 2043  ax-8 2149  ax-9 2157  ax-10 2180  ax-11 2197  ax-12 2216  ax-ext 2735  ax-rep 5235  ax-sep 5252  ax-nul 5263  ax-pow 5331  ax-pr 5395  ax-un 7775  ax-cnex 11283  ax-resscn 11284  ax-1cn 11285  ax-icn 11286  ax-addcl 11287  ax-addrcl 11288  ax-mulcl 11289  ax-mulrcl 11290  ax-mulcom 11291  ax-addass 11292  ax-mulass 11293  ax-distr 11294  ax-i2m1 11295  ax-1ne0 11296  ax-1rid 11297  ax-rnegex 11298  ax-rrecex 11299  ax-cnre 11300  ax-pre-lttri 11301  ax-pre-lttrn 11302  ax-pre-ltadd 11303  ax-pre-mulgt0 11304
This proof depends on definitions:  df-bi 210  df-an 402  df-or 862  df-3or 1104  df-3an 1105  df-tru 1573  df-fal 1583  df-ex 1813  df-nf 1817  df-sb 2102  df-mo 2567  df-eu 2597  df-clab 2742  df-cleq 2755  df-clel 2839  df-nfc 2913  df-ne 2960  df-nel 3066  df-ral 3081  df-rex 3091  df-reu 3370  df-rab 3417  df-v 3456  df-sbc 3743  df-csb 3852  df-ss 3901  df-pss 4017  df-dif 4050  df-in 4094  df-un 4154  df-nul 4282  df-if 4486  df-pw 4562  df-sn 4589  df-pr 4591  df-op 4839  df-uni 4871  df-int 4911  df-iun 4956  df-br 5107  df-opab 5171  df-mpt 5190  df-tr 5216  df-id 5550  df-eprel 5555  df-po 5563  df-so 5564  df-fr 5608  df-we 5610  df-xp 5661  df-rel 5662  df-cnv 5663  df-co 5664  df-dm 5665  df-rn 5666  df-res 5667  df-ima 5668  df-pred 6322  df-ord 6383  df-on 6384  df-lim 6385  df-suc 6386  df-iota 6512  df-fun 6560  df-fn 6561  df-f 6562  df-f1 6563  df-fo 6564  df-f1o 6565  df-fv 6566  df-riota 7400  df-ov 7446  df-oprab 7447  df-mpo 7448  df-om 7902  df-1st 8025  df-2nd 8026  df-frecs 8327  df-wrecs 8358  df-recs 8407  df-rdg 8446  df-1o 8504  df-2o 8505  df-oadd 8508  df-er 8745  df-en 9002  df-dom 9003  df-sdom 9004  df-fin 9005  df-dju 10009  df-card 10047  df-pnf 11372  df-mnf 11373  df-xr 11374  df-ltxr 11375  df-le 11376  df-sub 11570  df-neg 11571  df-nn 12363  df-2 12432  df-n0 12634  df-xnn0 12707  df-z 12721  df-uz 12993  df-fz 13667  df-fzo 13816  df-hash 14502  df-word 14686  df-concat 14743
This theorem is used by:  ccatrcl1  14768  ccats1alpha  14795  clwwlkwwlksb  30675
  Copyright terms: Public domain W3C validator