Trails #
@[simp]
theorem Graph.IsTrail.of_cons {α : Type u_1} {β : Type u_2} {x : α} {e : β} {G : Graph α β} {w : WList α β} (h : G.IsTrail (WList.cons x e w)) :
G.IsTrail w
theorem Graph.IsTrail.edgeRemove {α : Type u_1} {β : Type u_2} {G : Graph α β} {w : WList α β} {F : Set β} [DecidablePred fun (x : β) => x ∈ F] (hw : G.IsTrail w) (hF : ∀ e ∈ w.edge, e ∈ F → ∃ (x : α), G.IsLoopAt e x) :
G.IsTrail (WList.edgeRemove F w)
Paths #
@[simp]
theorem Graph.IsPath.of_cons {α : Type u_1} {β : Type u_2} {x : α} {e : β} {G : Graph α β} {P : WList α β} (h : G.IsPath (WList.cons x e P)) :
G.IsPath P
theorem Graph.IsWalk.dedup {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} [DecidableEq α] (h : G.IsWalk P) :
theorem Graph.IsPath.noloop {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} [DecidableEq α] (h : G.IsPath P) :
P.NoLoop
@[simp]
theorem Graph.IsPath.suffixFromVertex_of_dInc {α : Type u_1} {β : Type u_2} {x y : α} {e : β} {G : Graph α β} {P : WList α β} [DecidableEq α] (hP : G.IsPath P) (h : P.DInc e x y) :
@[simp]
theorem Graph.IsPath.prefixUntilVertex_dInc_suffixFromVertex {α : Type u_1} {β : Type u_2} {x y : α} {e : β} {G : Graph α β} {P : WList α β} [DecidableEq α] (hP : G.IsPath P) (h : P.DInc e x y) :
@[simp]
theorem Graph.IsPath.first_mem_suffixFromVertex_iff {α : Type u_1} {β : Type u_2} {x : α} {G : Graph α β} {P : WList α β} [DecidableEq α] (hP : G.IsPath P) (hx : x ∈ P) :
theorem Graph.IsPath.eq_of_mem_prefixUntilVertex_suffixFromVertex {α : Type u_1} {β : Type u_2} {x y : α} {G : Graph α β} {P : WList α β} [DecidableEq α] (hP : G.IsPath P) (hypre : y ∈ P.prefixUntilVertex x) (hysuf : y ∈ P.suffixFromVertex x) (hx : x ∈ P) :
Fixed ends. (To be cleaned up) #
structure Graph.IsPathFrom {α : Type u_1} {β : Type u_2} (G : Graph α β) (S T : Set α) (P : WList α β) extends G.IsPath P, G.IsWalkFrom S T P :
Instances For
theorem Graph.IsPathFrom.isPath {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} {S T : Set α} (h : G.IsPathFrom S T P) :
G.IsPath P
theorem Graph.IsPathFrom.reverse {α : Type u_1} {β : Type u_2} {G : Graph α β} {w : WList α β} {S T : Set α} (h : G.IsPathFrom S T w) :
G.IsPathFrom T S w.reverse
theorem Graph.IsPathFrom.subset_left {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} {S T S₀ : Set α} (hP : G.IsPathFrom S T P) (hS₀ : S₀ ⊆ S) (hx : P.first ∈ S₀) :
G.IsPathFrom S₀ T P
theorem Graph.IsPathFrom.subset_right {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} {S T T₀ : Set α} (hP : G.IsPathFrom S T P) (hT₀ : T₀ ⊆ T) (hx : P.last ∈ T₀) :
G.IsPathFrom S T₀ P
theorem Graph.IsPathFrom.subset {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} {S T S₀ T₀ : Set α} (hP : G.IsPathFrom S T P) (hS₀ : S₀ ⊆ S) (hT₀ : T₀ ⊆ T) (hx : P.first ∈ S₀) (hy : P.last ∈ T₀) :
G.IsPathFrom S₀ T₀ P
theorem Graph.IsPathFrom.diff_left_of_disjoint {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} {S T X : Set α} (hP : G.IsPathFrom S T P) (hdj : Disjoint P.vertexSet X) :
G.IsPathFrom (S \ X) T P
theorem Graph.IsPathFrom.diff_right_of_disjoint {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} {S T X : Set α} (hP : G.IsPathFrom S T P) (hdj : Disjoint P.vertexSet X) :
G.IsPathFrom S (T \ X) P
theorem Graph.IsPathFrom.left_of_symmdiff_disjoint {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} {S T S₀ : Set α} (hP : G.IsPathFrom S T P) (hA : Disjoint P.vertexSet (symmDiff S S₀)) :
G.IsPathFrom S₀ T P
theorem Graph.IsPathFrom.right_of_symmdiff_disjoint {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} {S T T₀ : Set α} (hP : G.IsPathFrom S T P) (hA : Disjoint P.vertexSet (symmDiff T T₀)) :
G.IsPathFrom S T₀ P
theorem Graph.IsPathFrom.of_le {α : Type u_1} {β : Type u_2} {G H : Graph α β} {P : WList α β} {S T : Set α} (h : H.IsPathFrom S T P) (hle : H ≤ G) :
G.IsPathFrom S T P
theorem Graph.IsPathFrom.isPathFrom_le {α : Type u_1} {β : Type u_2} {G H : Graph α β} {P : WList α β} {S T : Set α} (h : G.IsPathFrom S T P) (hle : H ≤ G) (hss : P.edgeSet ⊆ H.edgeSet) (hne : P.first ∈ H.vertexSet) :
H.IsPathFrom S T P
theorem Graph.IsPathFrom.of_deleteVerts {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} {S T X : Set α} (hP : (G.deleteVerts X).IsPathFrom S T P) :
G.IsPathFrom (S ∪ X) (T ∪ X) P
theorem Graph.IsPathFrom.of_deleteVerts' {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} {S T X : Set α} (hP : (G.deleteVerts X).IsPathFrom S T P) :
G.IsPathFrom S T P
theorem Graph.IsPathFrom.deleteVerts {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} {S T X : Set α} (hP : G.IsPathFrom S T P) (hdj : Disjoint P.vertexSet X) :
(G.deleteVerts X).IsPathFrom S T P
theorem Graph.IsPathFrom.prefixUntil {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} {S T T' : Set α} (hP : G.IsPathFrom S T P) (h : ∃ x ∈ P, x ∈ T') [DecidablePred fun (x : α) => x ∈ T'] :
G.IsPathFrom S T' (P.prefixUntil fun (x : α) => x ∈ T')
theorem Graph.IsPathFrom.suffixFromLast {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} {S S' T : Set α} (hP : G.IsPathFrom S T P) (h : ∃ x ∈ P, x ∈ S') [DecidablePred fun (x : α) => x ∈ S'] :
G.IsPathFrom S' T (P.suffixFromLast fun (x : α) => x ∈ S')
theorem Graph.isPathFrom_cons_subgraph {α : Type u_1} {β : Type u_2} {x : α} {e : β} {G H : Graph α β} {P : WList α β} {T : Set α} (hle : H ≤ G) :
A version of isPathFrom_cons where the source set is a subgraph H,
and we get the additional condition that the first edge is not an edge of H.
theorem Graph.IsPathFrom.notMem_left_of_dInc {α : Type u_1} {β : Type u_2} {x y : α} {e : β} {G : Graph α β} {P : WList α β} {S T : Set α} (h : G.IsPathFrom S T P) (hP : P.DInc e x y) :
y ∉ S
theorem Graph.IsPathFrom.notMem_right_of_dInc {α : Type u_1} {β : Type u_2} {x y : α} {e : β} {G : Graph α β} {P : WList α β} {S T : Set α} (h : G.IsPathFrom S T P) (hP : P.DInc e x y) :
x ∉ T
theorem Graph.IsPath.betweenSets_isPathFrom {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} {S T : Set α} [DecidablePred fun (x : α) => x ∈ S] [DecidablePred fun (x : α) => x ∈ T] (hP : G.IsPath P) (hf : P.first ∈ S) (hl : P.last ∈ T) :
G.IsPathFrom S T (P.betweenSets S T)
theorem Graph.IsTrailFrom.isTrail {α : Type u_1} {β : Type u_2} {G : Graph α β} {w : WList α β} {S T : Set α} (h : G.IsTrailFrom S T w) :
G.IsTrail w
theorem Graph.IsTrailFrom.isWalkFrom {α : Type u_1} {β : Type u_2} {G : Graph α β} {w : WList α β} {S T : Set α} (h : G.IsTrailFrom S T w) :
G.IsWalkFrom S T w
theorem Graph.IsPathFrom.isWalkFrom {α : Type u_1} {β : Type u_2} {G : Graph α β} {w : WList α β} {S T : Set α} (h : G.IsPathFrom S T w) :
G.IsWalkFrom S T w