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

Theorem swrdnd 14554
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 1094 . . . 4 ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) ↔ (𝐹 < 0 ∨ (♯‘𝑊) < 𝐿𝐿𝐹))
2 df-3or 1088 . . . 4 ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿𝐿𝐹) ↔ ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∨ 𝐿𝐹))
31, 2bitri 274 . . 3 ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) ↔ ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∨ 𝐿𝐹))
4 swrdlend 14553 . . . . . 6 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐿𝐹 → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
54com12 32 . . . . 5 (𝐿𝐹 → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
6 swrdval 14543 . . . . . . . . 9 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = if((𝐹..^𝐿) ⊆ dom 𝑊, (𝑖 ∈ (0..^(𝐿𝐹)) ↦ (𝑊‘(𝑖 + 𝐹))), ∅))
76adantl 482 . . . . . . . 8 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (𝑊 substr ⟨𝐹, 𝐿⟩) = if((𝐹..^𝐿) ⊆ dom 𝑊, (𝑖 ∈ (0..^(𝐿𝐹)) ↦ (𝑊‘(𝑖 + 𝐹))), ∅))
8 zre 12512 . . . . . . . . . . . . . . . . . 18 (𝐹 ∈ ℤ → 𝐹 ∈ ℝ)
9 0red 11167 . . . . . . . . . . . . . . . . . 18 (𝐹 ∈ ℤ → 0 ∈ ℝ)
108, 9ltnled 11311 . . . . . . . . . . . . . . . . 17 (𝐹 ∈ ℤ → (𝐹 < 0 ↔ ¬ 0 ≤ 𝐹))
11103ad2ant2 1134 . . . . . . . . . . . . . . . 16 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 < 0 ↔ ¬ 0 ≤ 𝐹))
12 lencl 14433 . . . . . . . . . . . . . . . . . . . 20 (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℕ0)
1312nn0red 12483 . . . . . . . . . . . . . . . . . . 19 (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℝ)
14 zre 12512 . . . . . . . . . . . . . . . . . . 19 (𝐿 ∈ ℤ → 𝐿 ∈ ℝ)
1513, 14anim12i 613 . . . . . . . . . . . . . . . . . 18 ((𝑊 ∈ Word 𝑉𝐿 ∈ ℤ) → ((♯‘𝑊) ∈ ℝ ∧ 𝐿 ∈ ℝ))
16153adant2 1131 . . . . . . . . . . . . . . . . 17 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((♯‘𝑊) ∈ ℝ ∧ 𝐿 ∈ ℝ))
17 ltnle 11243 . . . . . . . . . . . . . . . . 17 (((♯‘𝑊) ∈ ℝ ∧ 𝐿 ∈ ℝ) → ((♯‘𝑊) < 𝐿 ↔ ¬ 𝐿 ≤ (♯‘𝑊)))
1816, 17syl 17 . . . . . . . . . . . . . . . 16 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((♯‘𝑊) < 𝐿 ↔ ¬ 𝐿 ≤ (♯‘𝑊)))
1911, 18orbi12d 917 . . . . . . . . . . . . . . 15 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ↔ (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊))))
2019biimpcd 248 . . . . . . . . . . . . . 14 ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊))))
2120adantr 481 . . . . . . . . . . . . 13 (((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊))))
2221imp 407 . . . . . . . . . . . 12 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊)))
23 ianor 980 . . . . . . . . . . . 12 (¬ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊)) ↔ (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊)))
2422, 23sylibr 233 . . . . . . . . . . 11 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ¬ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊)))
25 3simpc 1150 . . . . . . . . . . . 12 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
2612nn0zd 12534 . . . . . . . . . . . . . 14 (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℤ)
27 0z 12519 . . . . . . . . . . . . . 14 0 ∈ ℤ
2826, 27jctil 520 . . . . . . . . . . . . 13 (𝑊 ∈ Word 𝑉 → (0 ∈ ℤ ∧ (♯‘𝑊) ∈ ℤ))
29283ad2ant1 1133 . . . . . . . . . . . 12 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (0 ∈ ℤ ∧ (♯‘𝑊) ∈ ℤ))
30 ltnle 11243 . . . . . . . . . . . . . . . . 17 ((𝐹 ∈ ℝ ∧ 𝐿 ∈ ℝ) → (𝐹 < 𝐿 ↔ ¬ 𝐿𝐹))
318, 14, 30syl2an 596 . . . . . . . . . . . . . . . 16 ((𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 < 𝐿 ↔ ¬ 𝐿𝐹))
32313adant1 1130 . . . . . . . . . . . . . . 15 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 < 𝐿 ↔ ¬ 𝐿𝐹))
3332biimprcd 249 . . . . . . . . . . . . . 14 𝐿𝐹 → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → 𝐹 < 𝐿))
3433adantl 482 . . . . . . . . . . . . 13 (((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → 𝐹 < 𝐿))
3534imp 407 . . . . . . . . . . . 12 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → 𝐹 < 𝐿)
36 ssfzo12bi 13677 . . . . . . . . . . . 12 (((𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (0 ∈ ℤ ∧ (♯‘𝑊) ∈ ℤ) ∧ 𝐹 < 𝐿) → ((𝐹..^𝐿) ⊆ (0..^(♯‘𝑊)) ↔ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊))))
3725, 29, 35, 36syl2an23an 1423 . . . . . . . . . . 11 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ((𝐹..^𝐿) ⊆ (0..^(♯‘𝑊)) ↔ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊))))
3824, 37mtbird 324 . . . . . . . . . 10 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊)))
39 wrddm 14421 . . . . . . . . . . . . . 14 (𝑊 ∈ Word 𝑉 → dom 𝑊 = (0..^(♯‘𝑊)))
4039sseq2d 3979 . . . . . . . . . . . . 13 (𝑊 ∈ Word 𝑉 → ((𝐹..^𝐿) ⊆ dom 𝑊 ↔ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
4140notbid 317 . . . . . . . . . . . 12 (𝑊 ∈ Word 𝑉 → (¬ (𝐹..^𝐿) ⊆ dom 𝑊 ↔ ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
42413ad2ant1 1133 . . . . . . . . . . 11 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (¬ (𝐹..^𝐿) ⊆ dom 𝑊 ↔ ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
4342adantl 482 . . . . . . . . . 10 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (¬ (𝐹..^𝐿) ⊆ dom 𝑊 ↔ ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
4438, 43mpbird 256 . . . . . . . . 9 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ¬ (𝐹..^𝐿) ⊆ dom 𝑊)
4544iffalsed 4502 . . . . . . . 8 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → if((𝐹..^𝐿) ⊆ dom 𝑊, (𝑖 ∈ (0..^(𝐿𝐹)) ↦ (𝑊‘(𝑖 + 𝐹))), ∅) = ∅)
467, 45eqtrd 2771 . . . . . . 7 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅)
4746exp31 420 . . . . . 6 ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) → (¬ 𝐿𝐹 → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅)))
4847impcom 408 . . . . 5 ((¬ 𝐿𝐹 ∧ (𝐹 < 0 ∨ (♯‘𝑊) < 𝐿)) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
495, 48jaoi3 1059 . . . 4 ((𝐿𝐹 ∨ (𝐹 < 0 ∨ (♯‘𝑊) < 𝐿)) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
5049orcoms 870 . . 3 (((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∨ 𝐿𝐹) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
513, 50sylbi 216 . 2 ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
5251com12 32 1 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 205  wa 396  wo 845  w3o 1086  w3a 1087   = wceq 1541  wcel 2106  wss 3913  c0 4287  ifcif 4491  cop 4597   class class class wbr 5110  cmpt 5193  dom cdm 5638  cfv 6501  (class class class)co 7362  cr 11059  0cc0 11060   + caddc 11063   < clt 11198  cle 11199  cmin 11394  cz 12508  ..^cfzo 13577  chash 14240  Word cword 14414   substr csubstr 14540
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1797  ax-4 1811  ax-5 1913  ax-6 1971  ax-7 2011  ax-8 2108  ax-9 2116  ax-10 2137  ax-11 2154  ax-12 2171  ax-ext 2702  ax-rep 5247  ax-sep 5261  ax-nul 5268  ax-pow 5325  ax-pr 5389  ax-un 7677  ax-cnex 11116  ax-resscn 11117  ax-1cn 11118  ax-icn 11119  ax-addcl 11120  ax-addrcl 11121  ax-mulcl 11122  ax-mulrcl 11123  ax-mulcom 11124  ax-addass 11125  ax-mulass 11126  ax-distr 11127  ax-i2m1 11128  ax-1ne0 11129  ax-1rid 11130  ax-rnegex 11131  ax-rrecex 11132  ax-cnre 11133  ax-pre-lttri 11134  ax-pre-lttrn 11135  ax-pre-ltadd 11136  ax-pre-mulgt0 11137
This theorem depends on definitions:  df-bi 206  df-an 397  df-or 846  df-3or 1088  df-3an 1089  df-tru 1544  df-fal 1554  df-ex 1782  df-nf 1786  df-sb 2068  df-mo 2533  df-eu 2562  df-clab 2709  df-cleq 2723  df-clel 2809  df-nfc 2884  df-ne 2940  df-nel 3046  df-ral 3061  df-rex 3070  df-reu 3352  df-rab 3406  df-v 3448  df-sbc 3743  df-csb 3859  df-dif 3916  df-un 3918  df-in 3920  df-ss 3930  df-pss 3932  df-nul 4288  df-if 4492  df-pw 4567  df-sn 4592  df-pr 4594  df-op 4598  df-uni 4871  df-int 4913  df-iun 4961  df-br 5111  df-opab 5173  df-mpt 5194  df-tr 5228  df-id 5536  df-eprel 5542  df-po 5550  df-so 5551  df-fr 5593  df-we 5595  df-xp 5644  df-rel 5645  df-cnv 5646  df-co 5647  df-dm 5648  df-rn 5649  df-res 5650  df-ima 5651  df-pred 6258  df-ord 6325  df-on 6326  df-lim 6327  df-suc 6328  df-iota 6453  df-fun 6503  df-fn 6504  df-f 6505  df-f1 6506  df-fo 6507  df-f1o 6508  df-fv 6509  df-riota 7318  df-ov 7365  df-oprab 7366  df-mpo 7367  df-om 7808  df-1st 7926  df-2nd 7927  df-frecs 8217  df-wrecs 8248  df-recs 8322  df-rdg 8361  df-1o 8417  df-er 8655  df-en 8891  df-dom 8892  df-sdom 8893  df-fin 8894  df-card 9884  df-pnf 11200  df-mnf 11201  df-xr 11202  df-ltxr 11203  df-le 11204  df-sub 11396  df-neg 11397  df-nn 12163  df-n0 12423  df-z 12509  df-uz 12773  df-fz 13435  df-fzo 13578  df-hash 14241  df-word 14415  df-substr 14541
This theorem is referenced by:  swrdnnn0nd  14556  swrdnd0  14557  pfxnd  14587
  Copyright terms: Public domain W3C validator