| Step |
Hyp |
Ref |
Expression |
| 1 |
|
ianor |
|- ( -. ( F e. ( 0 ... L ) /\ L e. ( 0 ... ( # ` S ) ) ) <-> ( -. F e. ( 0 ... L ) \/ -. L e. ( 0 ... ( # ` S ) ) ) ) |
| 2 |
|
3ianor |
|- ( -. ( F e. NN0 /\ L e. NN0 /\ F <_ L ) <-> ( -. F e. NN0 \/ -. L e. NN0 \/ -. F <_ L ) ) |
| 3 |
|
elfz2nn0 |
|- ( F e. ( 0 ... L ) <-> ( F e. NN0 /\ L e. NN0 /\ F <_ L ) ) |
| 4 |
2 3
|
xchnxbir |
|- ( -. F e. ( 0 ... L ) <-> ( -. F e. NN0 \/ -. L e. NN0 \/ -. F <_ L ) ) |
| 5 |
|
3ianor |
|- ( -. ( L e. NN0 /\ ( # ` S ) e. NN0 /\ L <_ ( # ` S ) ) <-> ( -. L e. NN0 \/ -. ( # ` S ) e. NN0 \/ -. L <_ ( # ` S ) ) ) |
| 6 |
|
elfz2nn0 |
|- ( L e. ( 0 ... ( # ` S ) ) <-> ( L e. NN0 /\ ( # ` S ) e. NN0 /\ L <_ ( # ` S ) ) ) |
| 7 |
5 6
|
xchnxbir |
|- ( -. L e. ( 0 ... ( # ` S ) ) <-> ( -. L e. NN0 \/ -. ( # ` S ) e. NN0 \/ -. L <_ ( # ` S ) ) ) |
| 8 |
4 7
|
orbi12i |
|- ( ( -. F e. ( 0 ... L ) \/ -. L e. ( 0 ... ( # ` S ) ) ) <-> ( ( -. F e. NN0 \/ -. L e. NN0 \/ -. F <_ L ) \/ ( -. L e. NN0 \/ -. ( # ` S ) e. NN0 \/ -. L <_ ( # ` S ) ) ) ) |
| 9 |
1 8
|
bitri |
|- ( -. ( F e. ( 0 ... L ) /\ L e. ( 0 ... ( # ` S ) ) ) <-> ( ( -. F e. NN0 \/ -. L e. NN0 \/ -. F <_ L ) \/ ( -. L e. NN0 \/ -. ( # ` S ) e. NN0 \/ -. L <_ ( # ` S ) ) ) ) |
| 10 |
|
df-3or |
|- ( ( -. F e. NN0 \/ -. L e. NN0 \/ -. F <_ L ) <-> ( ( -. F e. NN0 \/ -. L e. NN0 ) \/ -. F <_ L ) ) |
| 11 |
|
ianor |
|- ( -. ( F e. NN0 /\ L e. NN0 ) <-> ( -. F e. NN0 \/ -. L e. NN0 ) ) |
| 12 |
|
swrdnnn0nd |
|- ( ( S e. Word V /\ -. ( F e. NN0 /\ L e. NN0 ) ) -> ( S substr <. F , L >. ) = (/) ) |
| 13 |
12
|
expcom |
|- ( -. ( F e. NN0 /\ L e. NN0 ) -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) |
| 14 |
11 13
|
sylbir |
|- ( ( -. F e. NN0 \/ -. L e. NN0 ) -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) |
| 15 |
|
anor |
|- ( ( F e. NN0 /\ L e. NN0 ) <-> -. ( -. F e. NN0 \/ -. L e. NN0 ) ) |
| 16 |
|
nn0re |
|- ( L e. NN0 -> L e. RR ) |
| 17 |
|
nn0re |
|- ( F e. NN0 -> F e. RR ) |
| 18 |
|
ltnle |
|- ( ( L e. RR /\ F e. RR ) -> ( L < F <-> -. F <_ L ) ) |
| 19 |
16 17 18
|
syl2anr |
|- ( ( F e. NN0 /\ L e. NN0 ) -> ( L < F <-> -. F <_ L ) ) |
| 20 |
|
nn0z |
|- ( F e. NN0 -> F e. ZZ ) |
| 21 |
|
nn0z |
|- ( L e. NN0 -> L e. ZZ ) |
| 22 |
20 21
|
anim12i |
|- ( ( F e. NN0 /\ L e. NN0 ) -> ( F e. ZZ /\ L e. ZZ ) ) |
| 23 |
22
|
anim2i |
|- ( ( S e. Word V /\ ( F e. NN0 /\ L e. NN0 ) ) -> ( S e. Word V /\ ( F e. ZZ /\ L e. ZZ ) ) ) |
| 24 |
|
3anass |
|- ( ( S e. Word V /\ F e. ZZ /\ L e. ZZ ) <-> ( S e. Word V /\ ( F e. ZZ /\ L e. ZZ ) ) ) |
| 25 |
23 24
|
sylibr |
|- ( ( S e. Word V /\ ( F e. NN0 /\ L e. NN0 ) ) -> ( S e. Word V /\ F e. ZZ /\ L e. ZZ ) ) |
| 26 |
25
|
adantr |
|- ( ( ( S e. Word V /\ ( F e. NN0 /\ L e. NN0 ) ) /\ L < F ) -> ( S e. Word V /\ F e. ZZ /\ L e. ZZ ) ) |
| 27 |
17 16
|
anim12ci |
|- ( ( F e. NN0 /\ L e. NN0 ) -> ( L e. RR /\ F e. RR ) ) |
| 28 |
27
|
adantl |
|- ( ( S e. Word V /\ ( F e. NN0 /\ L e. NN0 ) ) -> ( L e. RR /\ F e. RR ) ) |
| 29 |
|
ltle |
|- ( ( L e. RR /\ F e. RR ) -> ( L < F -> L <_ F ) ) |
| 30 |
28 29
|
syl |
|- ( ( S e. Word V /\ ( F e. NN0 /\ L e. NN0 ) ) -> ( L < F -> L <_ F ) ) |
| 31 |
30
|
imp |
|- ( ( ( S e. Word V /\ ( F e. NN0 /\ L e. NN0 ) ) /\ L < F ) -> L <_ F ) |
| 32 |
31
|
3mix2d |
|- ( ( ( S e. Word V /\ ( F e. NN0 /\ L e. NN0 ) ) /\ L < F ) -> ( F < 0 \/ L <_ F \/ ( # ` S ) < L ) ) |
| 33 |
|
swrdnd |
|- ( ( S e. Word V /\ F e. ZZ /\ L e. ZZ ) -> ( ( F < 0 \/ L <_ F \/ ( # ` S ) < L ) -> ( S substr <. F , L >. ) = (/) ) ) |
| 34 |
26 32 33
|
sylc |
|- ( ( ( S e. Word V /\ ( F e. NN0 /\ L e. NN0 ) ) /\ L < F ) -> ( S substr <. F , L >. ) = (/) ) |
| 35 |
34
|
ex |
|- ( ( S e. Word V /\ ( F e. NN0 /\ L e. NN0 ) ) -> ( L < F -> ( S substr <. F , L >. ) = (/) ) ) |
| 36 |
35
|
expcom |
|- ( ( F e. NN0 /\ L e. NN0 ) -> ( S e. Word V -> ( L < F -> ( S substr <. F , L >. ) = (/) ) ) ) |
| 37 |
36
|
com23 |
|- ( ( F e. NN0 /\ L e. NN0 ) -> ( L < F -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) ) |
| 38 |
19 37
|
sylbird |
|- ( ( F e. NN0 /\ L e. NN0 ) -> ( -. F <_ L -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) ) |
| 39 |
15 38
|
sylbir |
|- ( -. ( -. F e. NN0 \/ -. L e. NN0 ) -> ( -. F <_ L -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) ) |
| 40 |
39
|
imp |
|- ( ( -. ( -. F e. NN0 \/ -. L e. NN0 ) /\ -. F <_ L ) -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) |
| 41 |
14 40
|
jaoi3 |
|- ( ( ( -. F e. NN0 \/ -. L e. NN0 ) \/ -. F <_ L ) -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) |
| 42 |
10 41
|
sylbi |
|- ( ( -. F e. NN0 \/ -. L e. NN0 \/ -. F <_ L ) -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) |
| 43 |
|
3anor |
|- ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) <-> -. ( -. F e. NN0 \/ -. L e. NN0 \/ -. F <_ L ) ) |
| 44 |
|
pm2.24 |
|- ( L e. NN0 -> ( -. L e. NN0 -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) ) |
| 45 |
44
|
3ad2ant2 |
|- ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) -> ( -. L e. NN0 -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) ) |
| 46 |
45
|
com12 |
|- ( -. L e. NN0 -> ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) ) |
| 47 |
|
pm2.24 |
|- ( ( # ` S ) e. NN0 -> ( -. ( # ` S ) e. NN0 -> ( S substr <. F , L >. ) = (/) ) ) |
| 48 |
|
lencl |
|- ( S e. Word V -> ( # ` S ) e. NN0 ) |
| 49 |
47 48
|
syl11 |
|- ( -. ( # ` S ) e. NN0 -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) |
| 50 |
49
|
a1d |
|- ( -. ( # ` S ) e. NN0 -> ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) ) |
| 51 |
48
|
nn0red |
|- ( S e. Word V -> ( # ` S ) e. RR ) |
| 52 |
16
|
3ad2ant2 |
|- ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) -> L e. RR ) |
| 53 |
|
ltnle |
|- ( ( ( # ` S ) e. RR /\ L e. RR ) -> ( ( # ` S ) < L <-> -. L <_ ( # ` S ) ) ) |
| 54 |
51 52 53
|
syl2anr |
|- ( ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) /\ S e. Word V ) -> ( ( # ` S ) < L <-> -. L <_ ( # ` S ) ) ) |
| 55 |
|
simpr |
|- ( ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) /\ S e. Word V ) -> S e. Word V ) |
| 56 |
20
|
3ad2ant1 |
|- ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) -> F e. ZZ ) |
| 57 |
56
|
adantr |
|- ( ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) /\ S e. Word V ) -> F e. ZZ ) |
| 58 |
21
|
3ad2ant2 |
|- ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) -> L e. ZZ ) |
| 59 |
58
|
adantr |
|- ( ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) /\ S e. Word V ) -> L e. ZZ ) |
| 60 |
55 57 59
|
3jca |
|- ( ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) /\ S e. Word V ) -> ( S e. Word V /\ F e. ZZ /\ L e. ZZ ) ) |
| 61 |
|
3mix3 |
|- ( ( # ` S ) < L -> ( F < 0 \/ L <_ F \/ ( # ` S ) < L ) ) |
| 62 |
60 61 33
|
syl2im |
|- ( ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) /\ S e. Word V ) -> ( ( # ` S ) < L -> ( S substr <. F , L >. ) = (/) ) ) |
| 63 |
54 62
|
sylbird |
|- ( ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) /\ S e. Word V ) -> ( -. L <_ ( # ` S ) -> ( S substr <. F , L >. ) = (/) ) ) |
| 64 |
63
|
com12 |
|- ( -. L <_ ( # ` S ) -> ( ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) /\ S e. Word V ) -> ( S substr <. F , L >. ) = (/) ) ) |
| 65 |
64
|
expd |
|- ( -. L <_ ( # ` S ) -> ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) ) |
| 66 |
46 50 65
|
3jaoi |
|- ( ( -. L e. NN0 \/ -. ( # ` S ) e. NN0 \/ -. L <_ ( # ` S ) ) -> ( ( F e. NN0 /\ L e. NN0 /\ F <_ L ) -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) ) |
| 67 |
43 66
|
biimtrrid |
|- ( ( -. L e. NN0 \/ -. ( # ` S ) e. NN0 \/ -. L <_ ( # ` S ) ) -> ( -. ( -. F e. NN0 \/ -. L e. NN0 \/ -. F <_ L ) -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) ) |
| 68 |
67
|
impcom |
|- ( ( -. ( -. F e. NN0 \/ -. L e. NN0 \/ -. F <_ L ) /\ ( -. L e. NN0 \/ -. ( # ` S ) e. NN0 \/ -. L <_ ( # ` S ) ) ) -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) |
| 69 |
42 68
|
jaoi3 |
|- ( ( ( -. F e. NN0 \/ -. L e. NN0 \/ -. F <_ L ) \/ ( -. L e. NN0 \/ -. ( # ` S ) e. NN0 \/ -. L <_ ( # ` S ) ) ) -> ( S e. Word V -> ( S substr <. F , L >. ) = (/) ) ) |
| 70 |
69
|
com12 |
|- ( S e. Word V -> ( ( ( -. F e. NN0 \/ -. L e. NN0 \/ -. F <_ L ) \/ ( -. L e. NN0 \/ -. ( # ` S ) e. NN0 \/ -. L <_ ( # ` S ) ) ) -> ( S substr <. F , L >. ) = (/) ) ) |
| 71 |
9 70
|
biimtrid |
|- ( S e. Word V -> ( -. ( F e. ( 0 ... L ) /\ L e. ( 0 ... ( # ` S ) ) ) -> ( S substr <. F , L >. ) = (/) ) ) |