001/*
002 * $Id: WordGroebnerBase.java 4150 2012-09-01 09:18:23Z kredel $
003 */
004
005package edu.jas.gb;
006
007
008import java.util.List;
009import java.io.Serializable;
010
011import edu.jas.structure.RingElem;
012import edu.jas.poly.GenWordPolynomial;
013
014
015/**
016 * Non-commutative Groebner Bases interface for GenWordPolynomials.
017 * Defines methods for Groebner bases and GB test.
018 * @param <C> coefficient type
019 * @author Heinz Kredel
020 */
021
022public interface WordGroebnerBase<C extends RingElem<C>> 
023                 extends Serializable {
024
025
026    /**
027     * Groebner base test.
028     * @param F word polynomial list.
029     * @return true, if F is a Groebner base, else false.
030     */
031    public boolean isGB(List<GenWordPolynomial<C>> F);
032
033
034    /**
035     * Groebner base using pairlist class.
036     * @param F word polynomial list.
037     * @return GB(F) a non-commutative Groebner base of F.
038     */
039    public List<GenWordPolynomial<C>> GB( List<GenWordPolynomial<C>> F );
040
041
042    /**
043     * Minimal ordered groebner basis.
044     * @param Gp a Word Groebner base.
045     * @return a reduced Word Groebner base of Gp.
046     */
047    public List<GenWordPolynomial<C>> minimalGB(List<GenWordPolynomial<C>> Gp);
048
049}