exceptional
quiverlab.tautilting.exceptional ¶
tau-exceptional sequences (Buan-Marsh) via the Jasso tau-perpendicular reduction (Plan 65 / R27; Buan-Marsh J. Algebra 585 (2021); Jasso IMRN 2015; Demonet-Iyama-Jasso 2019).
Over a tau-tilting-finite A = kQ/I the signed tau-exceptional sequences are built on
the shipped P45 tau-tilting engine:
- a length-1 signed tau-exceptional object is either an indecomposable tau-rigid
module
(M, +)or a shifted projective(P_v[1], -)(one per vertex); - a complete signed tau-exceptional sequence
(M_1, ..., M_n)has, at one end, a signed objectMofA, and the remainingn-1terms form a complete signed tau-exceptional sequence of the reduction algebraC(M)-- the Jasso tau-perpendicular categoryJ(M) ~ mod C(M), of rankn - |M|.
The reduction dispatches on the SIGN of the outer object (H2):
- tau-rigid module
U-> the DIJ idempotent quotientC(U) = End(T_U)/<e_U>(T_Ua genuine tau-tilting module -- an empty-support exchange-graph vertex -- withU in add T_U). We buildEnd(T_U)in thehom_basisand quotient by the two-sided ideal generated by the summand projectore_Uat the structure-constant level, THEN present the quotient (presented_form). This sidesteps a fragile vertex-identification in the presentedEnd(T_U)(H5): the quotient is intrinsic andC(S_1) of kA_3comes outkA_2(connected, dim 3), notk x k(dim 2).
The algebra C(U) is completion-DEPENDENT (H-1). Different tau-tilting completions
T_U of the SAME U give End(T_U)/<e_U> of different dimension / quiver (live-
proved on kD4). Only the CATEGORY J(U), hence the invariant #sTt(C(U)), is
completion-independent (DIJ) -- and the enumeration relies ONLY on #sTt. We pick the
first empty-support completion in BFS order (deterministic) and self-certify: when a second
completion exists, #sTt(C(U)) over it must match (a loud raise otherwise). So the
returned algebra is one valid presentation of C(U); the trustworthy datum is its
#sTt.
- shifted projective P_v[1] -> the support quotient C(P_v[1]) = A/<e_v> (delete
vertex v), with F the tautological restriction mod(A/<e_v>) ~ {M in mod A : M_v
= 0} (Recollement.i_upper_star).
Enumeration is the Buan-Marsh ordered-support-tau-tilt bijection:
#(complete signed tau-exceptional sequences) = n! * #(support tau-tilting pairs), with
#sTt = len(exchange_graph(A).vertices) from P45. It is NOT a mutation-BFS (mutation
transitivity is proven only in rank 2, Buan-Hanson-Marsh arXiv:2402.10301). The formula
identity signed_count == n! * #sTt is a SELF-CERT (tautological); the genuine
cross-check is the materialisation of the reduction towers (want_sequences=True):
their number equals signed_count, they are pairwise distinct, and each is recognized.
Honest gates (M1): the count is trustworthy only from a status="complete" exchange
graph; status in {"budget","error"} -> a loud refusal report, never a count off a
non-complete graph. tau-tilting-infinite -> refusal. Char <= dim over GF(p) -> the
shipped decompose/is_isomorphic/presented_form caveat raises loudly.
TauExcObject
dataclass
¶
TauExcObject(sign: int, module: object = None, vertex: object = None)
A length-1 signed tau-exceptional object: sign = +1 for an indecomposable
tau-rigid module (module), sign = -1 for a shifted projective P_vertex[1]
(module = None, vertex set).
dvt ¶
dvt()
A hashable signature: (sign, dim-vector-tuple) for a module; (sign, ('P', vertex)) for a shifted projective.
Source code in src/quiverlab/tautilting/exceptional.py
69 70 71 72 73 74 75 | |
TauExcReport
dataclass
¶
TauExcReport(algebra: object, n: int, signed_count: int = 0, stt_count: int = 0, sequences: list | None = None, is_complete: bool = False, status: str = 'unsupported', note: str = '')
The signed tau-exceptional-sequence report of a tau-tilting-finite algebra (Plan 65 / R27).
TauReduction
dataclass
¶
TauReduction(reduction_algebra: object, bongartz: object = None, u_vertices: object = None, kind: str = 'tau_rigid', equivalence: object = None)
The Jasso tau-perpendicular reduction C(U) of a signed object U (Plan 65 /
R27). reduction_algebra is a genuine kQ'/I' Algebra of rank n - |U|;
kind is "tau_rigid" (DIJ End(T_U)/<e_U>) or "shifted" (A/<e_v>);
bongartz is the tau-tilting completion T_U (the pair, tau-rigid case) or None;
u_vertices records the killed summand indices / the deleted vertex; equivalence
is the object-transport mod C(U) -> J(U) inverse (a callable, shifted case only --
the cheap restriction; None for the tau-rigid case, whose deep lift is scope-bounded
-- see the module docstring).
exceptional_sequences_block ¶
exceptional_sequences_block(A, budget=4096)
The shared exceptional_sequences compute block (Plan 65 Task G1): the CLASSICAL
hereditary surface (counts + braid-orbit transitivity + Dynkin closed form, if
hereditary) AND the tau-exceptional surface (the signed count n!*#sTt, if
tau-tilting-finite), each honest about applicability. Sequences themselves are NOT
shipped (they explode -- D_4 has 162 classical / 1200 signed); the block reports
counts + status. Presentation-less -> a typed error dict, never a 500.
DoS cap (H-3). budget caps the tau exchange-graph BFS -- the only unbounded axis
(a non-hereditary tau-tilting-INFINITE input would otherwise grind). The block default is
a SANE 4096 (not the 100_000 library default, which stays on
:meth:Algebra.tau_exceptional_sequences). The classical side is NEVER a DoS (it refuses
a rep-infinite hereditary input INSTANTLY via Gabriel, and a non-hereditary one is N/A),
so it uses its own generous internal tuple budget regardless of budget.
Shared by hpc/spec.py and docs/gui/runner.py so the blocks are byte-identical.
Source code in src/quiverlab/tautilting/exceptional.py
653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 | |
is_tau_exceptional_sequence ¶
is_tau_exceptional_sequence(A, seq)
True iff seq is a complete-or-partial signed tau-exceptional sequence of A
(Plan 65 / R27; the (inner, ..., outer) convention -- the outer term is the
reduced-away end seq[-1]).
Two input forms are accepted:
- a reduction tower (a list of :class:
_TowerEntry, as produced by :func:tau_exceptional_sequences): verified rung-by-rung; - an ambient sequence (a list of :class:
Module/ :class:TauExcObject): recognized recursively -- the outer signed object reduces, the remaining terms are transported intoC(outer)and recognized there. Over a hereditaryAan all-module sequence is recognized by the classical criterion (the Buan-Marsh coincidence, tau-exc = classical exc for hereditary).
Source code in src/quiverlab/tautilting/exceptional.py
484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 | |
tau_exceptional_objects ¶
tau_exceptional_objects(A, *, budget=512)
The length-1 signed tau-exceptional objects of A (Plan 65 / R27): every
indecomposable tau-rigid module (sign +1, from the exchange-graph module
universe) plus one shifted projective P_v[1] per vertex (sign -1). Requires a
tau-tilting-finite A for the module part (loud refusal otherwise).
Source code in src/quiverlab/tautilting/exceptional.py
194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 | |
tau_exceptional_sequences ¶
tau_exceptional_sequences(A, *, budget=4096, want_sequences=True, _reverse_objects=False)
The complete signed tau-exceptional sequences of a tau-tilting-finite A
(Plan 65 / R27). The count is the ordered-support-tau-tilt bijection
signed_count = n! * #sTt with #sTt = len(exchange_graph(A).vertices) -- computed
WITHOUT enumerating, so it is exact even when materialisation is budget-capped.
want_sequences=True also MATERIALISES the reduction towers (the H1 cross-check:
len(sequences) == signed_count, pairwise distinct, each recognized), capped at
budget towers (signed_count stays exact via the formula). Returns a
:class:TauExcReport.
Gate (M1): only a status="complete" exchange graph yields a count; status in
{"budget","error"} -> an honest refusal report, NEVER a count off a non-complete graph.
Source code in src/quiverlab/tautilting/exceptional.py
599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 | |
tau_perpendicular_reduction ¶
tau_perpendicular_reduction(A, U, *, budget=512, certify=True, _eg=None)
The Jasso tau-perpendicular reduction C(U) of a signed tau-exceptional object
U (Plan 65 / R27), dispatching on the sign of U (H2):
Ua tau-rigid module (a :class:~quiverlab.modules.module.Module, or a positive :class:TauExcObject): the DIJ quotientC(U) = End(T_U)/<e_U>(rankn - |U|);Ua shifted projectiveP_v[1](a negative :class:TauExcObject): the support quotientC(P_v[1]) = A/<e_v>(rankn - 1), with the tautological restriction transport.
Returns a :class:TauReduction. Self-certifies rk C(U) = n - |U| and (tau-rigid
case) is discriminated by the C(S_1 of kA_3) = kA_2 iso pin (H5). certify=True
(default, the public path) runs the H-1 completion-independence certificate
(#sTt(C(U)) invariant across completions); the internal materialiser passes
certify=False (its aggregate count is the guard).
Source code in src/quiverlab/tautilting/exceptional.py
346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 | |