## 227 Reputation

7 years, 305 days

## @Carl Love In fact, I am working on...

In fact, I am working on Grobner systems, roughly speaking, can be considered as an extension of Grobner bases of polynomials over fields to polynomials with parametric coefficients. Indeed, a Grobner system is a fi nite set of triples (N,W,G) (so-called branches or segments); each branch contains (N,W) a couple of null (N)
and non-null parametric sets (W) (parametric constraint) and also a set of polynomials (G).

Now, I must consider the element of N as zero in polynomial set G. For this I use NormalForm(g, N, parametric monomial order) command of Maple for any g in G. But, it is possible the elements of N don't appear in any polynomial of G so using NormalForm command is additional work. Therefore I need a function to decide that is there at least one element at G e.g. g s.t. an element of N  appears in g. In this case, the output is true otherwise false. For example, let

N = [b-1], G = [a*n*z^3-1, -b*x+3]. Since b-1 don't appear in any element of G so it is not needed to use NormalForm command for this branch (but when I use your function HasSubexpression it's output is true and the Normalform command is called automatically).

## @Carl Love  Thanks a lot for your h...

@Carl Love  Thanks a lot for your helpful answer. But now, there is a minor error in the following:

HasSubexpression(b-1, [a*n*z^3-1, 3-b]). b-1 do not appear in [a*n*z^3-1, 3-b] but this function returns true. I need a general function to decide appearing one element of a list in the part of a polynomial of the anothr list.

## @Carl Love I applied your function ...

@Carl Love I applied your function on very pairs of list A, B and in some case, the following error appears:

How can fix this problem to can use this function generally?

## @Carl Love Thank you so much again....

@Carl Love Thank you so much again.

The input (of any suggestion algorithm or function) is two list A, B and we want to decide that is there at least one element at B e.g. $f\in B$ s.t. an element of A  appears in f. In this case, the output is true otherwise false.

## @acer  Thanks for this comparison....

Thanks for this comparison.

## @acer a+b also is a parameter for m...

@acer a+b also is a parameter for me so the output is true.

Also, I have the list of variables and parameters at the beginning of computations.

## @mmcdara  Dear MMcdara and dear Ac...

Dear MMcdara and dear Acer,

With best regards

## @Joe Riel  This is OK, Thank you so...

@Joe Riel  This is OK, Thank you so much.

## @Carl Love Thanks for your attentio...

@Carl Love Thanks for your attention. It has to returns FALSE.

In fact, I need a command or procedure which its input is a list of (parametric) polynomials and its output is true or false. If all f_i are linear (variables have degree 1) it returns true else returns false.

## @Kitonum  Thank you so much for yo...

Thank you so much for your implementation. It seems that is OK for this example. I will run some example and I report you if there is any problem.

Thanks again.

Sincerely yours.

## @tomleslie Thnak you for your answe...

Thnak you for your answer, but I need as the following matrix M associated to the first element of the above list L i.e;

[a*x^2+b*x*y-1, -(a*b-b)*x*y/a-z^2+(a-1)/a, -a*c*z^2/(b*(a-1))+(b+c)/b]

So, a procedure is needed that produce these matrices for any element of L, automatically.

## @Joe Riel  Thanks again. I think t...

Thanks again. I think that I did this.

The explain of my question was: In the first of my implementation A:=[a*x^2+b*x*y-2, (a-1)*x^2-z^2, c*x*y+1] is a list of polynomials. I linearise it using A1 (instead of x^2), A2 (instead of x*y), A3 (instead of z^2) and A4 (instead of 1). So I have AA:=[A1*a+A2*b-2*A4, (a-1)*A1-A3, A2*c+A4]. In the middle of computation some linear polynomial add into AA. In the end of computation it is needed that A1 and A2 and A3 and A4 change to thier related monomials. By  your function "map(rhs=lhs, S)" I can change A1, A2, A3. Could you please help me how can I change A4 to 1 simultaneously and automatically (using nops(map(rhs=lhs, S)))?