Hi, As a newbie to sage I have to solve some sets of coupled nonlinear integro-differential equations for my thesis, but I have been stopped at the very beginning step which is defining the independent and dependent variables! Actually I need to work with vectors R0=(x,y,z,t), R1=(x1,y1,z1,t1), and vector-fields defined over them as the unknown functions to be solved for. So long I have tried the code below:

```
var('x,y,z,t,x1,y1,z1,t1,x2,y2,z2,t2,x3,y3,z3,t3')
R0=[x,y,z,t]
R1=[x1,y1,z1,t1]
R2=[x2,y2,z2,t2]
R3=[x3,y3,z3,t3]
R=[R0,R1,R2,R3] # what if I define R as R0+R1+R2+R3, also a list (not list of lists) with all the sublist elements
# no! if so then index of x3 e.g. will become unreasonably weird: R[12] instead of R[3][0]
for k in range(10):
function('f_%s' %k, nargs=2) # I need this way of function definition as it allows the argument not to be specified, as under some integration once the arguments are in the form (R0,R1) and once in the form (R0,R2) and once in the form (R0,R3)
```

However, this way of defining symbolic function does not allow me to use lists and lists of list as their argument. Searching the web I came across the idea to use an "*" operator before the lists names, but even this way although the code

```
>> f1 = function("f1", *R[0]) #the operator * turns f(*[a,b,c]) into f(a,b,c)
>> f1
f1(x, y, z, t)
```

works well as I wish but the code

```
>> f1 = function("f1", *R) # R is a list of lists
```

yields into an error that "no canonical coercion from <type 'list'=""> to Symbolic Ring"! Also the codes

```
f1 = function("f1", *R[0],*R[2])
```

and

```
f1 = function("f1", nargs=2)
f1(*R[0],*R[1]);
```

and

```
f1 = function("f1", nargs=8)
f1(*R[0],*R[1]); f1(*R[0],*R[2])
```

yields into invalid syntax errors! This is so while the initial attempt that I made, which was

```
f1 = function("f1", nargs=2)
f1(R[0],R[1])
```

was also yielding the obvious error "cannot coerce arguments: no canonical coercion from <type 'list'=""> to Symbolic Ring". I also redefined the R0,R1, 's as tuple and set types but no result, and also used ** instead of * and again nothing as the result. I need to integrate w.r.t. the vectors R1,R2, and also differentiate w.r.t. their elements R[i][j]=Ri[j]. Maybe I should try to work with the variables in the raw form x,y,z,t,x1,y1, instead of vectors of (x,y,z,t),(x1,y1,z1,t1), form, but it would be ugly I guess, hope that there is a way to use the vector notations though!

Have you any idea what shall I do at this point? Regards, owari