ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  swrdccat3blem GIF version

Theorem swrdccat3blem 11456
Description: Lemma for swrdccat3b 11457. (Contributed by AV, 30-May-2018.)
Hypothesis
Ref Expression
swrdccatin2.l 𝐿 = (♯‘𝐴)
Assertion
Ref Expression
swrdccat3blem ((((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...(𝐿 + (♯‘𝐵)))) ∧ (𝐿 + (♯‘𝐵)) ≤ 𝐿) → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩))

Proof of Theorem swrdccat3blem
StepHypRef Expression
1 lencl 11253 . . . . . . . 8 (𝐵 ∈ Word 𝑉 → (♯‘𝐵) ∈ ℕ0)
2 nn0le0eq0 9541 . . . . . . . . 9 ((♯‘𝐵) ∈ ℕ0 → ((♯‘𝐵) ≤ 0 ↔ (♯‘𝐵) = 0))
32biimpd 144 . . . . . . . 8 ((♯‘𝐵) ∈ ℕ0 → ((♯‘𝐵) ≤ 0 → (♯‘𝐵) = 0))
41, 3syl 14 . . . . . . 7 (𝐵 ∈ Word 𝑉 → ((♯‘𝐵) ≤ 0 → (♯‘𝐵) = 0))
54adantl 277 . . . . . 6 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → ((♯‘𝐵) ≤ 0 → (♯‘𝐵) = 0))
6 wrdfin 11268 . . . . . . . . . . . 12 (𝐵 ∈ Word 𝑉𝐵 ∈ Fin)
7 fihasheq0 11181 . . . . . . . . . . . 12 (𝐵 ∈ Fin → ((♯‘𝐵) = 0 ↔ 𝐵 = ∅))
86, 7syl 14 . . . . . . . . . . 11 (𝐵 ∈ Word 𝑉 → ((♯‘𝐵) = 0 ↔ 𝐵 = ∅))
98biimpd 144 . . . . . . . . . 10 (𝐵 ∈ Word 𝑉 → ((♯‘𝐵) = 0 → 𝐵 = ∅))
109adantl 277 . . . . . . . . 9 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → ((♯‘𝐵) = 0 → 𝐵 = ∅))
1110imp 124 . . . . . . . 8 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (♯‘𝐵) = 0) → 𝐵 = ∅)
12 lencl 11253 . . . . . . . . . . . . . . . 16 (𝐴 ∈ Word 𝑉 → (♯‘𝐴) ∈ ℕ0)
13 swrdccatin2.l . . . . . . . . . . . . . . . . . . 19 𝐿 = (♯‘𝐴)
1413eqcomi 2238 . . . . . . . . . . . . . . . . . 18 (♯‘𝐴) = 𝐿
1514eleq1i 2300 . . . . . . . . . . . . . . . . 17 ((♯‘𝐴) ∈ ℕ0𝐿 ∈ ℕ0)
16 nn0re 9522 . . . . . . . . . . . . . . . . . 18 (𝐿 ∈ ℕ0𝐿 ∈ ℝ)
17 elfz2nn0 10468 . . . . . . . . . . . . . . . . . . 19 (𝑀 ∈ (0...(𝐿 + 0)) ↔ (𝑀 ∈ ℕ0 ∧ (𝐿 + 0) ∈ ℕ0𝑀 ≤ (𝐿 + 0)))
18 recn 8276 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (𝐿 ∈ ℝ → 𝐿 ∈ ℂ)
1918addridd 8438 . . . . . . . . . . . . . . . . . . . . . . . . 25 (𝐿 ∈ ℝ → (𝐿 + 0) = 𝐿)
2019breq2d 4126 . . . . . . . . . . . . . . . . . . . . . . . 24 (𝐿 ∈ ℝ → (𝑀 ≤ (𝐿 + 0) ↔ 𝑀𝐿))
21 nn0re 9522 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 (𝑀 ∈ ℕ0𝑀 ∈ ℝ)
2221anim1i 340 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 ((𝑀 ∈ ℕ0𝐿 ∈ ℝ) → (𝑀 ∈ ℝ ∧ 𝐿 ∈ ℝ))
2322ancoms 268 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 ((𝐿 ∈ ℝ ∧ 𝑀 ∈ ℕ0) → (𝑀 ∈ ℝ ∧ 𝐿 ∈ ℝ))
24 letri3 8370 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 ((𝑀 ∈ ℝ ∧ 𝐿 ∈ ℝ) → (𝑀 = 𝐿 ↔ (𝑀𝐿𝐿𝑀)))
2523, 24syl 14 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ((𝐿 ∈ ℝ ∧ 𝑀 ∈ ℕ0) → (𝑀 = 𝐿 ↔ (𝑀𝐿𝐿𝑀)))
2625biimprd 158 . . . . . . . . . . . . . . . . . . . . . . . . . 26 ((𝐿 ∈ ℝ ∧ 𝑀 ∈ ℕ0) → ((𝑀𝐿𝐿𝑀) → 𝑀 = 𝐿))
2726exp4b 367 . . . . . . . . . . . . . . . . . . . . . . . . 25 (𝐿 ∈ ℝ → (𝑀 ∈ ℕ0 → (𝑀𝐿 → (𝐿𝑀𝑀 = 𝐿))))
2827com23 78 . . . . . . . . . . . . . . . . . . . . . . . 24 (𝐿 ∈ ℝ → (𝑀𝐿 → (𝑀 ∈ ℕ0 → (𝐿𝑀𝑀 = 𝐿))))
2920, 28sylbid 150 . . . . . . . . . . . . . . . . . . . . . . 23 (𝐿 ∈ ℝ → (𝑀 ≤ (𝐿 + 0) → (𝑀 ∈ ℕ0 → (𝐿𝑀𝑀 = 𝐿))))
3029com3l 81 . . . . . . . . . . . . . . . . . . . . . 22 (𝑀 ≤ (𝐿 + 0) → (𝑀 ∈ ℕ0 → (𝐿 ∈ ℝ → (𝐿𝑀𝑀 = 𝐿))))
3130impcom 125 . . . . . . . . . . . . . . . . . . . . 21 ((𝑀 ∈ ℕ0𝑀 ≤ (𝐿 + 0)) → (𝐿 ∈ ℝ → (𝐿𝑀𝑀 = 𝐿)))
32313adant2 1043 . . . . . . . . . . . . . . . . . . . 20 ((𝑀 ∈ ℕ0 ∧ (𝐿 + 0) ∈ ℕ0𝑀 ≤ (𝐿 + 0)) → (𝐿 ∈ ℝ → (𝐿𝑀𝑀 = 𝐿)))
3332com12 30 . . . . . . . . . . . . . . . . . . 19 (𝐿 ∈ ℝ → ((𝑀 ∈ ℕ0 ∧ (𝐿 + 0) ∈ ℕ0𝑀 ≤ (𝐿 + 0)) → (𝐿𝑀𝑀 = 𝐿)))
3417, 33biimtrid 152 . . . . . . . . . . . . . . . . . 18 (𝐿 ∈ ℝ → (𝑀 ∈ (0...(𝐿 + 0)) → (𝐿𝑀𝑀 = 𝐿)))
3516, 34syl 14 . . . . . . . . . . . . . . . . 17 (𝐿 ∈ ℕ0 → (𝑀 ∈ (0...(𝐿 + 0)) → (𝐿𝑀𝑀 = 𝐿)))
3615, 35sylbi 121 . . . . . . . . . . . . . . . 16 ((♯‘𝐴) ∈ ℕ0 → (𝑀 ∈ (0...(𝐿 + 0)) → (𝐿𝑀𝑀 = 𝐿)))
3712, 36syl 14 . . . . . . . . . . . . . . 15 (𝐴 ∈ Word 𝑉 → (𝑀 ∈ (0...(𝐿 + 0)) → (𝐿𝑀𝑀 = 𝐿)))
3837imp 124 . . . . . . . . . . . . . 14 ((𝐴 ∈ Word 𝑉𝑀 ∈ (0...(𝐿 + 0))) → (𝐿𝑀𝑀 = 𝐿))
39 0ex 4242 . . . . . . . . . . . . . . . . . . 19 ∅ ∈ V
40 0z 9605 . . . . . . . . . . . . . . . . . . 19 0 ∈ ℤ
41 swrd00g 11366 . . . . . . . . . . . . . . . . . . 19 ((∅ ∈ V ∧ 0 ∈ ℤ) → (∅ substr ⟨0, 0⟩) = ∅)
4239, 40, 41mp2an 426 . . . . . . . . . . . . . . . . . 18 (∅ substr ⟨0, 0⟩) = ∅
4313, 12eqeltrid 2321 . . . . . . . . . . . . . . . . . . . 20 (𝐴 ∈ Word 𝑉𝐿 ∈ ℕ0)
4443nn0zd 9716 . . . . . . . . . . . . . . . . . . 19 (𝐴 ∈ Word 𝑉𝐿 ∈ ℤ)
45 swrd00g 11366 . . . . . . . . . . . . . . . . . . 19 ((𝐴 ∈ Word 𝑉𝐿 ∈ ℤ) → (𝐴 substr ⟨𝐿, 𝐿⟩) = ∅)
4644, 45mpdan 421 . . . . . . . . . . . . . . . . . 18 (𝐴 ∈ Word 𝑉 → (𝐴 substr ⟨𝐿, 𝐿⟩) = ∅)
4742, 46eqtr4id 2286 . . . . . . . . . . . . . . . . 17 (𝐴 ∈ Word 𝑉 → (∅ substr ⟨0, 0⟩) = (𝐴 substr ⟨𝐿, 𝐿⟩))
48 nn0cn 9523 . . . . . . . . . . . . . . . . . . . . 21 (𝐿 ∈ ℕ0𝐿 ∈ ℂ)
4948subidd 8588 . . . . . . . . . . . . . . . . . . . 20 (𝐿 ∈ ℕ0 → (𝐿𝐿) = 0)
5049opeq1d 3894 . . . . . . . . . . . . . . . . . . 19 (𝐿 ∈ ℕ0 → ⟨(𝐿𝐿), 0⟩ = ⟨0, 0⟩)
5150oveq2d 6074 . . . . . . . . . . . . . . . . . 18 (𝐿 ∈ ℕ0 → (∅ substr ⟨(𝐿𝐿), 0⟩) = (∅ substr ⟨0, 0⟩))
5243, 51syl 14 . . . . . . . . . . . . . . . . 17 (𝐴 ∈ Word 𝑉 → (∅ substr ⟨(𝐿𝐿), 0⟩) = (∅ substr ⟨0, 0⟩))
5348addridd 8438 . . . . . . . . . . . . . . . . . . . 20 (𝐿 ∈ ℕ0 → (𝐿 + 0) = 𝐿)
5453opeq2d 3895 . . . . . . . . . . . . . . . . . . 19 (𝐿 ∈ ℕ0 → ⟨𝐿, (𝐿 + 0)⟩ = ⟨𝐿, 𝐿⟩)
5554oveq2d 6074 . . . . . . . . . . . . . . . . . 18 (𝐿 ∈ ℕ0 → (𝐴 substr ⟨𝐿, (𝐿 + 0)⟩) = (𝐴 substr ⟨𝐿, 𝐿⟩))
5643, 55syl 14 . . . . . . . . . . . . . . . . 17 (𝐴 ∈ Word 𝑉 → (𝐴 substr ⟨𝐿, (𝐿 + 0)⟩) = (𝐴 substr ⟨𝐿, 𝐿⟩))
5747, 52, 563eqtr4d 2277 . . . . . . . . . . . . . . . 16 (𝐴 ∈ Word 𝑉 → (∅ substr ⟨(𝐿𝐿), 0⟩) = (𝐴 substr ⟨𝐿, (𝐿 + 0)⟩))
58 oveq1 6065 . . . . . . . . . . . . . . . . . . 19 (𝑀 = 𝐿 → (𝑀𝐿) = (𝐿𝐿))
5958opeq1d 3894 . . . . . . . . . . . . . . . . . 18 (𝑀 = 𝐿 → ⟨(𝑀𝐿), 0⟩ = ⟨(𝐿𝐿), 0⟩)
6059oveq2d 6074 . . . . . . . . . . . . . . . . 17 (𝑀 = 𝐿 → (∅ substr ⟨(𝑀𝐿), 0⟩) = (∅ substr ⟨(𝐿𝐿), 0⟩))
61 opeq1 3888 . . . . . . . . . . . . . . . . . 18 (𝑀 = 𝐿 → ⟨𝑀, (𝐿 + 0)⟩ = ⟨𝐿, (𝐿 + 0)⟩)
6261oveq2d 6074 . . . . . . . . . . . . . . . . 17 (𝑀 = 𝐿 → (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩) = (𝐴 substr ⟨𝐿, (𝐿 + 0)⟩))
6360, 62eqeq12d 2249 . . . . . . . . . . . . . . . 16 (𝑀 = 𝐿 → ((∅ substr ⟨(𝑀𝐿), 0⟩) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩) ↔ (∅ substr ⟨(𝐿𝐿), 0⟩) = (𝐴 substr ⟨𝐿, (𝐿 + 0)⟩)))
6457, 63syl5ibrcom 157 . . . . . . . . . . . . . . 15 (𝐴 ∈ Word 𝑉 → (𝑀 = 𝐿 → (∅ substr ⟨(𝑀𝐿), 0⟩) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩)))
6564adantr 276 . . . . . . . . . . . . . 14 ((𝐴 ∈ Word 𝑉𝑀 ∈ (0...(𝐿 + 0))) → (𝑀 = 𝐿 → (∅ substr ⟨(𝑀𝐿), 0⟩) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩)))
6638, 65syld 45 . . . . . . . . . . . . 13 ((𝐴 ∈ Word 𝑉𝑀 ∈ (0...(𝐿 + 0))) → (𝐿𝑀 → (∅ substr ⟨(𝑀𝐿), 0⟩) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩)))
6766imp 124 . . . . . . . . . . . 12 (((𝐴 ∈ Word 𝑉𝑀 ∈ (0...(𝐿 + 0))) ∧ 𝐿𝑀) → (∅ substr ⟨(𝑀𝐿), 0⟩) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩))
68 simpl 109 . . . . . . . . . . . . . . . 16 ((𝐴 ∈ Word 𝑉𝑀 ∈ (0...(𝐿 + 0))) → 𝐴 ∈ Word 𝑉)
69 elfzelz 10378 . . . . . . . . . . . . . . . . 17 (𝑀 ∈ (0...(𝐿 + 0)) → 𝑀 ∈ ℤ)
7069adantl 277 . . . . . . . . . . . . . . . 16 ((𝐴 ∈ Word 𝑉𝑀 ∈ (0...(𝐿 + 0))) → 𝑀 ∈ ℤ)
7144adantr 276 . . . . . . . . . . . . . . . 16 ((𝐴 ∈ Word 𝑉𝑀 ∈ (0...(𝐿 + 0))) → 𝐿 ∈ ℤ)
72 swrdclg 11367 . . . . . . . . . . . . . . . 16 ((𝐴 ∈ Word 𝑉𝑀 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉)
7368, 70, 71, 72syl3anc 1274 . . . . . . . . . . . . . . 15 ((𝐴 ∈ Word 𝑉𝑀 ∈ (0...(𝐿 + 0))) → (𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉)
74 ccatrid 11320 . . . . . . . . . . . . . . 15 ((𝐴 substr ⟨𝑀, 𝐿⟩) ∈ Word 𝑉 → ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ ∅) = (𝐴 substr ⟨𝑀, 𝐿⟩))
7573, 74syl 14 . . . . . . . . . . . . . 14 ((𝐴 ∈ Word 𝑉𝑀 ∈ (0...(𝐿 + 0))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ ∅) = (𝐴 substr ⟨𝑀, 𝐿⟩))
7615, 48sylbi 121 . . . . . . . . . . . . . . . . . . 19 ((♯‘𝐴) ∈ ℕ0𝐿 ∈ ℂ)
7712, 76syl 14 . . . . . . . . . . . . . . . . . 18 (𝐴 ∈ Word 𝑉𝐿 ∈ ℂ)
78 addrid 8427 . . . . . . . . . . . . . . . . . . 19 (𝐿 ∈ ℂ → (𝐿 + 0) = 𝐿)
7978eqcomd 2240 . . . . . . . . . . . . . . . . . 18 (𝐿 ∈ ℂ → 𝐿 = (𝐿 + 0))
8077, 79syl 14 . . . . . . . . . . . . . . . . 17 (𝐴 ∈ Word 𝑉𝐿 = (𝐿 + 0))
8180opeq2d 3895 . . . . . . . . . . . . . . . 16 (𝐴 ∈ Word 𝑉 → ⟨𝑀, 𝐿⟩ = ⟨𝑀, (𝐿 + 0)⟩)
8281oveq2d 6074 . . . . . . . . . . . . . . 15 (𝐴 ∈ Word 𝑉 → (𝐴 substr ⟨𝑀, 𝐿⟩) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩))
8382adantr 276 . . . . . . . . . . . . . 14 ((𝐴 ∈ Word 𝑉𝑀 ∈ (0...(𝐿 + 0))) → (𝐴 substr ⟨𝑀, 𝐿⟩) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩))
8475, 83eqtrd 2267 . . . . . . . . . . . . 13 ((𝐴 ∈ Word 𝑉𝑀 ∈ (0...(𝐿 + 0))) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ ∅) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩))
8584adantr 276 . . . . . . . . . . . 12 (((𝐴 ∈ Word 𝑉𝑀 ∈ (0...(𝐿 + 0))) ∧ ¬ 𝐿𝑀) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ ∅) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩))
86 zdcle 9671 . . . . . . . . . . . . 13 ((𝐿 ∈ ℤ ∧ 𝑀 ∈ ℤ) → DECID 𝐿𝑀)
8744, 69, 86syl2an 289 . . . . . . . . . . . 12 ((𝐴 ∈ Word 𝑉𝑀 ∈ (0...(𝐿 + 0))) → DECID 𝐿𝑀)
8867, 85, 87ifeqdadc 3659 . . . . . . . . . . 11 ((𝐴 ∈ Word 𝑉𝑀 ∈ (0...(𝐿 + 0))) → if(𝐿𝑀, (∅ substr ⟨(𝑀𝐿), 0⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ ∅)) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩))
8988ex 115 . . . . . . . . . 10 (𝐴 ∈ Word 𝑉 → (𝑀 ∈ (0...(𝐿 + 0)) → if(𝐿𝑀, (∅ substr ⟨(𝑀𝐿), 0⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ ∅)) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩)))
9089ad3antrrr 492 . . . . . . . . 9 ((((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (♯‘𝐵) = 0) ∧ 𝐵 = ∅) → (𝑀 ∈ (0...(𝐿 + 0)) → if(𝐿𝑀, (∅ substr ⟨(𝑀𝐿), 0⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ ∅)) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩)))
91 oveq2 6066 . . . . . . . . . . . . . 14 ((♯‘𝐵) = 0 → (𝐿 + (♯‘𝐵)) = (𝐿 + 0))
9291oveq2d 6074 . . . . . . . . . . . . 13 ((♯‘𝐵) = 0 → (0...(𝐿 + (♯‘𝐵))) = (0...(𝐿 + 0)))
9392eleq2d 2304 . . . . . . . . . . . 12 ((♯‘𝐵) = 0 → (𝑀 ∈ (0...(𝐿 + (♯‘𝐵))) ↔ 𝑀 ∈ (0...(𝐿 + 0))))
9493adantr 276 . . . . . . . . . . 11 (((♯‘𝐵) = 0 ∧ 𝐵 = ∅) → (𝑀 ∈ (0...(𝐿 + (♯‘𝐵))) ↔ 𝑀 ∈ (0...(𝐿 + 0))))
95 simpr 110 . . . . . . . . . . . . . 14 (((♯‘𝐵) = 0 ∧ 𝐵 = ∅) → 𝐵 = ∅)
96 opeq2 3889 . . . . . . . . . . . . . . 15 ((♯‘𝐵) = 0 → ⟨(𝑀𝐿), (♯‘𝐵)⟩ = ⟨(𝑀𝐿), 0⟩)
9796adantr 276 . . . . . . . . . . . . . 14 (((♯‘𝐵) = 0 ∧ 𝐵 = ∅) → ⟨(𝑀𝐿), (♯‘𝐵)⟩ = ⟨(𝑀𝐿), 0⟩)
9895, 97oveq12d 6076 . . . . . . . . . . . . 13 (((♯‘𝐵) = 0 ∧ 𝐵 = ∅) → (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩) = (∅ substr ⟨(𝑀𝐿), 0⟩))
99 oveq2 6066 . . . . . . . . . . . . . 14 (𝐵 = ∅ → ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵) = ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ ∅))
10099adantl 277 . . . . . . . . . . . . 13 (((♯‘𝐵) = 0 ∧ 𝐵 = ∅) → ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵) = ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ ∅))
10198, 100ifeq12d 3646 . . . . . . . . . . . 12 (((♯‘𝐵) = 0 ∧ 𝐵 = ∅) → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = if(𝐿𝑀, (∅ substr ⟨(𝑀𝐿), 0⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ ∅)))
10291opeq2d 3895 . . . . . . . . . . . . . 14 ((♯‘𝐵) = 0 → ⟨𝑀, (𝐿 + (♯‘𝐵))⟩ = ⟨𝑀, (𝐿 + 0)⟩)
103102oveq2d 6074 . . . . . . . . . . . . 13 ((♯‘𝐵) = 0 → (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩))
104103adantr 276 . . . . . . . . . . . 12 (((♯‘𝐵) = 0 ∧ 𝐵 = ∅) → (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩))
105101, 104eqeq12d 2249 . . . . . . . . . . 11 (((♯‘𝐵) = 0 ∧ 𝐵 = ∅) → (if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩) ↔ if(𝐿𝑀, (∅ substr ⟨(𝑀𝐿), 0⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ ∅)) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩)))
10694, 105imbi12d 234 . . . . . . . . . 10 (((♯‘𝐵) = 0 ∧ 𝐵 = ∅) → ((𝑀 ∈ (0...(𝐿 + (♯‘𝐵))) → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩)) ↔ (𝑀 ∈ (0...(𝐿 + 0)) → if(𝐿𝑀, (∅ substr ⟨(𝑀𝐿), 0⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ ∅)) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩))))
107106adantll 476 . . . . . . . . 9 ((((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (♯‘𝐵) = 0) ∧ 𝐵 = ∅) → ((𝑀 ∈ (0...(𝐿 + (♯‘𝐵))) → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩)) ↔ (𝑀 ∈ (0...(𝐿 + 0)) → if(𝐿𝑀, (∅ substr ⟨(𝑀𝐿), 0⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ ∅)) = (𝐴 substr ⟨𝑀, (𝐿 + 0)⟩))))
10890, 107mpbird 167 . . . . . . . 8 ((((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (♯‘𝐵) = 0) ∧ 𝐵 = ∅) → (𝑀 ∈ (0...(𝐿 + (♯‘𝐵))) → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩)))
10911, 108mpdan 421 . . . . . . 7 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ (♯‘𝐵) = 0) → (𝑀 ∈ (0...(𝐿 + (♯‘𝐵))) → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩)))
110109ex 115 . . . . . 6 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → ((♯‘𝐵) = 0 → (𝑀 ∈ (0...(𝐿 + (♯‘𝐵))) → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩))))
1115, 110syld 45 . . . . 5 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → ((♯‘𝐵) ≤ 0 → (𝑀 ∈ (0...(𝐿 + (♯‘𝐵))) → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩))))
112111com23 78 . . . 4 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → (𝑀 ∈ (0...(𝐿 + (♯‘𝐵))) → ((♯‘𝐵) ≤ 0 → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩))))
113112imp 124 . . 3 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...(𝐿 + (♯‘𝐵)))) → ((♯‘𝐵) ≤ 0 → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩)))
114113adantr 276 . 2 ((((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...(𝐿 + (♯‘𝐵)))) ∧ (𝐿 + (♯‘𝐵)) ≤ 𝐿) → ((♯‘𝐵) ≤ 0 → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩)))
11513eleq1i 2300 . . . . . . . 8 (𝐿 ∈ ℕ0 ↔ (♯‘𝐴) ∈ ℕ0)
116115, 16sylbir 135 . . . . . . 7 ((♯‘𝐴) ∈ ℕ0𝐿 ∈ ℝ)
11712, 116syl 14 . . . . . 6 (𝐴 ∈ Word 𝑉𝐿 ∈ ℝ)
1181nn0red 9571 . . . . . 6 (𝐵 ∈ Word 𝑉 → (♯‘𝐵) ∈ ℝ)
119 leaddle0 8768 . . . . . 6 ((𝐿 ∈ ℝ ∧ (♯‘𝐵) ∈ ℝ) → ((𝐿 + (♯‘𝐵)) ≤ 𝐿 ↔ (♯‘𝐵) ≤ 0))
120117, 118, 119syl2an 289 . . . . 5 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → ((𝐿 + (♯‘𝐵)) ≤ 𝐿 ↔ (♯‘𝐵) ≤ 0))
121 pm2.24 626 . . . . 5 ((♯‘𝐵) ≤ 0 → (¬ (♯‘𝐵) ≤ 0 → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩)))
122120, 121biimtrdi 163 . . . 4 ((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → ((𝐿 + (♯‘𝐵)) ≤ 𝐿 → (¬ (♯‘𝐵) ≤ 0 → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩))))
123122adantr 276 . . 3 (((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...(𝐿 + (♯‘𝐵)))) → ((𝐿 + (♯‘𝐵)) ≤ 𝐿 → (¬ (♯‘𝐵) ≤ 0 → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩))))
124123imp 124 . 2 ((((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...(𝐿 + (♯‘𝐵)))) ∧ (𝐿 + (♯‘𝐵)) ≤ 𝐿) → (¬ (♯‘𝐵) ≤ 0 → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩)))
1251ad3antlr 493 . . . . 5 ((((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...(𝐿 + (♯‘𝐵)))) ∧ (𝐿 + (♯‘𝐵)) ≤ 𝐿) → (♯‘𝐵) ∈ ℕ0)
126125nn0zd 9716 . . . 4 ((((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...(𝐿 + (♯‘𝐵)))) ∧ (𝐿 + (♯‘𝐵)) ≤ 𝐿) → (♯‘𝐵) ∈ ℤ)
127 zdcle 9671 . . . 4 (((♯‘𝐵) ∈ ℤ ∧ 0 ∈ ℤ) → DECID (♯‘𝐵) ≤ 0)
128126, 40, 127sylancl 413 . . 3 ((((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...(𝐿 + (♯‘𝐵)))) ∧ (𝐿 + (♯‘𝐵)) ≤ 𝐿) → DECID (♯‘𝐵) ≤ 0)
129 exmiddc 844 . . 3 (DECID (♯‘𝐵) ≤ 0 → ((♯‘𝐵) ≤ 0 ∨ ¬ (♯‘𝐵) ≤ 0))
130128, 129syl 14 . 2 ((((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...(𝐿 + (♯‘𝐵)))) ∧ (𝐿 + (♯‘𝐵)) ≤ 𝐿) → ((♯‘𝐵) ≤ 0 ∨ ¬ (♯‘𝐵) ≤ 0))
131114, 124, 130mpjaod 726 1 ((((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) ∧ 𝑀 ∈ (0...(𝐿 + (♯‘𝐵)))) ∧ (𝐿 + (♯‘𝐵)) ≤ 𝐿) → if(𝐿𝑀, (𝐵 substr ⟨(𝑀𝐿), (♯‘𝐵)⟩), ((𝐴 substr ⟨𝑀, 𝐿⟩) ++ 𝐵)) = (𝐴 substr ⟨𝑀, (𝐿 + (♯‘𝐵))⟩))
Colors of variables: wff set class
Syntax hints:  ¬ wn 3  wi 4  wa 104  wb 105  wo 716  DECID wdc 842  w3a 1005   = wceq 1398  wcel 2205  Vcvv 2815  c0 3512  ifcif 3624  cop 3697   class class class wbr 4114  cfv 5357  (class class class)co 6058  Fincfn 6988  cc 8141  cr 8142  0cc0 8143   + caddc 8146  cle 8325  cmin 8460  0cn0 9513  cz 9594  ...cfz 10361  chash 11163  Word cword 11249   ++ cconcat 11303   substr csubstr 11362
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 619  ax-in2 620  ax-io 717  ax-5 1496  ax-7 1497  ax-gen 1498  ax-ie1 1542  ax-ie2 1543  ax-8 1553  ax-10 1554  ax-11 1555  ax-i12 1556  ax-bndl 1558  ax-4 1559  ax-17 1575  ax-i9 1579  ax-ial 1583  ax-i5r 1584  ax-13 2207  ax-14 2208  ax-ext 2216  ax-coll 4230  ax-sep 4233  ax-nul 4241  ax-pow 4292  ax-pr 4327  ax-un 4559  ax-setind 4664  ax-iinf 4715  ax-cnex 8234  ax-resscn 8235  ax-1cn 8236  ax-1re 8237  ax-icn 8238  ax-addcl 8239  ax-addrcl 8240  ax-mulcl 8241  ax-addcom 8243  ax-addass 8245  ax-distr 8247  ax-i2m1 8248  ax-0lt1 8249  ax-0id 8251  ax-rnegex 8252  ax-cnre 8254  ax-pre-ltirr 8255  ax-pre-ltwlin 8256  ax-pre-lttrn 8257  ax-pre-apti 8258  ax-pre-ltadd 8259
This theorem depends on definitions:  df-bi 117  df-dc 843  df-3or 1006  df-3an 1007  df-tru 1401  df-fal 1404  df-nf 1510  df-sb 1812  df-eu 2085  df-mo 2086  df-clab 2221  df-cleq 2227  df-clel 2230  df-nfc 2375  df-ne 2415  df-nel 2510  df-ral 2527  df-rex 2528  df-reu 2529  df-rab 2531  df-v 2817  df-sbc 3046  df-csb 3142  df-dif 3216  df-un 3218  df-in 3220  df-ss 3227  df-nul 3513  df-if 3625  df-pw 3676  df-sn 3700  df-pr 3701  df-op 3703  df-uni 3920  df-int 3955  df-iun 3998  df-br 4115  df-opab 4177  df-mpt 4178  df-tr 4214  df-id 4419  df-iord 4492  df-on 4494  df-ilim 4495  df-suc 4497  df-iom 4718  df-xp 4760  df-rel 4761  df-cnv 4762  df-co 4763  df-dm 4764  df-rn 4765  df-res 4766  df-ima 4767  df-iota 5317  df-fun 5359  df-fn 5360  df-f 5361  df-f1 5362  df-fo 5363  df-f1o 5364  df-fv 5365  df-riota 6011  df-ov 6061  df-oprab 6062  df-mpo 6063  df-1st 6347  df-2nd 6348  df-recs 6549  df-frec 6635  df-1o 6660  df-er 6780  df-en 6989  df-dom 6990  df-fin 6991  df-pnf 8326  df-mnf 8327  df-xr 8328  df-ltxr 8329  df-le 8330  df-sub 8462  df-neg 8463  df-inn 9255  df-n0 9514  df-z 9595  df-uz 9872  df-fz 10362  df-fzo 10499  df-ihash 11164  df-word 11250  df-concat 11304  df-substr 11363
This theorem is referenced by:  swrdccat3b  11457
  Copyright terms: Public domain W3C validator