| Step |
Hyp |
Ref |
Expression |
| 1 |
|
eupthp1.v |
|- V = ( Vtx ` G ) |
| 2 |
|
eupthp1.i |
|- I = ( iEdg ` G ) |
| 3 |
|
eupthp1.f |
|- ( ph -> Fun I ) |
| 4 |
|
eupthp1.a |
|- ( ph -> I e. Fin ) |
| 5 |
|
eupthp1.b |
|- ( ph -> B e. W ) |
| 6 |
|
eupthp1.c |
|- ( ph -> C e. V ) |
| 7 |
|
eupthp1.d |
|- ( ph -> -. B e. dom I ) |
| 8 |
|
eupthp1.p |
|- ( ph -> F ( EulerPaths ` G ) P ) |
| 9 |
|
eupthp1.n |
|- N = ( # ` F ) |
| 10 |
|
eupthp1.e |
|- ( ph -> E e. ( Edg ` G ) ) |
| 11 |
|
eupthp1.x |
|- ( ph -> { ( P ` N ) , C } C_ E ) |
| 12 |
|
eupthp1.u |
|- ( iEdg ` S ) = ( I u. { <. B , E >. } ) |
| 13 |
|
eupthp1.h |
|- H = ( F u. { <. N , B >. } ) |
| 14 |
|
eupthp1.q |
|- Q = ( P u. { <. ( N + 1 ) , C >. } ) |
| 15 |
|
eupthp1.s |
|- ( Vtx ` S ) = V |
| 16 |
|
eupthp1.l |
|- ( ( ph /\ C = ( P ` N ) ) -> E = { C } ) |
| 17 |
|
eupth2eucrct.c |
|- ( ph -> C = ( P ` 0 ) ) |
| 18 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
eupthp1 |
|- ( ph -> H ( EulerPaths ` S ) Q ) |
| 19 |
|
simpr |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> H ( EulerPaths ` S ) Q ) |
| 20 |
|
eupthistrl |
|- ( H ( EulerPaths ` S ) Q -> H ( Trails ` S ) Q ) |
| 21 |
20
|
adantl |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> H ( Trails ` S ) Q ) |
| 22 |
|
fveq2 |
|- ( k = 0 -> ( Q ` k ) = ( Q ` 0 ) ) |
| 23 |
|
fveq2 |
|- ( k = 0 -> ( P ` k ) = ( P ` 0 ) ) |
| 24 |
22 23
|
eqeq12d |
|- ( k = 0 -> ( ( Q ` k ) = ( P ` k ) <-> ( Q ` 0 ) = ( P ` 0 ) ) ) |
| 25 |
|
eupthiswlk |
|- ( F ( EulerPaths ` G ) P -> F ( Walks ` G ) P ) |
| 26 |
8 25
|
syl |
|- ( ph -> F ( Walks ` G ) P ) |
| 27 |
12
|
a1i |
|- ( ph -> ( iEdg ` S ) = ( I u. { <. B , E >. } ) ) |
| 28 |
15
|
a1i |
|- ( ph -> ( Vtx ` S ) = V ) |
| 29 |
1 2 3 4 5 6 7 26 9 10 11 27 13 14 28
|
wlkp1lem5 |
|- ( ph -> A. k e. ( 0 ... N ) ( Q ` k ) = ( P ` k ) ) |
| 30 |
2
|
wlkf |
|- ( F ( Walks ` G ) P -> F e. Word dom I ) |
| 31 |
|
lencl |
|- ( F e. Word dom I -> ( # ` F ) e. NN0 ) |
| 32 |
9
|
eleq1i |
|- ( N e. NN0 <-> ( # ` F ) e. NN0 ) |
| 33 |
|
0elfz |
|- ( N e. NN0 -> 0 e. ( 0 ... N ) ) |
| 34 |
32 33
|
sylbir |
|- ( ( # ` F ) e. NN0 -> 0 e. ( 0 ... N ) ) |
| 35 |
31 34
|
syl |
|- ( F e. Word dom I -> 0 e. ( 0 ... N ) ) |
| 36 |
8 25 30 35
|
4syl |
|- ( ph -> 0 e. ( 0 ... N ) ) |
| 37 |
24 29 36
|
rspcdva |
|- ( ph -> ( Q ` 0 ) = ( P ` 0 ) ) |
| 38 |
37
|
adantr |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> ( Q ` 0 ) = ( P ` 0 ) ) |
| 39 |
17
|
eqcomd |
|- ( ph -> ( P ` 0 ) = C ) |
| 40 |
39
|
adantr |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> ( P ` 0 ) = C ) |
| 41 |
14
|
a1i |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> Q = ( P u. { <. ( N + 1 ) , C >. } ) ) |
| 42 |
13
|
fveq2i |
|- ( # ` H ) = ( # ` ( F u. { <. N , B >. } ) ) |
| 43 |
42
|
a1i |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> ( # ` H ) = ( # ` ( F u. { <. N , B >. } ) ) ) |
| 44 |
|
wrdfin |
|- ( F e. Word dom I -> F e. Fin ) |
| 45 |
8 25 30 44
|
4syl |
|- ( ph -> F e. Fin ) |
| 46 |
45
|
adantr |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> F e. Fin ) |
| 47 |
|
snfi |
|- { <. N , B >. } e. Fin |
| 48 |
47
|
a1i |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> { <. N , B >. } e. Fin ) |
| 49 |
|
wrddm |
|- ( F e. Word dom I -> dom F = ( 0 ..^ ( # ` F ) ) ) |
| 50 |
8 25 30 49
|
4syl |
|- ( ph -> dom F = ( 0 ..^ ( # ` F ) ) ) |
| 51 |
|
fzonel |
|- -. ( # ` F ) e. ( 0 ..^ ( # ` F ) ) |
| 52 |
51
|
a1i |
|- ( ph -> -. ( # ` F ) e. ( 0 ..^ ( # ` F ) ) ) |
| 53 |
9
|
eleq1i |
|- ( N e. ( 0 ..^ ( # ` F ) ) <-> ( # ` F ) e. ( 0 ..^ ( # ` F ) ) ) |
| 54 |
52 53
|
sylnibr |
|- ( ph -> -. N e. ( 0 ..^ ( # ` F ) ) ) |
| 55 |
|
eleq2 |
|- ( dom F = ( 0 ..^ ( # ` F ) ) -> ( N e. dom F <-> N e. ( 0 ..^ ( # ` F ) ) ) ) |
| 56 |
55
|
notbid |
|- ( dom F = ( 0 ..^ ( # ` F ) ) -> ( -. N e. dom F <-> -. N e. ( 0 ..^ ( # ` F ) ) ) ) |
| 57 |
54 56
|
syl5ibrcom |
|- ( ph -> ( dom F = ( 0 ..^ ( # ` F ) ) -> -. N e. dom F ) ) |
| 58 |
9
|
fvexi |
|- N e. _V |
| 59 |
58
|
a1i |
|- ( ph -> N e. _V ) |
| 60 |
59 5
|
opeldmd |
|- ( ph -> ( <. N , B >. e. F -> N e. dom F ) ) |
| 61 |
57 60
|
nsyld |
|- ( ph -> ( dom F = ( 0 ..^ ( # ` F ) ) -> -. <. N , B >. e. F ) ) |
| 62 |
50 61
|
mpd |
|- ( ph -> -. <. N , B >. e. F ) |
| 63 |
62
|
adantr |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> -. <. N , B >. e. F ) |
| 64 |
|
disjsn |
|- ( ( F i^i { <. N , B >. } ) = (/) <-> -. <. N , B >. e. F ) |
| 65 |
63 64
|
sylibr |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> ( F i^i { <. N , B >. } ) = (/) ) |
| 66 |
|
hashun |
|- ( ( F e. Fin /\ { <. N , B >. } e. Fin /\ ( F i^i { <. N , B >. } ) = (/) ) -> ( # ` ( F u. { <. N , B >. } ) ) = ( ( # ` F ) + ( # ` { <. N , B >. } ) ) ) |
| 67 |
46 48 65 66
|
syl3anc |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> ( # ` ( F u. { <. N , B >. } ) ) = ( ( # ` F ) + ( # ` { <. N , B >. } ) ) ) |
| 68 |
9
|
eqcomi |
|- ( # ` F ) = N |
| 69 |
|
opex |
|- <. N , B >. e. _V |
| 70 |
|
hashsng |
|- ( <. N , B >. e. _V -> ( # ` { <. N , B >. } ) = 1 ) |
| 71 |
69 70
|
ax-mp |
|- ( # ` { <. N , B >. } ) = 1 |
| 72 |
68 71
|
oveq12i |
|- ( ( # ` F ) + ( # ` { <. N , B >. } ) ) = ( N + 1 ) |
| 73 |
72
|
a1i |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> ( ( # ` F ) + ( # ` { <. N , B >. } ) ) = ( N + 1 ) ) |
| 74 |
43 67 73
|
3eqtrd |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> ( # ` H ) = ( N + 1 ) ) |
| 75 |
41 74
|
fveq12d |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> ( Q ` ( # ` H ) ) = ( ( P u. { <. ( N + 1 ) , C >. } ) ` ( N + 1 ) ) ) |
| 76 |
|
ovexd |
|- ( ph -> ( N + 1 ) e. _V ) |
| 77 |
1 2 3 4 5 6 7 26 9
|
wlkp1lem1 |
|- ( ph -> -. ( N + 1 ) e. dom P ) |
| 78 |
76 6 77
|
3jca |
|- ( ph -> ( ( N + 1 ) e. _V /\ C e. V /\ -. ( N + 1 ) e. dom P ) ) |
| 79 |
78
|
adantr |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> ( ( N + 1 ) e. _V /\ C e. V /\ -. ( N + 1 ) e. dom P ) ) |
| 80 |
|
fsnunfv |
|- ( ( ( N + 1 ) e. _V /\ C e. V /\ -. ( N + 1 ) e. dom P ) -> ( ( P u. { <. ( N + 1 ) , C >. } ) ` ( N + 1 ) ) = C ) |
| 81 |
79 80
|
syl |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> ( ( P u. { <. ( N + 1 ) , C >. } ) ` ( N + 1 ) ) = C ) |
| 82 |
75 81
|
eqtr2d |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> C = ( Q ` ( # ` H ) ) ) |
| 83 |
38 40 82
|
3eqtrd |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> ( Q ` 0 ) = ( Q ` ( # ` H ) ) ) |
| 84 |
|
iscrct |
|- ( H ( Circuits ` S ) Q <-> ( H ( Trails ` S ) Q /\ ( Q ` 0 ) = ( Q ` ( # ` H ) ) ) ) |
| 85 |
21 83 84
|
sylanbrc |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> H ( Circuits ` S ) Q ) |
| 86 |
19 85
|
jca |
|- ( ( ph /\ H ( EulerPaths ` S ) Q ) -> ( H ( EulerPaths ` S ) Q /\ H ( Circuits ` S ) Q ) ) |
| 87 |
18 86
|
mpdan |
|- ( ph -> ( H ( EulerPaths ` S ) Q /\ H ( Circuits ` S ) Q ) ) |