| 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 ) ) |