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

Theorem swrdnd 13852
Description: The value of the subword extractor is the empty set (undefined) if the range is not valid. (Contributed by Alexander van der Vekens, 16-Mar-2018.) (Proof shortened by AV, 2-May-2020.)
Assertion
Ref Expression
swrdnd ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))

Proof of Theorem swrdnd
Dummy variable 𝑖 is distinct from all other variables.
StepHypRef Expression
1 3orcomb 1087 . . . 4 ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) ↔ (𝐹 < 0 ∨ (♯‘𝑊) < 𝐿𝐿𝐹))
2 df-3or 1081 . . . 4 ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿𝐿𝐹) ↔ ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∨ 𝐿𝐹))
31, 2bitri 276 . . 3 ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) ↔ ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∨ 𝐿𝐹))
4 swrdlend 13851 . . . . . 6 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐿𝐹 → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
54com12 32 . . . . 5 (𝐿𝐹 → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
6 swrdval 13841 . . . . . . . . 9 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = if((𝐹..^𝐿) ⊆ dom 𝑊, (𝑖 ∈ (0..^(𝐿𝐹)) ↦ (𝑊‘(𝑖 + 𝐹))), ∅))
76adantl 482 . . . . . . . 8 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (𝑊 substr ⟨𝐹, 𝐿⟩) = if((𝐹..^𝐿) ⊆ dom 𝑊, (𝑖 ∈ (0..^(𝐿𝐹)) ↦ (𝑊‘(𝑖 + 𝐹))), ∅))
8 zre 11833 . . . . . . . . . . . . . . . . . 18 (𝐹 ∈ ℤ → 𝐹 ∈ ℝ)
9 0red 10490 . . . . . . . . . . . . . . . . . 18 (𝐹 ∈ ℤ → 0 ∈ ℝ)
108, 9ltnled 10634 . . . . . . . . . . . . . . . . 17 (𝐹 ∈ ℤ → (𝐹 < 0 ↔ ¬ 0 ≤ 𝐹))
11103ad2ant2 1127 . . . . . . . . . . . . . . . 16 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 < 0 ↔ ¬ 0 ≤ 𝐹))
12 lencl 13729 . . . . . . . . . . . . . . . . . . . 20 (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℕ0)
1312nn0red 11804 . . . . . . . . . . . . . . . . . . 19 (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℝ)
14 zre 11833 . . . . . . . . . . . . . . . . . . 19 (𝐿 ∈ ℤ → 𝐿 ∈ ℝ)
1513, 14anim12i 612 . . . . . . . . . . . . . . . . . 18 ((𝑊 ∈ Word 𝑉𝐿 ∈ ℤ) → ((♯‘𝑊) ∈ ℝ ∧ 𝐿 ∈ ℝ))
16153adant2 1124 . . . . . . . . . . . . . . . . 17 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((♯‘𝑊) ∈ ℝ ∧ 𝐿 ∈ ℝ))
17 ltnle 10567 . . . . . . . . . . . . . . . . 17 (((♯‘𝑊) ∈ ℝ ∧ 𝐿 ∈ ℝ) → ((♯‘𝑊) < 𝐿 ↔ ¬ 𝐿 ≤ (♯‘𝑊)))
1816, 17syl 17 . . . . . . . . . . . . . . . 16 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((♯‘𝑊) < 𝐿 ↔ ¬ 𝐿 ≤ (♯‘𝑊)))
1911, 18orbi12d 913 . . . . . . . . . . . . . . 15 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ↔ (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊))))
2019biimpcd 250 . . . . . . . . . . . . . 14 ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊))))
2120adantr 481 . . . . . . . . . . . . 13 (((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊))))
2221imp 407 . . . . . . . . . . . 12 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊)))
23 ianor 976 . . . . . . . . . . . 12 (¬ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊)) ↔ (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊)))
2422, 23sylibr 235 . . . . . . . . . . 11 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ¬ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊)))
25 3simpc 1143 . . . . . . . . . . . 12 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
2612nn0zd 11934 . . . . . . . . . . . . . 14 (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℤ)
27 0z 11840 . . . . . . . . . . . . . 14 0 ∈ ℤ
2826, 27jctil 520 . . . . . . . . . . . . 13 (𝑊 ∈ Word 𝑉 → (0 ∈ ℤ ∧ (♯‘𝑊) ∈ ℤ))
29283ad2ant1 1126 . . . . . . . . . . . 12 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (0 ∈ ℤ ∧ (♯‘𝑊) ∈ ℤ))
30 ltnle 10567 . . . . . . . . . . . . . . . . 17 ((𝐹 ∈ ℝ ∧ 𝐿 ∈ ℝ) → (𝐹 < 𝐿 ↔ ¬ 𝐿𝐹))
318, 14, 30syl2an 595 . . . . . . . . . . . . . . . 16 ((𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 < 𝐿 ↔ ¬ 𝐿𝐹))
32313adant1 1123 . . . . . . . . . . . . . . 15 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 < 𝐿 ↔ ¬ 𝐿𝐹))
3332biimprcd 251 . . . . . . . . . . . . . 14 𝐿𝐹 → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → 𝐹 < 𝐿))
3433adantl 482 . . . . . . . . . . . . 13 (((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → 𝐹 < 𝐿))
3534imp 407 . . . . . . . . . . . 12 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → 𝐹 < 𝐿)
36 ssfzo12bi 12982 . . . . . . . . . . . 12 (((𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (0 ∈ ℤ ∧ (♯‘𝑊) ∈ ℤ) ∧ 𝐹 < 𝐿) → ((𝐹..^𝐿) ⊆ (0..^(♯‘𝑊)) ↔ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊))))
3725, 29, 35, 36syl2an23an 1416 . . . . . . . . . . 11 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ((𝐹..^𝐿) ⊆ (0..^(♯‘𝑊)) ↔ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊))))
3824, 37mtbird 326 . . . . . . . . . 10 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊)))
39 wrddm 13714 . . . . . . . . . . . . . 14 (𝑊 ∈ Word 𝑉 → dom 𝑊 = (0..^(♯‘𝑊)))
4039sseq2d 3920 . . . . . . . . . . . . 13 (𝑊 ∈ Word 𝑉 → ((𝐹..^𝐿) ⊆ dom 𝑊 ↔ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
4140notbid 319 . . . . . . . . . . . 12 (𝑊 ∈ Word 𝑉 → (¬ (𝐹..^𝐿) ⊆ dom 𝑊 ↔ ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
42413ad2ant1 1126 . . . . . . . . . . 11 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (¬ (𝐹..^𝐿) ⊆ dom 𝑊 ↔ ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
4342adantl 482 . . . . . . . . . 10 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (¬ (𝐹..^𝐿) ⊆ dom 𝑊 ↔ ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
4438, 43mpbird 258 . . . . . . . . 9 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ¬ (𝐹..^𝐿) ⊆ dom 𝑊)
4544iffalsed 4392 . . . . . . . 8 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → if((𝐹..^𝐿) ⊆ dom 𝑊, (𝑖 ∈ (0..^(𝐿𝐹)) ↦ (𝑊‘(𝑖 + 𝐹))), ∅) = ∅)
467, 45eqtrd 2831 . . . . . . 7 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅)
4746exp31 420 . . . . . 6 ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) → (¬ 𝐿𝐹 → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅)))
4847impcom 408 . . . . 5 ((¬ 𝐿𝐹 ∧ (𝐹 < 0 ∨ (♯‘𝑊) < 𝐿)) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
495, 48jaoi3 1053 . . . 4 ((𝐿𝐹 ∨ (𝐹 < 0 ∨ (♯‘𝑊) < 𝐿)) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
5049orcoms 869 . . 3 (((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∨ 𝐿𝐹) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
513, 50sylbi 218 . 2 ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
5251com12 32 1 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 207  wa 396  wo 842  w3o 1079  w3a 1080   = wceq 1522  wcel 2081  wss 3859  c0 4211  ifcif 4381  cop 4478   class class class wbr 4962  cmpt 5041  dom cdm 5443  cfv 6225  (class class class)co 7016  cr 10382  0cc0 10383   + caddc 10386   < clt 10521  cle 10522  cmin 10717  cz 11829  ..^cfzo 12883  chash 13540  Word cword 13707   substr csubstr 13838
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1777  ax-4 1791  ax-5 1888  ax-6 1947  ax-7 1992  ax-8 2083  ax-9 2091  ax-10 2112  ax-11 2126  ax-12 2141  ax-13 2344  ax-ext 2769  ax-rep 5081  ax-sep 5094  ax-nul 5101  ax-pow 5157  ax-pr 5221  ax-un 7319  ax-cnex 10439  ax-resscn 10440  ax-1cn 10441  ax-icn 10442  ax-addcl 10443  ax-addrcl 10444  ax-mulcl 10445  ax-mulrcl 10446  ax-mulcom 10447  ax-addass 10448  ax-mulass 10449  ax-distr 10450  ax-i2m1 10451  ax-1ne0 10452  ax-1rid 10453  ax-rnegex 10454  ax-rrecex 10455  ax-cnre 10456  ax-pre-lttri 10457  ax-pre-lttrn 10458  ax-pre-ltadd 10459  ax-pre-mulgt0 10460
This theorem depends on definitions:  df-bi 208  df-an 397  df-or 843  df-3or 1081  df-3an 1082  df-tru 1525  df-ex 1762  df-nf 1766  df-sb 2043  df-mo 2576  df-eu 2612  df-clab 2776  df-cleq 2788  df-clel 2863  df-nfc 2935  df-ne 2985  df-nel 3091  df-ral 3110  df-rex 3111  df-reu 3112  df-rab 3114  df-v 3439  df-sbc 3707  df-csb 3812  df-dif 3862  df-un 3864  df-in 3866  df-ss 3874  df-pss 3876  df-nul 4212  df-if 4382  df-pw 4455  df-sn 4473  df-pr 4475  df-tp 4477  df-op 4479  df-uni 4746  df-int 4783  df-iun 4827  df-br 4963  df-opab 5025  df-mpt 5042  df-tr 5064  df-id 5348  df-eprel 5353  df-po 5362  df-so 5363  df-fr 5402  df-we 5404  df-xp 5449  df-rel 5450  df-cnv 5451  df-co 5452  df-dm 5453  df-rn 5454  df-res 5455  df-ima 5456  df-pred 6023  df-ord 6069  df-on 6070  df-lim 6071  df-suc 6072  df-iota 6189  df-fun 6227  df-fn 6228  df-f 6229  df-f1 6230  df-fo 6231  df-f1o 6232  df-fv 6233  df-riota 6977  df-ov 7019  df-oprab 7020  df-mpo 7021  df-om 7437  df-1st 7545  df-2nd 7546  df-wrecs 7798  df-recs 7860  df-rdg 7898  df-1o 7953  df-oadd 7957  df-er 8139  df-en 8358  df-dom 8359  df-sdom 8360  df-fin 8361  df-card 9214  df-pnf 10523  df-mnf 10524  df-xr 10525  df-ltxr 10526  df-le 10527  df-sub 10719  df-neg 10720  df-nn 11487  df-n0 11746  df-z 11830  df-uz 12094  df-fz 12743  df-fzo 12884  df-hash 13541  df-word 13708  df-substr 13839
This theorem is referenced by:  swrdnnn0nd  13854  swrdnd0  13855  pfxnd  13885
  Copyright terms: Public domain W3C validator