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

Theorem eulerpath 28592
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 28550 . . . . . 6 Rel (EulerPaths‘𝐺)
2 reldm0 5832 . . . . . 6 (Rel (EulerPaths‘𝐺) → ((EulerPaths‘𝐺) = ∅ ↔ dom (EulerPaths‘𝐺) = ∅))
31, 2ax-mp 5 . . . . 5 ((EulerPaths‘𝐺) = ∅ ↔ dom (EulerPaths‘𝐺) = ∅)
43necon3bii 2996 . . . 4 ((EulerPaths‘𝐺) ≠ ∅ ↔ dom (EulerPaths‘𝐺) ≠ ∅)
5 n0 4282 . . . 4 (dom (EulerPaths‘𝐺) ≠ ∅ ↔ ∃𝑓 𝑓 ∈ dom (EulerPaths‘𝐺))
64, 5bitri 274 . . 3 ((EulerPaths‘𝐺) ≠ ∅ ↔ ∃𝑓 𝑓 ∈ dom (EulerPaths‘𝐺))
7 vex 3435 . . . . . 6 𝑓 ∈ V
87eldm 5804 . . . . 5 (𝑓 ∈ dom (EulerPaths‘𝐺) ↔ ∃𝑝 𝑓(EulerPaths‘𝐺)𝑝)
9 eulerpathpr.v . . . . . . . 8 𝑉 = (Vtx‘𝐺)
109eulerpathpr 28591 . . . . . . 7 ((𝐺 ∈ UPGraph ∧ 𝑓(EulerPaths‘𝐺)𝑝) → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2})
1110expcom 414 . . . . . 6 (𝑓(EulerPaths‘𝐺)𝑝 → (𝐺 ∈ UPGraph → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}))
1211exlimiv 1933 . . . . 5 (∃𝑝 𝑓(EulerPaths‘𝐺)𝑝 → (𝐺 ∈ UPGraph → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}))
138, 12sylbi 216 . . . 4 (𝑓 ∈ dom (EulerPaths‘𝐺) → (𝐺 ∈ UPGraph → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}))
1413exlimiv 1933 . . 3 (∃𝑓 𝑓 ∈ dom (EulerPaths‘𝐺) → (𝐺 ∈ UPGraph → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}))
156, 14sylbi 216 . 2 ((EulerPaths‘𝐺) ≠ ∅ → (𝐺 ∈ UPGraph → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}))
1615impcom 408 1 ((𝐺 ∈ UPGraph ∧ (EulerPaths‘𝐺) ≠ ∅) → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2})
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 205  wa 396   = wceq 1539  wex 1782  wcel 2106  wne 2943  {crab 3068  c0 4258  {cpr 4565   class class class wbr 5075  dom cdm 5586  Rel wrel 5591  cfv 6428  0cc0 10860  2c2 12017  chash 14033  cdvds 15952  Vtxcvtx 27355  UPGraphcupgr 27439  VtxDegcvtxdg 27821  EulerPathsceupth 28548
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1798  ax-4 1812  ax-5 1913  ax-6 1971  ax-7 2011  ax-8 2108  ax-9 2116  ax-10 2137  ax-11 2154  ax-12 2171  ax-ext 2709  ax-rep 5210  ax-sep 5223  ax-nul 5230  ax-pow 5288  ax-pr 5352  ax-un 7580  ax-cnex 10916  ax-resscn 10917  ax-1cn 10918  ax-icn 10919  ax-addcl 10920  ax-addrcl 10921  ax-mulcl 10922  ax-mulrcl 10923  ax-mulcom 10924  ax-addass 10925  ax-mulass 10926  ax-distr 10927  ax-i2m1 10928  ax-1ne0 10929  ax-1rid 10930  ax-rnegex 10931  ax-rrecex 10932  ax-cnre 10933  ax-pre-lttri 10934  ax-pre-lttrn 10935  ax-pre-ltadd 10936  ax-pre-mulgt0 10937  ax-pre-sup 10938
This theorem depends on definitions:  df-bi 206  df-an 397  df-or 845  df-ifp 1061  df-3or 1087  df-3an 1088  df-tru 1542  df-fal 1552  df-ex 1783  df-nf 1787  df-sb 2068  df-mo 2540  df-eu 2569  df-clab 2716  df-cleq 2730  df-clel 2816  df-nfc 2889  df-ne 2944  df-nel 3050  df-ral 3069  df-rex 3070  df-rmo 3071  df-reu 3072  df-rab 3073  df-v 3433  df-sbc 3718  df-csb 3834  df-dif 3891  df-un 3893  df-in 3895  df-ss 3905  df-pss 3907  df-nul 4259  df-if 4462  df-pw 4537  df-sn 4564  df-pr 4566  df-op 4570  df-uni 4842  df-int 4882  df-iun 4928  df-br 5076  df-opab 5138  df-mpt 5159  df-tr 5193  df-id 5486  df-eprel 5492  df-po 5500  df-so 5501  df-fr 5541  df-we 5543  df-xp 5592  df-rel 5593  df-cnv 5594  df-co 5595  df-dm 5596  df-rn 5597  df-res 5598  df-ima 5599  df-pred 6197  df-ord 6264  df-on 6265  df-lim 6266  df-suc 6267  df-iota 6386  df-fun 6430  df-fn 6431  df-f 6432  df-f1 6433  df-fo 6434  df-f1o 6435  df-fv 6436  df-riota 7226  df-ov 7272  df-oprab 7273  df-mpo 7274  df-om 7705  df-1st 7822  df-2nd 7823  df-frecs 8086  df-wrecs 8117  df-recs 8191  df-rdg 8230  df-1o 8286  df-2o 8287  df-oadd 8290  df-er 8487  df-map 8606  df-pm 8607  df-en 8723  df-dom 8724  df-sdom 8725  df-fin 8726  df-sup 9190  df-inf 9191  df-dju 9648  df-card 9686  df-pnf 11000  df-mnf 11001  df-xr 11002  df-ltxr 11003  df-le 11004  df-sub 11196  df-neg 11197  df-div 11622  df-nn 11963  df-2 12025  df-3 12026  df-n0 12223  df-xnn0 12295  df-z 12309  df-uz 12572  df-rp 12720  df-xadd 12838  df-fz 13229  df-fzo 13372  df-seq 13711  df-exp 13772  df-hash 14034  df-word 14207  df-cj 14799  df-re 14800  df-im 14801  df-sqrt 14935  df-abs 14936  df-dvds 15953  df-vtx 27357  df-iedg 27358  df-edg 27407  df-uhgr 27417  df-ushgr 27418  df-upgr 27441  df-uspgr 27509  df-vtxdg 27822  df-wlks 27955  df-trls 28048  df-eupth 28549
This theorem is referenced by:  konigsberg  28608
  Copyright terms: Public domain W3C validator