001/*
002 * $Id$
003 */
004
005package edu.jas.gbmod;
006
007
008import java.io.Serializable;
009import java.util.List;
010
011import edu.jas.poly.GenSolvablePolynomial;
012import edu.jas.poly.ModuleList;
013import edu.jas.structure.RingElem;
014
015
016/**
017 * Module solvable Groebner Bases interface. Defines modull solvabe Groebner
018 * bases and GB test.
019 * @param <C> coefficient type
020 * @author Heinz Kredel
021 * @deprecated use respective methods from SolvableGroebnerBase 
022 */
023@Deprecated
024public interface ModSolvableGroebnerBase<C extends RingElem<C>> extends Serializable {
025
026
027    /**
028     * Module left Groebner base test.
029     * @param modv number of modul variables.
030     * @param F a module basis.
031     * @return true, if F is a left Groebner base, else false.
032     */
033    public boolean isLeftGB(int modv, List<GenSolvablePolynomial<C>> F);
034
035
036    /**
037     * Module left Groebner base test.
038     * @param M a module basis.
039     * @return true, if M is a left Groebner base, else false.
040     */
041    public boolean isLeftGB(ModuleList<C> M);
042
043
044    /**
045     * Left Groebner base using pairlist class.
046     * @param modv number of modul variables.
047     * @param F a module basis.
048     * @return leftGB(F) a left Groebner base for F.
049     */
050    public List<GenSolvablePolynomial<C>> leftGB(int modv, List<GenSolvablePolynomial<C>> F);
051
052
053    /**
054     * Left Groebner base using pairlist class.
055     * @param M a module basis.
056     * @return leftGB(M) a left Groebner base for M.
057     */
058    public ModuleList<C> leftGB(ModuleList<C> M);
059
060
061    /**
062     * Module twosided Groebner base test.
063     * @param modv number of modul variables.
064     * @param F a module basis.
065     * @return true, if F is a twosided Groebner base, else false.
066     */
067    public boolean isTwosidedGB(int modv, List<GenSolvablePolynomial<C>> F);
068
069
070    /**
071     * Module twosided Groebner base test.
072     * @param M a module basis.
073     * @return true, if M is a twosided Groebner base, else false.
074     */
075    public boolean isTwosidedGB(ModuleList<C> M);
076
077
078    /**
079     * Twosided Groebner base using pairlist class.
080     * @param modv number of modul variables.
081     * @param F a module basis.
082     * @return tsGB(F) a twosided Groebner base for F.
083     */
084    public List<GenSolvablePolynomial<C>> twosidedGB(int modv, List<GenSolvablePolynomial<C>> F);
085
086
087    /**
088     * Twosided Groebner base using pairlist class.
089     * @param M a module basis.
090     * @return tsGB(M) a twosided Groebner base for M.
091     */
092    public ModuleList<C> twosidedGB(ModuleList<C> M);
093
094
095    /**
096     * Module right Groebner base test.
097     * @param modv number of modul variables.
098     * @param F a module basis.
099     * @return true, if F is a right Groebner base, else false.
100     */
101    public boolean isRightGB(int modv, List<GenSolvablePolynomial<C>> F);
102
103
104    /**
105     * Module right Groebner base test.
106     * @param M a module basis.
107     * @return true, if M is a right Groebner base, else false.
108     */
109    public boolean isRightGB(ModuleList<C> M);
110
111
112    /**
113     * Right Groebner base using pairlist class.
114     * @param modv number of modul variables.
115     * @param F a module basis.
116     * @return rightGB(F) a right Groebner base for F.
117     */
118    public List<GenSolvablePolynomial<C>> rightGB(int modv, List<GenSolvablePolynomial<C>> F);
119
120
121    /**
122     * Right Groebner base using pairlist class.
123     * @param M a module basis.
124     * @return rightGB(M) a right Groebner base for M.
125     */
126    public ModuleList<C> rightGB(ModuleList<C> M);
127
128}