@[simp]
theorem Graph.connBetween_isRepFun_left_iff {α : Type u_1} {β : Type u_2} {x y : α} {G : Graph α β} {φ : α → α} (hφ : G.connPartition.IsRepFun φ) :
@[simp]
theorem Graph.connBetween_isRepFun_right_iff {α : Type u_1} {β : Type u_2} {x y : α} {G : Graph α β} {φ : α → α} (hφ : G.connPartition.IsRepFun φ) :
Contracting a set of edges #
def Graph.contract {α : Type u_1} {β : Type u_2} {α' : Type u_5} (G : Graph α β) (C : Set β) (φ : α → α') :
Graph α' β
Contract G C φ contracts the edges in set C of graph G,
mapping the resulting vertices according to function φ.
This operation creates a new graph where:
- Edges in set
Care removed - Vertices are relabeled according to the mapping function
φ
This definition does not enforce that φ should relate to C in any way.
For this definition to be sound, φ has to have the connected components of G ↾ C as fibers.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem Partition.IsRepFun.isContractClosed {α : Type u_1} {β : Type u_2} {G : Graph α β} {C : Set β} {φ : α → α} (hφ : (G.restrict C).connPartition.IsRepFun φ) :
G.IsContractClosed φ C
theorem Partition.IsRepFun.isContractClosed_of_compatible {α : Type u_1} {β : Type u_2} {G H : Graph α β} {φ : α → α} (hφ : H.connPartition.IsRepFun φ) (hGH : G.Compatible H) :
G.IsContractClosed φ H.edgeSet
theorem Partition.IsRepFun.isContractClosed_of_ge {α : Type u_1} {β : Type u_2} {G H : Graph α β} {φ : α → α} (hφ : H.connPartition.IsRepFun φ) (hHG : H ≤ G) :
G.IsContractClosed φ H.edgeSet
theorem Graph.IsWalk.edgeRemove_contract {α : Type u_1} {β : Type u_2} {G H : Graph α β} {φ : α → α} [DecidablePred fun (x : β) => x ∈ H.edgeSet] {w : WList α β} (h : G.IsWalk w) (hHG : H ≤ G) (hφ : H.connPartition.IsRepFun φ) :
theorem Graph.IsTrail.edgeRemove_contract {α : Type u_1} {β : Type u_2} {G H : Graph α β} {φ : α → α} [DecidablePred fun (x : β) => x ∈ H.edgeSet] {w : WList α β} (h : G.IsTrail w) (hHG : H ≤ G) (hφ : H.connPartition.IsRepFun φ) :
theorem Graph.IsTour.edgeRemove_contract {α : Type u_1} {β : Type u_2} {G H : Graph α β} {φ : α → α} [DecidablePred fun (x : β) => x ∈ H.edgeSet] {w : WList α β} (h : G.IsTour w) (hHG : H ≤ G) (hφ : H.connPartition.IsRepFun φ) (hne : ∃ e ∈ w.edge, e ∉ H.edgeSet) :
Contraction of one edge #
def Graph.IsLink.repFun {α : Type u_1} {β : Type u_2} {x y : α} {e : β} {G : Graph α β} [DecidableEq α] :
G.IsLink e x y → α → α
A representative function for the connected components of G ↾ {e} coming from a link
G.IsLink e x y: it identifies y with x and fixes all other vertices.
Instances For
theorem Graph.IsLink.isRepFun {α : Type u_1} {β : Type u_2} {x y : α} {e : β} {G : Graph α β} [DecidableEq α] (he : G.IsLink e x y) :
@[simp]
theorem Graph.IsLink.repFun_apply_of_ne {α : Type u_1} {β : Type u_2} {x y v : α} {e : β} {G : Graph α β} [DecidableEq α] (he : G.IsLink e x y) (hne : v ≠ y) :
@[simp]
theorem Graph.IsLink.repFun_apply_right {α : Type u_1} {β : Type u_2} {x y : α} {e : β} {G : Graph α β} [DecidableEq α] (he : G.IsLink e x y) :
def Graph.IsLink.contract {α : Type u_1} {β : Type u_2} {x y : α} (G : Graph α β) (e : β) (he : G.IsLink e x y) :
Graph α β
Contracts the edge given in the IsLink predicate by removing the second vertex and adding its
edges to the first vertex.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equality to a map/delete presentation #
@[simp]
theorem Graph.IsLoopAt.contract_eq {α : Type u_1} {β : Type u_2} {x : α} {e : β} {G : Graph α β} [DecidableEq α] (he : G.IsLoopAt e x) :
theorem Graph.IsLink.contract_deleteEdges_comm {α : Type u_1} {β : Type u_2} {x y : α} {e : β} {G : Graph α β} {F : Set β} [DecidableEq α] (he : G.IsLink e x y) (heF : e ∉ F) :
theorem Graph.exists_partition {α : Type u_1} {β : Type u_2} [Order.Frame α] (G : Graph α β) [h : G.IsPartitionGraph] :
theorem Graph.isPartitionGraph_of_vertex_subset {α : Type u_1} {β : Type u_2} {G H : Graph α β} [Order.Frame α] (h : G.vertexSet ⊆ H.vertexSet) [H.IsPartitionGraph] :
theorem Graph.isPartitionGraph_of_le {α : Type u_1} {β : Type u_2} {G H : Graph α β} [Order.Frame α] (h : G ≤ H) [H.IsPartitionGraph] :
instance Graph.instIsPartitionGraphDeleteVerts {α : Type u_1} {β : Type u_2} {G : Graph α β} {X : Set α} [Order.Frame α] [G.IsPartitionGraph] :
(G.deleteVerts X).IsPartitionGraph
instance Graph.instIsPartitionGraphRestrict {α : Type u_1} {β : Type u_2} {G : Graph α β} {F : Set β} [Order.Frame α] [G.IsPartitionGraph] :
(G.restrict F).IsPartitionGraph
instance Graph.instIsPartitionGraphDeleteEdges {α : Type u_1} {β : Type u_2} {G : Graph α β} {F : Set β} [Order.Frame α] [G.IsPartitionGraph] :
(G.deleteEdges F).IsPartitionGraph
def Graph.sContract {α : Type u_1} {β : Type u_2} [Order.Frame α] (G : Graph α β) [G.IsPartitionGraph] (C : Set β) :
Graph α β
Instances For
@[simp]
theorem Graph.sContract_isLink {α : Type u_1} {β : Type u_2} [Order.Frame α] (G : Graph α β) [G.IsPartitionGraph] (C : Set β) (e : β) (x y : α) :
@[simp]
theorem Graph.vertexSet_sContract {α : Type u_1} {β : Type u_2} [Order.Frame α] (G : Graph α β) [G.IsPartitionGraph] (C : Set β) :
@[simp]
theorem Graph.edgeSet_sContract {α : Type u_1} {β : Type u_2} [Order.Frame α] (G : Graph α β) [G.IsPartitionGraph] (C : Set β) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem Graph.sContract_isPartitionGraph {α : Type u_1} {β : Type u_2} {G : Graph α β} {C : Set β} [Order.Frame α] [G.IsPartitionGraph] :
- disj : Pairwise (Function.onFun Disjoint self.map)
Instances For
Equations
- G.minorMap_refl = { map := fun (v : ↑G.vertexSet) => Graph.noEdge {↑v} β, map_le := ⋯, mem_map := ⋯, disj := ⋯, edge_disj := ⋯, link := ⋯, conn := ⋯ }
Instances For
Equations
- Graph.minorMap.of_le h = { map := fun (v : ↑G.vertexSet) => Graph.noEdge {↑v} β, map_le := ⋯, mem_map := ⋯, disj := ⋯, edge_disj := ⋯, link := ⋯, conn := ⋯ }
Instances For
def Graph.minorMap.of_contract {α : Type u_1} {β : Type u_2} {G : Graph α β} {C : Set β} {φ : α → α} (hφ : (G.restrict C).connPartition.IsRepFun φ) :
Equations
Instances For
theorem Graph.minorMap.intermediate_le {α : Type u_1} {β : Type u_2} {G H : Graph α β} (F : G.minorMap H) :
theorem Graph.minorMap.vertexSet_subset_intermediate {α : Type u_1} {β : Type u_2} {G H : Graph α β} (F : G.minorMap H) :
G.vertexSet ⊆ F.intermediate.vertexSet
theorem Graph.minorMap.edgeSet_subset_intermediate {α : Type u_1} {β : Type u_2} {G H : Graph α β} (F : G.minorMap H) :
G.edgeSet ⊆ F.intermediate.edgeSet
theorem Graph.minorMap.repFun_mapsTo {α : Type u_1} {β : Type u_2} {G H : Graph α β} (F : G.minorMap H) :
theorem Graph.minorMap.repFun_isRepFun {α : Type u_1} {β : Type u_2} {G H : Graph α β} (F : G.minorMap H) :
(F.intermediate.restrict (⋃ (x : ↑G.vertexSet), (F.map x).edgeSet)).connPartition.IsRepFun F.repFun
Equations
- Graph.«term_≤m_» = Lean.ParserDescr.trailingNode `Graph.«term_≤m_» 1022 0 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≤m ") (Lean.ParserDescr.cat `term 0))