1 | initial version |

Because you matrices are not square (hence not invertible), there may be many solutions, and given each propositions, you can actually check that the wanted equality holtds. I am not sure about you actual problems, but you can have a look at the `pseudoinverse`

method:

```
sage: X = matrix(ZZ, [[5,2],[1,4],[2,3]]) ; X
[5 2]
[1 4]
[2 3]
sage: Y = X.LLL() ; Y
[ 0 0]
[ 1 0]
[ 0 -1]
sage: T = Y*X.pseudoinverse() ; T
[ 0 0 0]
[ 21/94 -51/470 -1/235]
[ 4/47 -10/47 -5/47]
```

You can check:

```
sage: T*X == Y
True
```

2 | No.2 Revision |

Because you matrices are not square (hence not invertible), there may be many solutions, and given each propositions, you can actually check that the wanted equality ~~holtds. ~~holds. I am not sure about you actual problems, but you can have a look at the `pseudoinverse`

method:

```
sage: X = matrix(ZZ, [[5,2],[1,4],[2,3]]) ; X
[5 2]
[1 4]
[2 3]
sage: Y = X.LLL() ; Y
[ 0 0]
[ 1 0]
[ 0 -1]
sage: T = Y*X.pseudoinverse() ; T
[ 0 0 0]
[ 21/94 -51/470 -1/235]
[ 4/47 -10/47 -5/47]
```

You can check:

```
sage: T*X == Y
True
```

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.