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

Theorem ccatalpha 13935
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 13913 . . . 4 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (𝐴 ++ 𝐵) = (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))))
21eleq1d 2894 . . 3 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝐴 ++ 𝐵) ∈ Word 𝑆 ↔ (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ∈ Word 𝑆))
3 wrdf 13854 . . . 4 ((𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ∈ Word 𝑆 → (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^(♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))))⟶𝑆)
4 funmpt 6386 . . . . . . . . 9 Fun (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))
5 fzofi 13330 . . . . . . . . . . 11 (0..^((♯‘𝐴) + (♯‘𝐵))) ∈ Fin
6 mptfi 8811 . . . . . . . . . . 11 ((0..^((♯‘𝐴) + (♯‘𝐵))) ∈ Fin → (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ∈ Fin)
75, 6ax-mp 5 . . . . . . . . . 10 (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) ∈ Fin
8 hashfun 13786 . . . . . . . . . 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 234 . . . . . . . 8 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))) = (♯‘dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))))
11 dmmptg 6089 . . . . . . . . . . 11 (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ V → dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) = (0..^((♯‘𝐴) + (♯‘𝐵))))
12 fvex 6676 . . . . . . . . . . . . 13 (𝐴𝑥) ∈ V
13 fvex 6676 . . . . . . . . . . . . 13 (𝐵‘(𝑥 − (♯‘𝐴))) ∈ V
1412, 13ifex 4511 . . . . . . . . . . . 12 if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ V
1514a1i 11 . . . . . . . . . . 11 (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) → if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ V)
1611, 15mprg 3149 . . . . . . . . . 10 dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) = (0..^((♯‘𝐴) + (♯‘𝐵)))
1716fveq2i 6666 . . . . . . . . 9 (♯‘dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))) = (♯‘(0..^((♯‘𝐴) + (♯‘𝐵))))
18 lencl 13871 . . . . . . . . . . 11 (𝐴 ∈ Word V → (♯‘𝐴) ∈ ℕ0)
19 lencl 13871 . . . . . . . . . . 11 (𝐵 ∈ Word V → (♯‘𝐵) ∈ ℕ0)
20 nn0addcl 11920 . . . . . . . . . . 11 (((♯‘𝐴) ∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) → ((♯‘𝐴) + (♯‘𝐵)) ∈ ℕ0)
2118, 19, 20syl2an 595 . . . . . . . . . 10 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((♯‘𝐴) + (♯‘𝐵)) ∈ ℕ0)
22 hashfzo0 13779 . . . . . . . . . 10 (((♯‘𝐴) + (♯‘𝐵)) ∈ ℕ0 → (♯‘(0..^((♯‘𝐴) + (♯‘𝐵)))) = ((♯‘𝐴) + (♯‘𝐵)))
2321, 22syl 17 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘(0..^((♯‘𝐴) + (♯‘𝐵)))) = ((♯‘𝐴) + (♯‘𝐵)))
2417, 23syl5eq 2865 . . . . . . . 8 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘dom (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))) = ((♯‘𝐴) + (♯‘𝐵)))
2510, 24eqtrd 2853 . . . . . . 7 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))) = ((♯‘𝐴) + (♯‘𝐵)))
2625oveq2d 7161 . . . . . 6 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (0..^(♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))))) = (0..^((♯‘𝐴) + (♯‘𝐵))))
2726feq2d 6493 . . . . 5 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^(♯‘(𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))))⟶𝑆 ↔ (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^((♯‘𝐴) + (♯‘𝐵)))⟶𝑆))
28 eqid 2818 . . . . . . 7 (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))) = (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))))
2928fmpt 6866 . . . . . 6 (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 ↔ (𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^((♯‘𝐴) + (♯‘𝐵)))⟶𝑆)
30 simpl 483 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → 𝐴 ∈ Word V)
31 nn0cn 11895 . . . . . . . . . . . . . . . . . 18 ((♯‘𝐴) ∈ ℕ0 → (♯‘𝐴) ∈ ℂ)
32 nn0cn 11895 . . . . . . . . . . . . . . . . . 18 ((♯‘𝐵) ∈ ℕ0 → (♯‘𝐵) ∈ ℂ)
33 addcom 10814 . . . . . . . . . . . . . . . . . 18 (((♯‘𝐴) ∈ ℂ ∧ (♯‘𝐵) ∈ ℂ) → ((♯‘𝐴) + (♯‘𝐵)) = ((♯‘𝐵) + (♯‘𝐴)))
3431, 32, 33syl2an 595 . . . . . . . . . . . . . . . . 17 (((♯‘𝐴) ∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) → ((♯‘𝐴) + (♯‘𝐵)) = ((♯‘𝐵) + (♯‘𝐴)))
35 nn0z 11993 . . . . . . . . . . . . . . . . . . 19 ((♯‘𝐴) ∈ ℕ0 → (♯‘𝐴) ∈ ℤ)
3635anim1ci 615 . . . . . . . . . . . . . . . . . 18 (((♯‘𝐴) ∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) → ((♯‘𝐵) ∈ ℕ0 ∧ (♯‘𝐴) ∈ ℤ))
37 nn0pzuz 12293 . . . . . . . . . . . . . . . . . 18 (((♯‘𝐵) ∈ ℕ0 ∧ (♯‘𝐴) ∈ ℤ) → ((♯‘𝐵) + (♯‘𝐴)) ∈ (ℤ‘(♯‘𝐴)))
3836, 37syl 17 . . . . . . . . . . . . . . . . 17 (((♯‘𝐴) ∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) → ((♯‘𝐵) + (♯‘𝐴)) ∈ (ℤ‘(♯‘𝐴)))
3934, 38eqeltrd 2910 . . . . . . . . . . . . . . . 16 (((♯‘𝐴) ∈ ℕ0 ∧ (♯‘𝐵) ∈ ℕ0) → ((♯‘𝐴) + (♯‘𝐵)) ∈ (ℤ‘(♯‘𝐴)))
4018, 19, 39syl2an 595 . . . . . . . . . . . . . . 15 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((♯‘𝐴) + (♯‘𝐵)) ∈ (ℤ‘(♯‘𝐴)))
41 fzoss2 13053 . . . . . . . . . . . . . . 15 (((♯‘𝐴) + (♯‘𝐵)) ∈ (ℤ‘(♯‘𝐴)) → (0..^(♯‘𝐴)) ⊆ (0..^((♯‘𝐴) + (♯‘𝐵))))
4240, 41syl 17 . . . . . . . . . . . . . 14 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (0..^(♯‘𝐴)) ⊆ (0..^((♯‘𝐴) + (♯‘𝐵))))
4342sselda 3964 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐴))) → 𝑦 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))))
44 eleq1 2897 . . . . . . . . . . . . . . . 16 (𝑥 = 𝑦 → (𝑥 ∈ (0..^(♯‘𝐴)) ↔ 𝑦 ∈ (0..^(♯‘𝐴))))
45 fveq2 6663 . . . . . . . . . . . . . . . 16 (𝑥 = 𝑦 → (𝐴𝑥) = (𝐴𝑦))
46 fvoveq1 7168 . . . . . . . . . . . . . . . 16 (𝑥 = 𝑦 → (𝐵‘(𝑥 − (♯‘𝐴))) = (𝐵‘(𝑦 − (♯‘𝐴))))
4744, 45, 46ifbieq12d 4490 . . . . . . . . . . . . . . 15 (𝑥 = 𝑦 → if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) = if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))))
4847eleq1d 2894 . . . . . . . . . . . . . 14 (𝑥 = 𝑦 → (if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 ↔ if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) ∈ 𝑆))
4948rspcv 3615 . . . . . . . . . . . . 13 (𝑦 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) ∈ 𝑆))
5043, 49syl 17 . . . . . . . . . . . 12 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐴))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) ∈ 𝑆))
51 iftrue 4469 . . . . . . . . . . . . . 14 (𝑦 ∈ (0..^(♯‘𝐴)) → if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) = (𝐴𝑦))
5251adantl 482 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐴))) → if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) = (𝐴𝑦))
5352eleq1d 2894 . . . . . . . . . . . 12 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐴))) → (if(𝑦 ∈ (0..^(♯‘𝐴)), (𝐴𝑦), (𝐵‘(𝑦 − (♯‘𝐴)))) ∈ 𝑆 ↔ (𝐴𝑦) ∈ 𝑆))
5450, 53sylibd 240 . . . . . . . . . . 11 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐴))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → (𝐴𝑦) ∈ 𝑆))
5554impancom 452 . . . . . . . . . 10 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → (𝑦 ∈ (0..^(♯‘𝐴)) → (𝐴𝑦) ∈ 𝑆))
5655ralrimiv 3178 . . . . . . . . 9 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → ∀𝑦 ∈ (0..^(♯‘𝐴))(𝐴𝑦) ∈ 𝑆)
57 iswrdsymb 13869 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ ∀𝑦 ∈ (0..^(♯‘𝐴))(𝐴𝑦) ∈ 𝑆) → 𝐴 ∈ Word 𝑆)
5830, 56, 57syl2an2r 681 . . . . . . . 8 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → 𝐴 ∈ Word 𝑆)
59 simpr 485 . . . . . . . . 9 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → 𝐵 ∈ Word V)
60 simpr 485 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → 𝑦 ∈ (0..^(♯‘𝐵)))
6118adantr 481 . . . . . . . . . . . . . . . 16 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘𝐴) ∈ ℕ0)
6261adantr 481 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (♯‘𝐴) ∈ ℕ0)
63 elincfzoext 13083 . . . . . . . . . . . . . . 15 ((𝑦 ∈ (0..^(♯‘𝐵)) ∧ (♯‘𝐴) ∈ ℕ0) → (𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐵) + (♯‘𝐴))))
6460, 62, 63syl2anc 584 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐵) + (♯‘𝐴))))
6518nn0cnd 11945 . . . . . . . . . . . . . . . . . 18 (𝐴 ∈ Word V → (♯‘𝐴) ∈ ℂ)
6619nn0cnd 11945 . . . . . . . . . . . . . . . . . 18 (𝐵 ∈ Word V → (♯‘𝐵) ∈ ℂ)
6765, 66, 33syl2an 595 . . . . . . . . . . . . . . . . 17 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((♯‘𝐴) + (♯‘𝐵)) = ((♯‘𝐵) + (♯‘𝐴)))
6867oveq2d 7161 . . . . . . . . . . . . . . . 16 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (0..^((♯‘𝐴) + (♯‘𝐵))) = (0..^((♯‘𝐵) + (♯‘𝐴))))
6968eleq2d 2895 . . . . . . . . . . . . . . 15 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↔ (𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐵) + (♯‘𝐴)))))
7069adantr 481 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ((𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↔ (𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐵) + (♯‘𝐴)))))
7164, 70mpbird 258 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐴) + (♯‘𝐵))))
72 eleq1 2897 . . . . . . . . . . . . . . . 16 (𝑥 = (𝑦 + (♯‘𝐴)) → (𝑥 ∈ (0..^(♯‘𝐴)) ↔ (𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴))))
73 fveq2 6663 . . . . . . . . . . . . . . . 16 (𝑥 = (𝑦 + (♯‘𝐴)) → (𝐴𝑥) = (𝐴‘(𝑦 + (♯‘𝐴))))
74 fvoveq1 7168 . . . . . . . . . . . . . . . 16 (𝑥 = (𝑦 + (♯‘𝐴)) → (𝐵‘(𝑥 − (♯‘𝐴))) = (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))))
7572, 73, 74ifbieq12d 4490 . . . . . . . . . . . . . . 15 (𝑥 = (𝑦 + (♯‘𝐴)) → if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) = if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))))
7675eleq1d 2894 . . . . . . . . . . . . . 14 (𝑥 = (𝑦 + (♯‘𝐴)) → (if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 ↔ if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) ∈ 𝑆))
7776rspcv 3615 . . . . . . . . . . . . 13 ((𝑦 + (♯‘𝐴)) ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) ∈ 𝑆))
7871, 77syl 17 . . . . . . . . . . . 12 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) ∈ 𝑆))
7918nn0red 11944 . . . . . . . . . . . . . . . . . . . 20 (𝐴 ∈ Word V → (♯‘𝐴) ∈ ℝ)
8079adantr 481 . . . . . . . . . . . . . . . . . . 19 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘𝐴) ∈ ℝ)
8180adantr 481 . . . . . . . . . . . . . . . . . 18 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (♯‘𝐴) ∈ ℝ)
82 elfzoelz 13026 . . . . . . . . . . . . . . . . . . . . . 22 (𝑦 ∈ (0..^(♯‘𝐵)) → 𝑦 ∈ ℤ)
8382zred 12075 . . . . . . . . . . . . . . . . . . . . 21 (𝑦 ∈ (0..^(♯‘𝐵)) → 𝑦 ∈ ℝ)
8483adantr 481 . . . . . . . . . . . . . . . . . . . 20 ((𝑦 ∈ (0..^(♯‘𝐵)) ∧ (𝐴 ∈ Word V ∧ 𝐵 ∈ Word V)) → 𝑦 ∈ ℝ)
8580adantl 482 . . . . . . . . . . . . . . . . . . . 20 ((𝑦 ∈ (0..^(♯‘𝐵)) ∧ (𝐴 ∈ Word V ∧ 𝐵 ∈ Word V)) → (♯‘𝐴) ∈ ℝ)
8684, 85readdcld 10658 . . . . . . . . . . . . . . . . . . 19 ((𝑦 ∈ (0..^(♯‘𝐵)) ∧ (𝐴 ∈ Word V ∧ 𝐵 ∈ Word V)) → (𝑦 + (♯‘𝐴)) ∈ ℝ)
8786ancoms 459 . . . . . . . . . . . . . . . . . 18 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (𝑦 + (♯‘𝐴)) ∈ ℝ)
88 elfzole1 13034 . . . . . . . . . . . . . . . . . . . 20 (𝑦 ∈ (0..^(♯‘𝐵)) → 0 ≤ 𝑦)
8988adantl 482 . . . . . . . . . . . . . . . . . . 19 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → 0 ≤ 𝑦)
90 addge02 11139 . . . . . . . . . . . . . . . . . . . 20 (((♯‘𝐴) ∈ ℝ ∧ 𝑦 ∈ ℝ) → (0 ≤ 𝑦 ↔ (♯‘𝐴) ≤ (𝑦 + (♯‘𝐴))))
9180, 83, 90syl2an 595 . . . . . . . . . . . . . . . . . . 19 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (0 ≤ 𝑦 ↔ (♯‘𝐴) ≤ (𝑦 + (♯‘𝐴))))
9289, 91mpbid 233 . . . . . . . . . . . . . . . . . 18 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (♯‘𝐴) ≤ (𝑦 + (♯‘𝐴)))
9381, 87, 92lensymd 10779 . . . . . . . . . . . . . . . . 17 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ¬ (𝑦 + (♯‘𝐴)) < (♯‘𝐴))
9493intn3an3d 1472 . . . . . . . . . . . . . . . 16 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ¬ ((𝑦 + (♯‘𝐴)) ∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ ∧ (𝑦 + (♯‘𝐴)) < (♯‘𝐴)))
95 elfzo0 13066 . . . . . . . . . . . . . . . 16 ((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)) ↔ ((𝑦 + (♯‘𝐴)) ∈ ℕ0 ∧ (♯‘𝐴) ∈ ℕ ∧ (𝑦 + (♯‘𝐴)) < (♯‘𝐴)))
9694, 95sylnibr 330 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ¬ (𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)))
9796iffalsed 4474 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) = (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))))
9897eleq1d 2894 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) ∈ 𝑆 ↔ (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))) ∈ 𝑆))
9982zcnd 12076 . . . . . . . . . . . . . . . . 17 (𝑦 ∈ (0..^(♯‘𝐵)) → 𝑦 ∈ ℂ)
10065adantr 481 . . . . . . . . . . . . . . . . 17 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (♯‘𝐴) ∈ ℂ)
101 pncan 10880 . . . . . . . . . . . . . . . . 17 ((𝑦 ∈ ℂ ∧ (♯‘𝐴) ∈ ℂ) → ((𝑦 + (♯‘𝐴)) − (♯‘𝐴)) = 𝑦)
10299, 100, 101syl2anr 596 . . . . . . . . . . . . . . . 16 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ((𝑦 + (♯‘𝐴)) − (♯‘𝐴)) = 𝑦)
103102fveq2d 6667 . . . . . . . . . . . . . . 15 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))) = (𝐵𝑦))
104103eleq1d 2894 . . . . . . . . . . . . . 14 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ((𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))) ∈ 𝑆 ↔ (𝐵𝑦) ∈ 𝑆))
105104biimpd 230 . . . . . . . . . . . . 13 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → ((𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴))) ∈ 𝑆 → (𝐵𝑦) ∈ 𝑆))
10698, 105sylbid 241 . . . . . . . . . . . 12 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (if((𝑦 + (♯‘𝐴)) ∈ (0..^(♯‘𝐴)), (𝐴‘(𝑦 + (♯‘𝐴))), (𝐵‘((𝑦 + (♯‘𝐴)) − (♯‘𝐴)))) ∈ 𝑆 → (𝐵𝑦) ∈ 𝑆))
10778, 106syld 47 . . . . . . . . . . 11 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ 𝑦 ∈ (0..^(♯‘𝐵))) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → (𝐵𝑦) ∈ 𝑆))
108107impancom 452 . . . . . . . . . 10 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → (𝑦 ∈ (0..^(♯‘𝐵)) → (𝐵𝑦) ∈ 𝑆))
109108ralrimiv 3178 . . . . . . . . 9 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → ∀𝑦 ∈ (0..^(♯‘𝐵))(𝐵𝑦) ∈ 𝑆)
110 iswrdsymb 13869 . . . . . . . . 9 ((𝐵 ∈ Word V ∧ ∀𝑦 ∈ (0..^(♯‘𝐵))(𝐵𝑦) ∈ 𝑆) → 𝐵 ∈ Word 𝑆)
11159, 109, 110syl2an2r 681 . . . . . . . 8 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → 𝐵 ∈ Word 𝑆)
11258, 111jca 512 . . . . . . 7 (((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) ∧ ∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆) → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆))
113112ex 413 . . . . . 6 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → (∀𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵)))if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴)))) ∈ 𝑆 → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
11429, 113syl5bir 244 . . . . 5 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝑥 ∈ (0..^((♯‘𝐴) + (♯‘𝐵))) ↦ if(𝑥 ∈ (0..^(♯‘𝐴)), (𝐴𝑥), (𝐵‘(𝑥 − (♯‘𝐴))))):(0..^((♯‘𝐴) + (♯‘𝐵)))⟶𝑆 → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
11527, 114sylbid 241 . . . 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 241 . 2 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝐴 ++ 𝐵) ∈ Word 𝑆 → (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
118 ccatcl 13914 . 2 ((𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆) → (𝐴 ++ 𝐵) ∈ Word 𝑆)
119117, 118impbid1 226 1 ((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝐴 ++ 𝐵) ∈ Word 𝑆 ↔ (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 207  wa 396  w3a 1079   = wceq 1528  wcel 2105  wral 3135  Vcvv 3492  wss 3933  ifcif 4463   class class class wbr 5057  cmpt 5137  dom cdm 5548  Fun wfun 6342  wf 6344  cfv 6348  (class class class)co 7145  Fincfn 8497  cc 10523  cr 10524  0cc0 10525   + caddc 10528   < clt 10663  cle 10664  cmin 10858  cn 11626  0cn0 11885  cz 11969  cuz 12231  ..^cfzo 13021  chash 13678  Word cword 13849   ++ cconcat 13910
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1787  ax-4 1801  ax-5 1902  ax-6 1961  ax-7 2006  ax-8 2107  ax-9 2115  ax-10 2136  ax-11 2151  ax-12 2167  ax-ext 2790  ax-rep 5181  ax-sep 5194  ax-nul 5201  ax-pow 5257  ax-pr 5320  ax-un 7450  ax-cnex 10581  ax-resscn 10582  ax-1cn 10583  ax-icn 10584  ax-addcl 10585  ax-addrcl 10586  ax-mulcl 10587  ax-mulrcl 10588  ax-mulcom 10589  ax-addass 10590  ax-mulass 10591  ax-distr 10592  ax-i2m1 10593  ax-1ne0 10594  ax-1rid 10595  ax-rnegex 10596  ax-rrecex 10597  ax-cnre 10598  ax-pre-lttri 10599  ax-pre-lttrn 10600  ax-pre-ltadd 10601  ax-pre-mulgt0 10602
This theorem depends on definitions:  df-bi 208  df-an 397  df-or 842  df-3or 1080  df-3an 1081  df-tru 1531  df-ex 1772  df-nf 1776  df-sb 2061  df-mo 2615  df-eu 2647  df-clab 2797  df-cleq 2811  df-clel 2890  df-nfc 2960  df-ne 3014  df-nel 3121  df-ral 3140  df-rex 3141  df-reu 3142  df-rmo 3143  df-rab 3144  df-v 3494  df-sbc 3770  df-csb 3881  df-dif 3936  df-un 3938  df-in 3940  df-ss 3949  df-pss 3951  df-nul 4289  df-if 4464  df-pw 4537  df-sn 4558  df-pr 4560  df-tp 4562  df-op 4564  df-uni 4831  df-int 4868  df-iun 4912  df-br 5058  df-opab 5120  df-mpt 5138  df-tr 5164  df-id 5453  df-eprel 5458  df-po 5467  df-so 5468  df-fr 5507  df-we 5509  df-xp 5554  df-rel 5555  df-cnv 5556  df-co 5557  df-dm 5558  df-rn 5559  df-res 5560  df-ima 5561  df-pred 6141  df-ord 6187  df-on 6188  df-lim 6189  df-suc 6190  df-iota 6307  df-fun 6350  df-fn 6351  df-f 6352  df-f1 6353  df-fo 6354  df-f1o 6355  df-fv 6356  df-riota 7103  df-ov 7148  df-oprab 7149  df-mpo 7150  df-om 7570  df-1st 7678  df-2nd 7679  df-wrecs 7936  df-recs 7997  df-rdg 8035  df-1o 8091  df-oadd 8095  df-er 8278  df-en 8498  df-dom 8499  df-sdom 8500  df-fin 8501  df-dju 9318  df-card 9356  df-pnf 10665  df-mnf 10666  df-xr 10667  df-ltxr 10668  df-le 10669  df-sub 10860  df-neg 10861  df-nn 11627  df-2 11688  df-n0 11886  df-xnn0 11956  df-z 11970  df-uz 12232  df-fz 12881  df-fzo 13022  df-hash 13679  df-word 13850  df-concat 13911
This theorem is referenced by:  ccatrcl1  13936  ccats1alpha  13961  clwwlkwwlksb  27760
  Copyright terms: Public domain W3C validator