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

Theorem eulerpath 30264
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 30222 . . . . . 6 Rel (EulerPaths‘𝐺)
2 reldm0 5951 . . . . . 6 (Rel (EulerPaths‘𝐺) → ((EulerPaths‘𝐺) = ∅ ↔ dom (EulerPaths‘𝐺) = ∅))
31, 2ax-mp 5 . . . . 5 ((EulerPaths‘𝐺) = ∅ ↔ dom (EulerPaths‘𝐺) = ∅)
43necon3bii 2995 . . . 4 ((EulerPaths‘𝐺) ≠ ∅ ↔ dom (EulerPaths‘𝐺) ≠ ∅)
5 n0 4371 . . . 4 (dom (EulerPaths‘𝐺) ≠ ∅ ↔ ∃𝑓 𝑓 ∈ dom (EulerPaths‘𝐺))
64, 5bitri 275 . . 3 ((EulerPaths‘𝐺) ≠ ∅ ↔ ∃𝑓 𝑓 ∈ dom (EulerPaths‘𝐺))
7 vex 3486 . . . . . 6 𝑓 ∈ V
87eldm 5924 . . . . 5 (𝑓 ∈ dom (EulerPaths‘𝐺) ↔ ∃𝑝 𝑓(EulerPaths‘𝐺)𝑝)
9 eulerpathpr.v . . . . . . . 8 𝑉 = (Vtx‘𝐺)
109eulerpathpr 30263 . . . . . . 7 ((𝐺 ∈ UPGraph ∧ 𝑓(EulerPaths‘𝐺)𝑝) → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2})
1110expcom 413 . . . . . 6 (𝑓(EulerPaths‘𝐺)𝑝 → (𝐺 ∈ UPGraph → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}))
1211exlimiv 1929 . . . . 5 (∃𝑝 𝑓(EulerPaths‘𝐺)𝑝 → (𝐺 ∈ UPGraph → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}))
138, 12sylbi 217 . . . 4 (𝑓 ∈ dom (EulerPaths‘𝐺) → (𝐺 ∈ UPGraph → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}))
1413exlimiv 1929 . . 3 (∃𝑓 𝑓 ∈ dom (EulerPaths‘𝐺) → (𝐺 ∈ UPGraph → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}))
156, 14sylbi 217 . 2 ((EulerPaths‘𝐺) ≠ ∅ → (𝐺 ∈ UPGraph → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2}))
1615impcom 407 1 ((𝐺 ∈ UPGraph ∧ (EulerPaths‘𝐺) ≠ ∅) → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2})
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 206  wa 395   = wceq 1537  wex 1777  wcel 2103  wne 2942  {crab 3438  c0 4347  {cpr 4650   class class class wbr 5169  dom cdm 5699  Rel wrel 5704  cfv 6572  0cc0 11180  2c2 12344  chash 14375  cdvds 16296  Vtxcvtx 29022  UPGraphcupgr 29106  VtxDegcvtxdg 29492  EulerPathsceupth 30220
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1793  ax-4 1807  ax-5 1909  ax-6 1967  ax-7 2007  ax-8 2105  ax-9 2113  ax-10 2136  ax-11 2153  ax-12 2173  ax-ext 2705  ax-rep 5306  ax-sep 5320  ax-nul 5327  ax-pow 5386  ax-pr 5450  ax-un 7766  ax-cnex 11236  ax-resscn 11237  ax-1cn 11238  ax-icn 11239  ax-addcl 11240  ax-addrcl 11241  ax-mulcl 11242  ax-mulrcl 11243  ax-mulcom 11244  ax-addass 11245  ax-mulass 11246  ax-distr 11247  ax-i2m1 11248  ax-1ne0 11249  ax-1rid 11250  ax-rnegex 11251  ax-rrecex 11252  ax-cnre 11253  ax-pre-lttri 11254  ax-pre-lttrn 11255  ax-pre-ltadd 11256  ax-pre-mulgt0 11257  ax-pre-sup 11258
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 847  df-ifp 1064  df-3or 1088  df-3an 1089  df-tru 1540  df-fal 1550  df-ex 1778  df-nf 1782  df-sb 2065  df-mo 2537  df-eu 2566  df-clab 2712  df-cleq 2726  df-clel 2813  df-nfc 2890  df-ne 2943  df-nel 3049  df-ral 3064  df-rex 3073  df-rmo 3383  df-reu 3384  df-rab 3439  df-v 3484  df-sbc 3799  df-csb 3916  df-dif 3973  df-un 3975  df-in 3977  df-ss 3987  df-pss 3990  df-nul 4348  df-if 4549  df-pw 4624  df-sn 4649  df-pr 4651  df-op 4655  df-uni 4932  df-int 4973  df-iun 5021  df-br 5170  df-opab 5232  df-mpt 5253  df-tr 5287  df-id 5597  df-eprel 5603  df-po 5611  df-so 5612  df-fr 5654  df-we 5656  df-xp 5705  df-rel 5706  df-cnv 5707  df-co 5708  df-dm 5709  df-rn 5710  df-res 5711  df-ima 5712  df-pred 6331  df-ord 6397  df-on 6398  df-lim 6399  df-suc 6400  df-iota 6524  df-fun 6574  df-fn 6575  df-f 6576  df-f1 6577  df-fo 6578  df-f1o 6579  df-fv 6580  df-riota 7401  df-ov 7448  df-oprab 7449  df-mpo 7450  df-om 7900  df-1st 8026  df-2nd 8027  df-frecs 8318  df-wrecs 8349  df-recs 8423  df-rdg 8462  df-1o 8518  df-2o 8519  df-oadd 8522  df-er 8759  df-map 8882  df-pm 8883  df-en 9000  df-dom 9001  df-sdom 9002  df-fin 9003  df-sup 9507  df-inf 9508  df-dju 9966  df-card 10004  df-pnf 11322  df-mnf 11323  df-xr 11324  df-ltxr 11325  df-le 11326  df-sub 11518  df-neg 11519  df-div 11944  df-nn 12290  df-2 12352  df-3 12353  df-n0 12550  df-xnn0 12622  df-z 12636  df-uz 12900  df-rp 13054  df-xadd 13172  df-fz 13564  df-fzo 13708  df-seq 14049  df-exp 14109  df-hash 14376  df-word 14559  df-cj 15144  df-re 15145  df-im 15146  df-sqrt 15280  df-abs 15281  df-dvds 16297  df-vtx 29024  df-iedg 29025  df-edg 29074  df-uhgr 29084  df-ushgr 29085  df-upgr 29108  df-uspgr 29176  df-vtxdg 29493  df-wlks 29626  df-trls 29719  df-eupth 30221
This theorem is referenced by:  konigsberg  30280
  Copyright terms: Public domain W3C validator