Step |
Hyp |
Ref |
Expression |
1 |
|
pthhashvtx.1 |
|- V = ( Vtx ` G ) |
2 |
|
hashfz0 |
|- ( ( ( # ` F ) - 1 ) e. NN0 -> ( # ` ( 0 ... ( ( # ` F ) - 1 ) ) ) = ( ( ( # ` F ) - 1 ) + 1 ) ) |
3 |
|
pthiswlk |
|- ( F ( Paths ` G ) P -> F ( Walks ` G ) P ) |
4 |
|
wlkcl |
|- ( F ( Walks ` G ) P -> ( # ` F ) e. NN0 ) |
5 |
3 4
|
syl |
|- ( F ( Paths ` G ) P -> ( # ` F ) e. NN0 ) |
6 |
|
nn0cn |
|- ( ( # ` F ) e. NN0 -> ( # ` F ) e. CC ) |
7 |
|
npcan1 |
|- ( ( # ` F ) e. CC -> ( ( ( # ` F ) - 1 ) + 1 ) = ( # ` F ) ) |
8 |
5 6 7
|
3syl |
|- ( F ( Paths ` G ) P -> ( ( ( # ` F ) - 1 ) + 1 ) = ( # ` F ) ) |
9 |
2 8
|
sylan9eqr |
|- ( ( F ( Paths ` G ) P /\ ( ( # ` F ) - 1 ) e. NN0 ) -> ( # ` ( 0 ... ( ( # ` F ) - 1 ) ) ) = ( # ` F ) ) |
10 |
1
|
wlkp |
|- ( F ( Walks ` G ) P -> P : ( 0 ... ( # ` F ) ) --> V ) |
11 |
3 10
|
syl |
|- ( F ( Paths ` G ) P -> P : ( 0 ... ( # ` F ) ) --> V ) |
12 |
11
|
ffnd |
|- ( F ( Paths ` G ) P -> P Fn ( 0 ... ( # ` F ) ) ) |
13 |
|
fzfi |
|- ( 0 ... ( ( # ` F ) - 1 ) ) e. Fin |
14 |
|
resfnfinfin |
|- ( ( P Fn ( 0 ... ( # ` F ) ) /\ ( 0 ... ( ( # ` F ) - 1 ) ) e. Fin ) -> ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) e. Fin ) |
15 |
12 13 14
|
sylancl |
|- ( F ( Paths ` G ) P -> ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) e. Fin ) |
16 |
|
simpr |
|- ( ( F ( Paths ` G ) P /\ ( ( # ` F ) - 1 ) e. NN0 ) -> ( ( # ` F ) - 1 ) e. NN0 ) |
17 |
|
fzssp1 |
|- ( 0 ... ( ( # ` F ) - 1 ) ) C_ ( 0 ... ( ( ( # ` F ) - 1 ) + 1 ) ) |
18 |
8
|
oveq2d |
|- ( F ( Paths ` G ) P -> ( 0 ... ( ( ( # ` F ) - 1 ) + 1 ) ) = ( 0 ... ( # ` F ) ) ) |
19 |
17 18
|
sseqtrid |
|- ( F ( Paths ` G ) P -> ( 0 ... ( ( # ` F ) - 1 ) ) C_ ( 0 ... ( # ` F ) ) ) |
20 |
11 19
|
fssresd |
|- ( F ( Paths ` G ) P -> ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) : ( 0 ... ( ( # ` F ) - 1 ) ) --> V ) |
21 |
20
|
adantr |
|- ( ( F ( Paths ` G ) P /\ ( ( # ` F ) - 1 ) e. NN0 ) -> ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) : ( 0 ... ( ( # ` F ) - 1 ) ) --> V ) |
22 |
|
fz1ssfz0 |
|- ( 1 ... ( ( # ` F ) - 1 ) ) C_ ( 0 ... ( ( # ` F ) - 1 ) ) |
23 |
22
|
a1i |
|- ( F ( Paths ` G ) P -> ( 1 ... ( ( # ` F ) - 1 ) ) C_ ( 0 ... ( ( # ` F ) - 1 ) ) ) |
24 |
20 23
|
fssresd |
|- ( F ( Paths ` G ) P -> ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) |` ( 1 ... ( ( # ` F ) - 1 ) ) ) : ( 1 ... ( ( # ` F ) - 1 ) ) --> V ) |
25 |
|
ispth |
|- ( F ( Paths ` G ) P <-> ( F ( Trails ` G ) P /\ Fun `' ( P |` ( 1 ..^ ( # ` F ) ) ) /\ ( ( P " { 0 , ( # ` F ) } ) i^i ( P " ( 1 ..^ ( # ` F ) ) ) ) = (/) ) ) |
26 |
25
|
simp2bi |
|- ( F ( Paths ` G ) P -> Fun `' ( P |` ( 1 ..^ ( # ` F ) ) ) ) |
27 |
|
nn0z |
|- ( ( # ` F ) e. NN0 -> ( # ` F ) e. ZZ ) |
28 |
|
fzoval |
|- ( ( # ` F ) e. ZZ -> ( 1 ..^ ( # ` F ) ) = ( 1 ... ( ( # ` F ) - 1 ) ) ) |
29 |
27 28
|
syl |
|- ( ( # ` F ) e. NN0 -> ( 1 ..^ ( # ` F ) ) = ( 1 ... ( ( # ` F ) - 1 ) ) ) |
30 |
5 29
|
syl |
|- ( F ( Paths ` G ) P -> ( 1 ..^ ( # ` F ) ) = ( 1 ... ( ( # ` F ) - 1 ) ) ) |
31 |
30
|
reseq2d |
|- ( F ( Paths ` G ) P -> ( P |` ( 1 ..^ ( # ` F ) ) ) = ( P |` ( 1 ... ( ( # ` F ) - 1 ) ) ) ) |
32 |
|
resabs1 |
|- ( ( 1 ... ( ( # ` F ) - 1 ) ) C_ ( 0 ... ( ( # ` F ) - 1 ) ) -> ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) |` ( 1 ... ( ( # ` F ) - 1 ) ) ) = ( P |` ( 1 ... ( ( # ` F ) - 1 ) ) ) ) |
33 |
22 32
|
ax-mp |
|- ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) |` ( 1 ... ( ( # ` F ) - 1 ) ) ) = ( P |` ( 1 ... ( ( # ` F ) - 1 ) ) ) |
34 |
31 33
|
eqtr4di |
|- ( F ( Paths ` G ) P -> ( P |` ( 1 ..^ ( # ` F ) ) ) = ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) |` ( 1 ... ( ( # ` F ) - 1 ) ) ) ) |
35 |
34
|
cnveqd |
|- ( F ( Paths ` G ) P -> `' ( P |` ( 1 ..^ ( # ` F ) ) ) = `' ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) |` ( 1 ... ( ( # ` F ) - 1 ) ) ) ) |
36 |
35
|
funeqd |
|- ( F ( Paths ` G ) P -> ( Fun `' ( P |` ( 1 ..^ ( # ` F ) ) ) <-> Fun `' ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) |` ( 1 ... ( ( # ` F ) - 1 ) ) ) ) ) |
37 |
26 36
|
mpbid |
|- ( F ( Paths ` G ) P -> Fun `' ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) |` ( 1 ... ( ( # ` F ) - 1 ) ) ) ) |
38 |
|
df-f1 |
|- ( ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) |` ( 1 ... ( ( # ` F ) - 1 ) ) ) : ( 1 ... ( ( # ` F ) - 1 ) ) -1-1-> V <-> ( ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) |` ( 1 ... ( ( # ` F ) - 1 ) ) ) : ( 1 ... ( ( # ` F ) - 1 ) ) --> V /\ Fun `' ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) |` ( 1 ... ( ( # ` F ) - 1 ) ) ) ) ) |
39 |
24 37 38
|
sylanbrc |
|- ( F ( Paths ` G ) P -> ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) |` ( 1 ... ( ( # ` F ) - 1 ) ) ) : ( 1 ... ( ( # ` F ) - 1 ) ) -1-1-> V ) |
40 |
39
|
adantr |
|- ( ( F ( Paths ` G ) P /\ ( ( # ` F ) - 1 ) e. NN0 ) -> ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) |` ( 1 ... ( ( # ` F ) - 1 ) ) ) : ( 1 ... ( ( # ` F ) - 1 ) ) -1-1-> V ) |
41 |
|
snsspr1 |
|- { 0 } C_ { 0 , ( # ` F ) } |
42 |
|
imass2 |
|- ( { 0 } C_ { 0 , ( # ` F ) } -> ( P " { 0 } ) C_ ( P " { 0 , ( # ` F ) } ) ) |
43 |
41 42
|
ax-mp |
|- ( P " { 0 } ) C_ ( P " { 0 , ( # ` F ) } ) |
44 |
|
0elfz |
|- ( ( ( # ` F ) - 1 ) e. NN0 -> 0 e. ( 0 ... ( ( # ` F ) - 1 ) ) ) |
45 |
44
|
snssd |
|- ( ( ( # ` F ) - 1 ) e. NN0 -> { 0 } C_ ( 0 ... ( ( # ` F ) - 1 ) ) ) |
46 |
|
resima2 |
|- ( { 0 } C_ ( 0 ... ( ( # ` F ) - 1 ) ) -> ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " { 0 } ) = ( P " { 0 } ) ) |
47 |
|
sseq1 |
|- ( ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " { 0 } ) = ( P " { 0 } ) -> ( ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " { 0 } ) C_ ( P " { 0 , ( # ` F ) } ) <-> ( P " { 0 } ) C_ ( P " { 0 , ( # ` F ) } ) ) ) |
48 |
45 46 47
|
3syl |
|- ( ( ( # ` F ) - 1 ) e. NN0 -> ( ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " { 0 } ) C_ ( P " { 0 , ( # ` F ) } ) <-> ( P " { 0 } ) C_ ( P " { 0 , ( # ` F ) } ) ) ) |
49 |
43 48
|
mpbiri |
|- ( ( ( # ` F ) - 1 ) e. NN0 -> ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " { 0 } ) C_ ( P " { 0 , ( # ` F ) } ) ) |
50 |
|
resima2 |
|- ( ( 1 ... ( ( # ` F ) - 1 ) ) C_ ( 0 ... ( ( # ` F ) - 1 ) ) -> ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " ( 1 ... ( ( # ` F ) - 1 ) ) ) = ( P " ( 1 ... ( ( # ` F ) - 1 ) ) ) ) |
51 |
22 50
|
ax-mp |
|- ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " ( 1 ... ( ( # ` F ) - 1 ) ) ) = ( P " ( 1 ... ( ( # ` F ) - 1 ) ) ) |
52 |
30
|
imaeq2d |
|- ( F ( Paths ` G ) P -> ( P " ( 1 ..^ ( # ` F ) ) ) = ( P " ( 1 ... ( ( # ` F ) - 1 ) ) ) ) |
53 |
51 52
|
eqtr4id |
|- ( F ( Paths ` G ) P -> ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " ( 1 ... ( ( # ` F ) - 1 ) ) ) = ( P " ( 1 ..^ ( # ` F ) ) ) ) |
54 |
53
|
ineq2d |
|- ( F ( Paths ` G ) P -> ( ( P " { 0 , ( # ` F ) } ) i^i ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " ( 1 ... ( ( # ` F ) - 1 ) ) ) ) = ( ( P " { 0 , ( # ` F ) } ) i^i ( P " ( 1 ..^ ( # ` F ) ) ) ) ) |
55 |
25
|
simp3bi |
|- ( F ( Paths ` G ) P -> ( ( P " { 0 , ( # ` F ) } ) i^i ( P " ( 1 ..^ ( # ` F ) ) ) ) = (/) ) |
56 |
54 55
|
eqtrd |
|- ( F ( Paths ` G ) P -> ( ( P " { 0 , ( # ` F ) } ) i^i ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " ( 1 ... ( ( # ` F ) - 1 ) ) ) ) = (/) ) |
57 |
|
ssdisj |
|- ( ( ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " { 0 } ) C_ ( P " { 0 , ( # ` F ) } ) /\ ( ( P " { 0 , ( # ` F ) } ) i^i ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " ( 1 ... ( ( # ` F ) - 1 ) ) ) ) = (/) ) -> ( ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " { 0 } ) i^i ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " ( 1 ... ( ( # ` F ) - 1 ) ) ) ) = (/) ) |
58 |
49 56 57
|
syl2anr |
|- ( ( F ( Paths ` G ) P /\ ( ( # ` F ) - 1 ) e. NN0 ) -> ( ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " { 0 } ) i^i ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) " ( 1 ... ( ( # ` F ) - 1 ) ) ) ) = (/) ) |
59 |
16 21 40 58
|
f1resfz0f1d |
|- ( ( F ( Paths ` G ) P /\ ( ( # ` F ) - 1 ) e. NN0 ) -> ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) : ( 0 ... ( ( # ` F ) - 1 ) ) -1-1-> V ) |
60 |
1
|
fvexi |
|- V e. _V |
61 |
|
hashf1dmcdm |
|- ( ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) e. Fin /\ V e. _V /\ ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) : ( 0 ... ( ( # ` F ) - 1 ) ) -1-1-> V ) -> ( # ` ( 0 ... ( ( # ` F ) - 1 ) ) ) <_ ( # ` V ) ) |
62 |
60 61
|
mp3an2 |
|- ( ( ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) e. Fin /\ ( P |` ( 0 ... ( ( # ` F ) - 1 ) ) ) : ( 0 ... ( ( # ` F ) - 1 ) ) -1-1-> V ) -> ( # ` ( 0 ... ( ( # ` F ) - 1 ) ) ) <_ ( # ` V ) ) |
63 |
15 59 62
|
syl2an2r |
|- ( ( F ( Paths ` G ) P /\ ( ( # ` F ) - 1 ) e. NN0 ) -> ( # ` ( 0 ... ( ( # ` F ) - 1 ) ) ) <_ ( # ` V ) ) |
64 |
9 63
|
eqbrtrrd |
|- ( ( F ( Paths ` G ) P /\ ( ( # ` F ) - 1 ) e. NN0 ) -> ( # ` F ) <_ ( # ` V ) ) |
65 |
|
0nn0m1nnn0 |
|- ( ( # ` F ) = 0 <-> ( ( # ` F ) e. NN0 /\ -. ( ( # ` F ) - 1 ) e. NN0 ) ) |
66 |
65
|
biimpri |
|- ( ( ( # ` F ) e. NN0 /\ -. ( ( # ` F ) - 1 ) e. NN0 ) -> ( # ` F ) = 0 ) |
67 |
5 66
|
sylan |
|- ( ( F ( Paths ` G ) P /\ -. ( ( # ` F ) - 1 ) e. NN0 ) -> ( # ` F ) = 0 ) |
68 |
|
hashge0 |
|- ( V e. _V -> 0 <_ ( # ` V ) ) |
69 |
60 68
|
ax-mp |
|- 0 <_ ( # ` V ) |
70 |
67 69
|
eqbrtrdi |
|- ( ( F ( Paths ` G ) P /\ -. ( ( # ` F ) - 1 ) e. NN0 ) -> ( # ` F ) <_ ( # ` V ) ) |
71 |
64 70
|
pm2.61dan |
|- ( F ( Paths ` G ) P -> ( # ` F ) <_ ( # ` V ) ) |