Documentation

LeanPool.PebblingLean.GraphIso

Transport across graph isomorphisms #

The recursive upper bound is naturally proved on Cartesian products. To apply those product constructions to hypercubes, we need a lightweight way to move pebbling distributions and solvability statements across graph isomorphisms.

structure PebblingLean.GraphIso {V : Type u} {W : Type v} (G : Graph V) (H : Graph W) :
Type (max u v)

An adjacency-preserving equivalence between two simple graphs.

  • toEquiv : V W

    The underlying equivalence between the vertex types.

  • adj_iff {x y : V} : G.Adj x y H.Adj (self.toEquiv x) (self.toEquiv y)

    The equivalence preserves and reflects adjacency.

Instances For
    def PebblingLean.GraphIso.mapDistribution {V : Type u} {W : Type v} {G : Graph V} {H : Graph W} (iso : GraphIso G H) (D : Pebbling V) :

    Transport a pebbling distribution across the vertex equivalence.

    Equations
    Instances For
      @[simp]
      theorem PebblingLean.GraphIso.mapDistribution_apply {V : Type u} {W : Type v} {G : Graph V} {H : Graph W} (iso : GraphIso G H) (D : Pebbling V) (v : V) :
      iso.mapDistribution D (iso.toEquiv v) = D v
      theorem PebblingLean.GraphIso.size_mapDistribution {V : Type u} {W : Type v} {G : Graph V} {H : Graph W} [Fintype V] [Fintype W] (iso : GraphIso G H) (D : Pebbling V) :
      def PebblingLean.GraphIso.symm {V : Type u} {W : Type v} {G : Graph V} {H : Graph W} (iso : GraphIso G H) :

      Reverse a graph isomorphism.

      Equations
      Instances For
        theorem PebblingLean.GraphIso.map_move {V : Type u} {W : Type v} {G : Graph V} {H : Graph W} [DecidableEq V] [DecidableEq W] (iso : GraphIso G H) {D E : Pebbling V} (hmove : Pebbling.Move G D E) :
        theorem PebblingLean.GraphIso.map_reaches {V : Type u} {W : Type v} {G : Graph V} {H : Graph W} [DecidableEq V] [DecidableEq W] (iso : GraphIso G H) {D E : Pebbling V} (hreach : Pebbling.Reaches G D E) :
        theorem PebblingLean.GraphIso.map_canReachAtLeast {V : Type u} {W : Type v} {G : Graph V} {H : Graph W} [DecidableEq V] [DecidableEq W] (iso : GraphIso G H) {D : Pebbling V} {target : W} {T : } (hcan : Pebbling.CanReachAtLeast G D (iso.toEquiv.symm target) T) :
        theorem PebblingLean.GraphIso.map_solvableAtLeast {V : Type u} {W : Type v} {G : Graph V} {H : Graph W} [DecidableEq V] [DecidableEq W] (iso : GraphIso G H) {D : Pebbling V} {T : } (hsolv : Pebbling.SolvableAtLeast G D T) :
        theorem PebblingLean.GraphIso.map_minOccupiedPileSize {V : Type u} {W : Type v} {G : Graph V} {H : Graph W} (iso : GraphIso G H) {D : Pebbling V} {S : } (hmin : D.MinOccupiedPileSize S) :