Documentation

Matroid.Graph.Simple

class Graph.Loopless {α : Type u_1} {β : Type u_2} (G : Graph α β) :

A loopless graph is one where the ends of every edge are distinct.

Instances
    theorem Graph.loopless_iff {α : Type u_1} {β : Type u_2} (G : Graph α β) :
    G.Loopless ∀ (e : β) (x : α), ¬G.IsLoopAt e x
    @[simp]
    theorem Graph.not_isLoopAt {α : Type u_1} {β : Type u_2} (G : Graph α β) [G.Loopless] (e : β) (x : α) :
    theorem Graph.not_adj_self {α : Type u_1} {β : Type u_2} (G : Graph α β) [G.Loopless] (x : α) :
    ¬G.Adj x x
    theorem Graph.Adj.ne {α : Type u_1} {β : Type u_2} {x y : α} {G : Graph α β} [G.Loopless] (hxy : G.Adj x y) :
    x y
    theorem Graph.IsLink.ne {α : Type u_1} {β : Type u_2} {x y : α} {e : β} {G : Graph α β} [G.Loopless] (he : G.IsLink e x y) :
    x y
    theorem Graph.loopless_iff_forall_ne_of_adj {α : Type u_1} {β : Type u_2} {G : Graph α β} :
    G.Loopless ∀ (x y : α), G.Adj x yx y
    theorem Graph.Loopless.mono {α : Type u_1} {β : Type u_2} {G H : Graph α β} (hG : G.Loopless) (hle : H G) :
    theorem Graph.Inc.isNonloopAt {α : Type u_1} {β : Type u_2} {x : α} {e : β} {G : Graph α β} [G.Loopless] (h : G.Inc e x) :
    instance Graph.instLooplessInduce {α : Type u_1} {β : Type u_2} {G : Graph α β} [G.Loopless] (X : Set α) :
    instance Graph.instLooplessVertexDelete {α : Type u_1} {β : Type u_2} {G : Graph α β} [G.Loopless] (X : Set α) :
    (G - X).Loopless
    instance Graph.instLooplessEdgeRestrict {α : Type u_1} {β : Type u_2} {G : Graph α β} [G.Loopless] (F : Set β) :
    instance Graph.instLooplessEdgeDelete {α : Type u_1} {β : Type u_2} {G : Graph α β} [G.Loopless] (F : Set β) :
    theorem Graph.eq_noEdge_or_vertexSet_nontrivial {α : Type u_1} {β : Type u_2} (G : Graph α β) [G.Loopless] :
    G = (∃ (x : α), G = Graph.noEdge {x} β) G.vertexSet.Nontrivial
    instance Graph.Loopless.union {α : Type u_1} {β : Type u_2} {G H : Graph α β} [G.Loopless] [H.Loopless] :
    class Graph.Simple {α : Type u_1} {β : Type u_2} (G : Graph α β) extends G.Loopless :

    A Simple graph is a Loopless graph where no pair of vertices are the ends of more than one edge.

    Instances
      theorem Graph.simple_iff {α : Type u_1} {β : Type u_2} (G : Graph α β) :
      G.Simple G.Loopless ∀ ⦃e f : β⦄ ⦃x y : α⦄, G.IsLink e x yG.IsLink f x ye = f
      theorem Graph.IsLink.unique_edge {α : Type u_1} {β : Type u_2} {x y : α} {e f : β} {G : Graph α β} [G.Simple] (h : G.IsLink e x y) (h' : G.IsLink f x y) :
      e = f
      theorem Graph.ends_injective {α : Type u_1} {β : Type u_2} (G : Graph α β) [G.Simple] :
      theorem Graph.finite_of_vertexSet_finite {α : Type u_1} {β : Type u_2} {G : Graph α β} [G.Simple] (h : G.vertexSet.Finite) :
      @[simp]
      theorem Graph.Simple.vertexSet_finite_iff {α : Type u_1} {β : Type u_2} {G : Graph α β} [G.Simple] :
      theorem Graph.Simple.mono {α : Type u_1} {β : Type u_2} {G H : Graph α β} (hG : G.Simple) (hle : H G) :
      instance Graph.instSimpleEdgeRestrict {α : Type u_1} {β : Type u_2} {F : Set β} {G : Graph α β} [G.Simple] :
      instance Graph.instSimpleEdgeDelete {α : Type u_1} {β : Type u_2} {F : Set β} {G : Graph α β} [G.Simple] :
      instance Graph.instSimpleVertexDelete {α : Type u_1} {β : Type u_2} {X : Set α} {G : Graph α β} [G.Simple] :
      (G - X).Simple
      instance Graph.instSimpleInduce {α : Type u_1} {β : Type u_2} {X : Set α} {G : Graph α β} [G.Simple] :
      instance Graph.instSimpleNoEdge {α : Type u_1} {β : Type u_2} (V : Set α) :
      theorem Graph.singleEdge_simple {α : Type u_1} {β : Type u_2} {x y : α} (hne : x y) (e : β) :
      noncomputable def Graph.incAdjEquiv {α : Type u_1} {β : Type u_2} (G : Graph α β) [G.Simple] (x : α) :
      { e : β // G.Inc e x } { y : α // G.Adj x y }

      In a simple graph, the bijection between edges at x and neighbours of x.

      Equations
      Instances For
        @[simp]
        theorem Graph.adj_incAdjEquiv {α : Type u_1} {β : Type u_2} {x : α} {G : Graph α β} [G.Simple] (e : { e : β // G.Inc e x }) :
        G.Adj x ((G.incAdjEquiv x) e)
        @[simp]
        theorem Graph.inc_incAdjEquiv_symm {α : Type u_1} {β : Type u_2} {x : α} {G : Graph α β} [G.Simple] (y : { y : α // G.Adj x y }) :
        G.Inc (↑((G.incAdjEquiv x).symm y)) x

        Operations #

        theorem Graph.Simple.union {α : Type u_1} {β : Type u_2} {G H : Graph α β} [G.Simple] [H.Simple] (h : ∀ ⦃e f : β⦄ ⦃x y : α⦄, G.IsLink e x yH.IsLink f x ye = f) :
        (G H).Simple
        theorem Graph.IsPath.toGraph_simple {α : Type u_1} {β : Type u_2} {G : Graph α β} {P : WList α β} (hP : G.IsPath P) :

        Small Graphs #

        theorem Graph.eq_banana {α : Type u_1} {β : Type u_2} {a b : α} {G : Graph α β} [G.Loopless] (hV : G.vertexSet = {a, b}) :
        G = banana a b G.edgeSet
        theorem Graph.exists_eq_banana {α : Type u_1} {β : Type u_2} {a b : α} {G : Graph α β} [G.Loopless] (hV : G.vertexSet = {a, b}) :
        ∃ (F : Set β), G = banana a b F
        theorem Graph.exists_eq_banana_of_encard {α : Type u_1} {β : Type u_2} {G : Graph α β} [G.Loopless] (hV : G.vertexSet.encard = 2) :
        ∃ (a : α) (b : α) (F : Set β), a b G = banana a b F
        theorem Graph.banana_loopless {α : Type u_1} {a b : α} (hab : a b) (F : Set α) :