The generalized Kronecker quiver #
The generalized Kronecker quiver has two vertices, a source and a target, and one arrow from the
source to the target for each element of an arrow type A. Taking A = Fin 2 gives the
Kronecker quiver • ⇉ •, the smallest connected acyclic quiver that is not of Dynkin type and
hence the boundary case of Gabriel's theorem; A = Fin 1 gives the A₂ quiver • → •. (Dropping
acyclicity there would be wrong: the one-loop quiver of
TauCeti.RepresentationTheory.Quiver.OneLoop.Basic is connected, smaller, and not of Dynkin
type.)
This file constructs the quiver and classifies its paths: it is acyclic, and its only nontrivial
paths are the arrows themselves. The equivalence totalPathEquivArrowSumBool identifies all
indexed paths with A ⊕ Bool, supporting transport of finiteness, countability and infinitude.
The same classification is carried out for the quiver reflected
at its target, which is the generalized Kronecker quiver read the other way round. The dimension
of its path algebra is computed in TauCeti.RepresentationTheory.Quiver.Kronecker.PathAlgebra,
its Euler and Tits forms in
TauCeti.RepresentationTheory.Quiver.Kronecker.EulerForm. Its representations are built in
TauCeti.RepresentationTheory.Quiver.Kronecker.Representation, and its representation type --
infinite as soon as there are two arrows -- is settled in
TauCeti.RepresentationTheory.Quiver.Kronecker.FiniteRepType.
Main definitions #
TauCeti.Quiver.Kronecker A: the vertex type, with constructorssrcandtgtand aQuiverinstance whose only arrows aresrc ⟶ tgt, indexed byA.TauCeti.Quiver.Kronecker.arrow: the arrow attached to an element of the arrow type.TauCeti.Quiver.Kronecker.vertexEquiv: the two vertices as indices inFin 2, the target first.TauCeti.Quiver.Kronecker.pathEquivArrow: the paths fromsrctotgtare the arrows.TauCeti.Quiver.Kronecker.totalPathEquivArrowSumBool: indexed paths are the arrow type plus two Boolean-labelled trivial paths, withfalsefor the target andtruefor the source.TauCeti.Quiver.Kronecker.reflectHomEquivArrow: the arrows fromtgttosrcof the quiver reflected attgtare the arrows of the original, reversed.TauCeti.Quiver.Kronecker.reflectPathEquivArrow: the paths fromtgttosrcof the quiver reflected attgtare again the arrows.
Main results #
TauCeti.Quiver.Kronecker.isAcyclic: the quiver is acyclic, since all of its arrows run the same way.TauCeti.Quiver.Kronecker.card_path_src_tgt: there are as many paths from the source to the target as there are arrows.TauCeti.Quiver.Kronecker.totalPath_eq_or: every indexed path is trivial at a vertex or traces a single arrow, with no finiteness assumption on the arrow type.TauCeti.Quiver.Kronecker.card_totalPath: withnarrows there aren + 2indexed paths.TauCeti.Quiver.Kronecker.isSink_reflect_src: reflecting attgtmakes the source a sink, so the reflected quiver is the generalized Kronecker quiver with the opposite orientation.
References #
Derksen--Weyman, An Introduction to Quiver Representations, and Assem--Simson--Skowroński, Elements of the Representation Theory of Associative Algebras I, Ch. II.
The generalized Kronecker quiver on an arrow type A: two vertices, a source src and a
target tgt, with one arrow src ⟶ tgt for each element of A and no other arrows. The classical
Kronecker quiver • ⇉ • is the case A = Fin 2, and the A₂ quiver • → • is the case
A = Fin 1.
- src
{A : Type v}
: Kronecker A
The source vertex, the tail of every arrow.
- tgt
{A : Type v}
: Kronecker A
The target vertex, the head of every arrow.
Instances For
Equations
- One or more equations did not get rendered due to their size.
The two vertices #
Equations
- TauCeti.Quiver.Kronecker.src.instDecidableEq TauCeti.Quiver.Kronecker.src = isTrue ⋯
- TauCeti.Quiver.Kronecker.src.instDecidableEq TauCeti.Quiver.Kronecker.tgt = isFalse ⋯
- TauCeti.Quiver.Kronecker.tgt.instDecidableEq TauCeti.Quiver.Kronecker.src = isFalse ⋯
- TauCeti.Quiver.Kronecker.tgt.instDecidableEq TauCeti.Quiver.Kronecker.tgt = isTrue ⋯
Equations
- TauCeti.Quiver.Kronecker.instFintype = { elems := {TauCeti.Quiver.Kronecker.src, TauCeti.Quiver.Kronecker.tgt}, complete := ⋯ }
The vertex type is the pair {src, tgt}.
The two vertices as indices in Fin 2, the target first: tgt is 0 and src is 1.
The order is the one that makes the path algebra upper triangular rather than lower triangular. In
TauCeti.RepresentationTheory.Quiver.Kronecker.UpperTriangular a path is sent to the matrix unit
in the row of its target and the column of its source, because an arrow acts on a left module from
its source to its target; so the arrows, all of which run from src to tgt, occupy entries above
the diagonal exactly when tgt comes first.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The arrows #
The arrow of the generalized Kronecker quiver indexed by an element of the arrow type. The arrows from the source to the target are exactly the elements of the arrow type, and the identification is definitional.
Equations
Instances For
The arrows from the source to the target are the elements of the arrow type, and arrow is
that identification. This is not @[simp]: rewriting arrow a to a would erase the named
constructor from every goal, leaving toPath_arrow and the pathEquivArrow lemmas below unable to
fire.
The source vertex is a source.
The target vertex is a sink.
Equations
- TauCeti.Quiver.Kronecker.src.instFintypeHom TauCeti.Quiver.Kronecker.src = Fintype.ofIsEmpty
- TauCeti.Quiver.Kronecker.src.instFintypeHom TauCeti.Quiver.Kronecker.tgt = inst✝
- TauCeti.Quiver.Kronecker.tgt.instFintypeHom TauCeti.Quiver.Kronecker.src = Fintype.ofIsEmpty
- TauCeti.Quiver.Kronecker.tgt.instFintypeHom TauCeti.Quiver.Kronecker.tgt = Fintype.ofIsEmpty
There are as many arrows from the source to the target as there are elements of the arrow type.
The paths #
The only closed path at the source vertex is the trivial one.
The only closed path at the target vertex is the trivial one.
The generalized Kronecker quiver is acyclic: all of its arrows run the same way.
Equations
- TauCeti.Quiver.Kronecker.instUniquePathSrc = { default := Quiver.Path.nil, uniq := ⋯ }
Equations
- TauCeti.Quiver.Kronecker.instUniquePathTgt = { default := Quiver.Path.nil, uniq := ⋯ }
The length-one path traced by an arrow of the generalized Kronecker quiver.
Equations
Instances For
Distinct arrows trace distinct paths.
Every path from the source to the target is a single arrow.
Over the A₂ quiver there is exactly one path from the source to the target: the arrows
are the paths src → tgt, and there is only one arrow.
Equations
- TauCeti.Quiver.Kronecker.instUniquePathSrcTgt = { default := TauCeti.Quiver.Kronecker.arrowPath default, uniq := ⋯ }
The paths from the source to the target of the generalized Kronecker quiver are its arrows.
Equations
Instances For
The inverse of the classification sends an arrow to the path it traces; the two are the same construction, so this holds definitionally.
The classification sends the path traced by an arrow back to that arrow.
Every path from the source to the target is traced by the arrow it classifies.
Indexed paths are the arrows together with two trivial paths. The Boolean labels follow the
vertex order: false represents the target, and true represents the source.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The trivial path at the target has Boolean label false.
The trivial path at the source has Boolean label true.
Boolean label false reconstructs the trivial path at the target.
Boolean label true reconstructs the trivial path at the source.
Each path of a generalized Kronecker quiver is a trivial path at one of its two vertices, or the length-one path traced by an arrow.
Equations
- TauCeti.Quiver.Kronecker.src.instFintypePath TauCeti.Quiver.Kronecker.src = Unique.fintype
- TauCeti.Quiver.Kronecker.src.instFintypePath TauCeti.Quiver.Kronecker.tgt = Fintype.ofEquiv A TauCeti.Quiver.Kronecker.pathEquivArrow.symm
- TauCeti.Quiver.Kronecker.tgt.instFintypePath TauCeti.Quiver.Kronecker.src = Fintype.ofIsEmpty
- TauCeti.Quiver.Kronecker.tgt.instFintypePath TauCeti.Quiver.Kronecker.tgt = Unique.fintype
There are as many paths from the source to the target as there are arrows: by
pathEquivArrow, each such path is a single arrow.
The generalized Kronecker quiver on n arrows has n + 2 paths: the two trivial paths and the
arrows themselves.
The reflected quiver #
A vertex of the quiver reflected at tgt has to be written @IsSink (Reflect (Kronecker A) tgt) _ src rather than IsSink (src : Reflect (Kronecker A) tgt): TauCeti.Quiver.Reflect is a type
synonym for the vertex type, so the ascription is discharged definitionally and the quiver
instance elaborated from it would be the unreflected one.
In the reflected quiver the target vertex is a source, since it was a sink.
The only closed path at the source of the reflected quiver is the trivial one.
Equations
- TauCeti.Quiver.Kronecker.instUniquePathReflectTgtSrc = { default := Quiver.Path.nil, uniq := ⋯ }
The only closed path at the target of the reflected quiver is the trivial one.
Equations
- TauCeti.Quiver.Kronecker.instUniquePathReflectTgt = { default := Quiver.Path.nil, uniq := ⋯ }
The reflected quiver has no path from the source to the target: its arrows all run the other way.
The length-one path of the reflected quiver traced by the reversed arrow attached to an element of the arrow type.
Equations
Instances For
The path attached to an element of the arrow type is the one its reversed arrow traces.
The arrows tgt ⟶ src of the reflected quiver are the elements of the arrow type, each
being the reversal TauCeti.Quiver.reflectArrow of the arrow src ⟶ tgt it names. This is the
arrow-level form of the path classification reflectPathEquivArrow below, and it is what reads an
arrow of the reflected quiver back as an arrow of the generalized Kronecker quiver.
Instances For
Reading the reversal of an arrow back recovers the element of the arrow type it came from.
Every arrow tgt ⟶ src of the reflected quiver is a reversed arrow: reversing the arrow
it is read back as recovers it. This is the elimination rule that the path classification below
runs on.
Distinct arrows trace distinct paths in the reflected quiver.
Every path from the target to the source of the reflected quiver is a single reversed arrow: the target is a source there and the source is a sink, so no two arrows compose.
The paths tgt → src of the reflected quiver are the elements of the arrow type, exactly
as the paths src → tgt of the generalized Kronecker quiver are, by
TauCeti.Quiver.Kronecker.pathEquivArrow.
Equations
Instances For
The inverse of the classification sends an element of the arrow type to the path its reversed arrow traces; the two are the same construction, so this holds definitionally.
The classification sends the path traced by a reversed arrow back to the element of the arrow type it came from.
Every path from the target to the source of the reflected quiver is traced by the reversed arrow it classifies.
Equations
- TauCeti.Quiver.Kronecker.src.instFintypeReflectPath TauCeti.Quiver.Kronecker.src = Unique.fintype
- TauCeti.Quiver.Kronecker.src.instFintypeReflectPath TauCeti.Quiver.Kronecker.tgt = Fintype.ofIsEmpty
- TauCeti.Quiver.Kronecker.tgt.instFintypeReflectPath TauCeti.Quiver.Kronecker.src = Fintype.ofEquiv A TauCeti.Quiver.Kronecker.reflectPathEquivArrow.symm
- TauCeti.Quiver.Kronecker.tgt.instFintypeReflectPath TauCeti.Quiver.Kronecker.tgt = Unique.fintype
The reflected quiver has as many paths from the target to the source as the generalized
Kronecker quiver has arrows: by reflectPathEquivArrow, each such path is a single reversed
arrow.