G.IsWalk w means that w : WList α β is a walk of G : Graph α β.
- nil {α : Type u_1} {β : Type u_2} {G : Graph α β} {x : α} (hx : x ∈ G.vertexSet) : G.IsWalk (WList.nil x)
- cons {α : Type u_1} {β : Type u_2} {G : Graph α β} {x : α} {e : β} {w : WList α β} (hw : G.IsWalk w) (h : G.IsLink e x w.first) : G.IsWalk (WList.cons x e w)
Instances For
@[simp]
theorem Graph.IsWalk.of_cons {α : Type u_1} {β : Type u_2} {x : α} {e : β} {G : Graph α β} {w : WList α β} (hw : G.IsWalk (WList.cons x e w)) :
G.IsWalk w
theorem Graph.IsWalk.deloop {α : Type u_1} {β : Type u_2} {G : Graph α β} {w : WList α β} [DecidableEq α] (h : G.IsWalk w) :
theorem Graph.IsWalk.deloop_edge_eq_filter {α : Type u_1} {β : Type u_2} {G : Graph α β} {w : WList α β} [DecidableEq α] [DecidablePred fun (x : β) => ∀ (x_1 : α), ¬G.IsLoopAt x x_1] (h : G.IsWalk w) :
theorem Graph.edgeRemove_isSublist {α : Type u_1} {β : Type u_2} {G : Graph α β} {F : Set β} {w : WList α β} (hF : ∀ e ∈ w.edge, e ∈ F → ∃ (x : α), G.IsLoopAt e x) [DecidablePred fun (x : β) => x ∈ F] (hw : G.IsWalk w) :
(WList.edgeRemove F w).IsSublist w
theorem Graph.IsWalk.edgeRemove {α : Type u_1} {β : Type u_2} {G : Graph α β} {F : Set β} {w : WList α β} [DecidablePred fun (x : β) => x ∈ F] (hw : G.IsWalk w) (hF : ∀ e ∈ w.edge, e ∈ F → ∃ (x : α), G.IsLoopAt e x) :
G.IsWalk (WList.edgeRemove F w)
theorem Graph.deloop_isSublist_edgeRemove {α : Type u_1} {β : Type u_2} {G : Graph α β} {F : Set β} {w : WList α β} [DecidableEq α] [DecidablePred fun (x : β) => x ∈ F] (hw : G.IsWalk w) (hF : ∀ e ∈ w.edge, e ∈ F → ∃ (x : α), G.IsLoopAt e x) :
w.deloop.IsSublist (WList.edgeRemove F w)
theorem Graph.edgeRemove_eq_deloop {α : Type u_1} {β : Type u_2} {G : Graph α β} {F : Set β} {w : WList α β} [DecidableEq α] [DecidablePred fun (x : β) => x ∈ F] (hw : G.IsWalk w) (hF : ∀ e ∈ w.edge, e ∈ F ↔ ∃ (x : α), G.IsLoopAt e x) :
theorem Graph.IsWalkFrom.of_le {α : Type u_1} {β : Type u_2} {G H : Graph α β} {w : WList α β} {S T : Set α} (h : G.IsWalkFrom S T w) (hle : G ≤ H) :
H.IsWalkFrom S T w
theorem Graph.IsWalkFrom.reverse {α : Type u_1} {β : Type u_2} {G : Graph α β} {w : WList α β} {S T : Set α} (h : G.IsWalkFrom S T w) :
G.IsWalkFrom T S w.reverse
@[simp]
theorem Graph.IsLink.walk_internalVertexSet {α : Type u_1} {β : Type u_2} {u v : α} {e : β} {G : Graph α β} (h : G.IsLink e u v) :
Turn w : WList α β into a Graph α β. If the list is not well-formed
(i.e. it contains an edge appearing twice with different ends),
then the last occurence of the edge determines its ends in w.toGraph.
Equations
- (WList.nil u).toGraph = Graph.noEdge {u} β
- (WList.cons u e w).toGraph = w.toGraph ∪ Graph.singleEdge u w.first e
Instances For
@[simp]
@[simp]
theorem WList.WellFormed.toGraph_isLink {α : Type u_1} {β : Type u_2} {w : WList α β} (h : w.WellFormed) :
@[simp]
theorem WList.WellFormed.toGraph_inc {α : Type u_1} {β : Type u_2} {w : WList α β} (h : w.WellFormed) :
theorem WList.IsSublist.toGraph_le {α : Type u_1} {β : Type u_2} {w₁ w₂ : WList α β} (h : w₁.IsSublist w₂) (hw₂ : w₂.WellFormed) :
theorem WList.WellFormed.reverse_toGraph {α : Type u_1} {β : Type u_2} {w : WList α β} (h : w.WellFormed) :
theorem WList.WellFormed.isWalk_toGraph {α : Type u_1} {β : Type u_2} {w : WList α β} (hw : w.WellFormed) :
theorem WList.Nontrivial.disjoint_edgeSet_of_disjoint_internalVertexSet {α : Type u_1} {β : Type u_2} {w : WList α β} {G H : Graph α β} (hw : w.Nontrivial) (hle : H ≤ G) (hW : G.IsWalk w) (hdisj : Disjoint w.internalVertexSet H.vertexSet) :
If a nontrivial walk of G has no internal vertex in V(H), then none of its edges lie in
E(H). Needs Nontrivial: a one-edge walk between two vertices of H has empty internal set.