subquivers -- return all possible subquivers of a given quiver

Synopsis

• Usage:
subquivers Q
• Inputs:
• Optional inputs:
• Format (missing documentation) => , default value "quiver", options include quiver, which returns a list of quivers, and list, which returns a list of arrows for each subquiver
• AsSubquiver (missing documentation) => , default value false, if Format is specified as quiver, then applying AsSubquiver = true insures that the matrix representation of the subquiver is the same size as the matrix original quiver
• Outputs:
• L, a list, of either quiver objects, or arrow indices

Description

this returns the subquivers of a given quiver. There are 3 main ways to represent a subquiver:

• as a list of arrow indices,
• as a subset of rows and columns of the original incidence matrix, and
• as a copy of the original incidence matrix with certain rows and columns zeroed out.

 i1 : Q = chainQuiver {2} o1 = ToricQuiver{flow => {1, 1} } IncidenceMatrix => | -1 -1 | | 1 1 | Q0 => {0, 1} Q1 => {{0, 1}, {0, 1}} weights => {-2, 2} o1 : ToricQuiver i2 : subquivers Q o2 = {ToricQuiver{flow => {1} }, ToricQuiver{flow => {1} IncidenceMatrix => | -1 | IncidenceMatrix => | 1 | Q0 => {0, 1} Q0 => {0, 1} Q1 => {{0, 1}} Q1 => {{0, 1}} weights => {-1, 1} weights => {-1, 1} ------------------------------------------------------------------------ }} | -1 | | 1 | o2 : List i3 : subquivers(Q, Format=>"list") o3 = {{0}, {1}} o3 : List
 i4 : subquivers bipartiteQuiver(2, 2) o4 = {ToricQuiver{flow => {1} }, ToricQuiver{flow => {1} IncidenceMatrix => | -1 | IncidenceMatrix => | 1 | Q0 => {0, 1} Q0 => {0, 1} Q1 => {{0, 1}} Q1 => {{0, 1}} weights => {-1, 1} weights => {-1, 1} ------------------------------------------------------------------------ }, ToricQuiver{flow => {1} }, | -1 | IncidenceMatrix => | -1 | | 1 | | 1 | Q0 => {0, 1} Q1 => {{0, 1}} weights => {-1, 1} ------------------------------------------------------------------------ ToricQuiver{flow => {1} }, ToricQuiver{flow => {1, 1} IncidenceMatrix => | -1 | IncidenceMatrix => | 1 | Q0 => {0, 1} Q1 => {{0, 1}} Q0 => {0, 1, 2} weights => {-1, 1} Q1 => {{0, 1}, {0, weights => {-2, 1, ------------------------------------------------------------------------ }, ToricQuiver{flow => {1, 1} }, | -1 -1 | IncidenceMatrix => | -1 0 | | 1 0 | | 0 -1 | | 0 1 | | 1 1 | Q0 => {0, 1, 2} 2}} Q1 => {{0, 2}, {1, 2}} 1} weights => {-1, -1, 2} ------------------------------------------------------------------------ ToricQuiver{flow => {1, 1} }, IncidenceMatrix => | -1 0 | | 0 -1 | | 0 1 | | 1 0 | Q0 => {0, 1, 2, 3} Q1 => {{0, 3}, {1, 2}} weights => {-1, -1, 1, 1} ------------------------------------------------------------------------ ToricQuiver{flow => {1, 1} }, IncidenceMatrix => | -1 0 | | 0 -1 | | 1 0 | | 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {1, 3}} weights => {-1, -1, 1, 1} ------------------------------------------------------------------------ ToricQuiver{flow => {1, 1} }, IncidenceMatrix => | -1 0 | | 0 -1 | | 1 1 | Q0 => {0, 1, 2} Q1 => {{0, 2}, {1, 2}} weights => {-1, -1, 2} ------------------------------------------------------------------------ ToricQuiver{flow => {1, 1} }, IncidenceMatrix => | -1 -1 | | 1 0 | | 0 1 | Q0 => {0, 1, 2} Q1 => {{0, 1}, {0, 2}} weights => {-2, 1, 1} ------------------------------------------------------------------------ ToricQuiver{flow => {1, 1, 1} }, IncidenceMatrix => | -1 -1 0 | | 0 0 -1 | | 1 0 1 | | 0 1 0 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 2}} weights => {-2, -1, 2, 1} ------------------------------------------------------------------------ ToricQuiver{flow => {1, 1, 1} }, IncidenceMatrix => | -1 -1 0 | | 0 0 -1 | | 1 0 0 | | 0 1 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 3}} weights => {-2, -1, 1, 2} ------------------------------------------------------------------------ ToricQuiver{flow => {1, 1, 1} }, IncidenceMatrix => | -1 0 0 | | 0 -1 -1 | | 1 1 0 | | 0 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {1, 2}, {1, 3}} weights => {-1, -2, 2, 1} ------------------------------------------------------------------------ ToricQuiver{flow => {1, 1, 1} }} IncidenceMatrix => | -1 0 0 | | 0 -1 -1 | | 0 1 0 | | 1 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 3}, {1, 2}, {1, 3}} weights => {-1, -2, 1, 2} o4 : List i5 : subquivers(bipartiteQuiver(2, 2), Format=>"list") o5 = {{0}, {1}, {2}, {3}, {0, 1}, {0, 2}, {1, 2}, {0, 3}, {1, 3}, {2, 3}, {0, ------------------------------------------------------------------------ 1, 2}, {0, 1, 3}, {0, 2, 3}, {1, 2, 3}} o5 : List i6 : subquivers(bipartiteQuiver(2, 2), Format=>"quiver", AsSubquiver=>true) o6 = {ToricQuiver{flow => {1, 0, 0, 0} }, IncidenceMatrix => | -1 -1 0 0 | | 0 0 -1 -1 | | 1 0 1 0 | | 0 1 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 2}, {1, 3}} weights => {-1, 0, 1, 0} ------------------------------------------------------------------------ ToricQuiver{flow => {0, 1, 0, 0} }, IncidenceMatrix => | -1 -1 0 0 | | 0 0 -1 -1 | | 1 0 1 0 | | 0 1 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 2}, {1, 3}} weights => {-1, 0, 0, 1} ------------------------------------------------------------------------ ToricQuiver{flow => {0, 0, 1, 0} }, IncidenceMatrix => | -1 -1 0 0 | | 0 0 -1 -1 | | 1 0 1 0 | | 0 1 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 2}, {1, 3}} weights => {0, -1, 1, 0} ------------------------------------------------------------------------ ToricQuiver{flow => {0, 0, 0, 1} }, IncidenceMatrix => | -1 -1 0 0 | | 0 0 -1 -1 | | 1 0 1 0 | | 0 1 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 2}, {1, 3}} weights => {0, -1, 0, 1} ------------------------------------------------------------------------ ToricQuiver{flow => {1, 1, 0, 0} }, IncidenceMatrix => | -1 -1 0 0 | | 0 0 -1 -1 | | 1 0 1 0 | | 0 1 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 2}, {1, 3}} weights => {-2, 0, 1, 1} ------------------------------------------------------------------------ ToricQuiver{flow => {1, 0, 1, 0} }, IncidenceMatrix => | -1 -1 0 0 | | 0 0 -1 -1 | | 1 0 1 0 | | 0 1 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 2}, {1, 3}} weights => {-1, -1, 2, 0} ------------------------------------------------------------------------ ToricQuiver{flow => {0, 1, 1, 0} }, IncidenceMatrix => | -1 -1 0 0 | | 0 0 -1 -1 | | 1 0 1 0 | | 0 1 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 2}, {1, 3}} weights => {-1, -1, 1, 1} ------------------------------------------------------------------------ ToricQuiver{flow => {1, 0, 0, 1} }, IncidenceMatrix => | -1 -1 0 0 | | 0 0 -1 -1 | | 1 0 1 0 | | 0 1 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 2}, {1, 3}} weights => {-1, -1, 1, 1} ------------------------------------------------------------------------ ToricQuiver{flow => {0, 1, 0, 1} }, IncidenceMatrix => | -1 -1 0 0 | | 0 0 -1 -1 | | 1 0 1 0 | | 0 1 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 2}, {1, 3}} weights => {-1, -1, 0, 2} ------------------------------------------------------------------------ ToricQuiver{flow => {0, 0, 1, 1} }, IncidenceMatrix => | -1 -1 0 0 | | 0 0 -1 -1 | | 1 0 1 0 | | 0 1 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 2}, {1, 3}} weights => {0, -2, 1, 1} ------------------------------------------------------------------------ ToricQuiver{flow => {1, 1, 1, 0} }, IncidenceMatrix => | -1 -1 0 0 | | 0 0 -1 -1 | | 1 0 1 0 | | 0 1 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 2}, {1, 3}} weights => {-2, -1, 2, 1} ------------------------------------------------------------------------ ToricQuiver{flow => {1, 1, 0, 1} }, IncidenceMatrix => | -1 -1 0 0 | | 0 0 -1 -1 | | 1 0 1 0 | | 0 1 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 2}, {1, 3}} weights => {-2, -1, 1, 2} ------------------------------------------------------------------------ ToricQuiver{flow => {1, 0, 1, 1} }, IncidenceMatrix => | -1 -1 0 0 | | 0 0 -1 -1 | | 1 0 1 0 | | 0 1 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 2}, {1, 3}} weights => {-1, -2, 2, 1} ------------------------------------------------------------------------ ToricQuiver{flow => {0, 1, 1, 1} }} IncidenceMatrix => | -1 -1 0 0 | | 0 0 -1 -1 | | 1 0 1 0 | | 0 1 0 1 | Q0 => {0, 1, 2, 3} Q1 => {{0, 2}, {0, 3}, {1, 2}, {1, 3}} weights => {-1, -2, 1, 2} o6 : List

Ways to use subquivers :

• "subquivers(ToricQuiver)"
• subquivers(Matrix) (missing documentation)

For the programmer

The object subquivers is .