Acyclic or not
The linear quiver is acyclic and has a dimension; the Jordan quiver has a loop, so its dimension does not exist and the call stays put.
A quiver is a directed multigraph — vertices, and arrows between them, with loops and parallel arrows allowed. Its path algebra kQ has a basis of all directed paths, one trivial path ev per vertex included, and the product is concatenation:
p⋅q={pq0if q starts where p endsotherwiseLike the incidence algebra, most products are zero. Unlike every other family here, this one need not be finite-dimensional.
kQ is finite-dimensional exactly when Q is acyclic. A single loop gives the paths e,a,a2,a3,… — the Jordan quiver, whose path algebra is the polynomial ring k[x]. There is no finite basis and no dimension, so Basis and AlgebraDimension have nothing to return and leave the call standing rather than enumerating forever.
The linear quiver is acyclic and has a dimension; the Jordan quiver has a loop, so its dimension does not exist and the call stays put.
That distinction is the whole reason this family is worth having next to the others: every previous one was finite by construction, and this is the first place where "there is no answer" is a structural fact about the input rather than a missing feature.
The linear quiver 1→2→…→n has exactly one path from i to j when i≤j, and none otherwise. So its paths are the intervals of a chain, and kAn is the incidence algebra of Chain(n) — same dimension (2n+1), same product, two libraries describing one object from different directions.
Both are C(7,2) = 21.
The path count is verified a second way in the tests, against powers of the adjacency matrix: paths of length ℓ are the entries of Aℓ, and an acyclic quiver on n vertices has none longer than n−1. Enumeration and linear algebra agree.
1→2 then 2→3 composes. The other order does not meet, so it is zero — not an error.
A path is written QuiverPath(start, [arrow indices]), so the trivial path at v is QuiverPath(v, []). Those trivial paths are the local identities:
and together they sum to the identity of the algebra.
Quiver(n, [[from,to],…]) builds one explicitly, and arrows are indexed by position — so two arrows with the same endpoints are two different basis elements. The Kronecker quiver is the smallest example: two vertices, two parallel arrows, four paths.
Four paths: two trivial, two arrows. The two arrows do not compose with each other, so their product is zero.
Named quivers are recognised, not declared. JordanQuiver and KroneckerQuiver are bare symbols. Declaring them as nullary functions gave them the type () -> value, which then failed PathAlgebra's value parameter — an undeclared symbol types as unknown and passes. Same lesson as the named hypercomplex algebras.
Composition takes its quiver. A path does not know which quiver it belongs to, so QuiverCompose(quiver, p, q) names it rather than riding the shared ordered product.
Not built yet. Representations of a quiver — the actual subject, and where Gabriel's theorem lives: a connected quiver has finitely many indecomposable representations exactly when its underlying graph is a Dynkin diagram of type A, D or E. Also quotients by an admissible ideal, which is how a cyclic quiver is made finite-dimensional in practice.