001 /*
002 * $Id: ModGroebnerBase.java 3445 2010-12-25 17:24:04Z kredel $
003 */
004
005 package edu.jas.gbmod;
006
007 import java.util.List;
008
009 import edu.jas.structure.RingElem;
010
011 import edu.jas.poly.GenPolynomial;
012 import edu.jas.poly.ModuleList;
013
014
015
016 /**
017 * Module Groebner Bases interface.
018 * Defines Groebner bases and GB test.
019 * @author Heinz Kredel
020 */
021
022 public interface ModGroebnerBase<C extends RingElem<C>> {
023
024
025 /**
026 * Module Groebner base test.
027 */
028 public boolean isGB(int modv, List<GenPolynomial<C>> F);
029
030
031 /**
032 * isGB.
033 * @param M a module basis.
034 * @return true, if M is a Groebner base, else false.
035 */
036 public boolean isGB(ModuleList<C> M);
037
038
039 /**
040 * Groebner base using pairlist class.
041 */
042 public List<GenPolynomial<C>>
043 GB(int modv, List<GenPolynomial<C>> F);
044
045
046 /**
047 * GB.
048 * @param M a module basis.
049 * @return GB(M), a Groebner base of M.
050 */
051 public ModuleList<C> GB(ModuleList<C> M);
052
053 }