This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Append one path segment to an Eulerian path <. F , P >. which may not be an (Eulerian) circuit to become an Eulerian circuit <. H , Q >. of the supergraph S obtained by adding the new edge to the graph G . (Contributed by AV, 11-Mar-2021) (Proof shortened by AV, 30-Oct-2021) (Revised by AV, 8-Apr-2024)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | eupthp1.v | |- V = ( Vtx ` G ) |
|
| eupthp1.i | |- I = ( iEdg ` G ) |
||
| eupthp1.f | |- ( ph -> Fun I ) |
||
| eupthp1.a | |- ( ph -> I e. Fin ) |
||
| eupthp1.b | |- ( ph -> B e. W ) |
||
| eupthp1.c | |- ( ph -> C e. V ) |
||
| eupthp1.d | |- ( ph -> -. B e. dom I ) |
||
| eupthp1.p | |- ( ph -> F ( EulerPaths ` G ) P ) |
||
| eupthp1.n | |- N = ( # ` F ) |
||
| eupthp1.e | |- ( ph -> E e. ( Edg ` G ) ) |
||
| eupthp1.x | |- ( ph -> { ( P ` N ) , C } C_ E ) |
||
| eupthp1.u | |- ( iEdg ` S ) = ( I u. { <. B , E >. } ) |
||
| eupthp1.h | |- H = ( F u. { <. N , B >. } ) |
||
| eupthp1.q | |- Q = ( P u. { <. ( N + 1 ) , C >. } ) |
||
| eupthp1.s | |- ( Vtx ` S ) = V |
||
| eupthp1.l | |- ( ( ph /\ C = ( P ` N ) ) -> E = { C } ) |
||
| eupth2eucrct.c | |- ( ph -> C = ( P ` 0 ) ) |
||
| Assertion | eupth2eucrct | |- ( ph -> ( H ( EulerPaths ` S ) Q /\ H ( Circuits ` S ) Q ) ) |
| 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 ) ) |