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    }