Documentation

TauCeti.RepresentationTheory.Quiver.Zigzag.Signless

The signless relator of a simple graph #

For the doubled quiver TauCeti.DoubledQuiver G of a simple graph G, at any vertex v with finite neighbourhood the signless preprojective relator TauCeti.signlessPreprojectiveRelator is ∑_{j ∼ v} (v → j → v), the sum of the backtracks along the edges at v. This is the relation which Huerfano and Khovanov find in the quadratic dual of the zigzag algebra of G.

For a graph on Fin n, the class of the doubled arrow from i to j in the signless algebra is recorded as a function TauCeti.signlessArrow of two natural numbers, zero unless they are adjacent vertices. Products of these classes are the classes of paths, and the relator at v becomes ∑ w, signlessArrow w v * signlessArrow v w = 0; indexing by natural numbers lets the computations along the arms of a Dynkin diagram use ordinary arithmetic on vertex labels.

A walk is recorded by the list of its vertices, latest vertex first, and TauCeti.signlessWord sends it to the product of its arrow classes; prepending a vertex is left multiplication by an arrow. These classes multiply by concatenation of walks, and every walk class is the class of a path of the doubled quiver.

Main definitions #

Main results #

References #

S. Huerfano and M. Khovanov, A category for the adjoint representation, Section 3, https://arxiv.org/abs/math/0002060.

The signless relator of a simple graph at v is ∑_{j ∼ v} (v → j → v), the sum of the backtracks along the edges at v.

Arrow classes of a graph on Fin n #

noncomputable def TauCeti.signlessArrow (k : Type w) [CommRing k] {n : ℕ} (G : SimpleGraph (Fin n)) [(i : Fin n) → Fintype ↑(G.neighborSet i)] (i j : ℕ) :

The class of the doubled arrow from i to j in the signless algebra of a graph G on Fin n, or zero if i and j are not adjacent vertices of G. The vertices are given as natural numbers, so that arithmetic on vertex labels needs no bounds.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem TauCeti.signlessArrow_of_adj (k : Type w) [CommRing k] {n : ℕ} {G : SimpleGraph (Fin n)} [(i : Fin n) → Fintype ↑(G.neighborSet i)] {i j : Fin n} (h : G.Adj i j) :

    Between adjacent vertices, signlessArrow is the class of the doubled arrow.

    @[simp]
    theorem TauCeti.signlessArrow_eq_zero (k : Type w) [CommRing k] {n : ℕ} {G : SimpleGraph (Fin n)} [(i : Fin n) → Fintype ↑(G.neighborSet i)] {i j : ℕ} (h : ∀ (hi : i < n) (hj : j < n), ¬G.Adj ⟨i, hi⟩ ⟨j, hj⟩) :
    signlessArrow k G i j = 0

    Between non-adjacent vertices, signlessArrow vanishes.

    The class of an arbitrary doubled arrow of G is the signlessArrow between its endpoints.

    @[simp]

    Cutting an arrow class on the right selects its source vertex.

    @[simp]

    Cutting an arrow class on the left selects its target vertex.

    theorem TauCeti.sum_signlessArrow_mul_signlessArrow (k : Type w) [CommRing k] {n : ℕ} (G : SimpleGraph (Fin n)) [(i : Fin n) → Fintype ↑(G.neighborSet i)] (v : Fin n) :
    ∑ w : Fin n, signlessArrow k G ↑w ↑v * signlessArrow k G ↑v ↑w = 0

    The signless relation at a vertex v: the backtracks v → w → v sum to zero, the sum running over all vertices w, of which only the neighbours of v contribute.

    theorem TauCeti.signlessArrow_relation_of_consecutive (k : Type w) [CommRing k] {n : ℕ} {G : SimpleGraph (Fin n)} [(i : Fin n) → Fintype ↑(G.neighborSet i)] (hconsecutive : ∀ (i j : Fin n), G.Adj i j → ↑i + 1 = ↑j ∨ ↑j + 1 = ↑i) (v : ℕ) :
    signlessArrow k G (v + 1) v * signlessArrow k G v (v + 1) + signlessArrow k G (v - 1) v * signlessArrow k G v (v - 1) = 0

    The signless relation at a vertex v of a graph whose edges join consecutive vertices: the backtrack through v + 1 cancels the backtrack through v - 1. At an end vertex the missing backtrack is zero.

    Classes of walks given by their vertices #

    noncomputable def TauCeti.signlessWord (k : Type w) [CommRing k] {n : ℕ} (G : SimpleGraph (Fin n)) [(i : Fin n) → Fintype ↑(G.neighborSet i)] :

    The class in the signless algebra of a graph G on Fin n of the walk through the vertices l, latest vertex first: [v] is the vertex idempotent at v, and j :: i :: r is the arrow class TauCeti.signlessArrow G i j times the class of i :: r. Prepending a vertex is thus left multiplication by an arrow, in the later-factor-first convention. A list which is not a walk has class 0, as does the empty list.

    Equations
    Instances For
      @[simp]
      theorem TauCeti.signlessWord_nil (k : Type w) [CommRing k] {n : ℕ} {G : SimpleGraph (Fin n)} [(i : Fin n) → Fintype ↑(G.neighborSet i)] :

      The empty list has class 0.

      @[simp]

      The class of a one-vertex walk is its vertex idempotent.

      @[simp]
      theorem TauCeti.signlessWord_cons_cons (k : Type w) [CommRing k] {n : ℕ} {G : SimpleGraph (Fin n)} [(i : Fin n) → Fintype ↑(G.neighborSet i)] (j i : Fin n) (r : List (Fin n)) :
      signlessWord k G (j :: i :: r) = signlessArrow k G ↑i ↑j * signlessWord k G (i :: r)

      Extending a walk by a vertex multiplies its class on the left by the arrow to that vertex.

      theorem TauCeti.signlessWord_cons (k : Type w) [CommRing k] {n : ℕ} {G : SimpleGraph (Fin n)} [(i : Fin n) → Fintype ↑(G.neighborSet i)] {j i : Fin n} {l : List (Fin n)} (hl : l.head? = some i) :
      signlessWord k G (j :: l) = signlessArrow k G ↑i ↑j * signlessWord k G l

      TauCeti.signlessWord_cons_cons for a walk given together with its latest vertex.

      The vertex idempotent at the latest vertex of a walk is a left unit for its class, and the other vertex idempotents annihilate it.

      theorem TauCeti.signlessArrow_mul_signlessWord (k : Type w) [CommRing k] {n : ℕ} {G : SimpleGraph (Fin n)} [(i : Fin n) → Fintype ↑(G.neighborSet i)] (i j i' : Fin n) (r : List (Fin n)) :
      signlessArrow k G ↑i ↑j * signlessWord k G (i' :: r) = if i = i' then signlessWord k G (j :: i' :: r) else 0

      An arrow class times the class of a walk extends the walk if the arrow starts at its latest vertex, and vanishes otherwise.

      theorem TauCeti.signlessWord_eq_zero_of_not_isChain (k : Type w) [CommRing k] {n : ℕ} {G : SimpleGraph (Fin n)} [(i : Fin n) → Fintype ↑(G.neighborSet i)] {l : List (Fin n)} (hl : ¬List.IsChain G.Adj l) :
      signlessWord k G l = 0

      A list of vertices which is not a walk has class 0.

      The class of a walk is the class of a path of the doubled quiver through the same vertices.

      theorem TauCeti.signlessWord_mul_signlessWord (k : Type w) [CommRing k] {n : ℕ} {G : SimpleGraph (Fin n)} [(i : Fin n) → Fintype ↑(G.neighborSet i)] (s : List (Fin n)) {j : Fin n} {t : List (Fin n)} (hs : s ≠ []) :
      signlessWord k G s * signlessWord k G (j :: t) = if s.getLast hs = j then signlessWord k G (s.dropLast ++ j :: t) else 0

      Classes of walks multiply by concatenation, later factor first, when the earliest vertex of the left factor is the latest vertex of the right factor; otherwise their product is 0.