# Subring -- The type of all subrings

## Description

Subring is a type that stores information associated to a subring of a polynomial ring, such as a set of subring generators and a reference to the polynomial ring it is contained in. An instance of a Subring is constructed with the function subring.

Every instance of Subring is guaranteed to have the following keys:

• ambientRing: The polynomial or quotient ring that contains the subring instance's generators.
• generators: A one-row matrix, the generators of the subring.
• cache: Contains unspecified information. The contents of the cache may effect performance, but should never effect the result of a computation.

## Functions and methods returning an object of class Subring :

• sagbi -- Compute a subalgebra basis (sagbi basis)
• verifySagbi -- Test if the generators form sagbi basis

## Methods that use an object of class Subring :

• ambient(Subring) -- The ambient ring of a subring
• generators(Subring) -- A generating set of a subring
• "groebnerMembershipTest(RingElement,Subring)" -- see groebnerMembershipTest -- Extrinsic method for subring membership
• "isSAGBI(Subring)" -- see isSAGBI -- Check if the generators are a sagbi basis
• Matrix % Subring -- Remainder modulo a subring
• net(Subring) -- Short summary of a subring
• numgens(Subring) -- The number of generators of a subring
• RingElement % Subring -- Remainder modulo a subring
• "sagbi(Subring)" -- see sagbi -- Compute a subalgebra basis (sagbi basis)
• "sagbiBasis(Subring)" -- see sagbiBasis -- Constructs a computation object from a subring.
• "subalgebraBasis(Subring)" -- see subalgebraBasis -- Compute subalgebra basis (sagbi basis) generators
• "verifySagbi(Subring)" -- see verifySagbi -- Test if the generators form sagbi basis

## For the programmer

The object Subring is a type, with ancestor classes HashTable < Thing.