# picture -- information about components of a labeled Matrix or ChainComplex

## Synopsis

• Usage:
N = picture M
L = picture C
L = picture E
• Inputs:
• M, ,
• C, ,
• E, an instance of the type EagonData, produced by eagon; picture E is equivalent to picture eagonResolution E and to picture res E
• Optional inputs:
• Display => ..., default value picture
• Transpose => ..., default value false
• Verbose => ..., default value false
• Outputs:
• N, a net,
• L, a list, List of Nets, one for each map in the complex

## Description

The free modules that are the sources and targets of the matrices defined in the EagonData eagon(R,b) generally have many components. These can be analyzed with the functions picture, and mapComponent. Each summand of one of these free modules has a label of the form (i, \{u_1..u_s\}) representing the tensor product K_i ** X_{u_1}**..**X_{u_s}, where 0\leq i \leq numvars R and 1\leq u_t \leq projective dimension over S of R. Thus a block is identified by a pair of such symbols in the order target, source.

For any labeled matrix M, picture M (with the default option Display => "picture") prints a net showing which blocks of the matrix are 0 (represented by .); or nonzero and in the maximal ideal, represented by *; or contain a unit entry, represented by a pair of numbers, which are the rank of the target of the matrix and the rank of the matrix tensored with the residue field (the "nonminimal part").

Options: The default option is Display => "picture". With the option Display=>"DisplayBlocks", picture prints the matrices in each block. With any other assignment such as Display =>"", Display prints the whole matrix, without showing the block structure. With the option Verbose => true, picture prints (numrows,numcols) for each block. With the option Transpose => true, picture prints the data for the transposed matrix (possibly useful if there are many columns in the matrix).

Applied to a complex of labeled matrices such as that produced by (res, EagonData) or applied to an instance of EagonData, picture prints a netList of the pictures of the maps in the complex

 i1 : S = ZZ/101[a,b,c] o1 = S o1 : PolynomialRing i2 : I = ideal(a,b)*ideal(a,b,c) 2 2 o2 = ideal (a , a*b, a*c, a*b, b , b*c) o2 : Ideal of S i3 : R = S/I o3 = R o3 : QuotientRing i4 : E = eagon(R,4); i5 : picture E +-------------------------------------------------+ |+-------+-------+ | o5 = || |(1, {})| | |+-------+-------+ | ||(0, {})| * | | |+-------+-------+ | +-------------------------------------------------+ |+-------+-------+--------+ | || |(2, {})|(0, {1})| | |+-------+-------+--------+ | ||(1, {})| * | * | | |+-------+-------+--------+ | +-------------------------------------------------+ |+--------+-------+--------+--------+ | || |(3, {})|(0, {2})|(1, {1})| | |+--------+-------+--------+--------+ | || (2, {})| * | * | * | | |+--------+-------+--------+--------+ | ||(0, {1})| . | . | * | | |+--------+-------+--------+--------+ | +-------------------------------------------------+ |+--------+--------+--------+--------+-----------+| || |(0, {3})|(1, {2})|(2, {1})|(0, {1, 1})|| |+--------+--------+--------+--------+-----------+| || (3, {})| * | * | . | . || |+--------+--------+--------+--------+-----------+| ||(0, {2})| . | * | . | . || |+--------+--------+--------+--------+-----------+| ||(1, {1})| . | . | * | * || |+--------+--------+--------+--------+-----------+| +-------------------------------------------------+ i6 : picture E#{"eagonBeta",3,0} +-------+--------+ o6 = | |(1, {1})| +-------+--------+ |(2, {})| * | +-------+--------+ i7 : picture E +-------------------------------------------------+ |+-------+-------+ | o7 = || |(1, {})| | |+-------+-------+ | ||(0, {})| * | | |+-------+-------+ | +-------------------------------------------------+ |+-------+-------+--------+ | || |(2, {})|(0, {1})| | |+-------+-------+--------+ | ||(1, {})| * | * | | |+-------+-------+--------+ | +-------------------------------------------------+ |+--------+-------+--------+--------+ | || |(3, {})|(0, {2})|(1, {1})| | |+--------+-------+--------+--------+ | || (2, {})| * | * | * | | |+--------+-------+--------+--------+ | ||(0, {1})| . | . | * | | |+--------+-------+--------+--------+ | +-------------------------------------------------+ |+--------+--------+--------+--------+-----------+| || |(0, {3})|(1, {2})|(2, {1})|(0, {1, 1})|| |+--------+--------+--------+--------+-----------+| || (3, {})| * | * | . | . || |+--------+--------+--------+--------+-----------+| ||(0, {2})| . | * | . | . || |+--------+--------+--------+--------+-----------+| ||(1, {1})| . | . | * | * || |+--------+--------+--------+--------+-----------+| +-------------------------------------------------+ i8 : picture verticalStrand(E,1) +---------------------------+ |+-------+-------+--------+ | o8 = || |(2, {})|(0, {1})| | |+-------+-------+--------+ | ||(1, {})| * | * | | |+-------+-------+--------+ | +---------------------------+ |+--------+-------+--------+| || |(3, {})|(0, {2})|| |+--------+-------+--------+| || (2, {})| * | * || |+--------+-------+--------+| ||(0, {1})| . | . || |+--------+-------+--------+| +---------------------------+ |+--------+--------+ | || |(0, {3})| | |+--------+--------+ | || (3, {})| * | | |+--------+--------+ | ||(0, {2})| . | | |+--------+--------+ | +---------------------------+

• eagon -- compute the Eagon double complex
• eagonBeta -- print the eagonBeta maps in the Eagon resolution
• eagonResolution -- computes a resolution of the residue field
• DisplayBlocks -- Display => "DisplayBlocks" option for picture
• mapComponent -- extract a single component from a labeled map

## Ways to use picture :

• "picture(ChainComplex)"
• "picture(EagonData)"
• "picture(Matrix)"

## For the programmer

The object picture is .