ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  eulerpathprum GIF version

Theorem eulerpathprum 16843
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.)
Hypothesis
Ref Expression
eulerpathpr.v 𝑉 = (Vtx‘𝐺)
Assertion
Ref Expression
eulerpathprum ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2})
Distinct variable groups:   𝑥,𝐹   𝑥,𝐺   𝑥,𝑃   𝑥,𝑉

Proof of Theorem eulerpathprum
StepHypRef Expression
1 eulerpathpr.v . . . 4 𝑉 = (Vtx‘𝐺)
2 eqid 2238 . . . 4 (iEdg‘𝐺) = (iEdg‘𝐺)
3 simp1 1028 . . . 4 ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → 𝐺 ∈ UMGraph)
4 umgruhgr 16476 . . . . . 6 (𝐺 ∈ UMGraph → 𝐺 ∈ UHGraph)
53, 4syl 14 . . . . 5 ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → 𝐺 ∈ UHGraph)
62uhgrfun 16440 . . . . 5 (𝐺 ∈ UHGraph → Fun (iEdg‘𝐺))
75, 6syl 14 . . . 4 ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → Fun (iEdg‘𝐺))
8 simp2 1029 . . . 4 ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → 𝐹(EulerPaths‘𝐺)𝑃)
9 simp3 1030 . . . 4 ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → 𝑉 ∈ Fin)
101, 2, 3, 7, 8, 9eupth2fi 16842 . . 3 ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → {𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)} = if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))}))
1110fveq2d 5699 . 2 ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) = (♯‘if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))})))
12 fveq2 5695 . . . 4 (∅ = if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))}) → (♯‘∅) = (♯‘if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))})))
1312eleq1d 2307 . . 3 (∅ = if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))}) → ((♯‘∅) ∈ {0, 2} ↔ (♯‘if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))})) ∈ {0, 2}))
14 fveq2 5695 . . . 4 ({(𝑃‘0), (𝑃‘(♯‘𝐹))} = if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))}) → (♯‘{(𝑃‘0), (𝑃‘(♯‘𝐹))}) = (♯‘if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))})))
1514eleq1d 2307 . . 3 ({(𝑃‘0), (𝑃‘(♯‘𝐹))} = if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))}) → ((♯‘{(𝑃‘0), (𝑃‘(♯‘𝐹))}) ∈ {0, 2} ↔ (♯‘if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))})) ∈ {0, 2}))
16 hash0 11250 . . . . 5 (♯‘∅) = 0
17 c0ex 8321 . . . . . 6 0 ∈ V
1817prid1 3817 . . . . 5 0 ∈ {0, 2}
1916, 18eqeltri 2311 . . . 4 (♯‘∅) ∈ {0, 2}
2019a1i 9 . . 3 (((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) ∧ (𝑃‘0) = (𝑃‘(♯‘𝐹))) → (♯‘∅) ∈ {0, 2})
21 simpr 110 . . . . . 6 (((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) ∧ ¬ (𝑃‘0) = (𝑃‘(♯‘𝐹))) → ¬ (𝑃‘0) = (𝑃‘(♯‘𝐹)))
2221neqned 2427 . . . . 5 (((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) ∧ ¬ (𝑃‘0) = (𝑃‘(♯‘𝐹))) → (𝑃‘0) ≠ (𝑃‘(♯‘𝐹)))
23 eupthiswlk 16818 . . . . . . . . 9 (𝐹(EulerPaths‘𝐺)𝑃𝐹(Walks‘𝐺)𝑃)
248, 23syl 14 . . . . . . . 8 ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → 𝐹(Walks‘𝐺)𝑃)
251wlkepvtx 16738 . . . . . . . 8 (𝐹(Walks‘𝐺)𝑃 → ((𝑃‘0) ∈ 𝑉 ∧ (𝑃‘(♯‘𝐹)) ∈ 𝑉))
2624, 25syl 14 . . . . . . 7 ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → ((𝑃‘0) ∈ 𝑉 ∧ (𝑃‘(♯‘𝐹)) ∈ 𝑉))
27 hashprg 11264 . . . . . . 7 (((𝑃‘0) ∈ 𝑉 ∧ (𝑃‘(♯‘𝐹)) ∈ 𝑉) → ((𝑃‘0) ≠ (𝑃‘(♯‘𝐹)) ↔ (♯‘{(𝑃‘0), (𝑃‘(♯‘𝐹))}) = 2))
2826, 27syl 14 . . . . . 6 ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → ((𝑃‘0) ≠ (𝑃‘(♯‘𝐹)) ↔ (♯‘{(𝑃‘0), (𝑃‘(♯‘𝐹))}) = 2))
2928adantr 276 . . . . 5 (((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) ∧ ¬ (𝑃‘0) = (𝑃‘(♯‘𝐹))) → ((𝑃‘0) ≠ (𝑃‘(♯‘𝐹)) ↔ (♯‘{(𝑃‘0), (𝑃‘(♯‘𝐹))}) = 2))
3022, 29mpbid 147 . . . 4 (((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) ∧ ¬ (𝑃‘0) = (𝑃‘(♯‘𝐹))) → (♯‘{(𝑃‘0), (𝑃‘(♯‘𝐹))}) = 2)
31 2ex 9379 . . . . 5 2 ∈ V
3231prid2 3818 . . . 4 2 ∈ {0, 2}
3330, 32eqeltrdi 2329 . . 3 (((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) ∧ ¬ (𝑃‘0) = (𝑃‘(♯‘𝐹))) → (♯‘{(𝑃‘0), (𝑃‘(♯‘𝐹))}) ∈ {0, 2})
3426simpld 112 . . . 4 ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → (𝑃‘0) ∈ 𝑉)
3526simprd 114 . . . 4 ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → (𝑃‘(♯‘𝐹)) ∈ 𝑉)
36 fidceq 7171 . . . 4 ((𝑉 ∈ Fin ∧ (𝑃‘0) ∈ 𝑉 ∧ (𝑃‘(♯‘𝐹)) ∈ 𝑉) → DECID (𝑃‘0) = (𝑃‘(♯‘𝐹)))
379, 34, 35, 36syl3anc 1278 . . 3 ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → DECID (𝑃‘0) = (𝑃‘(♯‘𝐹)))
3813, 15, 20, 33, 37ifbothdadc 3674 . 2 ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → (♯‘if((𝑃‘0) = (𝑃‘(♯‘𝐹)), ∅, {(𝑃‘0), (𝑃‘(♯‘𝐹))})) ∈ {0, 2})
3911, 38eqeltrd 2315 1 ((𝐺 ∈ UMGraph ∧ 𝐹(EulerPaths‘𝐺)𝑃𝑉 ∈ Fin) → (♯‘{𝑥𝑉 ∣ ¬ 2 ∥ ((VtxDeg‘𝐺)‘𝑥)}) ∈ {0, 2})
Colors of variables:    wff set class
This proof depends on syntax axioms:  ¬ wn 3  wi 4  wa 104  wb 105  DECID wdc 846  w3a 1009   = wceq 1402  wcel 2209  wne 2420  {crab 2532  c0 3520  ifcif 3638  {cpr 3710   class class class wbr 4130  Fun wfun 5371  cfv 5377  Fincfn 7022  0cc0 8180  2c2 9358  chash 11229  cdvds 12572  Vtxcvtx 16375  iEdgciedg 16376  UHGraphcuhgr 16430  UMGraphcumgr 16455  VtxDegcvtxdg 16649  Walkscwlks 16680  EulerPathsceupth 16805
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 623  ax-in2 624  ax-io 721  ax-5 1500  ax-7 1501  ax-gen 1502  ax-ie1 1546  ax-ie2 1547  ax-8 1557  ax-10 1558  ax-11 1559  ax-i12 1560  ax-bndl 1562  ax-4 1563  ax-17 1579  ax-i9 1583  ax-ial 1587  ax-i5r 1588  ax-14 2212  ax-ext 2220  ax-coll 4246  ax-sep 4249  ax-nul 4259  ax-pow 4311  ax-pr 4346  ax-un 4578  ax-setind 4684  ax-iinf 4735  ax-cnex 8271  ax-resscn 8272  ax-1cn 8273  ax-1re 8274  ax-icn 8275  ax-addcl 8276  ax-addrcl 8277  ax-mulcl 8278  ax-mulrcl 8279  ax-addcom 8280  ax-mulcom 8281  ax-addass 8282  ax-mulass 8283  ax-distr 8284  ax-i2m1 8285  ax-0lt1 8286  ax-1rid 8287  ax-0id 8288  ax-rnegex 8289  ax-precex 8290  ax-cnre 8291  ax-pre-ltirr 8292  ax-pre-ltwlin 8293  ax-pre-lttrn 8294  ax-pre-apti 8295  ax-pre-ltadd 8296  ax-pre-mulgt0 8297  ax-pre-mulext 8298  ax-arch 8299
This proof depends on definitions:  df-bi 117  df-stab 843  df-dc 847  df-ifp 991  df-3or 1010  df-3an 1011  df-tru 1405  df-fal 1408  df-xor 1425  df-nf 1514  df-sb 1816  df-eu 2089  df-mo 2090  df-clab 2225  df-cleq 2231  df-clel 2234  df-nfc 2381  df-ne 2421  df-nel 2516  df-ral 2533  df-rex 2534  df-reu 2535  df-rmo 2536  df-rab 2537  df-v 2823  df-sbc 3052  df-csb 3148  df-dif 3222  df-un 3224  df-in 3226  df-ss 3233  df-nul 3521  df-if 3639  df-pw 3690  df-sn 3715  df-pr 3716  df-op 3718  df-uni 3936  df-int 3971  df-iun 4014  df-br 4131  df-opab 4193  df-mpt 4194  df-tr 4230  df-id 4438  df-po 4441  df-iso 4442  df-iord 4511  df-on 4513  df-ilim 4514  df-suc 4516  df-iom 4738  df-xp 4780  df-rel 4781  df-cnv 4782  df-co 4783  df-dm 4784  df-rn 4785  df-res 4786  df-ima 4787  df-iota 5337  df-fun 5379  df-fn 5380  df-f 5381  df-f1 5382  df-fo 5383  df-f1o 5384  df-fv 5385  df-riota 6038  df-ov 6088  df-oprab 6089  df-mpo 6090  df-1st 6374  df-2nd 6375  df-recs 6576  df-irdg 6641  df-frec 6662  df-1o 6687  df-2o 6688  df-oadd 6691  df-er 6807  df-map 6924  df-en 7023  df-dom 7024  df-fin 7025  df-pnf 8363  df-mnf 8364  df-xr 8365  df-ltxr 8366  df-le 8367  df-sub 8501  df-neg 8502  df-reap 8906  df-ap 8913  df-div 9006  df-inn 9308  df-2 9366  df-3 9367  df-4 9368  df-5 9369  df-6 9370  df-7 9371  df-8 9372  df-9 9373  df-n0 9569  df-z 9650  df-dec 9783  df-uz 9932  df-q 10030  df-rp 10066  df-xadd 10186  df-fz 10423  df-fzo 10561  df-fl 10716  df-mod 10774  df-seqfrec 10899  df-exp 10990  df-ihash 11230  df-word 11320  df-cj 11622  df-re 11623  df-im 11624  df-rsqrt 11779  df-abs 11780  df-dvds 12573  df-ndx 13406  df-slot 13407  df-base 13409  df-edgf 16368  df-vtx 16377  df-iedg 16378  df-edg 16421  df-uhgrm 16432  df-ushgrm 16433  df-upgren 16456  df-umgren 16457  df-uspgren 16518  df-subgr 16617  df-vtxdg 16650  df-wlks 16681  df-trls 16744  df-eupth 16806
This theorem is used by:  eulerpathum  16844
  Copyright terms: Public domain W3C validator