Documentation

LeanPool.StructuralGraphClasses.CotreeOperations

Operations on cotree representations #

Complementation exchanges union and join. A partition with no cross edges allows two cotree representations to be assembled into a representation of the whole graph, using Mathlib's sum of graph isomorphisms.

def SimpleGraph.Iso.complement {V : Type u_1} {W : Type u_2} {G : SimpleGraph V} {H : SimpleGraph W} (f : G ≃g H) :

Complementation transports graph isomorphisms.

Equations
Instances For
    @[simp]

    Exchanging union and join twice returns the original cotree.

    The complement cotree represents the complement graph.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      A cotree representation can be complemented without reconstructing the graph.

      Equations
      Instances For

        Relabel a cotree representation along a graph isomorphism.

        Equations
        Instances For

          Build a disjoint-union representation directly from the supplied cotrees.

          Equations
          Instances For

            Build a join representation directly from the supplied cotrees.

            Equations
            Instances For
              @[simp]
              theorem SimpleGraph.graphJoin_adj_inl {V : Type u_1} {W : Type u_2} {G : SimpleGraph V} {H : SimpleGraph W} (a b : V) :
              (G.graphJoin H).Adj (Sum.inl a) (Sum.inl b) ↔ G.Adj a b

              Joining preserves adjacency within the left child.

              @[simp]
              theorem SimpleGraph.graphJoin_adj_inr {V : Type u_1} {W : Type u_2} {G : SimpleGraph V} {H : SimpleGraph W} (a b : W) :
              (G.graphJoin H).Adj (Sum.inr a) (Sum.inr b) ↔ H.Adj a b

              Joining preserves adjacency within the right child.

              @[simp]
              theorem SimpleGraph.graphJoin_adj_inl_inr {V : Type u_1} {W : Type u_2} {G : SimpleGraph V} {H : SimpleGraph W} (a : V) (b : W) :

              Every left vertex is adjacent to every right vertex in a join.

              @[simp]
              theorem SimpleGraph.graphJoin_adj_inr_inl {V : Type u_1} {W : Type u_2} {G : SimpleGraph V} {H : SimpleGraph W} (a : W) (b : V) :

              Every right vertex is adjacent to every left vertex in a join.

              @[simp]

              The union constructor retains its two supplied cotrees.

              @[simp]

              The join constructor retains its two supplied cotrees.

              An empty vertex type has the empty cotree representation.

              Equations
              Instances For

                A one-vertex graph has a one-leaf cotree representation.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  noncomputable def SimpleGraph.isoSumInduce {V : Type u_1} {G : SimpleGraph V} (s : Set V) (hcross : ∀ u ∈ s, ∀ v ∉ s, ¬G.Adj u v) :

                  A vertex partition with no cross edges gives an isomorphism from the disjoint union of its induced pieces to the original graph.

                  Equations
                  Instances For
                    noncomputable def SimpleGraph.CotreeRepresentation.unionInduce {V : Type u_1} {G : SimpleGraph V} (s : Set V) (hcross : ∀ u ∈ s, ∀ v ∉ s, ¬G.Adj u v) (L : (induce s G).CotreeRepresentation) (R : (induce sᶜ G).CotreeRepresentation) :

                    Assemble representations of two separated induced pieces.

                    Equations
                    Instances For