Procedure from library linalg.lib (see linalg_lib).
linalg.lib
inverse_L(A); A = square matrix
list Inv representing a left inverse of A, i.e - Inv[1] = matrix I and - Inv[2] = poly p such that I*A = unitmat(n)*p;
p=1 if 1/det(A) is computable and p=det(A) if not; the computation computes first det(A) and then uses lift
Example:
LIB "linalg.lib"; ring r=0,(x,y),lp; matrix A[3][3]=x,y,1,1,x2,y,x,6,0; print(A); list Inv=inverse_L(A); print(Inv[1]); print(Inv[2]); print(Inv[1]*A);
See also: inverse; inverse_B.