Documentation

Mathlib.Combinatorics.SimpleGraph.UnitDistance.Basic

Unit-distance graph embeddings #

An embedding of a graph into some metric space is unit-distance if the distance between any two adjacent vertices is 1. The space in question is usually the Euclidean plane, but can also be higher-dimensional Euclidean space or the sphere (cf. [FKS20]). We do not require nonadjacent vertices to not be distance 1 apart as [HI14] does.

Main definitions #

structure SimpleGraph.UnitDistEmbedding {V : Type u_1} (G : SimpleGraph V) (E : Type u_3) [MetricSpace E] :
Type (max u_1 u_3)

A unit-distance embedding of a graph into a metric space is a vertex embedding such that adjacent vertices are at distance 1 from each other.

  • p : V E

    The embedding itself (position of vertices)

  • unit_dist {u v : V} (ha : G.Adj u v) : dist (self.p u) (self.p v) = 1

    The distance between any two adjacent vertices is 1.

Instances For

    An injection into the metric space provides a unit-distance embedding of the empty graph.

    Equations
    Instances For
      @[simp]
      theorem SimpleGraph.UnitDistEmbedding.bot_p {V : Type u_1} {E : Type u_3} [MetricSpace E] (p : V E) :
      (bot p).p = p

      Any graph on a subsingleton vertex type has a unit-distance embedding, provided the metric space is nonempty.

      Equations
      Instances For
        @[simp]
        theorem SimpleGraph.UnitDistEmbedding.subsingleton_p_apply {V : Type u_1} (G : SimpleGraph V) {E : Type u_3} [MetricSpace E] [Subsingleton V] (x : E) (x✝ : V) :
        (subsingleton G x).p x✝ = x
        def SimpleGraph.UnitDistEmbedding.copy {V : Type u_1} {W : Type u_2} {G : SimpleGraph V} {H : SimpleGraph W} {E : Type u_3} [MetricSpace E] (U : G.UnitDistEmbedding E) (f : H.Copy G) :

        Derive a unit-distance embedding of H from a unit-distance embedding of G containing H.

        Equations
        Instances For
          @[simp]
          theorem SimpleGraph.UnitDistEmbedding.copy_p_apply {V : Type u_1} {W : Type u_2} {G : SimpleGraph V} {H : SimpleGraph W} {E : Type u_3} [MetricSpace E] (U : G.UnitDistEmbedding E) (f : H.Copy G) (a✝ : W) :
          (U.copy f).p a✝ = U.p (f.toEmbedding a✝)
          def SimpleGraph.UnitDistEmbedding.embed {V : Type u_1} {W : Type u_2} {G : SimpleGraph V} {H : SimpleGraph W} {E : Type u_3} [MetricSpace E] (U : G.UnitDistEmbedding E) (f : H ↪g G) :

          U.copy specialised to graph embeddings.

          Equations
          Instances For
            @[simp]
            theorem SimpleGraph.UnitDistEmbedding.embed_p_apply {V : Type u_1} {W : Type u_2} {G : SimpleGraph V} {H : SimpleGraph W} {E : Type u_3} [MetricSpace E] (U : G.UnitDistEmbedding E) (f : H ↪g G) (a✝ : W) :
            (U.embed f).p a✝ = U.p (f.toCopy.toEmbedding a✝)
            def SimpleGraph.UnitDistEmbedding.iso {V : Type u_1} {W : Type u_2} {G : SimpleGraph V} {H : SimpleGraph W} {E : Type u_3} [MetricSpace E] (U : G.UnitDistEmbedding E) (e : G ≃g H) :

            Transfer a unit-distance embedding across a graph isomorphism.

            Equations
            Instances For
              @[simp]
              theorem SimpleGraph.UnitDistEmbedding.iso_p_apply {V : Type u_1} {W : Type u_2} {G : SimpleGraph V} {H : SimpleGraph W} {E : Type u_3} [MetricSpace E] (U : G.UnitDistEmbedding E) (e : G ≃g H) (a✝ : W) :
              (U.iso e).p a✝ = U.p (e.symm.toCopy.toEmbedding a✝)