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

Theorem swrdnd 14654
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 1102 . . . 4 ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) ↔ (𝐹 < 0 ∨ (♯‘𝑊) < 𝐿𝐿𝐹))
2 df-3or 1096 . . . 4 ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿𝐿𝐹) ↔ ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∨ 𝐿𝐹))
31, 2bitri 277 . . 3 ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) ↔ ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∨ 𝐿𝐹))
4 swrdlend 14653 . . . . . 6 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐿𝐹 → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
54com12 32 . . . . 5 (𝐿𝐹 → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
6 swrdval 14643 . . . . . . . . 9 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = if((𝐹..^𝐿) ⊆ dom 𝑊, (𝑖 ∈ (0..^(𝐿𝐹)) ↦ (𝑊‘(𝑖 + 𝐹))), ∅))
76adantl 484 . . . . . . . 8 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (𝑊 substr ⟨𝐹, 𝐿⟩) = if((𝐹..^𝐿) ⊆ dom 𝑊, (𝑖 ∈ (0..^(𝐿𝐹)) ↦ (𝑊‘(𝑖 + 𝐹))), ∅))
8 zre 12558 . . . . . . . . . . . . . . . . . 18 (𝐹 ∈ ℤ → 𝐹 ∈ ℝ)
9 0red 11170 . . . . . . . . . . . . . . . . . 18 (𝐹 ∈ ℤ → 0 ∈ ℝ)
108, 9ltnled 11316 . . . . . . . . . . . . . . . . 17 (𝐹 ∈ ℤ → (𝐹 < 0 ↔ ¬ 0 ≤ 𝐹))
11103ad2ant2 1143 . . . . . . . . . . . . . . . 16 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 < 0 ↔ ¬ 0 ≤ 𝐹))
12 lencl 14532 . . . . . . . . . . . . . . . . . . . 20 (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℕ0)
1312nn0red 12529 . . . . . . . . . . . . . . . . . . 19 (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℝ)
14 zre 12558 . . . . . . . . . . . . . . . . . . 19 (𝐿 ∈ ℤ → 𝐿 ∈ ℝ)
1513, 14anim12i 621 . . . . . . . . . . . . . . . . . 18 ((𝑊 ∈ Word 𝑉𝐿 ∈ ℤ) → ((♯‘𝑊) ∈ ℝ ∧ 𝐿 ∈ ℝ))
16153adant2 1140 . . . . . . . . . . . . . . . . 17 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((♯‘𝑊) ∈ ℝ ∧ 𝐿 ∈ ℝ))
17 ltnle 11248 . . . . . . . . . . . . . . . . 17 (((♯‘𝑊) ∈ ℝ ∧ 𝐿 ∈ ℝ) → ((♯‘𝑊) < 𝐿 ↔ ¬ 𝐿 ≤ (♯‘𝑊)))
1816, 17syl 17 . . . . . . . . . . . . . . . 16 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((♯‘𝑊) < 𝐿 ↔ ¬ 𝐿 ≤ (♯‘𝑊)))
1911, 18orbi12d 927 . . . . . . . . . . . . . . 15 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ↔ (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊))))
2019biimpcd 251 . . . . . . . . . . . . . 14 ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊))))
2120adantr 483 . . . . . . . . . . . . 13 (((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊))))
2221imp 409 . . . . . . . . . . . 12 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊)))
23 ianor 992 . . . . . . . . . . . 12 (¬ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊)) ↔ (¬ 0 ≤ 𝐹 ∨ ¬ 𝐿 ≤ (♯‘𝑊)))
2422, 23sylibr 236 . . . . . . . . . . 11 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ¬ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊)))
25 3simpc 1159 . . . . . . . . . . . 12 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ))
2612nn0zd 12579 . . . . . . . . . . . . . 14 (𝑊 ∈ Word 𝑉 → (♯‘𝑊) ∈ ℤ)
27 0z 12565 . . . . . . . . . . . . . 14 0 ∈ ℤ
2826, 27jctil 526 . . . . . . . . . . . . 13 (𝑊 ∈ Word 𝑉 → (0 ∈ ℤ ∧ (♯‘𝑊) ∈ ℤ))
29283ad2ant1 1142 . . . . . . . . . . . 12 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (0 ∈ ℤ ∧ (♯‘𝑊) ∈ ℤ))
30 ltnle 11248 . . . . . . . . . . . . . . . . 17 ((𝐹 ∈ ℝ ∧ 𝐿 ∈ ℝ) → (𝐹 < 𝐿 ↔ ¬ 𝐿𝐹))
318, 14, 30syl2an 604 . . . . . . . . . . . . . . . 16 ((𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 < 𝐿 ↔ ¬ 𝐿𝐹))
32313adant1 1139 . . . . . . . . . . . . . . 15 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐹 < 𝐿 ↔ ¬ 𝐿𝐹))
3332biimprcd 252 . . . . . . . . . . . . . 14 𝐿𝐹 → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → 𝐹 < 𝐿))
3433adantl 484 . . . . . . . . . . . . 13 (((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → 𝐹 < 𝐿))
3534imp 409 . . . . . . . . . . . 12 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → 𝐹 < 𝐿)
36 ssfzo12bi 13753 . . . . . . . . . . . 12 (((𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) ∧ (0 ∈ ℤ ∧ (♯‘𝑊) ∈ ℤ) ∧ 𝐹 < 𝐿) → ((𝐹..^𝐿) ⊆ (0..^(♯‘𝑊)) ↔ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊))))
3725, 29, 35, 36syl2an23an 1434 . . . . . . . . . . 11 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ((𝐹..^𝐿) ⊆ (0..^(♯‘𝑊)) ↔ (0 ≤ 𝐹𝐿 ≤ (♯‘𝑊))))
3824, 37mtbird 327 . . . . . . . . . 10 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊)))
39 wrddm 14520 . . . . . . . . . . . . . 14 (𝑊 ∈ Word 𝑉 → dom 𝑊 = (0..^(♯‘𝑊)))
4039sseq2d 3959 . . . . . . . . . . . . 13 (𝑊 ∈ Word 𝑉 → ((𝐹..^𝐿) ⊆ dom 𝑊 ↔ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
4140notbid 320 . . . . . . . . . . . 12 (𝑊 ∈ Word 𝑉 → (¬ (𝐹..^𝐿) ⊆ dom 𝑊 ↔ ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
42413ad2ant1 1142 . . . . . . . . . . 11 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (¬ (𝐹..^𝐿) ⊆ dom 𝑊 ↔ ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
4342adantl 484 . . . . . . . . . 10 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (¬ (𝐹..^𝐿) ⊆ dom 𝑊 ↔ ¬ (𝐹..^𝐿) ⊆ (0..^(♯‘𝑊))))
4438, 43mpbird 259 . . . . . . . . 9 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → ¬ (𝐹..^𝐿) ⊆ dom 𝑊)
4544iffalsed 4481 . . . . . . . 8 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → if((𝐹..^𝐿) ⊆ dom 𝑊, (𝑖 ∈ (0..^(𝐿𝐹)) ↦ (𝑊‘(𝑖 + 𝐹))), ∅) = ∅)
467, 45eqtrd 2787 . . . . . . 7 ((((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∧ ¬ 𝐿𝐹) ∧ (𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ)) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅)
4746exp31 422 . . . . . 6 ((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) → (¬ 𝐿𝐹 → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅)))
4847impcom 410 . . . . 5 ((¬ 𝐿𝐹 ∧ (𝐹 < 0 ∨ (♯‘𝑊) < 𝐿)) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
495, 48jaoi3 1069 . . . 4 ((𝐿𝐹 ∨ (𝐹 < 0 ∨ (♯‘𝑊) < 𝐿)) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
5049orcoms 881 . . 3 (((𝐹 < 0 ∨ (♯‘𝑊) < 𝐿) ∨ 𝐿𝐹) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
513, 50sylbi 219 . 2 ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) → ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
5251com12 32 1 ((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 208  wa 398  wo 856  w3o 1094  w3a 1095   = wceq 1550  wcel 2132  wss 3895  c0 4276  ifcif 4470  cop 4578   class class class wbr 5090  cmpt 5171  dom cdm 5636  cfv 6506  (class class class)co 7381  cr 11058  0cc0 11059   + caddc 11062   < clt 11202  cle 11203  cmin 11400  cz 12554  ..^cfzo 13645  chash 14329  Word cword 14512   substr csubstr 14640
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1805  ax-4 1819  ax-5 1920  ax-6 1977  ax-7 2018  ax-8 2134  ax-9 2142  ax-10 2165  ax-11 2181  ax-12 2202  ax-ext 2724  ax-rep 5217  ax-sep 5236  ax-nul 5246  ax-pow 5312  ax-pr 5380  ax-un 7703  ax-cnex 11115  ax-resscn 11116  ax-1cn 11117  ax-icn 11118  ax-addcl 11119  ax-addrcl 11120  ax-mulcl 11121  ax-mulrcl 11122  ax-mulcom 11123  ax-addass 11124  ax-mulass 11125  ax-distr 11126  ax-i2m1 11127  ax-1ne0 11128  ax-1rid 11129  ax-rnegex 11130  ax-rrecex 11131  ax-cnre 11132  ax-pre-lttri 11133  ax-pre-lttrn 11134  ax-pre-ltadd 11135  ax-pre-mulgt0 11136
This theorem depends on definitions:  df-bi 209  df-an 399  df-or 857  df-3or 1096  df-3an 1097  df-tru 1553  df-fal 1563  df-ex 1790  df-nf 1794  df-sb 2081  df-mo 2556  df-eu 2586  df-clab 2731  df-cleq 2744  df-clel 2827  df-nfc 2901  df-ne 2948  df-nel 3052  df-ral 3067  df-rex 3077  df-reu 3358  df-rab 3405  df-v 3446  df-sbc 3736  df-csb 3844  df-dif 3898  df-un 3900  df-in 3902  df-ss 3912  df-pss 3915  df-nul 4277  df-if 4471  df-pw 4547  df-sn 4573  df-pr 4575  df-op 4579  df-uni 4856  df-int 4896  df-iun 4941  df-br 5091  df-opab 5153  df-mpt 5172  df-tr 5198  df-id 5531  df-eprel 5536  df-po 5544  df-so 5545  df-fr 5589  df-we 5591  df-xp 5642  df-rel 5643  df-cnv 5644  df-co 5645  df-dm 5646  df-rn 5647  df-res 5648  df-ima 5649  df-pred 6273  df-ord 6334  df-on 6335  df-lim 6336  df-suc 6337  df-iota 6462  df-fun 6508  df-fn 6509  df-f 6510  df-f1 6511  df-fo 6512  df-f1o 6513  df-fv 6514  df-riota 7338  df-ov 7384  df-oprab 7385  df-mpo 7386  df-om 7832  df-1st 7955  df-2nd 7956  df-frecs 8246  df-wrecs 8277  df-recs 8326  df-rdg 8365  df-1o 8421  df-er 8662  df-en 8913  df-dom 8914  df-sdom 8915  df-fin 8916  df-card 9883  df-pnf 11204  df-mnf 11205  df-xr 11206  df-ltxr 11207  df-le 11208  df-sub 11402  df-neg 11403  df-nn 12197  df-n0 12468  df-z 12555  df-uz 12826  df-fz 13499  df-fzo 13646  df-hash 14330  df-word 14513  df-substr 14641
This theorem is referenced by:  swrdnnn0nd  14656  swrdnd0  14657  pfxnd  14687
  Copyright terms: Public domain W3C validator