/*
* $Id$
*/
package edu.jas.gbmod;
import java.util.List;
import java.io.Serializable;
import edu.jas.poly.GenPolynomial;
import edu.jas.poly.ModuleList;
import edu.jas.poly.PolynomialList;
import edu.jas.structure.RingElem;
import edu.jas.vector.GenVector;
/**
* Syzygy interface.
* Defines Syzygy computations and tests.
* @param coefficient type
* @author Heinz Kredel
*/
public interface Syzygy> extends Serializable {
/**
* Syzygy module from Groebner base.
* F must be a Groebner base.
* @param F a Groebner base.
* @return syz(F), a basis for the module of syzygies for F.
*/
public List>>
zeroRelations(List> F);
/**
* Syzygy module from Groebner base.
* F must be a Groebner base.
* @param modv number of module variables.
* @param F a Groebner base.
* @return syz(F), a basis for the module of syzygies for F.
*/
public List>>
zeroRelations(int modv, List> F);
/**
* Syzygy module from Groebner base.
* v must be a Groebner base.
* @param modv number of module variables.
* @param v a Groebner base.
* @return syz(v), a basis for the module of syzygies for v.
*/
public List>>
zeroRelations(int modv, GenVector> v);
/**
* Syzygy module from module Groebner base.
* M must be a module Groebner base.
* @param M a module Groebner base.
* @return syz(M), a basis for the module of syzygies for M.
*/
public ModuleList
zeroRelations(ModuleList M);
/**
* Test if sysygy.
* @param Z list of sysygies.
* @param F a polynomial list.
* @return true, if Z is a list of syzygies for F, else false.
*/
public boolean
isZeroRelation(List>> Z,
List> F);
/**
* Test if sysygy of modules.
* @param Z list of sysygies.
* @param F a module list.
* @return true, if Z is a list of syzygies for F, else false.
*/
public boolean
isZeroRelation(ModuleList Z, ModuleList F);
/**
* Resolution of a module.
* Only with direct GBs.
* @param M a module list of a Groebner basis.
* @return a resolution of M.
*/
public List>
resolution(ModuleList M);
/**
* Resolution of a polynomial list.
* Only with direct GBs.
* @param F a polynomial list of a Groebner basis.
* @return a resolution of F.
*/
public List // |ResPolPart>
resolution(PolynomialList F);
/**
* Resolution of a polynomial list.
* @param F a polynomial list of an arbitrary basis.
* @return a resolution of F.
*/
public List // |ResPolPart>
resolutionArbitrary(PolynomialList F);
/**
* Resolution of a module.
* @param M a module list of an arbitrary basis.
* @return a resolution of M.
*/
public List>
resolutionArbitrary(ModuleList M);
/**
* Syzygy module from arbitrary base.
* @param F a polynomial list.
* @return syz(F), a basis for the module of syzygies for F.
*/
public List>>
zeroRelationsArbitrary(List> F);
/**
* Syzygy module from arbitrary base.
* @param modv number of module variables.
* @param F a polynomial list.
* @return syz(F), a basis for the module of syzygies for F.
*/
public List>>
zeroRelationsArbitrary(int modv, List> F);
/**
* Syzygy module from arbitrary module base.
* @param M an arbitrary module base.
* @return syz(M), a basis for the module of syzygies for M.
*/
public ModuleList
zeroRelationsArbitrary(ModuleList M);
}
Ads help maintain this website.