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

Theorem spthonepeq 30217
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 2760 . . 3 (Vtx‘𝐺) = (Vtx‘𝐺)
21spthonprop 30210 . 2 (𝐹(𝐴(SPathsOn‘𝐺)𝐵)𝑃 → ((𝐺 ∈ V ∧ 𝐴 ∈ (Vtx‘𝐺) ∧ 𝐵 ∈ (Vtx‘𝐺)) ∧ (𝐹 ∈ V ∧ 𝑃 ∈ V) ∧ (𝐹(𝐴(TrailsOn‘𝐺)𝐵)𝑃𝐹(SPaths‘𝐺)𝑃)))
31istrlson 30168 . . . . . 6 (((𝐴 ∈ (Vtx‘𝐺) ∧ 𝐵 ∈ (Vtx‘𝐺)) ∧ (𝐹 ∈ V ∧ 𝑃 ∈ V)) → (𝐹(𝐴(TrailsOn‘𝐺)𝐵)𝑃 ↔ (𝐹(𝐴(WalksOn‘𝐺)𝐵)𝑃𝐹(Trails‘𝐺)𝑃)))
433adantl1 1185 . . . . 5 (((𝐺 ∈ V ∧ 𝐴 ∈ (Vtx‘𝐺) ∧ 𝐵 ∈ (Vtx‘𝐺)) ∧ (𝐹 ∈ V ∧ 𝑃 ∈ V)) → (𝐹(𝐴(TrailsOn‘𝐺)𝐵)𝑃 ↔ (𝐹(𝐴(WalksOn‘𝐺)𝐵)𝑃𝐹(Trails‘𝐺)𝑃)))
5 isspth 30186 . . . . . 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 30116 . . . . . . . 8 (𝐹(𝐴(WalksOn‘𝐺)𝐵)𝑃 → ((𝐺 ∈ V ∧ 𝐴 ∈ (Vtx‘𝐺) ∧ 𝐵 ∈ (Vtx‘𝐺)) ∧ (𝐹 ∈ V ∧ 𝑃 ∈ V) ∧ (𝐹(Walks‘𝐺)𝑃 ∧ (𝑃‘0) = 𝐴 ∧ (𝑃‘(♯‘𝐹)) = 𝐵)))
9 wlkcl 30075 . . . . . . . . . . . . 13 (𝐹(Walks‘𝐺)𝑃 → (♯‘𝐹) ∈ ℕ0)
101wlkp 30076 . . . . . . . . . . . . 13 (𝐹(Walks‘𝐺)𝑃𝑃:(0...(♯‘𝐹))⟶(Vtx‘𝐺))
11 df-f1 6538 . . . . . . . . . . . . . . . 16 (𝑃:(0...(♯‘𝐹))–1-1→(Vtx‘𝐺) ↔ (𝑃:(0...(♯‘𝐹))⟶(Vtx‘𝐺) ∧ Fun 𝑃))
12 eqeq2 2772 . . . . . . . . . . . . . . . . . 18 (𝐴 = 𝐵 → ((𝑃‘0) = 𝐴 ↔ (𝑃‘0) = 𝐵))
13 eqtr3 2782 . . . . . . . . . . . . . . . . . . . 20 (((𝑃‘(♯‘𝐹)) = 𝐵 ∧ (𝑃‘0) = 𝐵) → (𝑃‘(♯‘𝐹)) = (𝑃‘0))
14 elnn0uz 12928 . . . . . . . . . . . . . . . . . . . . . . . . 25 ((♯‘𝐹) ∈ ℕ0 ↔ (♯‘𝐹) ∈ (ℤ‘0))
15 eluzfz2 13586 . . . . . . . . . . . . . . . . . . . . . . . . 25 ((♯‘𝐹) ∈ (ℤ‘0) → (♯‘𝐹) ∈ (0...(♯‘𝐹)))
1614, 15sylbi 220 . . . . . . . . . . . . . . . . . . . . . . . 24 ((♯‘𝐹) ∈ ℕ0 → (♯‘𝐹) ∈ (0...(♯‘𝐹)))
17 0elfz 13679 . . . . . . . . . . . . . . . . . . . . . . . 24 ((♯‘𝐹) ∈ ℕ0 → 0 ∈ (0...(♯‘𝐹)))
1816, 17jca 521 . . . . . . . . . . . . . . . . . . . . . . 23 ((♯‘𝐹) ∈ ℕ0 → ((♯‘𝐹) ∈ (0...(♯‘𝐹)) ∧ 0 ∈ (0...(♯‘𝐹))))
19 f1veqaeq 7253 . . . . . . . . . . . . . . . . . . . . . . 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 6887 . . . . . . . . . . . . . . . 16 ((♯‘𝐹) = 0 → ((𝑃‘(♯‘𝐹)) = 𝐵 ↔ (𝑃‘0) = 𝐵))
3332anbi2d 642 . . . . . . . . . . . . . . 15 ((♯‘𝐹) = 0 → (((𝑃‘0) = 𝐴 ∧ (𝑃‘(♯‘𝐹)) = 𝐵) ↔ ((𝑃‘0) = 𝐴 ∧ (𝑃‘0) = 𝐵)))
34 eqtr2 2781 . . . . . . . . . . . . . . 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 2145  Vcvv 3450   class class class wbr 5103  ccnv 5654  Fun wfun 6527  wf 6529  1-1wf1 6530  cfv 6533  (class class class)co 7413  0cc0 11124  0cn0 12528  cuz 12887  ...cfz 13561  chash 14394  Vtxcvtx 29453  Walkscwlks 30056  WalksOncwlkson 30057  Trailsctrls 30152  TrailsOnctrlson 30153  SPathscspths 30175  SPathsOncspthson 30177
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 2147  ax-9 2155  ax-10 2178  ax-11 2194  ax-12 2213  ax-ext 2732  ax-rep 5232  ax-sep 5251  ax-nul 5263  ax-pow 5330  ax-pr 5398  ax-un 7736  ax-cnex 11180  ax-resscn 11181  ax-1cn 11182  ax-icn 11183  ax-addcl 11184  ax-addrcl 11185  ax-mulcl 11186  ax-mulrcl 11187  ax-mulcom 11188  ax-addass 11189  ax-mulass 11190  ax-distr 11191  ax-i2m1 11192  ax-1ne0 11193  ax-1rid 11194  ax-rnegex 11195  ax-rrecex 11196  ax-cnre 11197  ax-pre-lttri 11198  ax-pre-lttrn 11199  ax-pre-ltadd 11200  ax-pre-mulgt0 11201
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 2564  df-eu 2594  df-clab 2739  df-cleq 2752  df-clel 2835  df-nfc 2909  df-ne 2956  df-nel 3062  df-ral 3077  df-rex 3087  df-reu 3366  df-rab 3413  df-v 3452  df-sbc 3740  df-csb 3848  df-dif 3902  df-un 3904  df-in 3906  df-ss 3916  df-pss 3919  df-nul 4280  df-if 4483  df-pw 4559  df-sn 4585  df-pr 4587  df-op 4591  df-uni 4868  df-int 4908  df-iun 4953  df-br 5104  df-opab 5168  df-mpt 5187  df-tr 5213  df-id 5550  df-eprel 5555  df-po 5563  df-so 5564  df-fr 5608  df-we 5610  df-xp 5661  df-rel 5662  df-cnv 5663  df-co 5664  df-dm 5665  df-rn 5666  df-res 5667  df-ima 5668  df-pred 6299  df-ord 6360  df-on 6361  df-lim 6362  df-suc 6363  df-iota 6489  df-fun 6535  df-fn 6536  df-f 6537  df-f1 6538  df-fo 6539  df-f1o 6540  df-fv 6541  df-riota 7370  df-ov 7416  df-oprab 7417  df-mpo 7418  df-om 7863  df-1st 7986  df-2nd 7987  df-frecs 8280  df-wrecs 8311  df-recs 8360  df-rdg 8399  df-1o 8455  df-er 8696  df-map 8828  df-en 8953  df-dom 8954  df-sdom 8955  df-fin 8956  df-card 9944  df-pnf 11269  df-mnf 11270  df-xr 11271  df-ltxr 11272  df-le 11273  df-sub 11467  df-neg 11468  df-nn 12258  df-n0 12529  df-z 12616  df-uz 12888  df-fz 13562  df-fzo 13710  df-hash 14395  df-word 14579  df-wlks 30059  df-wlkson 30060  df-trls 30154  df-trlson 30155  df-spths 30179  df-spthson 30181
This theorem is used by:  wspthsnonn0vne  30385
  Copyright terms: Public domain W3C validator