/*
* $Id$
*/
package edu.jas.gb;
import java.util.List;
import java.io.Serializable;
import edu.jas.poly.GenSolvablePolynomial;
import edu.jas.structure.RingElem;
/**
* Solvable Groebner Bases interface. Defines methods for left, right and
* twosided Groebner bases and left, right and twosided GB tests.
* @param coefficient type
* @author Heinz Kredel.
*/
public interface SolvableGroebnerBase> extends Serializable {
/**
* Left Groebner base test.
* @param F solvable polynomial list.
* @return true, if F is a left Groebner base, else false.
*/
public boolean isLeftGB(List> F);
/**
* Left Groebner base test.
* @param modv number of module variables.
* @param F solvable polynomial list.
* @return true, if F is a left Groebner base, else false.
*/
public boolean isLeftGB(int modv, List> F);
/**
* Twosided Groebner base test.
* @param Fp solvable polynomial list.
* @return true, if Fp is a two-sided Groebner base, else false.
*/
public boolean isTwosidedGB(List> Fp);
/**
* Twosided Groebner base test.
* @param modv number of module variables.
* @param Fp solvable polynomial list.
* @return true, if Fp is a two-sided Groebner base, else false.
*/
public boolean isTwosidedGB(int modv, List> Fp);
/**
* Right Groebner base test.
* @param F solvable polynomial list.
* @return true, if F is a right Groebner base, else false.
*/
public boolean isRightGB(List> F);
/**
* Right Groebner base test.
* @param modv number of module variables.
* @param F solvable polynomial list.
* @return true, if F is a right Groebner base, else false.
*/
public boolean isRightGB(int modv, List> F);
/**
* Left Groebner base using pairlist class.
* @param F solvable polynomial list.
* @return leftGB(F) a left Groebner base of F.
*/
public List> leftGB(List> F);
/**
* Left Groebner base using pairlist class.
* @param modv number of module variables.
* @param F solvable polynomial list.
* @return leftGB(F) a left Groebner base of F.
*/
public List> leftGB(int modv, List> F);
/**
* Solvable Extended Groebner base using critical pair class.
* @param F solvable polynomial list.
* @return a container for an extended left Groebner base of F.
*/
public SolvableExtendedGB extLeftGB(List> F);
/**
* Solvable Extended Groebner base using critical pair class.
* @param modv module variable number.
* @param F solvable polynomial list.
* @return a container for an extended left Groebner base of F.
*/
public SolvableExtendedGB extLeftGB(int modv, List> F);
/**
* Left minimal ordered groebner basis.
* @param Gp a left Groebner base.
* @return leftGBmi(F) a minimal left Groebner base of Gp.
*/
public List> leftMinimalGB(List> Gp);
/**
* Twosided Groebner base using pairlist class.
* @param Fp solvable polynomial list.
* @return tsGB(Fp) a twosided Groebner base of Fp.
*/
public List> twosidedGB(List> Fp);
/**
* Twosided Groebner base using pairlist class.
* @param modv number of module variables.
* @param Fp solvable polynomial list.
* @return tsGB(Fp) a twosided Groebner base of Fp.
*/
public List> twosidedGB(int modv, List> Fp);
/**
* Right Groebner base using opposite ring left GB.
* @param F solvable polynomial list.
* @return rightGB(F) a right Groebner base of F.
*/
public List> rightGB(List> F);
/**
* Right Groebner base using opposite ring left GB.
* @param modv number of module variables.
* @param F solvable polynomial list.
* @return rightGB(F) a right Groebner base of F.
*/
public List> rightGB(int modv, List> F);
/**
* Test if left reduction matrix.
* @param exgb an SolvableExtendedGB container.
* @return true, if exgb contains a left reduction matrix, else false.
*/
public boolean isLeftReductionMatrix(SolvableExtendedGB exgb);
/**
* Test if left reduction matrix.
* @param F a solvable polynomial list.
* @param G a left Groebner base.
* @param Mf a possible left reduction matrix.
* @param Mg a possible left reduction matrix.
* @return true, if Mg and Mf are left reduction matrices, else false.
*/
public boolean isLeftReductionMatrix(List> F, List> G,
List>> Mf, List>> Mg);
}
Ads help maintain this website.