| Metamath Proof Explorer |
< Previous
Next >
Nearby theorems |
||
| Mirrors > Home > MPE Home > Th. List > eulerpathpr | Structured version Visualization version GIF version | ||
| Description: A graph with an Eulerian path has either zero or two vertices of odd degree. (Contributed by Mario Carneiro, 7-Apr-2015.) (Revised by AV, 26-Feb-2021.) |
| Ref | Expression |
|---|---|
| eulerpathpr.v | ⊢ 𝑉 = (Vtx‘𝐺) |
| Ref | Expression |
|---|---|
| eulerpathpr | ⊢ ((𝐺 ∈ UPGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃) → (♯‘{𝑥 ∈ 𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | eulerpathpr.v | . . . 4 ⊢ 𝑉 = (Vtx‘𝐺) | |
| 2 | eqid 2734 | . . . 4 ⊢ (iEdg‘𝐺) = (iEdg‘𝐺) | |
| 3 | simpl 482 | . . . 4 ⊢ ((𝐺 ∈ UPGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃) → 𝐺 ∈ UPGraph) | |
| 4 | upgruhgr 29066 | . . . . . 6 ⊢ (𝐺 ∈ UPGraph → 𝐺 ∈ UHGraph) | |
| 5 | 2 | uhgrfun 29030 | . . . . . 6 ⊢ (𝐺 ∈ UHGraph → Fun (iEdg‘𝐺)) |
| 6 | 4, 5 | syl 17 | . . . . 5 ⊢ (𝐺 ∈ UPGraph → Fun (iEdg‘𝐺)) |
| 7 | 6 | adantr 480 | . . . 4 ⊢ ((𝐺 ∈ UPGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃) → Fun (iEdg‘𝐺)) |
| 8 | simpr 484 | . . . 4 ⊢ ((𝐺 ∈ UPGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃) → 𝐹(EulerPaths‘𝐺)𝑃) | |
| 9 | 1, 2, 3, 7, 8 | eupth2 30205 | . . 3 ⊢ ((𝐺 ∈ UPGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃) → {𝑥 ∈ 𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)} = if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))})) |
| 10 | 9 | fveq2d 6891 | . 2 ⊢ ((𝐺 ∈ UPGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃) → (♯‘{𝑥 ∈ 𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) = (♯‘if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))}))) |
| 11 | fveq2 6887 | . . . 4 ⊢ (∅ = if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))}) → (♯‘∅) = (♯‘if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))}))) | |
| 12 | 11 | eleq1d 2818 | . . 3 ⊢ (∅ = if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))}) → ((♯‘∅) ∈ {0, 2} ↔ (♯‘if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))})) ∈ {0, 2})) |
| 13 | fveq2 6887 | . . . 4 ⊢ ({(𝑃‘0), (𝑃‘(♯‘𝐹))} = if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))}) → (♯‘{(𝑃‘0), (𝑃‘(♯‘𝐹))}) = (♯‘if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))}))) | |
| 14 | 13 | eleq1d 2818 | . . 3 ⊢ ({(𝑃‘0), (𝑃‘(♯‘𝐹))} = if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))}) → ((♯‘{(𝑃‘0), (𝑃‘(♯‘𝐹))}) ∈ {0, 2} ↔ (♯‘if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))})) ∈ {0, 2})) |
| 15 | hash0 14389 | . . . . 5 ⊢ (♯‘∅) = 0 | |
| 16 | c0ex 11238 | . . . . . 6 ⊢ 0 ∈ V | |
| 17 | 16 | prid1 4744 | . . . . 5 ⊢ 0 ∈ {0, 2} |
| 18 | 15, 17 | eqeltri 2829 | . . . 4 ⊢ (♯‘∅) ∈ {0, 2} |
| 19 | 18 | a1i 11 | . . 3 ⊢ (((𝐺 ∈ UPGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃) ∧ (𝑃‘0) = (𝑃‘(♯‘𝐹))) → (♯‘∅) ∈ {0, 2}) |
| 20 | simpr 484 | . . . . . 6 ⊢ (((𝐺 ∈ UPGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃) ∧ ¬ (𝑃‘0) = (𝑃‘(♯‘𝐹))) → ¬ (𝑃‘0) = (𝑃‘(♯‘𝐹))) | |
| 21 | 20 | neqned 2938 | . . . . 5 ⊢ (((𝐺 ∈ UPGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃) ∧ ¬ (𝑃‘0) = (𝑃‘(♯‘𝐹))) → (𝑃‘0) ≠ (𝑃‘(♯‘𝐹))) |
| 22 | fvex 6900 | . . . . . 6 ⊢ (𝑃‘0) ∈ V | |
| 23 | fvex 6900 | . . . . . 6 ⊢ (𝑃‘(♯‘𝐹)) ∈ V | |
| 24 | hashprg 14417 | . . . . . 6 ⊢ (((𝑃‘0) ∈ V ∧ (𝑃‘(♯‘𝐹)) ∈ V) → ((𝑃‘0) ≠ (𝑃‘(♯‘𝐹)) ↔ (♯‘{(𝑃‘0), (𝑃‘(♯‘𝐹))}) = 2)) | |
| 25 | 22, 23, 24 | mp2an 692 | . . . . 5 ⊢ ((𝑃‘0) ≠ (𝑃‘(♯‘𝐹)) ↔ (♯‘{(𝑃‘0), (𝑃‘(♯‘𝐹))}) = 2) |
| 26 | 21, 25 | sylib 218 | . . . 4 ⊢ (((𝐺 ∈ UPGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃) ∧ ¬ (𝑃‘0) = (𝑃‘(♯‘𝐹))) → (♯‘{(𝑃‘0), (𝑃‘(♯‘𝐹))}) = 2) |
| 27 | 2ex 12326 | . . . . 5 ⊢ 2 ∈ V | |
| 28 | 27 | prid2 4745 | . . . 4 ⊢ 2 ∈ {0, 2} |
| 29 | 26, 28 | eqeltrdi 2841 | . . 3 ⊢ (((𝐺 ∈ UPGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃) ∧ ¬ (𝑃‘0) = (𝑃‘(♯‘𝐹))) → (♯‘{(𝑃‘0), (𝑃‘(♯‘𝐹))}) ∈ {0, 2}) |
| 30 | 12, 14, 19, 29 | ifbothda 4546 | . 2 ⊢ ((𝐺 ∈ UPGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃) → (♯‘if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))})) ∈ {0, 2}) |
| 31 | 10, 30 | eqeltrd 2833 | 1 ⊢ ((𝐺 ∈ UPGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃) → (♯‘{𝑥 ∈ 𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}) |
| Colors of variables: wff setvar class |
| Syntax hints: ¬ wn 3 → wi 4 ↔ wb 206 ∧ wa 395 = wceq 1539 ∈ wcel 2107 ≠ wne 2931 {crab 3420 Vcvv 3464 ∅c0 4315 ifcif 4507 {cpr 4610 class class class wbr 5125 Fun wfun 6536 ‘cfv 6542 0cc0 11138 2c2 12304 ♯chash 14352 ∥ cdvds 16273 Vtxcvtx 28960 iEdgciedg 28961 UHGraphcuhgr 29020 UPGraphcupgr 29044 VtxDegcvtxdg 29430 EulerPathsceupth 30163 |
| This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1794 ax-4 1808 ax-5 1909 ax-6 1966 ax-7 2006 ax-8 2109 ax-9 2117 ax-10 2140 ax-11 2156 ax-12 2176 ax-ext 2706 ax-rep 5261 ax-sep 5278 ax-nul 5288 ax-pow 5347 ax-pr 5414 ax-un 7738 ax-cnex 11194 ax-resscn 11195 ax-1cn 11196 ax-icn 11197 ax-addcl 11198 ax-addrcl 11199 ax-mulcl 11200 ax-mulrcl 11201 ax-mulcom 11202 ax-addass 11203 ax-mulass 11204 ax-distr 11205 ax-i2m1 11206 ax-1ne0 11207 ax-1rid 11208 ax-rnegex 11209 ax-rrecex 11210 ax-cnre 11211 ax-pre-lttri 11212 ax-pre-lttrn 11213 ax-pre-ltadd 11214 ax-pre-mulgt0 11215 ax-pre-sup 11216 |
| This theorem depends on definitions: df-bi 207 df-an 396 df-or 848 df-ifp 1063 df-3or 1087 df-3an 1088 df-tru 1542 df-fal 1552 df-ex 1779 df-nf 1783 df-sb 2064 df-mo 2538 df-eu 2567 df-clab 2713 df-cleq 2726 df-clel 2808 df-nfc 2884 df-ne 2932 df-nel 3036 df-ral 3051 df-rex 3060 df-rmo 3364 df-reu 3365 df-rab 3421 df-v 3466 df-sbc 3773 df-csb 3882 df-dif 3936 df-un 3938 df-in 3940 df-ss 3950 df-pss 3953 df-nul 4316 df-if 4508 df-pw 4584 df-sn 4609 df-pr 4611 df-op 4615 df-uni 4890 df-int 4929 df-iun 4975 df-br 5126 df-opab 5188 df-mpt 5208 df-tr 5242 df-id 5560 df-eprel 5566 df-po 5574 df-so 5575 df-fr 5619 df-we 5621 df-xp 5673 df-rel 5674 df-cnv 5675 df-co 5676 df-dm 5677 df-rn 5678 df-res 5679 df-ima 5680 df-pred 6303 df-ord 6368 df-on 6369 df-lim 6370 df-suc 6371 df-iota 6495 df-fun 6544 df-fn 6545 df-f 6546 df-f1 6547 df-fo 6548 df-f1o 6549 df-fv 6550 df-riota 7371 df-ov 7417 df-oprab 7418 df-mpo 7419 df-om 7871 df-1st 7997 df-2nd 7998 df-frecs 8289 df-wrecs 8320 df-recs 8394 df-rdg 8433 df-1o 8489 df-2o 8490 df-oadd 8493 df-er 8728 df-map 8851 df-pm 8852 df-en 8969 df-dom 8970 df-sdom 8971 df-fin 8972 df-sup 9465 df-inf 9466 df-dju 9924 df-card 9962 df-pnf 11280 df-mnf 11281 df-xr 11282 df-ltxr 11283 df-le 11284 df-sub 11477 df-neg 11478 df-div 11904 df-nn 12250 df-2 12312 df-3 12313 df-n0 12511 df-xnn0 12584 df-z 12598 df-uz 12862 df-rp 13018 df-xadd 13138 df-fz 13531 df-fzo 13678 df-seq 14026 df-exp 14086 df-hash 14353 df-word 14536 df-cj 15121 df-re 15122 df-im 15123 df-sqrt 15257 df-abs 15258 df-dvds 16274 df-vtx 28962 df-iedg 28963 df-edg 29012 df-uhgr 29022 df-ushgr 29023 df-upgr 29046 df-uspgr 29114 df-vtxdg 29431 df-wlks 29564 df-trls 29657 df-eupth 30164 |
| This theorem is referenced by: eulerpath 30207 |
| Copyright terms: Public domain | W3C validator |