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

Theorem spthonepeq 30141
Description: The endpoints of a simple path between two vertices are equal iff the path is of length 0. (Contributed by Alexander van der Vekens, 1-Mar-2018.) (Revised by AV, 18-Jan-2021.) (Proof shortened by AV, 31-Oct-2021.)
Assertion
Ref Expression
spthonepeq (𝐹(𝐴(SPathsOn‘𝐺)𝐵)𝑃 → (𝐴 = 𝐵 ↔ (♯‘𝐹) = 0))

Proof of Theorem spthonepeq
StepHypRef Expression
1 eqid 2765 . . 3 (Vtx‘𝐺) = (Vtx‘𝐺)
21spthonprop 30134 . 2 (𝐹(𝐴(SPathsOn‘𝐺)𝐵)𝑃 → ((𝐺 ∈ V ∧ 𝐴 ∈ (Vtx‘𝐺) ∧ 𝐵 ∈ (Vtx‘𝐺)) ∧ (𝐹 ∈ V ∧ 𝑃 ∈ V) ∧ (𝐹(𝐴(TrailsOn‘𝐺)𝐵)𝑃𝐹(SPaths‘𝐺)𝑃)))
31istrlson 30092 . . . . . 6 (((𝐴 ∈ (Vtx‘𝐺) ∧ 𝐵 ∈ (Vtx‘𝐺)) ∧ (𝐹 ∈ V ∧ 𝑃 ∈ V)) → (𝐹(𝐴(TrailsOn‘𝐺)𝐵)𝑃 ↔ (𝐹(𝐴(WalksOn‘𝐺)𝐵)𝑃𝐹(Trails‘𝐺)𝑃)))
433adantl1 1185 . . . . 5 (((𝐺 ∈ V ∧ 𝐴 ∈ (Vtx‘𝐺) ∧ 𝐵 ∈ (Vtx‘𝐺)) ∧ (𝐹 ∈ V ∧ 𝑃 ∈ V)) → (𝐹(𝐴(TrailsOn‘𝐺)𝐵)𝑃 ↔ (𝐹(𝐴(WalksOn‘𝐺)𝐵)𝑃𝐹(Trails‘𝐺)𝑃)))
5 isspth 30110 . . . . . 6 (𝐹(SPaths‘𝐺)𝑃 ↔ (𝐹(Trails‘𝐺)𝑃 ∧ Fun 𝑃))
65a1i 11 . . . . 5 (((𝐺 ∈ V ∧ 𝐴 ∈ (Vtx‘𝐺) ∧ 𝐵 ∈ (Vtx‘𝐺)) ∧ (𝐹 ∈ V ∧ 𝑃 ∈ V)) → (𝐹(SPaths‘𝐺)𝑃 ↔ (𝐹(Trails‘𝐺)𝑃 ∧ Fun 𝑃)))
74, 6anbi12d 644 . . . 4 (((𝐺 ∈ V ∧ 𝐴 ∈ (Vtx‘𝐺) ∧ 𝐵 ∈ (Vtx‘𝐺)) ∧ (𝐹 ∈ V ∧ 𝑃 ∈ V)) → ((𝐹(𝐴(TrailsOn‘𝐺)𝐵)𝑃𝐹(SPaths‘𝐺)𝑃) ↔ ((𝐹(𝐴(WalksOn‘𝐺)𝐵)𝑃𝐹(Trails‘𝐺)𝑃) ∧ (𝐹(Trails‘𝐺)𝑃 ∧ Fun 𝑃))))
81wlkonprop 30040 . . . . . . . 8 (𝐹(𝐴(WalksOn‘𝐺)𝐵)𝑃 → ((𝐺 ∈ V ∧ 𝐴 ∈ (Vtx‘𝐺) ∧ 𝐵 ∈ (Vtx‘𝐺)) ∧ (𝐹 ∈ V ∧ 𝑃 ∈ V) ∧ (𝐹(Walks‘𝐺)𝑃 ∧ (𝑃‘0) = 𝐴 ∧ (𝑃‘(♯‘𝐹)) = 𝐵)))
9 wlkcl 29999 . . . . . . . . . . . . 13 (𝐹(Walks‘𝐺)𝑃 → (♯‘𝐹) ∈ ℕ0)
101wlkp 30000 . . . . . . . . . . . . 13 (𝐹(Walks‘𝐺)𝑃𝑃:(0...(♯‘𝐹))⟶(Vtx‘𝐺))
11 df-f1 6545 . . . . . . . . . . . . . . . 16 (𝑃:(0...(♯‘𝐹))–1-1→(Vtx‘𝐺) ↔ (𝑃:(0...(♯‘𝐹))⟶(Vtx‘𝐺) ∧ Fun 𝑃))
12 eqeq2 2777 . . . . . . . . . . . . . . . . . 18 (𝐴 = 𝐵 → ((𝑃‘0) = 𝐴 ↔ (𝑃‘0) = 𝐵))
13 eqtr3 2787 . . . . . . . . . . . . . . . . . . . 20 (((𝑃‘(♯‘𝐹)) = 𝐵 ∧ (𝑃‘0) = 𝐵) → (𝑃‘(♯‘𝐹)) = (𝑃‘0))
14 elnn0uz 12915 . . . . . . . . . . . . . . . . . . . . . . . . 25 ((♯‘𝐹) ∈ ℕ0 ↔ (♯‘𝐹) ∈ (ℤ‘0))
15 eluzfz2 13572 . . . . . . . . . . . . . . . . . . . . . . . . 25 ((♯‘𝐹) ∈ (ℤ‘0) → (♯‘𝐹) ∈ (0...(♯‘𝐹)))
1614, 15sylbi 220 . . . . . . . . . . . . . . . . . . . . . . . 24 ((♯‘𝐹) ∈ ℕ0 → (♯‘𝐹) ∈ (0...(♯‘𝐹)))
17 0elfz 13665 . . . . . . . . . . . . . . . . . . . . . . . 24 ((♯‘𝐹) ∈ ℕ0 → 0 ∈ (0...(♯‘𝐹)))
1816, 17jca 521 . . . . . . . . . . . . . . . . . . . . . . 23 ((♯‘𝐹) ∈ ℕ0 → ((♯‘𝐹) ∈ (0...(♯‘𝐹)) ∧ 0 ∈ (0...(♯‘𝐹))))
19 f1veqaeq 7256 . . . . . . . . . . . . . . . . . . . . . . 23 ((𝑃:(0...(♯‘𝐹))–1-1→(Vtx‘𝐺) ∧ ((♯‘𝐹) ∈ (0...(♯‘𝐹)) ∧ 0 ∈ (0...(♯‘𝐹)))) → ((𝑃‘(♯‘𝐹)) = (𝑃‘0) → (♯‘𝐹) = 0))
2018, 19sylan2 605 . . . . . . . . . . . . . . . . . . . . . 22 ((𝑃:(0...(♯‘𝐹))–1-1→(Vtx‘𝐺) ∧ (♯‘𝐹) ∈ ℕ0) → ((𝑃‘(♯‘𝐹)) = (𝑃‘0) → (♯‘𝐹) = 0))
2120ex 418 . . . . . . . . . . . . . . . . . . . . 21 (𝑃:(0...(♯‘𝐹))–1-1→(Vtx‘𝐺) → ((♯‘𝐹) ∈ ℕ0 → ((𝑃‘(♯‘𝐹)) = (𝑃‘0) → (♯‘𝐹) = 0)))
2221com13 89 . . . . . . . . . . . . . . . . . . . 20 ((𝑃‘(♯‘𝐹)) = (𝑃‘0) → ((♯‘𝐹) ∈ ℕ0 → (𝑃:(0...(♯‘𝐹))–1-1→(Vtx‘𝐺) → (♯‘𝐹) = 0)))
2313, 22syl 18 . . . . . . . . . . . . . . . . . . 19 (((𝑃‘(♯‘𝐹)) = 𝐵 ∧ (𝑃‘0) = 𝐵) → ((♯‘𝐹) ∈ ℕ0 → (𝑃:(0...(♯‘𝐹))–1-1→(Vtx‘𝐺) → (♯‘𝐹) = 0)))
2423expcom 419 . . . . . . . . . . . . . . . . . 18 ((𝑃‘0) = 𝐵 → ((𝑃‘(♯‘𝐹)) = 𝐵 → ((♯‘𝐹) ∈ ℕ0 → (𝑃:(0...(♯‘𝐹))–1-1→(Vtx‘𝐺) → (♯‘𝐹) = 0))))
2512, 24biimtrdi 256 . . . . . . . . . . . . . . . . 17 (𝐴 = 𝐵 → ((𝑃‘0) = 𝐴 → ((𝑃‘(♯‘𝐹)) = 𝐵 → ((♯‘𝐹) ∈ ℕ0 → (𝑃:(0...(♯‘𝐹))–1-1→(Vtx‘𝐺) → (♯‘𝐹) = 0)))))
2625com15 102 . . . . . . . . . . . . . . . 16 (𝑃:(0...(♯‘𝐹))–1-1→(Vtx‘𝐺) → ((𝑃‘0) = 𝐴 → ((𝑃‘(♯‘𝐹)) = 𝐵 → ((♯‘𝐹) ∈ ℕ0 → (𝐴 = 𝐵 → (♯‘𝐹) = 0)))))
2711, 26sylbir 238 . . . . . . . . . . . . . . 15 ((𝑃:(0...(♯‘𝐹))⟶(Vtx‘𝐺) ∧ Fun 𝑃) → ((𝑃‘0) = 𝐴 → ((𝑃‘(♯‘𝐹)) = 𝐵 → ((♯‘𝐹) ∈ ℕ0 → (𝐴 = 𝐵 → (♯‘𝐹) = 0)))))
2827expcom 419 . . . . . . . . . . . . . 14 (Fun 𝑃 → (𝑃:(0...(♯‘𝐹))⟶(Vtx‘𝐺) → ((𝑃‘0) = 𝐴 → ((𝑃‘(♯‘𝐹)) = 𝐵 → ((♯‘𝐹) ∈ ℕ0 → (𝐴 = 𝐵 → (♯‘𝐹) = 0))))))
2928com15 102 . . . . . . . . . . . . 13 ((♯‘𝐹) ∈ ℕ0 → (𝑃:(0...(♯‘𝐹))⟶(Vtx‘𝐺) → ((𝑃‘0) = 𝐴 → ((𝑃‘(♯‘𝐹)) = 𝐵 → (Fun 𝑃 → (𝐴 = 𝐵 → (♯‘𝐹) = 0))))))
309, 10, 29sylc 66 . . . . . . . . . . . 12 (𝐹(Walks‘𝐺)𝑃 → ((𝑃‘0) = 𝐴 → ((𝑃‘(♯‘𝐹)) = 𝐵 → (Fun 𝑃 → (𝐴 = 𝐵 → (♯‘𝐹) = 0)))))
31303imp1 1366 . . . . . . . . . . 11 (((𝐹(Walks‘𝐺)𝑃 ∧ (𝑃‘0) = 𝐴 ∧ (𝑃‘(♯‘𝐹)) = 𝐵) ∧ Fun 𝑃) → (𝐴 = 𝐵 → (♯‘𝐹) = 0))
32 fveqeq2 6894 . . . . . . . . . . . . . . . 16 ((♯‘𝐹) = 0 → ((𝑃‘(♯‘𝐹)) = 𝐵 ↔ (𝑃‘0) = 𝐵))
3332anbi2d 642 . . . . . . . . . . . . . . 15 ((♯‘𝐹) = 0 → (((𝑃‘0) = 𝐴 ∧ (𝑃‘(♯‘𝐹)) = 𝐵) ↔ ((𝑃‘0) = 𝐴 ∧ (𝑃‘0) = 𝐵)))
34 eqtr2 2786 . . . . . . . . . . . . . . 15 (((𝑃‘0) = 𝐴 ∧ (𝑃‘0) = 𝐵) → 𝐴 = 𝐵)
3533, 34biimtrdi 256 . . . . . . . . . . . . . 14 ((♯‘𝐹) = 0 → (((𝑃‘0) = 𝐴 ∧ (𝑃‘(♯‘𝐹)) = 𝐵) → 𝐴 = 𝐵))
3635com12 33 . . . . . . . . . . . . 13 (((𝑃‘0) = 𝐴 ∧ (𝑃‘(♯‘𝐹)) = 𝐵) → ((♯‘𝐹) = 0 → 𝐴 = 𝐵))
37363adant1 1148 . . . . . . . . . . . 12 ((𝐹(Walks‘𝐺)𝑃 ∧ (𝑃‘0) = 𝐴 ∧ (𝑃‘(♯‘𝐹)) = 𝐵) → ((♯‘𝐹) = 0 → 𝐴 = 𝐵))
3837adantr 486 . . . . . . . . . . 11 (((𝐹(Walks‘𝐺)𝑃 ∧ (𝑃‘0) = 𝐴 ∧ (𝑃‘(♯‘𝐹)) = 𝐵) ∧ Fun 𝑃) → ((♯‘𝐹) = 0 → 𝐴 = 𝐵))
3931, 38impbid 215 . . . . . . . . . 10 (((𝐹(Walks‘𝐺)𝑃 ∧ (𝑃‘0) = 𝐴 ∧ (𝑃‘(♯‘𝐹)) = 𝐵) ∧ Fun 𝑃) → (𝐴 = 𝐵 ↔ (♯‘𝐹) = 0))
4039ex 418 . . . . . . . . 9 ((𝐹(Walks‘𝐺)𝑃 ∧ (𝑃‘0) = 𝐴 ∧ (𝑃‘(♯‘𝐹)) = 𝐵) → (Fun 𝑃 → (𝐴 = 𝐵 ↔ (♯‘𝐹) = 0)))
41403ad2ant3 1153 . . . . . . . 8 (((𝐺 ∈ V ∧ 𝐴 ∈ (Vtx‘𝐺) ∧ 𝐵 ∈ (Vtx‘𝐺)) ∧ (𝐹 ∈ V ∧ 𝑃 ∈ V) ∧ (𝐹(Walks‘𝐺)𝑃 ∧ (𝑃‘0) = 𝐴 ∧ (𝑃‘(♯‘𝐹)) = 𝐵)) → (Fun 𝑃 → (𝐴 = 𝐵 ↔ (♯‘𝐹) = 0)))
428, 41syl 18 . . . . . . 7 (𝐹(𝐴(WalksOn‘𝐺)𝐵)𝑃 → (Fun 𝑃 → (𝐴 = 𝐵 ↔ (♯‘𝐹) = 0)))
4342adantld 496 . . . . . 6 (𝐹(𝐴(WalksOn‘𝐺)𝐵)𝑃 → ((𝐹(Trails‘𝐺)𝑃 ∧ Fun 𝑃) → (𝐴 = 𝐵 ↔ (♯‘𝐹) = 0)))
4443adantr 486 . . . . 5 ((𝐹(𝐴(WalksOn‘𝐺)𝐵)𝑃𝐹(Trails‘𝐺)𝑃) → ((𝐹(Trails‘𝐺)𝑃 ∧ Fun 𝑃) → (𝐴 = 𝐵 ↔ (♯‘𝐹) = 0)))
4544imp 412 . . . 4 (((𝐹(𝐴(WalksOn‘𝐺)𝐵)𝑃𝐹(Trails‘𝐺)𝑃) ∧ (𝐹(Trails‘𝐺)𝑃 ∧ Fun 𝑃)) → (𝐴 = 𝐵 ↔ (♯‘𝐹) = 0))
467, 45biimtrdi 256 . . 3 (((𝐺 ∈ V ∧ 𝐴 ∈ (Vtx‘𝐺) ∧ 𝐵 ∈ (Vtx‘𝐺)) ∧ (𝐹 ∈ V ∧ 𝑃 ∈ V)) → ((𝐹(𝐴(TrailsOn‘𝐺)𝐵)𝑃𝐹(SPaths‘𝐺)𝑃) → (𝐴 = 𝐵 ↔ (♯‘𝐹) = 0)))
47463impia 1135 . 2 (((𝐺 ∈ V ∧ 𝐴 ∈ (Vtx‘𝐺) ∧ 𝐵 ∈ (Vtx‘𝐺)) ∧ (𝐹 ∈ V ∧ 𝑃 ∈ V) ∧ (𝐹(𝐴(TrailsOn‘𝐺)𝐵)𝑃𝐹(SPaths‘𝐺)𝑃)) → (𝐴 = 𝐵 ↔ (♯‘𝐹) = 0))
482, 47syl 18 1 (𝐹(𝐴(SPathsOn‘𝐺)𝐵)𝑃 → (𝐴 = 𝐵 ↔ (♯‘𝐹) = 0))
Colors of variables:    wff setvar class
This proof depends on syntax axioms:  wi 4  wb 209  wa 401  w3a 1103   = wceq 1570  wcel 2146  Vcvv 3457   class class class wbr 5111  ccnv 5662  Fun wfun 6534  wf 6536  1-1wf1 6537  cfv 6540  (class class class)co 7416  0cc0 11111  0cn0 12515  cuz 12874  ...cfz 13547  chash 14380  Vtxcvtx 29377  Walkscwlks 29980  WalksOncwlkson 29981  Trailsctrls 30076  TrailsOnctrlson 30077  SPathscspths 30099  SPathsOncspthson 30101
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1828  ax-4 1842  ax-5 1943  ax-6 2000  ax-7 2041  ax-8 2148  ax-9 2156  ax-10 2179  ax-11 2195  ax-12 2216  ax-ext 2737  ax-rep 5240  ax-sep 5259  ax-nul 5271  ax-pow 5338  ax-pr 5406  ax-un 7738  ax-cnex 11167  ax-resscn 11168  ax-1cn 11169  ax-icn 11170  ax-addcl 11171  ax-addrcl 11172  ax-mulcl 11173  ax-mulrcl 11174  ax-mulcom 11175  ax-addass 11176  ax-mulass 11177  ax-distr 11178  ax-i2m1 11179  ax-1ne0 11180  ax-1rid 11181  ax-rnegex 11182  ax-rrecex 11183  ax-cnre 11184  ax-pre-lttri 11185  ax-pre-lttrn 11186  ax-pre-ltadd 11187  ax-pre-mulgt0 11188
This proof depends on definitions:  df-bi 210  df-an 402  df-or 862  df-ifp 1079  df-3or 1104  df-3an 1105  df-tru 1573  df-fal 1583  df-ex 1813  df-nf 1817  df-sb 2100  df-mo 2569  df-eu 2599  df-clab 2744  df-cleq 2757  df-clel 2840  df-nfc 2914  df-ne 2961  df-nel 3067  df-ral 3082  df-rex 3092  df-reu 3372  df-rab 3419  df-v 3459  df-sbc 3747  df-csb 3855  df-dif 3909  df-un 3911  df-in 3913  df-ss 3923  df-pss 3926  df-nul 4287  df-if 4490  df-pw 4566  df-sn 4592  df-pr 4594  df-op 4598  df-uni 4875  df-int 4915  df-iun 4960  df-br 5112  df-opab 5176  df-mpt 5195  df-tr 5221  df-id 5558  df-eprel 5563  df-po 5571  df-so 5572  df-fr 5616  df-we 5618  df-xp 5669  df-rel 5670  df-cnv 5671  df-co 5672  df-dm 5673  df-rn 5674  df-res 5675  df-ima 5676  df-pred 6306  df-ord 6367  df-on 6368  df-lim 6369  df-suc 6370  df-iota 6496  df-fun 6542  df-fn 6543  df-f 6544  df-f1 6545  df-fo 6546  df-f1o 6547  df-fv 6548  df-riota 7373  df-ov 7419  df-oprab 7420  df-mpo 7421  df-om 7865  df-1st 7988  df-2nd 7989  df-frecs 8280  df-wrecs 8311  df-recs 8360  df-rdg 8399  df-1o 8455  df-er 8696  df-map 8828  df-en 8946  df-dom 8947  df-sdom 8948  df-fin 8949  df-card 9937  df-pnf 11256  df-mnf 11257  df-xr 11258  df-ltxr 11259  df-le 11260  df-sub 11454  df-neg 11455  df-nn 12245  df-n0 12516  df-z 12603  df-uz 12875  df-fz 13548  df-fzo 13696  df-hash 14381  df-word 14565  df-wlks 29983  df-wlkson 29984  df-trls 30078  df-trlson 30079  df-spths 30103  df-spthson 30105
This theorem is used by:  wspthsnonn0vne  30309
  Copyright terms: Public domain W3C validator