Macaulay2 » Documentation
Packages » SubalgebraBases :: SubalgebraBases
next | previous | forward | backward | up | index | toc

SubalgebraBases -- A package for finding canonical subalgebra bases (SAGBI bases)

Description

Let $R=k[f_1,\ldots,f_k]$ denote the subalgebra of the polynomial quotient ring $k[x_1,\ldots,x_n] / I$ generated by $f_1, \ldots, f_k$. We say $f_1, \ldots, f_k$ form a subalgebra basis with respect to a monomial order $<$ if the initial algebra associated to $<$, defined as $$in(R) := k[in(f\%I) \mid f \in R] \subseteq k[x_1, \ldots, x_n] / in(I),$$ is generated by the elements $in(f_1\%I), \ldots , in(f_k\%I)$. The main functions provided by this package are for computing these subalgebra bases: sagbi, isSAGBI, and subduction.

Contributors

In addition to the authors below, we thank the following attendees of the 2020 Macaulay2 workshops at Cleveland State University and University of Warwick for their contributions to the package.

Michael Stillman and Harrison Tsai authored an earlier version of this package.

References

  • D. Kapur and K. Madlener. A completion procedure for computing a canonical basis of a $k$-subalgebra. In E. Kaltofen and S. Watt, editors, Computers and Mathematics, pages 1-11, New York, NY, 1989, Springer US.
  • L. Robbiano and M. Sweedler. Subalgebra bases. In W. Bruns and A. Simis, editors, Commutative Algebra, pages 61-87, Berlin, Heidelberg, 1990. Springer Berlin Heidelberg.
  • F. Ollivier. Canonical Bases: Relations with Standard Bases, Finiteness conditions and application to tame automorphisms. In T. Mora, editor, Effective Methods in Algebraic Geometry, pages 379-4000, Birkhaeuser Boston, Boston, MA, 1991.
  • M. Stillman and H. Tsai. Using SAGBI bases to compute invariants.Journal of Pure and Applied Algebra, 139(1), pages 285-302, 1999.
  • B. Sturmfels. Groebner bases and Convex Polytopes. Volume 8 of University Lecture Series. American Mathematical Society, Providence, RI, 1996.

See also

Authors

Certification a gold star

Version 1.3 of this package was accepted for publication in volume 14 of Journal of Software for Algebra and Geometry on 2024-03-18, in the article SubalgebraBases in Macaulay2 (DOI: 10.2140/jsag.2024.14.97). That version can be obtained from the journal or from the Macaulay2 source code repository.

Version

This documentation describes version 1.4 of SubalgebraBases.

Source code

The source code from which this documentation is derived is in the file SubalgebraBases.m2. The auxiliary files accompanying it are in the directory SubalgebraBases/.

Exports

  • Types
  • Functions and commands
  • Methods
    • ambient(SAGBIBasis) -- The ambient ring of a SAGBIBasis computation object
    • ambient(Subring) -- The ambient ring of a subring
    • flattenedRing(SAGBIBasis) -- see flattenedRing -- The flattened ring of a subring or sagbiBasis
    • flattenedRing(Subring) -- see flattenedRing -- The flattened ring of a subring or sagbiBasis
    • forceSB(SAGBIBasis) -- declare the generators to be a complete subalgebra basis
    • forceSB(Subring) -- declare the generators to be a complete subalgebra basis
    • generators(SAGBIBasis) -- Returns generators of a SAGBIBasis computation object
    • generators(Subring) -- A generating set of a subring
    • groebnerMembershipTest(RingElement,Subring) -- see groebnerMembershipTest -- Extrinsic method for subring membership
    • groebnerSubductionQuotient(RingElement,Subring) -- see groebnerSubductionQuotient -- Extrinsic method for subduction quotients
    • intersect(Subring,Subring) -- Intersection of subrings
    • isFullIntersection(IntersectedSubring) -- see isFullIntersection -- check correctness of intersection computation
    • isSAGBI(List) -- see isSAGBI -- Check if the generators are a subalgebra basis
    • isSAGBI(Matrix) -- see isSAGBI -- Check if the generators are a subalgebra basis
    • isSAGBI(SAGBIBasis) -- Check if the generators are a subalgebra basis
    • isSAGBI(Subring) -- Check if the generators are a subalgebra basis
    • net(SAGBIBasis) -- Short summary of a subalgebra basis computation object
    • net(Subring) -- Short summary of a subring
    • numgens(SAGBIBasis) -- The number of generators of a SAGBIBasis
    • numgens(Subring) -- The number of generators of a subring
    • originalSubringGens(IntersectedSubring) -- see originalSubringGens -- generators of the original subrings
    • presentationRing(Subring) -- see presentationRing -- returns the presentation ring of a subring
    • Matrix % SAGBIBasis -- see Reduction in subrings -- Remainder modulo a subring
    • Matrix % Subring -- see Reduction in subrings -- Remainder modulo a subring
    • RingElement % SAGBIBasis -- see Reduction in subrings -- Remainder modulo a subring
    • RingElement % Subring -- see Reduction in subrings -- Remainder modulo a subring
    • ring(SAGBIBasis) -- The lifted ring of a SAGBIBasis computation object
    • RingElement // Subring -- Subduction quotient with respect to a subring
    • sagbi(List) -- see sagbi -- Compute a subalgebra basis (sagbi basis)
    • sagbi(Matrix) -- see sagbi -- Compute a subalgebra basis (sagbi basis)
    • sagbi(SAGBIBasis) -- see sagbi -- Compute a subalgebra basis (sagbi basis)
    • sagbi(Subring) -- see sagbi -- Compute a subalgebra basis (sagbi basis)
    • sagbiBasis(Subring) -- see sagbiBasis -- Constructs a computation object from a subring.
    • sagbiDegree(SAGBIBasis) -- see sagbiDegree -- The current degree of the subalgebra bases computation
    • sagbiLimit(SAGBIBasis) -- see sagbiLimit -- The current limit of the subalgebra bases computation
    • sagbiStatus(SAGBIBasis) -- see sagbiStatus -- checks if the subalgebra bases computation is done
    • status(SAGBIBasis) -- status of the subalgebra bases computation
    • subalgebraBasis(List) -- see subalgebraBasis -- Compute subalgebra basis generators
    • subalgebraBasis(Matrix) -- see subalgebraBasis -- Compute subalgebra basis generators
    • subalgebraBasis(Subring) -- see subalgebraBasis -- Compute subalgebra basis generators
    • subduction(List,List) -- see subduction -- Subduction against a set elements
    • subduction(List,RingElement) -- see subduction -- Subduction against a set elements
    • subduction(Matrix,Matrix) -- see subduction -- Subduction against a set elements
    • subduction(Matrix,RingElement) -- see subduction -- Subduction against a set elements
    • subduction(SAGBIBasis,Matrix) -- see subduction -- Subduction against a set elements
    • subduction(SAGBIBasis,RingElement) -- see subduction -- Subduction against a set elements
    • subduction(Subring,Matrix) -- see subduction -- Subduction against a set elements
    • subduction(Subring,RingElement) -- see subduction -- Subduction against a set elements
    • subring(List) -- see subring -- Constructs a subring of a polynomial ring.
    • subring(Matrix) -- see subring -- Constructs a subring of a polynomial ring.
    • subring(SAGBIBasis) -- see subring -- Constructs a subring of a polynomial ring.
  • Symbols
    • AutoSubduce -- Flag for autosubduction before the sagbi algorithm
    • AutoSubduceOnPartialCompletion -- Subduct subalgebra generators at the end of the sagbi algorithm
    • CheckFullIntersection -- Flag for deciding if isFullIntersection is called
    • Compute -- Flag for performing computations while checking the completeness of a subalgebra basis
    • GeneratorSymbol -- variables for the presentationRing
    • ModifySAGBIBasis -- Flag for allowing the cached computation object to be modified
    • PrintLevel -- Levels of information displayed during Sagbi algorithm
    • Recompute -- Flag for restarting a sagbi or isSAGBI computation
    • ReduceNewGenerators -- Flag for reducing new generators in Sagbi algorithm
    • RenewOptions -- Flag for reselecting the options for a subalgebra bases computation
    • SAGBILimitType -- Flag for calculating degree limit in intersections
    • StorePending -- Flag for storing the pending list to the result of the Sagbi algorithm
    • SubductionMethod -- Subduction method for the Sagbi algorithm
    • UseSubringGens -- Flag for using the subring generators when checking a subalgebra basis

For the programmer

The object SubalgebraBases is a package.