MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  eulerpath Structured version   Visualization version   GIF version

Theorem eulerpath 30497
Description: A pseudograph 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.)
Hypothesis
Ref Expression
eulerpathpr.v 𝑉 = (Vtx‘𝐺)
Assertion
Ref Expression
eulerpath ((𝐺 ∈ UPGraph ∧ (EulerPaths‘𝐺) ≠ ∅) → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2})
Distinct variable groups:   𝑥,𝐺   𝑥,𝑉

Proof of Theorem eulerpath
Dummy variables 𝑓 𝑝 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 releupth 30455 . . . . . 6 Rel (EulerPaths‘𝐺)
2 reldm0 5908 . . . . . 6 (Rel (EulerPaths‘𝐺) → ((EulerPaths‘𝐺) = ∅ ↔ dom (EulerPaths‘𝐺) = ∅))
31, 2ax-mp 5 . . . . 5 ((EulerPaths‘𝐺) = ∅ ↔ dom (EulerPaths‘𝐺) = ∅)
43necon3bii 3012 . . . 4 ((EulerPaths‘𝐺) ≠ ∅ ↔ dom (EulerPaths‘𝐺) ≠ ∅)
5 n0 4308 . . . 4 (dom (EulerPaths‘𝐺) ≠ ∅ ↔ ∃𝑓 𝑓 ∈ dom (EulerPaths‘𝐺))
64, 5bitri 278 . . 3 ((EulerPaths‘𝐺) ≠ ∅ ↔ ∃𝑓 𝑓 ∈ dom (EulerPaths‘𝐺))
7 vex 3461 . . . . . 6 𝑓 ∈ V
87eldm 5880 . . . . 5 (𝑓 ∈ dom (EulerPaths‘𝐺) ↔ ∃𝑝 𝑓(EulerPaths‘𝐺)𝑝)
9 eulerpathpr.v . . . . . . . 8 𝑉 = (Vtx‘𝐺)
109eulerpathpr 30496 . . . . . . 7 ((𝐺 ∈ UPGraph ∧ 𝑓(EulerPaths‘𝐺)𝑝) → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2})
1110expcom 418 . . . . . 6 (𝑓(EulerPaths‘𝐺)𝑝 → (𝐺 ∈ UPGraph → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}))
1211exlimiv 1953 . . . . 5 (∃𝑝 𝑓(EulerPaths‘𝐺)𝑝 → (𝐺 ∈ UPGraph → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}))
138, 12sylbi 220 . . . 4 (𝑓 ∈ dom (EulerPaths‘𝐺) → (𝐺 ∈ UPGraph → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}))
1413exlimiv 1953 . . 3 (∃𝑓 𝑓 ∈ dom (EulerPaths‘𝐺) → (𝐺 ∈ UPGraph → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}))
156, 14sylbi 220 . 2 ((EulerPaths‘𝐺) ≠ ∅ → (𝐺 ∈ UPGraph → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}))
1615impcom 412 1 ((𝐺 ∈ UPGraph ∧ (EulerPaths‘𝐺) ≠ ∅) → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2})
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 209  wa 400   = wceq 1563  wex 1802  wcel 2145  wne 2960  {crab 3417  c0 4288  {cpr 4587   class class class wbr 5104  dom cdm 5651  Rel wrel 5656  cfv 6525  0cc0 11088  2c2 12283  chash 14354  cdvds 16298  Vtxcvtx 29251  UPGraphcupgr 29335  VtxDegcvtxdg 29720  EulerPathsceupth 30453
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1818  ax-4 1832  ax-5 1933  ax-6 1990  ax-7 2031  ax-8 2147  ax-9 2155  ax-10 2178  ax-11 2194  ax-12 2215  ax-ext 2737  ax-rep 5231  ax-sep 5250  ax-nul 5260  ax-pow 5326  ax-pr 5394  ax-un 7722  ax-cnex 11144  ax-resscn 11145  ax-1cn 11146  ax-icn 11147  ax-addcl 11148  ax-addrcl 11149  ax-mulcl 11150  ax-mulrcl 11151  ax-mulcom 11152  ax-addass 11153  ax-mulass 11154  ax-distr 11155  ax-i2m1 11156  ax-1ne0 11157  ax-1rid 11158  ax-rnegex 11159  ax-rrecex 11160  ax-cnre 11161  ax-pre-lttri 11162  ax-pre-lttrn 11163  ax-pre-ltadd 11164  ax-pre-mulgt0 11165  ax-pre-sup 11166
This theorem depends on definitions:  df-bi 210  df-an 401  df-or 861  df-ifp 1077  df-3or 1102  df-3an 1103  df-tru 1566  df-fal 1576  df-ex 1803  df-nf 1807  df-sb 2094  df-mo 2569  df-eu 2599  df-clab 2744  df-cleq 2757  df-clel 2840  df-nfc 2914  df-ne 2961  df-nel 3065  df-ral 3080  df-rex 3090  df-rmo 3370  df-reu 3371  df-rab 3418  df-v 3459  df-sbc 3748  df-csb 3856  df-dif 3910  df-un 3912  df-in 3914  df-ss 3924  df-pss 3927  df-nul 4289  df-if 4484  df-pw 4560  df-sn 4586  df-pr 4588  df-op 4592  df-uni 4868  df-int 4908  df-iun 4953  df-br 5105  df-opab 5167  df-mpt 5186  df-tr 5212  df-id 5546  df-eprel 5551  df-po 5559  df-so 5560  df-fr 5604  df-we 5606  df-xp 5657  df-rel 5658  df-cnv 5659  df-co 5660  df-dm 5661  df-rn 5662  df-res 5663  df-ima 5664  df-pred 6291  df-ord 6352  df-on 6353  df-lim 6354  df-suc 6355  df-iota 6481  df-fun 6527  df-fn 6528  df-f 6529  df-f1 6530  df-fo 6531  df-f1o 6532  df-fv 6533  df-riota 7357  df-ov 7403  df-oprab 7404  df-mpo 7405  df-om 7851  df-1st 7974  df-2nd 7975  df-frecs 8266  df-wrecs 8297  df-recs 8346  df-rdg 8385  df-1o 8441  df-2o 8442  df-oadd 8445  df-er 8682  df-map 8814  df-pm 8815  df-en 8932  df-dom 8933  df-sdom 8934  df-fin 8935  df-sup 9390  df-inf 9391  df-dju 9875  df-card 9913  df-pnf 11233  df-mnf 11234  df-xr 11235  df-ltxr 11236  df-le 11237  df-sub 11431  df-neg 11432  df-div 11860  df-nn 12222  df-2 12291  df-3 12292  df-n0 12493  df-xnn0 12566  df-z 12580  df-uz 12851  df-rp 13005  df-xadd 13126  df-fz 13524  df-fzo 13671  df-seq 14026  df-exp 14086  df-hash 14355  df-word 14539  df-cj 15138  df-re 15139  df-im 15140  df-sqrt 15274  df-abs 15275  df-dvds 16299  df-vtx 29253  df-iedg 29254  df-edg 29303  df-uhgr 29313  df-ushgr 29314  df-upgr 29337  df-uspgr 29405  df-vtxdg 29721  df-wlks 29854  df-trls 29945  df-eupth 30454
This theorem is referenced by:  konigsberg  30513
  Copyright terms: Public domain W3C validator