This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Lemma for crctcsh . (Contributed by AV, 10-Mar-2021)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | crctcsh.v | |- V = ( Vtx ` G ) |
|
| crctcsh.i | |- I = ( iEdg ` G ) |
||
| crctcsh.d | |- ( ph -> F ( Circuits ` G ) P ) |
||
| crctcsh.n | |- N = ( # ` F ) |
||
| crctcsh.s | |- ( ph -> S e. ( 0 ..^ N ) ) |
||
| crctcsh.h | |- H = ( F cyclShift S ) |
||
| crctcsh.q | |- Q = ( x e. ( 0 ... N ) |-> if ( x <_ ( N - S ) , ( P ` ( x + S ) ) , ( P ` ( ( x + S ) - N ) ) ) ) |
||
| Assertion | crctcshlem4 | |- ( ( ph /\ S = 0 ) -> ( H = F /\ Q = P ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | crctcsh.v | |- V = ( Vtx ` G ) |
|
| 2 | crctcsh.i | |- I = ( iEdg ` G ) |
|
| 3 | crctcsh.d | |- ( ph -> F ( Circuits ` G ) P ) |
|
| 4 | crctcsh.n | |- N = ( # ` F ) |
|
| 5 | crctcsh.s | |- ( ph -> S e. ( 0 ..^ N ) ) |
|
| 6 | crctcsh.h | |- H = ( F cyclShift S ) |
|
| 7 | crctcsh.q | |- Q = ( x e. ( 0 ... N ) |-> if ( x <_ ( N - S ) , ( P ` ( x + S ) ) , ( P ` ( ( x + S ) - N ) ) ) ) |
|
| 8 | oveq2 | |- ( S = 0 -> ( F cyclShift S ) = ( F cyclShift 0 ) ) |
|
| 9 | crctiswlk | |- ( F ( Circuits ` G ) P -> F ( Walks ` G ) P ) |
|
| 10 | 2 | wlkf | |- ( F ( Walks ` G ) P -> F e. Word dom I ) |
| 11 | cshw0 | |- ( F e. Word dom I -> ( F cyclShift 0 ) = F ) |
|
| 12 | 3 9 10 11 | 4syl | |- ( ph -> ( F cyclShift 0 ) = F ) |
| 13 | 8 12 | sylan9eqr | |- ( ( ph /\ S = 0 ) -> ( F cyclShift S ) = F ) |
| 14 | 6 13 | eqtrid | |- ( ( ph /\ S = 0 ) -> H = F ) |
| 15 | oveq2 | |- ( S = 0 -> ( N - S ) = ( N - 0 ) ) |
|
| 16 | 1 2 3 4 | crctcshlem1 | |- ( ph -> N e. NN0 ) |
| 17 | 16 | nn0cnd | |- ( ph -> N e. CC ) |
| 18 | 17 | subid1d | |- ( ph -> ( N - 0 ) = N ) |
| 19 | 15 18 | sylan9eqr | |- ( ( ph /\ S = 0 ) -> ( N - S ) = N ) |
| 20 | 19 | breq2d | |- ( ( ph /\ S = 0 ) -> ( x <_ ( N - S ) <-> x <_ N ) ) |
| 21 | 20 | adantr | |- ( ( ( ph /\ S = 0 ) /\ x e. ( 0 ... N ) ) -> ( x <_ ( N - S ) <-> x <_ N ) ) |
| 22 | oveq2 | |- ( S = 0 -> ( x + S ) = ( x + 0 ) ) |
|
| 23 | 22 | adantl | |- ( ( ph /\ S = 0 ) -> ( x + S ) = ( x + 0 ) ) |
| 24 | elfzelz | |- ( x e. ( 0 ... N ) -> x e. ZZ ) |
|
| 25 | 24 | zcnd | |- ( x e. ( 0 ... N ) -> x e. CC ) |
| 26 | 25 | addridd | |- ( x e. ( 0 ... N ) -> ( x + 0 ) = x ) |
| 27 | 23 26 | sylan9eq | |- ( ( ( ph /\ S = 0 ) /\ x e. ( 0 ... N ) ) -> ( x + S ) = x ) |
| 28 | 27 | fveq2d | |- ( ( ( ph /\ S = 0 ) /\ x e. ( 0 ... N ) ) -> ( P ` ( x + S ) ) = ( P ` x ) ) |
| 29 | 27 | fvoveq1d | |- ( ( ( ph /\ S = 0 ) /\ x e. ( 0 ... N ) ) -> ( P ` ( ( x + S ) - N ) ) = ( P ` ( x - N ) ) ) |
| 30 | 21 28 29 | ifbieq12d | |- ( ( ( ph /\ S = 0 ) /\ x e. ( 0 ... N ) ) -> if ( x <_ ( N - S ) , ( P ` ( x + S ) ) , ( P ` ( ( x + S ) - N ) ) ) = if ( x <_ N , ( P ` x ) , ( P ` ( x - N ) ) ) ) |
| 31 | 30 | mpteq2dva | |- ( ( ph /\ S = 0 ) -> ( x e. ( 0 ... N ) |-> if ( x <_ ( N - S ) , ( P ` ( x + S ) ) , ( P ` ( ( x + S ) - N ) ) ) ) = ( x e. ( 0 ... N ) |-> if ( x <_ N , ( P ` x ) , ( P ` ( x - N ) ) ) ) ) |
| 32 | elfzle2 | |- ( x e. ( 0 ... N ) -> x <_ N ) |
|
| 33 | 32 | adantl | |- ( ( ph /\ x e. ( 0 ... N ) ) -> x <_ N ) |
| 34 | 33 | iftrued | |- ( ( ph /\ x e. ( 0 ... N ) ) -> if ( x <_ N , ( P ` x ) , ( P ` ( x - N ) ) ) = ( P ` x ) ) |
| 35 | 34 | mpteq2dva | |- ( ph -> ( x e. ( 0 ... N ) |-> if ( x <_ N , ( P ` x ) , ( P ` ( x - N ) ) ) ) = ( x e. ( 0 ... N ) |-> ( P ` x ) ) ) |
| 36 | 1 | wlkp | |- ( F ( Walks ` G ) P -> P : ( 0 ... ( # ` F ) ) --> V ) |
| 37 | 3 9 36 | 3syl | |- ( ph -> P : ( 0 ... ( # ` F ) ) --> V ) |
| 38 | ffn | |- ( P : ( 0 ... ( # ` F ) ) --> V -> P Fn ( 0 ... ( # ` F ) ) ) |
|
| 39 | 4 | eqcomi | |- ( # ` F ) = N |
| 40 | 39 | oveq2i | |- ( 0 ... ( # ` F ) ) = ( 0 ... N ) |
| 41 | 40 | fneq2i | |- ( P Fn ( 0 ... ( # ` F ) ) <-> P Fn ( 0 ... N ) ) |
| 42 | 38 41 | sylib | |- ( P : ( 0 ... ( # ` F ) ) --> V -> P Fn ( 0 ... N ) ) |
| 43 | 42 | adantl | |- ( ( ph /\ P : ( 0 ... ( # ` F ) ) --> V ) -> P Fn ( 0 ... N ) ) |
| 44 | dffn5 | |- ( P Fn ( 0 ... N ) <-> P = ( x e. ( 0 ... N ) |-> ( P ` x ) ) ) |
|
| 45 | 43 44 | sylib | |- ( ( ph /\ P : ( 0 ... ( # ` F ) ) --> V ) -> P = ( x e. ( 0 ... N ) |-> ( P ` x ) ) ) |
| 46 | 45 | eqcomd | |- ( ( ph /\ P : ( 0 ... ( # ` F ) ) --> V ) -> ( x e. ( 0 ... N ) |-> ( P ` x ) ) = P ) |
| 47 | 37 46 | mpdan | |- ( ph -> ( x e. ( 0 ... N ) |-> ( P ` x ) ) = P ) |
| 48 | 35 47 | eqtrd | |- ( ph -> ( x e. ( 0 ... N ) |-> if ( x <_ N , ( P ` x ) , ( P ` ( x - N ) ) ) ) = P ) |
| 49 | 48 | adantr | |- ( ( ph /\ S = 0 ) -> ( x e. ( 0 ... N ) |-> if ( x <_ N , ( P ` x ) , ( P ` ( x - N ) ) ) ) = P ) |
| 50 | 31 49 | eqtrd | |- ( ( ph /\ S = 0 ) -> ( x e. ( 0 ... N ) |-> if ( x <_ ( N - S ) , ( P ` ( x + S ) ) , ( P ` ( ( x + S ) - N ) ) ) ) = P ) |
| 51 | 7 50 | eqtrid | |- ( ( ph /\ S = 0 ) -> Q = P ) |
| 52 | 14 51 | jca | |- ( ( ph /\ S = 0 ) -> ( H = F /\ Q = P ) ) |