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

Theorem swrdnd 14559
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 1093 . . . 4 ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) ↔ (𝐹 < 0 ∨ (♯‘𝑊) < 𝐿𝐿𝐹))
2 df-3or 1087 . . . 4 ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿𝐿𝐹) ↔ ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∨ 𝐿𝐹))
31, 2bitri 275 . . 3 ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) ↔ ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∨ 𝐿𝐹))
4 swrdlend 14558 . . . . . 6 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐿𝐹 → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
54com12 32 . . . . 5 (𝐿𝐹 → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
6 swrdval 14548 . . . . . . . . 9 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = if((𝐹..^𝐿) ⊆ dom 𝑊, (𝑖 ∈ (0..^(𝐿𝐹)) ↦ (𝑊‘(𝑖 + 𝐹))), ∅))
76adantl 481 . . . . . . . 8 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (𝑊 substr ⟨𝐹, 𝐿⟩) = if((𝐹..^𝐿) ⊆ dom 𝑊, (𝑖 ∈ (0..^(𝐿𝐹)) ↦ (𝑊‘(𝑖 + 𝐹))), ∅))
8 zre 12469 . . . . . . . . . . . . . . . . . 18 (𝐹 ∈ ℤ → 𝐹 ∈ ℝ)
9 0red 11112 . . . . . . . . . . . . . . . . . 18 (𝐹 ∈ ℤ → 0 ∈ ℝ)
108, 9ltnled 11257 . . . . . . . . . . . . . . . . 17 (𝐹 ∈ ℤ → (𝐹 < 0 ↔ ¬ 0 ≤ 𝐹))
11103ad2ant2 1134 . . . . . . . . . . . . . . . 16 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 < 0 ↔ ¬ 0 ≤ 𝐹))
12 lencl 14437 . . . . . . . . . . . . . . . . . . . 20 (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℕ0)
1312nn0red 12440 . . . . . . . . . . . . . . . . . . 19 (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℝ)
14 zre 12469 . . . . . . . . . . . . . . . . . . 19 (𝐿 ∈ ℤ → 𝐿 ∈ ℝ)
1513, 14anim12i 613 . . . . . . . . . . . . . . . . . 18 ((𝑊 ∈ Word 𝑉𝐿 ∈ ℤ) → ((♯‘𝑊) ∈ ℝ ∧ 𝐿 ∈ ℝ))
16153adant2 1131 . . . . . . . . . . . . . . . . 17 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((♯‘𝑊) ∈ ℝ ∧ 𝐿 ∈ ℝ))
17 ltnle 11189 . . . . . . . . . . . . . . . . 17 (((♯‘𝑊) ∈ ℝ ∧ 𝐿 ∈ ℝ) → ((♯‘𝑊) < 𝐿 ↔ ¬ 𝐿 ≤ (♯‘𝑊)))
1816, 17syl 17 . . . . . . . . . . . . . . . 16 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((♯‘𝑊) < 𝐿 ↔ ¬ 𝐿 ≤ (♯‘𝑊)))
1911, 18orbi12d 918 . . . . . . . . . . . . . . 15 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ↔ (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊))))
2019biimpcd 249 . . . . . . . . . . . . . 14 ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊))))
2120adantr 480 . . . . . . . . . . . . 13 (((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊))))
2221imp 406 . . . . . . . . . . . 12 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊)))
23 ianor 983 . . . . . . . . . . . 12 (¬ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊)) ↔ (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊)))
2422, 23sylibr 234 . . . . . . . . . . 11 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ¬ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊)))
25 3simpc 1150 . . . . . . . . . . . 12 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
2612nn0zd 12491 . . . . . . . . . . . . . 14 (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℤ)
27 0z 12476 . . . . . . . . . . . . . 14 0 ∈ ℤ
2826, 27jctil 519 . . . . . . . . . . . . 13 (𝑊 ∈ Word 𝑉 → (0 ∈ ℤ ∧ (♯‘𝑊) ∈ ℤ))
29283ad2ant1 1133 . . . . . . . . . . . 12 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (0 ∈ ℤ ∧ (♯‘𝑊) ∈ ℤ))
30 ltnle 11189 . . . . . . . . . . . . . . . . 17 ((𝐹 ∈ ℝ ∧ 𝐿 ∈ ℝ) → (𝐹 < 𝐿 ↔ ¬ 𝐿𝐹))
318, 14, 30syl2an 596 . . . . . . . . . . . . . . . 16 ((𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 < 𝐿 ↔ ¬ 𝐿𝐹))
32313adant1 1130 . . . . . . . . . . . . . . 15 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 < 𝐿 ↔ ¬ 𝐿𝐹))
3332biimprcd 250 . . . . . . . . . . . . . 14 𝐿𝐹 → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → 𝐹 < 𝐿))
3433adantl 481 . . . . . . . . . . . . 13 (((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → 𝐹 < 𝐿))
3534imp 406 . . . . . . . . . . . 12 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → 𝐹 < 𝐿)
36 ssfzo12bi 13658 . . . . . . . . . . . 12 (((𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (0 ∈ ℤ ∧ (♯‘𝑊) ∈ ℤ) ∧ 𝐹 < 𝐿) → ((𝐹..^𝐿) ⊆ (0..^(♯‘𝑊)) ↔ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊))))
3725, 29, 35, 36syl2an23an 1425 . . . . . . . . . . 11 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ((𝐹..^𝐿) ⊆ (0..^(♯‘𝑊)) ↔ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊))))
3824, 37mtbird 325 . . . . . . . . . 10 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊)))
39 wrddm 14425 . . . . . . . . . . . . . 14 (𝑊 ∈ Word 𝑉 → dom 𝑊 = (0..^(♯‘𝑊)))
4039sseq2d 3967 . . . . . . . . . . . . 13 (𝑊 ∈ Word 𝑉 → ((𝐹..^𝐿) ⊆ dom 𝑊 ↔ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
4140notbid 318 . . . . . . . . . . . 12 (𝑊 ∈ Word 𝑉 → (¬ (𝐹..^𝐿) ⊆ dom 𝑊 ↔ ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
42413ad2ant1 1133 . . . . . . . . . . 11 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (¬ (𝐹..^𝐿) ⊆ dom 𝑊 ↔ ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
4342adantl 481 . . . . . . . . . 10 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (¬ (𝐹..^𝐿) ⊆ dom 𝑊 ↔ ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
4438, 43mpbird 257 . . . . . . . . 9 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ¬ (𝐹..^𝐿) ⊆ dom 𝑊)
4544iffalsed 4486 . . . . . . . 8 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → if((𝐹..^𝐿) ⊆ dom 𝑊, (𝑖 ∈ (0..^(𝐿𝐹)) ↦ (𝑊‘(𝑖 + 𝐹))), ∅) = ∅)
467, 45eqtrd 2766 . . . . . . 7 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅)
4746exp31 419 . . . . . 6 ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) → (¬ 𝐿𝐹 → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅)))
4847impcom 407 . . . . 5 ((¬ 𝐿𝐹 ∧ (𝐹 < 0 ∨ (♯‘𝑊) < 𝐿)) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
495, 48jaoi3 1060 . . . 4 ((𝐿𝐹 ∨ (𝐹 < 0 ∨ (♯‘𝑊) < 𝐿)) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
5049orcoms 872 . . 3 (((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∨ 𝐿𝐹) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
513, 50sylbi 217 . 2 ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
5251com12 32 1 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 206  wa 395  wo 847  w3o 1085  w3a 1086   = wceq 1541  wcel 2111  wss 3902  c0 4283  ifcif 4475  cop 4582   class class class wbr 5091  cmpt 5172  dom cdm 5616  cfv 6481  (class class class)co 7346  cr 11002  0cc0 11003   + caddc 11006   < clt 11143  cle 11144  cmin 11341  cz 12465  ..^cfzo 13551  chash 14234  Word cword 14417   substr csubstr 14545
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1796  ax-4 1810  ax-5 1911  ax-6 1968  ax-7 2009  ax-8 2113  ax-9 2121  ax-10 2144  ax-11 2160  ax-12 2180  ax-ext 2703  ax-rep 5217  ax-sep 5234  ax-nul 5244  ax-pow 5303  ax-pr 5370  ax-un 7668  ax-cnex 11059  ax-resscn 11060  ax-1cn 11061  ax-icn 11062  ax-addcl 11063  ax-addrcl 11064  ax-mulcl 11065  ax-mulrcl 11066  ax-mulcom 11067  ax-addass 11068  ax-mulass 11069  ax-distr 11070  ax-i2m1 11071  ax-1ne0 11072  ax-1rid 11073  ax-rnegex 11074  ax-rrecex 11075  ax-cnre 11076  ax-pre-lttri 11077  ax-pre-lttrn 11078  ax-pre-ltadd 11079  ax-pre-mulgt0 11080
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 848  df-3or 1087  df-3an 1088  df-tru 1544  df-fal 1554  df-ex 1781  df-nf 1785  df-sb 2068  df-mo 2535  df-eu 2564  df-clab 2710  df-cleq 2723  df-clel 2806  df-nfc 2881  df-ne 2929  df-nel 3033  df-ral 3048  df-rex 3057  df-reu 3347  df-rab 3396  df-v 3438  df-sbc 3742  df-csb 3851  df-dif 3905  df-un 3907  df-in 3909  df-ss 3919  df-pss 3922  df-nul 4284  df-if 4476  df-pw 4552  df-sn 4577  df-pr 4579  df-op 4583  df-uni 4860  df-int 4898  df-iun 4943  df-br 5092  df-opab 5154  df-mpt 5173  df-tr 5199  df-id 5511  df-eprel 5516  df-po 5524  df-so 5525  df-fr 5569  df-we 5571  df-xp 5622  df-rel 5623  df-cnv 5624  df-co 5625  df-dm 5626  df-rn 5627  df-res 5628  df-ima 5629  df-pred 6248  df-ord 6309  df-on 6310  df-lim 6311  df-suc 6312  df-iota 6437  df-fun 6483  df-fn 6484  df-f 6485  df-f1 6486  df-fo 6487  df-f1o 6488  df-fv 6489  df-riota 7303  df-ov 7349  df-oprab 7350  df-mpo 7351  df-om 7797  df-1st 7921  df-2nd 7922  df-frecs 8211  df-wrecs 8242  df-recs 8291  df-rdg 8329  df-1o 8385  df-er 8622  df-en 8870  df-dom 8871  df-sdom 8872  df-fin 8873  df-card 9829  df-pnf 11145  df-mnf 11146  df-xr 11147  df-ltxr 11148  df-le 11149  df-sub 11343  df-neg 11344  df-nn 12123  df-n0 12379  df-z 12466  df-uz 12730  df-fz 13405  df-fzo 13552  df-hash 14235  df-word 14418  df-substr 14546
This theorem is referenced by:  swrdnnn0nd  14561  swrdnd0  14562  pfxnd  14592
  Copyright terms: Public domain W3C validator