Metamath Proof Explorer


Theorem dfvopnbgr2

Description: Alternate definition of the semiopen neighborhood of a vertex breaking up the subset relationship of an unordered pair. Asemiopen neighborhood U of a vertex N is its open neighborhood together with itself if there is a loop at this vertex. (Contributed by AV, 15-May-2025)

Ref Expression
Hypotheses dfvopnbgr2.v 𝑉 = ( Vtx ‘ 𝐺 )
dfvopnbgr2.e 𝐸 = ( Edg ‘ 𝐺 )
dfvopnbgr2.u 𝑈 = { 𝑛𝑉 ∣ ( 𝑛 ∈ ( 𝐺 NeighbVtx 𝑁 ) ∨ ∃ 𝑒𝐸 ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) }
Assertion dfvopnbgr2 ( 𝑁𝑉𝑈 = { 𝑛𝑉 ∣ ∃ 𝑒𝐸 ( ( 𝑛𝑁𝑁𝑒𝑛𝑒 ) ∨ ( 𝑛 = 𝑁𝑒 = { 𝑛 } ) ) } )

Proof

Step Hyp Ref Expression
1 dfvopnbgr2.v 𝑉 = ( Vtx ‘ 𝐺 )
2 dfvopnbgr2.e 𝐸 = ( Edg ‘ 𝐺 )
3 dfvopnbgr2.u 𝑈 = { 𝑛𝑉 ∣ ( 𝑛 ∈ ( 𝐺 NeighbVtx 𝑁 ) ∨ ∃ 𝑒𝐸 ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) }
4 1 2 nbgrel ( 𝑛 ∈ ( 𝐺 NeighbVtx 𝑁 ) ↔ ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ∧ ∃ 𝑒𝐸 { 𝑁 , 𝑛 } ⊆ 𝑒 ) )
5 4 a1i ( ( 𝑁𝑉𝑛𝑉 ) → ( 𝑛 ∈ ( 𝐺 NeighbVtx 𝑁 ) ↔ ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ∧ ∃ 𝑒𝐸 { 𝑁 , 𝑛 } ⊆ 𝑒 ) ) )
6 5 orbi1d ( ( 𝑁𝑉𝑛𝑉 ) → ( ( 𝑛 ∈ ( 𝐺 NeighbVtx 𝑁 ) ∨ ∃ 𝑒𝐸 ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) ↔ ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ∧ ∃ 𝑒𝐸 { 𝑁 , 𝑛 } ⊆ 𝑒 ) ∨ ∃ 𝑒𝐸 ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) ) )
7 df-3an ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ∧ ∃ 𝑒𝐸 { 𝑁 , 𝑛 } ⊆ 𝑒 ) ↔ ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ) ∧ ∃ 𝑒𝐸 { 𝑁 , 𝑛 } ⊆ 𝑒 ) )
8 r19.42v ( ∃ 𝑒𝐸 ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ) ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ↔ ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ) ∧ ∃ 𝑒𝐸 { 𝑁 , 𝑛 } ⊆ 𝑒 ) )
9 7 8 bitr4i ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ∧ ∃ 𝑒𝐸 { 𝑁 , 𝑛 } ⊆ 𝑒 ) ↔ ∃ 𝑒𝐸 ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ) ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) )
10 9 orbi1i ( ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ∧ ∃ 𝑒𝐸 { 𝑁 , 𝑛 } ⊆ 𝑒 ) ∨ ∃ 𝑒𝐸 ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) ↔ ( ∃ 𝑒𝐸 ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ) ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ∨ ∃ 𝑒𝐸 ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) )
11 10 a1i ( ( 𝑁𝑉𝑛𝑉 ) → ( ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ∧ ∃ 𝑒𝐸 { 𝑁 , 𝑛 } ⊆ 𝑒 ) ∨ ∃ 𝑒𝐸 ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) ↔ ( ∃ 𝑒𝐸 ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ) ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ∨ ∃ 𝑒𝐸 ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) ) )
12 r19.43 ( ∃ 𝑒𝐸 ( ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ) ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ∨ ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) ↔ ( ∃ 𝑒𝐸 ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ) ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ∨ ∃ 𝑒𝐸 ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) )
13 11 12 bitr4di ( ( 𝑁𝑉𝑛𝑉 ) → ( ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ∧ ∃ 𝑒𝐸 { 𝑁 , 𝑛 } ⊆ 𝑒 ) ∨ ∃ 𝑒𝐸 ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) ↔ ∃ 𝑒𝐸 ( ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ) ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ∨ ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) ) )
14 6 13 bitrd ( ( 𝑁𝑉𝑛𝑉 ) → ( ( 𝑛 ∈ ( 𝐺 NeighbVtx 𝑁 ) ∨ ∃ 𝑒𝐸 ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) ↔ ∃ 𝑒𝐸 ( ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ) ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ∨ ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) ) )
15 anass ( ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ) ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ↔ ( ( 𝑛𝑉𝑁𝑉 ) ∧ ( 𝑛𝑁 ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ) )
16 15 a1i ( ( ( 𝑁𝑉𝑛𝑉 ) ∧ 𝑒𝐸 ) → ( ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ) ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ↔ ( ( 𝑛𝑉𝑁𝑉 ) ∧ ( 𝑛𝑁 ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ) ) )
17 ibar ( ( 𝑛𝑉𝑁𝑉 ) → ( ( 𝑛𝑁 ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ↔ ( ( 𝑛𝑉𝑁𝑉 ) ∧ ( 𝑛𝑁 ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ) ) )
18 17 ancoms ( ( 𝑁𝑉𝑛𝑉 ) → ( ( 𝑛𝑁 ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ↔ ( ( 𝑛𝑉𝑁𝑉 ) ∧ ( 𝑛𝑁 ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ) ) )
19 18 adantr ( ( ( 𝑁𝑉𝑛𝑉 ) ∧ 𝑒𝐸 ) → ( ( 𝑛𝑁 ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ↔ ( ( 𝑛𝑉𝑁𝑉 ) ∧ ( 𝑛𝑁 ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ) ) )
20 prssg ( ( 𝑁𝑉𝑛𝑉 ) → ( ( 𝑁𝑒𝑛𝑒 ) ↔ { 𝑁 , 𝑛 } ⊆ 𝑒 ) )
21 20 bicomd ( ( 𝑁𝑉𝑛𝑉 ) → ( { 𝑁 , 𝑛 } ⊆ 𝑒 ↔ ( 𝑁𝑒𝑛𝑒 ) ) )
22 21 adantr ( ( ( 𝑁𝑉𝑛𝑉 ) ∧ 𝑒𝐸 ) → ( { 𝑁 , 𝑛 } ⊆ 𝑒 ↔ ( 𝑁𝑒𝑛𝑒 ) ) )
23 22 anbi2d ( ( ( 𝑁𝑉𝑛𝑉 ) ∧ 𝑒𝐸 ) → ( ( 𝑛𝑁 ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ↔ ( 𝑛𝑁 ∧ ( 𝑁𝑒𝑛𝑒 ) ) ) )
24 3anass ( ( 𝑛𝑁𝑁𝑒𝑛𝑒 ) ↔ ( 𝑛𝑁 ∧ ( 𝑁𝑒𝑛𝑒 ) ) )
25 23 24 bitr4di ( ( ( 𝑁𝑉𝑛𝑉 ) ∧ 𝑒𝐸 ) → ( ( 𝑛𝑁 ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ↔ ( 𝑛𝑁𝑁𝑒𝑛𝑒 ) ) )
26 16 19 25 3bitr2d ( ( ( 𝑁𝑉𝑛𝑉 ) ∧ 𝑒𝐸 ) → ( ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ) ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ↔ ( 𝑛𝑁𝑁𝑒𝑛𝑒 ) ) )
27 eqcom ( 𝑁 = 𝑛𝑛 = 𝑁 )
28 27 anbi1i ( ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ↔ ( 𝑛 = 𝑁𝑒 = { 𝑁 } ) )
29 sneq ( 𝑁 = 𝑛 → { 𝑁 } = { 𝑛 } )
30 29 eqcoms ( 𝑛 = 𝑁 → { 𝑁 } = { 𝑛 } )
31 30 eqeq2d ( 𝑛 = 𝑁 → ( 𝑒 = { 𝑁 } ↔ 𝑒 = { 𝑛 } ) )
32 31 pm5.32i ( ( 𝑛 = 𝑁𝑒 = { 𝑁 } ) ↔ ( 𝑛 = 𝑁𝑒 = { 𝑛 } ) )
33 28 32 bitri ( ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ↔ ( 𝑛 = 𝑁𝑒 = { 𝑛 } ) )
34 33 a1i ( ( ( 𝑁𝑉𝑛𝑉 ) ∧ 𝑒𝐸 ) → ( ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ↔ ( 𝑛 = 𝑁𝑒 = { 𝑛 } ) ) )
35 26 34 orbi12d ( ( ( 𝑁𝑉𝑛𝑉 ) ∧ 𝑒𝐸 ) → ( ( ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ) ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ∨ ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) ↔ ( ( 𝑛𝑁𝑁𝑒𝑛𝑒 ) ∨ ( 𝑛 = 𝑁𝑒 = { 𝑛 } ) ) ) )
36 35 rexbidva ( ( 𝑁𝑉𝑛𝑉 ) → ( ∃ 𝑒𝐸 ( ( ( ( 𝑛𝑉𝑁𝑉 ) ∧ 𝑛𝑁 ) ∧ { 𝑁 , 𝑛 } ⊆ 𝑒 ) ∨ ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) ↔ ∃ 𝑒𝐸 ( ( 𝑛𝑁𝑁𝑒𝑛𝑒 ) ∨ ( 𝑛 = 𝑁𝑒 = { 𝑛 } ) ) ) )
37 14 36 bitrd ( ( 𝑁𝑉𝑛𝑉 ) → ( ( 𝑛 ∈ ( 𝐺 NeighbVtx 𝑁 ) ∨ ∃ 𝑒𝐸 ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) ↔ ∃ 𝑒𝐸 ( ( 𝑛𝑁𝑁𝑒𝑛𝑒 ) ∨ ( 𝑛 = 𝑁𝑒 = { 𝑛 } ) ) ) )
38 37 rabbidva ( 𝑁𝑉 → { 𝑛𝑉 ∣ ( 𝑛 ∈ ( 𝐺 NeighbVtx 𝑁 ) ∨ ∃ 𝑒𝐸 ( 𝑁 = 𝑛𝑒 = { 𝑁 } ) ) } = { 𝑛𝑉 ∣ ∃ 𝑒𝐸 ( ( 𝑛𝑁𝑁𝑒𝑛𝑒 ) ∨ ( 𝑛 = 𝑁𝑒 = { 𝑛 } ) ) } )
39 3 38 eqtrid ( 𝑁𝑉𝑈 = { 𝑛𝑉 ∣ ∃ 𝑒𝐸 ( ( 𝑛𝑁𝑁𝑒𝑛𝑒 ) ∨ ( 𝑛 = 𝑁𝑒 = { 𝑛 } ) ) } )