Metamath Proof Explorer


Theorem frgr2wwlk1

Description: In a friendship graph, there is exactly one walk of length 2 between two different vertices. (Contributed by Alexander van der Vekens, 19-Feb-2018) (Revised by AV, 13-May-2021) (Proof shortened by AV, 16-Mar-2022)

Ref Expression
Hypothesis frgr2wwlkeu.v ⊢ V = Vtx ⁡ G
Assertion frgr2wwlk1 ⊢ G ∈ FriendGraph ∧ A ∈ V ∧ B ∈ V ∧ A ≠ B → A 2 WWalksNOn G B = 1

Proof

Step Hyp Ref Expression
1 frgr2wwlkeu.v ⊢ V = Vtx ⁡ G
2 1 frgr2wwlkn0 ⊢ G ∈ FriendGraph ∧ A ∈ V ∧ B ∈ V ∧ A ≠ B → A 2 WWalksNOn G B ≠ ∅
3 1 elwwlks2ons3 ⊢ w ∈ A 2 WWalksNOn G B ↔ ∃ d ∈ V w = ⟨“ AdB ”⟩ ∧ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B
4 1 elwwlks2ons3 ⊢ t ∈ A 2 WWalksNOn G B ↔ ∃ c ∈ V t = ⟨“ AcB ”⟩ ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B
5 3 4 anbi12i ⊢ w ∈ A 2 WWalksNOn G B ∧ t ∈ A 2 WWalksNOn G B ↔ ∃ d ∈ V w = ⟨“ AdB ”⟩ ∧ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ∃ c ∈ V t = ⟨“ AcB ”⟩ ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B
6 1 frgr2wwlkeu ⊢ G ∈ FriendGraph ∧ A ∈ V ∧ B ∈ V ∧ A ≠ B → ∃! x ∈ V ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B
7 s3eq2 ⊢ x = y → ⟨“ AxB ”⟩ = ⟨“ AyB ”⟩
8 7 eleq1d ⊢ x = y → ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B ↔ ⟨“ AyB ”⟩ ∈ A 2 WWalksNOn G B
9 8 reu4 ⊢ ∃! x ∈ V ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B ↔ ∃ x ∈ V ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B ∧ ∀ x ∈ V ∀ y ∈ V ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AyB ”⟩ ∈ A 2 WWalksNOn G B → x = y
10 s3eq2 ⊢ x = d → ⟨“ AxB ”⟩ = ⟨“ AdB ”⟩
11 10 eleq1d ⊢ x = d → ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B ↔ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B
12 11 anbi1d ⊢ x = d → ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AyB ”⟩ ∈ A 2 WWalksNOn G B ↔ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AyB ”⟩ ∈ A 2 WWalksNOn G B
13 equequ1 ⊢ x = d → x = y ↔ d = y
14 12 13 imbi12d ⊢ x = d → ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AyB ”⟩ ∈ A 2 WWalksNOn G B → x = y ↔ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AyB ”⟩ ∈ A 2 WWalksNOn G B → d = y
15 s3eq2 ⊢ y = c → ⟨“ AyB ”⟩ = ⟨“ AcB ”⟩
16 15 eleq1d ⊢ y = c → ⟨“ AyB ”⟩ ∈ A 2 WWalksNOn G B ↔ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B
17 16 anbi2d ⊢ y = c → ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AyB ”⟩ ∈ A 2 WWalksNOn G B ↔ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B
18 equequ2 ⊢ y = c → d = y ↔ d = c
19 17 18 imbi12d ⊢ y = c → ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AyB ”⟩ ∈ A 2 WWalksNOn G B → d = y ↔ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → d = c
20 14 19 rspc2va ⊢ d ∈ V ∧ c ∈ V ∧ ∀ x ∈ V ∀ y ∈ V ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AyB ”⟩ ∈ A 2 WWalksNOn G B → x = y → ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → d = c
21 pm3.35 ⊢ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → d = c → d = c
22 s3eq2 ⊢ c = d → ⟨“ AcB ”⟩ = ⟨“ AdB ”⟩
23 22 equcoms ⊢ d = c → ⟨“ AcB ”⟩ = ⟨“ AdB ”⟩
24 23 adantr ⊢ d = c ∧ t = ⟨“ AcB ”⟩ ∧ w = ⟨“ AdB ”⟩ → ⟨“ AcB ”⟩ = ⟨“ AdB ”⟩
25 eqeq12 ⊢ t = ⟨“ AcB ”⟩ ∧ w = ⟨“ AdB ”⟩ → t = w ↔ ⟨“ AcB ”⟩ = ⟨“ AdB ”⟩
26 25 adantl ⊢ d = c ∧ t = ⟨“ AcB ”⟩ ∧ w = ⟨“ AdB ”⟩ → t = w ↔ ⟨“ AcB ”⟩ = ⟨“ AdB ”⟩
27 24 26 mpbird ⊢ d = c ∧ t = ⟨“ AcB ”⟩ ∧ w = ⟨“ AdB ”⟩ → t = w
28 27 equcomd ⊢ d = c ∧ t = ⟨“ AcB ”⟩ ∧ w = ⟨“ AdB ”⟩ → w = t
29 28 ex ⊢ d = c → t = ⟨“ AcB ”⟩ ∧ w = ⟨“ AdB ”⟩ → w = t
30 21 29 syl ⊢ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → d = c → t = ⟨“ AcB ”⟩ ∧ w = ⟨“ AdB ”⟩ → w = t
31 30 ex ⊢ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → d = c → t = ⟨“ AcB ”⟩ ∧ w = ⟨“ AdB ”⟩ → w = t
32 31 com23 ⊢ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → t = ⟨“ AcB ”⟩ ∧ w = ⟨“ AdB ”⟩ → ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → d = c → w = t
33 32 exp4b ⊢ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B → ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → t = ⟨“ AcB ”⟩ → w = ⟨“ AdB ”⟩ → ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → d = c → w = t
34 33 com13 ⊢ t = ⟨“ AcB ”⟩ → ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B → w = ⟨“ AdB ”⟩ → ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → d = c → w = t
35 34 imp ⊢ t = ⟨“ AcB ”⟩ ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B → w = ⟨“ AdB ”⟩ → ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → d = c → w = t
36 35 com13 ⊢ w = ⟨“ AdB ”⟩ → ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B → t = ⟨“ AcB ”⟩ ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → d = c → w = t
37 36 imp ⊢ w = ⟨“ AdB ”⟩ ∧ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B → t = ⟨“ AcB ”⟩ ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → d = c → w = t
38 37 com13 ⊢ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → d = c → t = ⟨“ AcB ”⟩ ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → w = ⟨“ AdB ”⟩ ∧ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B → w = t
39 20 38 syl ⊢ d ∈ V ∧ c ∈ V ∧ ∀ x ∈ V ∀ y ∈ V ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AyB ”⟩ ∈ A 2 WWalksNOn G B → x = y → t = ⟨“ AcB ”⟩ ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → w = ⟨“ AdB ”⟩ ∧ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B → w = t
40 39 expcom ⊢ ∀ x ∈ V ∀ y ∈ V ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B ∧ ⟨“ AyB ”⟩ ∈ A 2 WWalksNOn G B → x = y → d ∈ V ∧ c ∈ V → t = ⟨“ AcB ”⟩ ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → w = ⟨“ AdB ”⟩ ∧ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B → w = t
41 9 40 simplbiim ⊢ ∃! x ∈ V ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B → d ∈ V ∧ c ∈ V → t = ⟨“ AcB ”⟩ ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → w = ⟨“ AdB ”⟩ ∧ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B → w = t
42 41 impl ⊢ ∃! x ∈ V ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B ∧ d ∈ V ∧ c ∈ V → t = ⟨“ AcB ”⟩ ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → w = ⟨“ AdB ”⟩ ∧ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B → w = t
43 42 rexlimdva ⊢ ∃! x ∈ V ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B ∧ d ∈ V → ∃ c ∈ V t = ⟨“ AcB ”⟩ ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → w = ⟨“ AdB ”⟩ ∧ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B → w = t
44 43 com23 ⊢ ∃! x ∈ V ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B ∧ d ∈ V → w = ⟨“ AdB ”⟩ ∧ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B → ∃ c ∈ V t = ⟨“ AcB ”⟩ ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → w = t
45 44 rexlimdva ⊢ ∃! x ∈ V ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B → ∃ d ∈ V w = ⟨“ AdB ”⟩ ∧ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B → ∃ c ∈ V t = ⟨“ AcB ”⟩ ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → w = t
46 45 impd ⊢ ∃! x ∈ V ⟨“ AxB ”⟩ ∈ A 2 WWalksNOn G B → ∃ d ∈ V w = ⟨“ AdB ”⟩ ∧ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ∃ c ∈ V t = ⟨“ AcB ”⟩ ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → w = t
47 6 46 syl ⊢ G ∈ FriendGraph ∧ A ∈ V ∧ B ∈ V ∧ A ≠ B → ∃ d ∈ V w = ⟨“ AdB ”⟩ ∧ ⟨“ AdB ”⟩ ∈ A 2 WWalksNOn G B ∧ ∃ c ∈ V t = ⟨“ AcB ”⟩ ∧ ⟨“ AcB ”⟩ ∈ A 2 WWalksNOn G B → w = t
48 5 47 biimtrid ⊢ G ∈ FriendGraph ∧ A ∈ V ∧ B ∈ V ∧ A ≠ B → w ∈ A 2 WWalksNOn G B ∧ t ∈ A 2 WWalksNOn G B → w = t
49 48 alrimivv ⊢ G ∈ FriendGraph ∧ A ∈ V ∧ B ∈ V ∧ A ≠ B → ∀ w ∀ t w ∈ A 2 WWalksNOn G B ∧ t ∈ A 2 WWalksNOn G B → w = t
50 eqeuel ⊢ A 2 WWalksNOn G B ≠ ∅ ∧ ∀ w ∀ t w ∈ A 2 WWalksNOn G B ∧ t ∈ A 2 WWalksNOn G B → w = t → ∃! w w ∈ A 2 WWalksNOn G B
51 2 49 50 syl2anc ⊢ G ∈ FriendGraph ∧ A ∈ V ∧ B ∈ V ∧ A ≠ B → ∃! w w ∈ A 2 WWalksNOn G B
52 ovex ⊢ A 2 WWalksNOn G B ∈ V
53 euhash1 ⊢ A 2 WWalksNOn G B ∈ V → A 2 WWalksNOn G B = 1 ↔ ∃! w w ∈ A 2 WWalksNOn G B
54 52 53 mp1i ⊢ G ∈ FriendGraph ∧ A ∈ V ∧ B ∈ V ∧ A ≠ B → A 2 WWalksNOn G B = 1 ↔ ∃! w w ∈ A 2 WWalksNOn G B
55 51 54 mpbird ⊢ G ∈ FriendGraph ∧ A ∈ V ∧ B ∈ V ∧ A ≠ B → A 2 WWalksNOn G B = 1