|
D.8.1.2 PEsolve
Procedure from library ffsolve.lib (see ffsolve_lib).
- Usage:
- PEsolve(I[, i]); I ideal, i optional integer
solve I (system of multivariate equations) over a
finite field using an equvalence property when i is
not given or set to 2, otherwise if i is set to 0
then check whether common roots exists
- Return:
- list if optional parameter is not given or set to 2,
integer if optional is set to 0
- Assume:
- basering is a finite field of type (p^n,a)
- Note:
- When the optional parameter is set to 0, speoff only
checks if I has common roots, then return 1, otherwise
return 0.
Example:
| LIB "ffsolve.lib";
ring R = (2,a),x(1..3),lp;
minpoly=a2+a+1;
ideal I;
I[1]=x(1)^2*x(2)+(a)*x(1)*x(2)^2+(a+1);
I[2]=x(1)^2*x(2)*x(3)^2+(a)*x(1);
I[3]=(a+1)*x(1)*x(3)+(a+1)*x(1);
PEsolve(I);
==> // ** redefining I ( ideal I = defaultIdeal();)
==> // ** redefining new ( list new = increment(start,i);)
==> // ** redefining l (int l=1;)
==> // ** redefining new ( list new = increment(start,i);)
==> // ** redefining l (int l=1;)
==> // ** redefining new ( list new = increment(start,i);)
==> // ** redefining l (int l=1;)
==> // ** redefining new ( list new = increment(start,i);)
==> // ** redefining l (int l=1;)
==> // ** redefining new ( list new = increment(start,i);)
==> // ** redefining l (int l=1;)
==> // ** redefining new ( list new = increment(start,i);)
==> // ** redefining l (int l=1;)
==> // ** redefining new ( list new = increment(start,i);)
==> // ** redefining l (int l=1;)
==> // ** redefining new ( list new = increment(start,i);)
==> // ** redefining l (int l=1;)
==> // ** redefining new ( list new = increment(start,i);)
==> // ** redefining l (int l=1;)
==> // ** redefining new ( list new = increment(start,i);)
==> // ** redefining l (int l=1;)
==> // ** redefining res ( ideal res;)
==> // ** redefining new ( list new = increment(start,i);)
==> // ** redefining l (int l=1;)
==> [1]:
==> _[1]=x(3)+1
==> _[2]=x(2)+(a)
==> _[3]=x(1)+1
==> [2]:
==> _[1]=x(3)+1
==> _[2]=x(2)+(a+1)
==> _[3]=x(1)+(a+1)
|
|