1 | #ifndef WITNESS_H |
---|
2 | #define WITNESS_H |
---|
3 | |
---|
4 | #include <libpolys/polys/monomials/monomials.h> |
---|
5 | #include <libpolys/polys/simpleideals.h> |
---|
6 | |
---|
7 | /** |
---|
8 | * Computes a division discarding remainder of f with respect to G. |
---|
9 | * Given f a polynomial and G={g1,...,gk} a set of polynomials in r, |
---|
10 | * returns a matrix Q=(q1,...,qk) over r such that |
---|
11 | * f = q1*g1+...+qk*gk+s |
---|
12 | * is a determinate division with remainder s. |
---|
13 | */ |
---|
14 | matrix divisionDiscardingRemainder(const poly f, const ideal G, const ring r); |
---|
15 | |
---|
16 | /** |
---|
17 | * Computes a division discarding remainder of F with respect to G. |
---|
18 | * Given F={f1,...,fl} and G={g1,...,gk} two sets of polynomials in r, |
---|
19 | * returns a matrix Q=(qij) i=1,..,k j=1,...,l over r such that |
---|
20 | * fj = q1j*g1+...+qkj*gk+sj |
---|
21 | * is a determinate division with remainder sj for all j=1,...,l. |
---|
22 | */ |
---|
23 | matrix divisionDiscardingRemainder(const ideal F, const ideal G, const ring r); |
---|
24 | |
---|
25 | /** |
---|
26 | * Let w be the uppermost weight vector in the matrix defining the ordering on r. |
---|
27 | * Let I be a Groebner basis of an ideal in r, inI its initial form with respect w. |
---|
28 | * Given an w-homogeneous element m of inI, computes a witness g of m in I, |
---|
29 | * i.e. g in I such that in_w(g)=m. |
---|
30 | */ |
---|
31 | poly witness(const poly m, const ideal I, const ideal inI, const ring r); |
---|
32 | |
---|
33 | /** |
---|
34 | * Computes witnesses in J for inI |
---|
35 | * Given inI={h1,...,hl} and J={g1,...,gk} two sets of polynomials in r, |
---|
36 | * returns a set I={f1,...,fl} of <g1,...,gk> such that |
---|
37 | * in_w(fj)=hj for all j=1,...,l, |
---|
38 | * where w denotes the uppoermost weight vector in the matrix defining the ordering on r. |
---|
39 | * Assumes that hj is an element of <in_w(g1),...,in_w(gk)> |
---|
40 | */ |
---|
41 | ideal witness(const ideal inI, const ideal J, const ring r); |
---|
42 | |
---|
43 | #ifndef NDEBUG |
---|
44 | #include <Singular/ipid.h> |
---|
45 | BOOLEAN dwrDebug(leftv res, leftv args); |
---|
46 | BOOLEAN witnessDebug(leftv res, leftv args); |
---|
47 | #endif |
---|
48 | |
---|
49 | #endif |
---|