Documentation

LeanPool.Sabidussi.Statement

Trusted statement layer for Sabidussi compatibility #

This module contains only the public data and predicates occurring in the headline theorem. It is the trusted import boundary for leanprover/comparator; proof modules build on it, but it does not import them.

structure Sabidussi.LoopMultigraph (V : Type u_1) (E : Type u_2) [Fintype V] [Fintype E] :
Type (max u_1 u_2)

A finite labelled endpoint multigraph. Parallel edges and loops are allowed.

  • endAt : EFin 2V

    The two numbered endpoints of each labelled edge.

Instances For
    @[reducible, inline]

    A labelled edge together with one of its two numbered ends.

    Equations
    Instances For
      def Sabidussi.LoopMultigraph.vertex {V : Type u_1} {E : Type u_2} [Fintype V] [Fintype E] (G : LoopMultigraph V E) (h : HalfEdge E) :
      V

      The endpoint vertex of a half-edge.

      Equations
      Instances For
        def Sabidussi.LoopMultigraph.halfEdgesAt {V : Type u_1} {E : Type u_2} [Fintype V] [Fintype E] (G : LoopMultigraph V E) (v : V) :
        Type u_2

        Half-edges incident with a vertex. A loop contributes both of its numbered ends.

        Equations
        Instances For
          @[implicit_reducible]
          Equations
          def Sabidussi.LoopMultigraph.degree {V : Type u_1} {E : Type u_2} [Fintype V] [Fintype E] [DecidableEq V] (G : LoopMultigraph V E) (v : V) :

          Degree counted in half-edge incidences.

          Equations
          Instances For
            structure Sabidussi.LoopMultigraph.EulerTour {V : Type u_3} {E : Type u_4} [Fintype V] [Fintype E] (G : LoopMultigraph V E) :
            Type u_4

            A nonempty closed Euler tour using every labelled edge exactly once.

            • n :

              The edge positions are Fin (n + 1).

            • edge : Fin (self.n + 1) E

              Every edge object occurs at exactly one position.

            • depart : Fin (self.n + 1)Fin 2

              The end from which the edge at a position is traversed.

            • continuous (i : Fin (self.n + 1)) : G.endAt (self.edge i) (self.depart i).rev = G.endAt (self.edge ((finRotate (self.n + 1)) i)) (self.depart ((finRotate (self.n + 1)) i))

              The arrival end at a position is the departure vertex at the next position.

            Instances For
              @[reducible, inline]
              abbrev Sabidussi.LoopMultigraph.EulerTour.Pos {V : Type u_3} {E : Type u_4} [Fintype V] [Fintype E] {G : LoopMultigraph V E} (T : G.EulerTour) :

              Positions in the cyclic edge word.

              Equations
              Instances For
                def Sabidussi.LoopMultigraph.EulerTour.next {V : Type u_3} {E : Type u_4} [Fintype V] [Fintype E] {G : LoopMultigraph V E} (T : G.EulerTour) (i : T.Pos) :
                T.Pos

                The next edge position.

                Equations
                Instances For
                  def Sabidussi.LoopMultigraph.EulerTour.prev {V : Type u_3} {E : Type u_4} [Fintype V] [Fintype E] {G : LoopMultigraph V E} (T : G.EulerTour) (i : T.Pos) :
                  T.Pos

                  The previous edge position.

                  Equations
                  Instances For
                    def Sabidussi.LoopMultigraph.degreeIn {V : Type u_5} {E : Type u_6} [Fintype V] [Fintype E] [DecidableEq V] (G : LoopMultigraph V E) (F : Finset E) (v : V) :

                    The ordinary natural-number degree of v in an edge set. Edge ends are counted, so this definition also has the standard behavior for multigraphs.

                    Equations
                    Instances For
                      def Sabidussi.LoopMultigraph.EdgeAdjacent {V : Type u_5} {E : Type u_6} [Fintype V] [Fintype E] (G : LoopMultigraph V E) (e f : E) :

                      Two labelled edges meet if some numbered end of one has the same endpoint as some numbered end of the other. An edge meets itself, and parallel edges meet at both endpoints.

                      Equations
                      Instances For
                        def Sabidussi.LoopMultigraph.EdgeConnected {V : Type u_5} {E : Type u_6} [Fintype V] [Fintype E] (G : LoopMultigraph V E) (F : Finset E) :

                        Edge-chain connectivity of a nonempty edge-supported subgraph.

                        Equations
                        Instances For
                          def Sabidussi.LoopMultigraph.edgeSupport {V : Type u_5} {E : Type u_6} [Fintype V] [Fintype E] [DecidableEq V] (G : LoopMultigraph V E) (F : Finset E) :

                          The vertices incident with at least one edge of F.

                          Equations
                          Instances For
                            structure Sabidussi.LoopMultigraph.OrdinaryCircuit {V : Type u_5} {E : Type u_6} [Fintype V] [Fintype E] [DecidableEq V] (G : LoopMultigraph V E) :
                            Type u_6

                            An ordinary circuit: a nonempty connected edge-supported subgraph in which every supported vertex has degree two.

                            Instances For

                              A partition of all labelled edges into ordinary connected 2-regular circuits.

                              Instances For

                                Compatibility stated for ordinary circuits.

                                Equations
                                Instances For