Subwalks #
We define a relation on walks stating that one walk is the subwalk of another.
Main definitions #
SimpleGraph.Walk.IsSubwalk: A relation on walks stating that the first walk is a contiguous subwalk of the second walk.
Tags #
walks, subwalks
def SimpleGraph.Walk.IsSubwalk {V : Type u_1} {G : SimpleGraph V} {u₁ v₁ u₂ v₂ : V} (p : G.Walk u₁ v₁) (q : G.Walk u₂ v₂) :
p.IsSubwalk q means that the walk p is a contiguous subwalk of the walk q.
Instances For
@[simp]
theorem SimpleGraph.Walk.isSubwalk_rfl {V : Type u_1} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) :
p.IsSubwalk p
@[simp]
theorem SimpleGraph.Walk.isSubwalk_nil_start {V : Type u_1} {G : SimpleGraph V} {u v : V} (q : G.Walk u v) :
@[deprecated SimpleGraph.Walk.isSubwalk_nil_start (since := "2026-07-11")]
theorem SimpleGraph.Walk.nil_isSubwalk {V : Type u_1} {G : SimpleGraph V} {u v : V} (q : G.Walk u v) :
Alias of SimpleGraph.Walk.isSubwalk_nil_start.
@[simp]
theorem SimpleGraph.Walk.isSubwalk_nil_end {V : Type u_1} {G : SimpleGraph V} {u v : V} (q : G.Walk u v) :
theorem SimpleGraph.Walk.IsSubwalk.cons {V : Type u_1} {G : SimpleGraph V} {u v u' v' w : V} {p : G.Walk u v} {q : G.Walk u' v'} (hpq : p.IsSubwalk q) (h : G.Adj w u') :
@[simp]
theorem SimpleGraph.Walk.isSubwalk_cons {V : Type u_1} {G : SimpleGraph V} {u v w : V} (p : G.Walk u v) (h : G.Adj w u) :
theorem SimpleGraph.Walk.IsSubwalk.concat {V : Type u_1} {G : SimpleGraph V} {u v u' v' w : V} {p : G.Walk u v} {q : G.Walk u' v'} (hpq : p.IsSubwalk q) (h : G.Adj v' w) :
@[simp]
theorem SimpleGraph.Walk.isSubwalk_concat {V : Type u_1} {G : SimpleGraph V} {u v w : V} (p : G.Walk u v) (h : G.Adj v w) :
theorem SimpleGraph.Walk.IsSubwalk.trans {V : Type u_1} {G : SimpleGraph V} {u₁ v₁ u₂ v₂ u₃ v₃ : V} {p₁ : G.Walk u₁ v₁} {p₂ : G.Walk u₂ v₂} {p₃ : G.Walk u₃ v₃} (h₁ : p₁.IsSubwalk p₂) (h₂ : p₂.IsSubwalk p₃) :
p₁.IsSubwalk p₃
theorem SimpleGraph.Walk.length_le_of_isSubwalk {V : Type u_1} {G : SimpleGraph V} {u₁ v₁ u₂ v₂ : V} {q : G.Walk u₁ v₁} {p : G.Walk u₂ v₂} (h : p.IsSubwalk q) :
theorem SimpleGraph.Walk.isSubwalk_of_append_left {V : Type u_1} {G : SimpleGraph V} {v w u : V} {p₁ : G.Walk v w} {p₂ : G.Walk w u} {p₃ : G.Walk v u} (h : p₃ = p₁.append p₂) :
p₁.IsSubwalk p₃
theorem SimpleGraph.Walk.isSubwalk_of_append_right {V : Type u_1} {G : SimpleGraph V} {v w u : V} {p₁ : G.Walk v w} {p₂ : G.Walk w u} {p₃ : G.Walk v u} (h : p₃ = p₁.append p₂) :
p₂.IsSubwalk p₃
theorem SimpleGraph.Walk.isSubwalk_take {V : Type u_1} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) (n : ℕ) :
theorem SimpleGraph.Walk.isSubwalk_drop {V : Type u_1} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) (n : ℕ) :
@[simp]
theorem SimpleGraph.Walk.isSubwalk_nil_iff_mem_support {V : Type u_1} {G : SimpleGraph V} {u v v' : V} (p : G.Walk u v) :
theorem SimpleGraph.Walk.isSubwalk_antisymm {V : Type u_1} {G : SimpleGraph V} {u v : V} {p₁ p₂ : G.Walk u v} (h₁ : p₁.IsSubwalk p₂) (h₂ : p₂.IsSubwalk p₁) :
@[simp]
theorem SimpleGraph.Walk.IsSubwalk.support_subset {V : Type u_1} {G : SimpleGraph V} {u v u' v' : V} {p₁ : G.Walk u v} {p₂ : G.Walk u' v'} (h : p₂.IsSubwalk p₁) :
theorem SimpleGraph.Walk.IsSubwalk.edges_isInfix {V : Type u_1} {G : SimpleGraph V} {u v u' v' : V} {p₁ : G.Walk u v} {p₂ : G.Walk u' v'} (h : p₁.IsSubwalk p₂) :
@[simp]
theorem SimpleGraph.Walk.IsSubwalk.edges_subset {V : Type u_1} {G : SimpleGraph V} {u v u' v' : V} {p₁ : G.Walk u v} {p₂ : G.Walk u' v'} (h : p₂.IsSubwalk p₁) :
theorem SimpleGraph.Walk.IsSubwalk.darts_isInfix {V : Type u_1} {G : SimpleGraph V} {u v u' v' : V} {p₁ : G.Walk u v} {p₂ : G.Walk u' v'} (h : p₁.IsSubwalk p₂) :
@[simp]
theorem SimpleGraph.Walk.IsSubwalk.darts_subset {V : Type u_1} {G : SimpleGraph V} {u v u' v' : V} {p₁ : G.Walk u v} {p₂ : G.Walk u' v'} (h : p₂.IsSubwalk p₁) :
theorem SimpleGraph.Walk.IsSubwalk.dropLast {V : Type u_1} {G : SimpleGraph V} {u v u' v' : V} {p : G.Walk u v} {q : G.Walk u' v'} (hpq : p.IsSubwalk q) :
theorem SimpleGraph.Walk.IsSubwalk.tail {V : Type u_1} {G : SimpleGraph V} {u v u' v' : V} {p : G.Walk u v} {q : G.Walk u' v'} (hpq : p.IsSubwalk q) :
theorem SimpleGraph.Walk.take_isSubwalk_take {V : Type u_1} {G : SimpleGraph V} {u v : V} {n k : ℕ} (p : G.Walk u v) (h : n ≤ k) :
theorem SimpleGraph.Walk.drop_isSubwalk_drop {V : Type u_1} {G : SimpleGraph V} {u v : V} {n k : ℕ} (p : G.Walk u v) (h : n ≤ k) :