Question: I have a problem using (assume) and (LinearAlgebra:-Equal) simultaneously

Hi there. I have two expressions of type Matrix(7x1), one I entered directly and the other one is the result of a  procedure calling. They only differ by the term [1,1], so when I do a comparation of the appropiate submatrix using Equal I get a positive answer:

 

>Equal(SubMatrix(atataaV(1,1,1,1,u1),2..-1,1),SubMatrix(u1,2..-1,1));

true

 

Now, the elements of the submatrices depend on the symbol 'n', when I do the following, the Equal command fails

 

>assume(n,positive);

>Equal(SubMatrix(atataaV(1,1,1,1,u1),2..-1,1),SubMatrix(u1,2..-1,1));

false

 

As far as I'm concerned, both submatrices have the same structure and entries.  Here's a dump of the expressions:

 

> about(atataaV(1,1,1,1,u1),u1); about(SubMatrix(atataaV(1,1,1,1,u1),2..-1,1),SubMatrix(u1,2..-1,1));
Matrix(8, 1, [[15/4*g*h*w/Pi],[n-6],[6],[0],[0],[0],[0],[0]], datatype = anything, storage = rectangular, order = Fortran_order, shape = []):
  property aliased to Matrix(8, 1, [[15/4*g*h*w/Pi],[n-6],[6],[0],[0],[0],[0],[0]], datatype = anything, storage = rectangular, order = Fortran_order, shape = [])

Matrix(8, 1, [[1],[n-6],[6],[0],[0],[0],[0],[0]], datatype = anything, storage = rectangular, order = Fortran_order, shape = []):
  property aliased to Matrix(8, 1, [[1],[n-6],[6],[0],[0],[0],[0],[0]], datatype = anything, storage = rectangular, order = Fortran_order, shape = [])

Matrix(7, 1, [[n-6],[6],[0],[0],[0],[0],[0]], datatype = anything, storage = rectangular, order = Fortran_order, shape = []):
  property aliased to Matrix(7, 1, [[n-6],[6],[0],[0],[0],[0],[0]], datatype = anything, storage = rectangular, order = Fortran_order, shape = [])

Matrix(7, 1, [[n-6],[6],[0],[0],[0],[0],[0]], datatype = anything, storage = rectangular, order = Fortran_order, shape = []):
  property aliased to Matrix(7, 1, [[n-6],[6],[0],[0],[0],[0],[0]], datatype = anything, storage = rectangular, order = Fortran_order, shape = [])

 

I'd really appreciate if anyone could tell me how to overcome this problem. As an additional information, if create a copy of the submatrices or declare them as variables then I get a positive answer:

 

>assume(n,positive);

>Equal(copy(SubMatrix(atataaV(1,1,1,1,u1),2..-1,1)),copy(SubMatrix(u1,2..-1,1)));

true

 

However, I don't want to do this because the comparation is going to take place inside a nested series of loops, so I want to make it as efficient as I can.

Please Wait...