Darts in graphs #
A Dart or half-edge or bond in a graph is an ordered pair of adjacent vertices, regarded as an
oriented edge. This file defines darts and proves some of their basic properties.
A Dart is an oriented edge, implemented as an ordered pair of adjacent vertices.
This terminology comes from combinatorial maps, and they are also known as "half-edges"
or "bonds."
Instances For
@[implicit_reducible]
instance
SimpleGraph.instDecidableEqDart
{Vโ : Type u_2}
{Gโ : SimpleGraph Vโ}
[DecidableEq Vโ]
:
DecidableEq Gโ.Dart
def
SimpleGraph.instDecidableEqDart.decEq
{Vโ : Type u_2}
{Gโ : SimpleGraph Vโ}
[DecidableEq Vโ]
(xโ xโยน : Gโ.Dart)
:
Decidable (xโ = xโยน)
Instances For
theorem
SimpleGraph.Dart.ext
{V : Type u_1}
{G : SimpleGraph V}
(dโ dโ : G.Dart)
(h : dโ.toProd = dโ.toProd)
:
dโ = dโ
@[simp]
@[simp]
theorem
SimpleGraph.Dart.toProd_injective
{V : Type u_1}
{G : SimpleGraph V}
:
Function.Injective toProd
@[implicit_reducible]
instance
SimpleGraph.Dart.fintype
{V : Type u_1}
{G : SimpleGraph V}
[Fintype V]
[DecidableRel G.Adj]
:
The edge associated to the dart.
Instances For
@[simp]
theorem
SimpleGraph.Dart.edge_mk
{V : Type u_1}
{G : SimpleGraph V}
{p : V ร V}
(h : G.Adj p.1 p.2)
:
@[simp]
The dart with reversed orientation from a given dart.
Instances For
@[simp]
@[simp]
theorem
SimpleGraph.Dart.symm_mk
{V : Type u_1}
{G : SimpleGraph V}
{p : V ร V}
(h : G.Adj p.1 p.2)
:
@[simp]
@[simp]
@[simp]
@[simp]
theorem
SimpleGraph.dart_edge_eq_mk'_iff
{V : Type u_1}
{G : SimpleGraph V}
{d : G.Dart}
{u v : V}
:
Two darts are said to be adjacent if they could be consecutive darts in a walk -- that is, the first dart's second vertex is equal to the second dart's first vertex.
Instances For
def
SimpleGraph.dartOfNeighborSet
{V : Type u_1}
(G : SimpleGraph V)
(v : V)
(w : โ(G.neighborSet v))
:
G.Dart
For a given vertex v, this is the bijective map from the neighbor set at v
to the darts d with d.fst = v.
Instances For
@[simp]
theorem
SimpleGraph.dartOfNeighborSet_toProd
{V : Type u_1}
(G : SimpleGraph V)
(v : V)
(w : โ(G.neighborSet v))
:
(G.dartOfNeighborSet v w).toProd = (v, โw)
theorem
SimpleGraph.dartOfNeighborSet_injective
{V : Type u_1}
(G : SimpleGraph V)
(v : V)
:
Function.Injective (G.dartOfNeighborSet v)