Step |
Hyp |
Ref |
Expression |
1 |
|
eulerpathpr.v |
|- V = ( Vtx ` G ) |
2 |
|
eqid |
|- ( iEdg ` G ) = ( iEdg ` G ) |
3 |
|
simpl |
|- ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P ) -> G e. UPGraph ) |
4 |
|
upgruhgr |
|- ( G e. UPGraph -> G e. UHGraph ) |
5 |
2
|
uhgrfun |
|- ( G e. UHGraph -> Fun ( iEdg ` G ) ) |
6 |
4 5
|
syl |
|- ( G e. UPGraph -> Fun ( iEdg ` G ) ) |
7 |
6
|
adantr |
|- ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P ) -> Fun ( iEdg ` G ) ) |
8 |
|
simpr |
|- ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P ) -> F ( EulerPaths ` G ) P ) |
9 |
1 2 3 7 8
|
eupth2 |
|- ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P ) -> { x e. V | -. 2 || ( ( VtxDeg ` G ) ` x ) } = if ( ( P ` 0 ) = ( P ` ( # ` F ) ) , (/) , { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) ) |
10 |
9
|
fveq2d |
|- ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P ) -> ( # ` { x e. V | -. 2 || ( ( VtxDeg ` G ) ` x ) } ) = ( # ` if ( ( P ` 0 ) = ( P ` ( # ` F ) ) , (/) , { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) ) ) |
11 |
|
fveq2 |
|- ( (/) = if ( ( P ` 0 ) = ( P ` ( # ` F ) ) , (/) , { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) -> ( # ` (/) ) = ( # ` if ( ( P ` 0 ) = ( P ` ( # ` F ) ) , (/) , { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) ) ) |
12 |
11
|
eleq1d |
|- ( (/) = if ( ( P ` 0 ) = ( P ` ( # ` F ) ) , (/) , { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) -> ( ( # ` (/) ) e. { 0 , 2 } <-> ( # ` if ( ( P ` 0 ) = ( P ` ( # ` F ) ) , (/) , { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) ) e. { 0 , 2 } ) ) |
13 |
|
fveq2 |
|- ( { ( P ` 0 ) , ( P ` ( # ` F ) ) } = if ( ( P ` 0 ) = ( P ` ( # ` F ) ) , (/) , { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) -> ( # ` { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) = ( # ` if ( ( P ` 0 ) = ( P ` ( # ` F ) ) , (/) , { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) ) ) |
14 |
13
|
eleq1d |
|- ( { ( P ` 0 ) , ( P ` ( # ` F ) ) } = if ( ( P ` 0 ) = ( P ` ( # ` F ) ) , (/) , { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) -> ( ( # ` { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) e. { 0 , 2 } <-> ( # ` if ( ( P ` 0 ) = ( P ` ( # ` F ) ) , (/) , { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) ) e. { 0 , 2 } ) ) |
15 |
|
hash0 |
|- ( # ` (/) ) = 0 |
16 |
|
c0ex |
|- 0 e. _V |
17 |
16
|
prid1 |
|- 0 e. { 0 , 2 } |
18 |
15 17
|
eqeltri |
|- ( # ` (/) ) e. { 0 , 2 } |
19 |
18
|
a1i |
|- ( ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P ) /\ ( P ` 0 ) = ( P ` ( # ` F ) ) ) -> ( # ` (/) ) e. { 0 , 2 } ) |
20 |
|
simpr |
|- ( ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P ) /\ -. ( P ` 0 ) = ( P ` ( # ` F ) ) ) -> -. ( P ` 0 ) = ( P ` ( # ` F ) ) ) |
21 |
20
|
neqned |
|- ( ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P ) /\ -. ( P ` 0 ) = ( P ` ( # ` F ) ) ) -> ( P ` 0 ) =/= ( P ` ( # ` F ) ) ) |
22 |
|
fvex |
|- ( P ` 0 ) e. _V |
23 |
|
fvex |
|- ( P ` ( # ` F ) ) e. _V |
24 |
|
hashprg |
|- ( ( ( P ` 0 ) e. _V /\ ( P ` ( # ` F ) ) e. _V ) -> ( ( P ` 0 ) =/= ( P ` ( # ` F ) ) <-> ( # ` { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) = 2 ) ) |
25 |
22 23 24
|
mp2an |
|- ( ( P ` 0 ) =/= ( P ` ( # ` F ) ) <-> ( # ` { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) = 2 ) |
26 |
21 25
|
sylib |
|- ( ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P ) /\ -. ( P ` 0 ) = ( P ` ( # ` F ) ) ) -> ( # ` { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) = 2 ) |
27 |
|
2ex |
|- 2 e. _V |
28 |
27
|
prid2 |
|- 2 e. { 0 , 2 } |
29 |
26 28
|
eqeltrdi |
|- ( ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P ) /\ -. ( P ` 0 ) = ( P ` ( # ` F ) ) ) -> ( # ` { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) e. { 0 , 2 } ) |
30 |
12 14 19 29
|
ifbothda |
|- ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P ) -> ( # ` if ( ( P ` 0 ) = ( P ` ( # ` F ) ) , (/) , { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) ) e. { 0 , 2 } ) |
31 |
10 30
|
eqeltrd |
|- ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P ) -> ( # ` { x e. V | -. 2 || ( ( VtxDeg ` G ) ` x ) } ) e. { 0 , 2 } ) |