Documentation

TauCeti.Combinatorics.RibbonGraph.Basic

Finite bipartite ribbon graphs #

A finite bipartite ribbon graph consists of a finite set of edges, finite sets of black and white vertices, an endpoint of each colour for every edge, and a cyclic order on the edges incident to each vertex. The cyclic orders are encoded by two permutations of the common edge set. The two endpoint maps are surjective, which excludes isolated vertices, and requiring each incidence fibre to be a single cycle makes the encoding extensional: there is no unused cyclic-order data away from the incident edges.

The product of the two vertex rotations determines the face permutation, whose orbits are the faces. Gluing a disc into each face gives a closed oriented surface, one for each connected component, and eulerChar is its Euler characteristic |B| + |W| - |E| + |F|. This file also provides morphisms, isomorphisms, automorphisms, connected components, vertex degrees, the two incidence degree-sum formulas, and the copy of a ribbon graph in a higher universe.

References #

A finite bipartite ribbon graph, encoded by its two endpoint maps and the cyclic rotations of the common edge set around black and white vertices.

  • E : Type u

    The finite type of edges.

  • B : Type u

    The finite type of black vertices.

  • W : Type u

    The finite type of white vertices.

  • fintypeE : Fintype self.E

    Finiteness of the edge set.

  • fintypeB : Fintype self.B

    Finiteness of the black vertex set.

  • fintypeW : Fintype self.W

    Finiteness of the white vertex set.

  • decidableEqE : DecidableEq self.E

    Decidable equality on edges.

  • decidableEqB : DecidableEq self.B

    Decidable equality on black vertices.

  • decidableEqW : DecidableEq self.W

    Decidable equality on white vertices.

  • blackEnd : self.E → self.B

    The black endpoint of an edge.

  • whiteEnd : self.E → self.W

    The white endpoint of an edge.

  • rotB : Equiv.Perm self.E

    The cyclic rotation of edges around their black endpoints.

  • rotW : Equiv.Perm self.E

    The cyclic rotation of edges around their white endpoints.

  • blackEnd_surjective : Function.Surjective self.blackEnd

    Every black vertex is incident to an edge.

  • whiteEnd_surjective : Function.Surjective self.whiteEnd

    Every white vertex is incident to an edge.

  • isCycleOn_rotB (b : self.B) : self.rotB.IsCycleOn (self.blackEnd ⁻¹' {b})

    The black rotation is a single cycle on every black incidence fibre.

  • isCycleOn_rotW (w : self.W) : self.rotW.IsCycleOn (self.whiteEnd ⁻¹' {w})

    The white rotation is a single cycle on every white incidence fibre.

Instances For
    @[simp]

    The black rotation preserves black endpoints.

    @[simp]

    The white rotation preserves white endpoints.

    Two edges share their black end exactly when they lie in one cycle of the black rotation: the black vertices are the cycles of rotB.

    Two edges share their white end exactly when they lie in one cycle of the white rotation: the white vertices are the cycles of rotW.

    Permutations, faces, and connected components #

    The face permutation of a bipartite ribbon graph. The inverse matches the product-one convention facePerm * rotW * rotB = 1.

    Equations
    Instances For

      The face permutation is the inverse of the product of the two vertex rotations.

      @[simp]

      The face permutation follows the product-one convention facePerm * rotW * rotB = 1.

      @[reducible, inline]

      A face is an orbit of the face permutation on edges.

      Equations
      Instances For
        @[instance_reducible]

        The faces of a finite bipartite ribbon graph form a finite type, computably: lying in the same face is decided by iterating the face permutation.

        Equations

        The subgroup of edge permutations generated by the two vertex rotations.

        Equations
        Instances For

          The rotation group is generated by the two vertex rotations.

          @[simp]

          The black rotation lies in the rotation group.

          @[simp]

          The white rotation lies in the rotation group.

          @[reducible, inline]

          A connected component is an orbit of the group generated by the two vertex rotations.

          Equations
          Instances For
            @[instance_reducible]

            The connected components of a finite bipartite ribbon graph form a finite type.

            Equations

            A bipartite ribbon graph is connected when it has an edge and its two rotations act jointly transitively on the edge set.

            Equations
            Instances For

              Connectedness of a bipartite ribbon graph: it has an edge, and the two rotations act jointly transitively on the edges.

              A ribbon graph is connected exactly when it has one connected component.

              Degrees and Euler characteristic #

              The degree of a black vertex is the number of incident edges.

              Equations
              Instances For

                The degree of a black vertex is the number of edges whose black end it is.

                The degree of a white vertex is the number of incident edges.

                Equations
                Instances For

                  The degree of a white vertex is the number of edges whose white end it is.

                  Every black vertex has positive degree.

                  Every white vertex has positive degree.

                  The sum of the black vertex degrees is the number of edges.

                  The sum of the white vertex degrees is the number of edges.

                  The number of faces, counting every orbit of the face permutation.

                  Equations
                  Instances For

                    The number of faces is the number of orbits of the face permutation.

                    The Euler characteristic |B| + |W| + F - |E| of the closed oriented surface obtained by gluing a disc into each face of the ribbon graph (a disjoint union of closed surfaces when the graph is disconnected).

                    Equations
                    Instances For

                      The Euler characteristic counts vertices of both colours and faces against edges.

                      Morphisms and isomorphisms #

                      A morphism of bipartite ribbon graphs maps edges and both colours of vertices, preserving incidences and intertwining both rotations.

                      Instances For

                        The identity morphism of a bipartite ribbon graph.

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

                          Composition of morphisms of bipartite ribbon graphs.

                          Equations
                          Instances For
                            @[simp]

                            The identity morphism fixes every edge.

                            @[simp]

                            The identity morphism fixes every black vertex.

                            @[simp]

                            The identity morphism fixes every white vertex.

                            @[simp]
                            theorem TauCeti.BipartiteRibbonGraph.Hom.comp_edge_apply {Γ : BipartiteRibbonGraph} {Δ : BipartiteRibbonGraph} {Θ : BipartiteRibbonGraph} (g : Δ.Hom Θ) (f : Γ.Hom Δ) (e : Γ.E) :
                            (g.comp f).edge e = g.edge (f.edge e)

                            A composite morphism maps an edge by the two edge maps in turn.

                            @[simp]

                            A composite morphism maps a black vertex by the two black-vertex maps in turn.

                            @[simp]

                            A composite morphism maps a white vertex by the two white-vertex maps in turn.

                            theorem TauCeti.BipartiteRibbonGraph.Hom.ext {Γ : BipartiteRibbonGraph} {Δ : BipartiteRibbonGraph} {f g : Γ.Hom Δ} (hedge : f.edge = g.edge) :
                            f = g

                            A morphism is determined by its edge map: every vertex is the end of an edge.

                            @[simp]

                            The identity morphism is a left identity for composition.

                            @[simp]

                            The identity morphism is a right identity for composition.

                            theorem TauCeti.BipartiteRibbonGraph.Hom.comp_assoc {Γ : BipartiteRibbonGraph} {Δ : BipartiteRibbonGraph} {Θ : BipartiteRibbonGraph} {Ξ : BipartiteRibbonGraph} (h : Θ.Hom Ξ) (g : Δ.Hom Θ) (f : Γ.Hom Δ) :
                            h.comp (g.comp f) = (h.comp g).comp f

                            Composition of morphisms is associative.

                            An isomorphism of bipartite ribbon graphs is an equivalence on edges and on each colour of vertices that preserves incidences and intertwines both rotations.

                            Instances For

                              The morphism underlying an isomorphism of bipartite ribbon graphs.

                              Equations
                              • f.toHom = { edge := ⇑f.edge, black := ⇑f.black, white := ⇑f.white, map_blackEnd := ⋯, map_whiteEnd := ⋯, map_rotB := ⋯, map_rotW := ⋯ }
                              Instances For
                                @[simp]

                                The morphism underlying an isomorphism has the same edge map.

                                @[simp]

                                The morphism underlying an isomorphism has the same black-vertex map.

                                @[simp]

                                The morphism underlying an isomorphism has the same white-vertex map.

                                The identity isomorphism.

                                Equations
                                Instances For

                                  The inverse of a ribbon-graph isomorphism.

                                  Equations
                                  Instances For

                                    Composition of ribbon-graph isomorphisms.

                                    Equations
                                    Instances For
                                      @[simp]

                                      The identity isomorphism fixes every edge.

                                      @[simp]

                                      The identity isomorphism fixes every black vertex.

                                      @[simp]

                                      The identity isomorphism fixes every white vertex.

                                      @[simp]

                                      The inverse isomorphism maps edges by the inverse edge equivalence.

                                      @[simp]

                                      The inverse isomorphism maps black vertices by the inverse black-vertex equivalence.

                                      @[simp]

                                      The inverse isomorphism maps white vertices by the inverse white-vertex equivalence.

                                      @[simp]
                                      theorem TauCeti.BipartiteRibbonGraph.Iso.trans_edge_apply {Γ : BipartiteRibbonGraph} {Δ : BipartiteRibbonGraph} {Θ : BipartiteRibbonGraph} (f : Γ.Iso Δ) (g : Δ.Iso Θ) (e : Γ.E) :
                                      (f.trans g).edge e = g.edge (f.edge e)

                                      A composite isomorphism maps an edge by the two edge equivalences in turn.

                                      @[simp]

                                      A composite isomorphism maps a black vertex by the two black-vertex equivalences in turn.

                                      @[simp]

                                      A composite isomorphism maps a white vertex by the two white-vertex equivalences in turn.

                                      @[simp]

                                      Relabeling by a ribbon-graph isomorphism conjugates the black rotation to the target's.

                                      @[simp]

                                      Relabeling by a ribbon-graph isomorphism conjugates the white rotation to the target's.

                                      @[simp]

                                      Relabeling by a ribbon-graph isomorphism conjugates the face permutation to the target's.

                                      @[simp]

                                      Conjugating by an isomorphism carries the source rotation group onto the target one.

                                      An isomorphism conjugates the groups generated by the two vertex rotations.

                                      Equations
                                      Instances For
                                        @[simp]

                                        The induced equivalence of rotation groups conjugates a permutation by the edge equivalence.

                                        An isomorphism relabels the connected components of a bipartite ribbon graph.

                                        Equations
                                        Instances For
                                          @[simp]

                                          The relabelling of connected components sends the component of an edge to the component of its image.

                                          Connectedness is invariant under isomorphism.

                                          An isomorphism relabels the faces of a bipartite ribbon graph.

                                          Equations
                                          Instances For
                                            @[simp]

                                            The relabelling of faces sends the face of an edge to the face of its image.

                                            @[simp]

                                            An isomorphism preserves the degree of each black vertex.

                                            @[simp]

                                            An isomorphism preserves the degree of each white vertex.

                                            Isomorphic bipartite ribbon graphs have the same number of faces.

                                            Isomorphic bipartite ribbon graphs have the same Euler characteristic.

                                            theorem TauCeti.BipartiteRibbonGraph.Iso.ext {Γ : BipartiteRibbonGraph} {Δ : BipartiteRibbonGraph} {f g : Γ.Iso Δ} (hedge : f.edge = g.edge) :
                                            f = g

                                            An isomorphism is determined by its edge equivalence: every vertex is the end of an edge.

                                            @[simp]

                                            The identity isomorphism is a left identity for composition.

                                            @[simp]

                                            The identity isomorphism is a right identity for composition.

                                            @[simp]

                                            Composing the inverse of an isomorphism with it gives the identity.

                                            @[simp]

                                            Composing an isomorphism with its inverse gives the identity.

                                            Composition of isomorphisms is associative.

                                            noncomputable def TauCeti.BipartiteRibbonGraph.Iso.ofEdge {Γ : BipartiteRibbonGraph} {Δ : BipartiteRibbonGraph} (φ : Γ.E ≃ Δ.E) (hB : Function.Semiconj ⇑φ ⇑Γ.rotB ⇑Δ.rotB) (hW : Function.Semiconj ⇑φ ⇑Γ.rotW ⇑Δ.rotW) :
                                            Γ.Iso Δ

                                            An edge bijection intertwining both rotations is the edge map of an isomorphism. The vertex maps are forced, the vertices of each colour being the cycles of the corresponding rotation.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              @[simp]
                                              theorem TauCeti.BipartiteRibbonGraph.Iso.ofEdge_edge {Γ : BipartiteRibbonGraph} {Δ : BipartiteRibbonGraph} (φ : Γ.E ≃ Δ.E) (hB : Function.Semiconj ⇑φ ⇑Γ.rotB ⇑Δ.rotB) (hW : Function.Semiconj ⇑φ ⇑Γ.rotW ⇑Δ.rotW) :
                                              (ofEdge φ hB hW).edge = φ

                                              The isomorphism built from an edge bijection has that bijection as its edge map.

                                              @[reducible, inline]

                                              The group of automorphisms of a bipartite ribbon graph.

                                              Equations
                                              Instances For
                                                @[instance_reducible]

                                                The automorphisms of a bipartite ribbon graph form a group under composition.

                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                @[simp]

                                                The identity automorphism acts trivially on edges.

                                                @[simp]

                                                Automorphisms multiply by composing their edge permutations.

                                                @[simp]

                                                The inverse automorphism acts on edges by the inverse permutation.

                                                Universe lifting #

                                                The copy of a ribbon graph in a higher universe, with edges and vertices of both colours wrapped in ULift.

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

                                                  A lifted edge has the lifted black end.

                                                  @[simp]

                                                  A lifted edge has the lifted white end.

                                                  @[simp]
                                                  theorem TauCeti.BipartiteRibbonGraph.ulift_rotB_up (Γ : BipartiteRibbonGraph) (e : Γ.E) :
                                                  Γ.ulift.rotB { down := e } = { down := Γ.rotB e }

                                                  The black rotation of the lifted graph lifts the black rotation.

                                                  @[simp]
                                                  theorem TauCeti.BipartiteRibbonGraph.ulift_rotW_up (Γ : BipartiteRibbonGraph) (e : Γ.E) :
                                                  Γ.ulift.rotW { down := e } = { down := Γ.rotW e }

                                                  The white rotation of the lifted graph lifts the white rotation.

                                                  The number of edges is unchanged by universe lifting.

                                                  A ribbon graph is isomorphic to its copy in a higher universe, by ULift.down.

                                                  Equations
                                                  Instances For
                                                    @[simp]

                                                    The universe-lifting isomorphism sends a lifted edge to the edge it wraps.

                                                    @[simp]

                                                    The universe-lifting isomorphism sends a lifted black vertex to the vertex it wraps.

                                                    @[simp]

                                                    The universe-lifting isomorphism sends a lifted white vertex to the vertex it wraps.