# chooseGoodMinors -- returns an ideal generated by interesting minors in a matrix

## Synopsis

• Usage:
chooseGoodMinors(count, minorSize, M)
chooseGoodMinors(count, minorSize, M, I)
• Inputs:
• Optional inputs:
• PeriodicCheckFunction => , default value null, a function whose argument is the ideal of minors computed so far and which outputs whether the chooseGoodMinors should continue
• PointOptions => a list, default value {Strategy => Default, Homogeneous => false, Replacement => Binomial, ExtendField => true, PointCheckAttempts => 0, DecompositionStrategy => Decompose, NumThreadsToUse => 1, DimensionFunction => dim, Verbose => false}, options to be passed to the RandomPoints package
• DetStrategy => ..., default value Cofactor, DetStrategy is a strategy for allowing the user to choose how determinants (or rank), is computed
• Strategy => ..., default value new OptionTable from {Points => 0, Random => 16, GRevLexLargest => 0, LexSmallestTerm => 16, LexLargest => 0, LexSmallest => 16, GRevLexSmallestTerm => 16, RandomNonzero => 16, GRevLexSmallest => 16}, strategies for choosing submatrices
• Verbose => ..., default value false
• Outputs:

## Description

This returns an ideal generated by approximately count minors of size minorSize of the matrix M.

 i1 : R = QQ[x, y, z]; i2 : M = matrix{{x,y,0}, {y,z,0}, {0,0,0}} o2 = | x y 0 | | y z 0 | | 0 0 0 | 3 3 o2 : Matrix R <--- R i3 : chooseGoodMinors(1, 2, M, Strategy=>StrategyDefaultNonRandom) 2 o3 = ideal(- y + x*z) o3 : Ideal of R

The ideal I is used in the Points portion of the Strategy. Only points where that ideal vanishes will be considered.

The option PeriodicCheckFunction can be set to a function which will periodically evaluate the partially computed ideal of minors via the given function (which should return a boolean value). If that function returns true then chooseGoodMinors will terminate. For instance, one can set it to periodically check whether the dimension of the ideal is at most zero via PeriodicCheckFunction => (J -> dim J <= 0).

## Ways to use chooseGoodMinors :

• "chooseGoodMinors(ZZ,ZZ,Matrix)"
• "chooseGoodMinors(ZZ,ZZ,Matrix,Ideal)"

## For the programmer

The object chooseGoodMinors is .