001/*
002 * $Id$
003 */
004
005package edu.jas.gb;
006
007
008import java.io.Serializable;
009import java.util.List;
010
011import edu.jas.poly.GenWordPolynomial;
012import edu.jas.structure.RingElem;
013
014
015/**
016 * Non-commutative Groebner Bases interface for GenWordPolynomials. Defines
017 * 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>> extends Serializable {
023
024
025    /**
026     * Groebner base test.
027     * @param F word polynomial list.
028     * @return true, if F is a Groebner base, else false.
029     */
030    public boolean isGB(List<GenWordPolynomial<C>> F);
031
032
033    /**
034     * Groebner base using pairlist class.
035     * @param F word polynomial list.
036     * @return GB(F) a non-commutative Groebner base of F.
037     */
038    public List<GenWordPolynomial<C>> GB(List<GenWordPolynomial<C>> F);
039
040
041    /**
042     * Minimal ordered groebner basis.
043     * @param Gp a Word Groebner base.
044     * @return a reduced Word Groebner base of Gp.
045     */
046    public List<GenWordPolynomial<C>> minimalGB(List<GenWordPolynomial<C>> Gp);
047
048}