reserve

  k,n,m,i,j for Element of NAT,
  K for Field;
reserve L for non empty addLoopStr;
reserve G for non empty multLoopStr;

theorem Th55:
  for A being Matrix of n,K holds (ex B1 being Matrix of n,K st B1
  *A=1.(K,n)) iff ex B2 being Matrix of n,K st A*B2=1.(K,n)
proof
  let A be Matrix of n,K;
  per cases;
  suppose
A1: n>0;
    thus (ex B being Matrix of n,K st B*A=1.(K,n)) implies ex B2 being Matrix
    of n,K st A*B2=1.(K,n) by Th54;
    thus (ex B being Matrix of n,K st A*B=1.(K,n)) implies ex B2 being Matrix
    of n,K st B2*A=1.(K,n)
    proof
      assume ex B being Matrix of n,K st A*B=1.(K,n);
      then consider B being Matrix of n,K such that
A2:   A*B=1.(K,n);
A3:   width A=n & len B=n by MATRIX_0:24;
      width B=n & (A*B)@=1.(K,n) by A2,MATRIX_0:24,MATRIX_6:10;
      then (B@)*(A@)=1.(K,n) by A1,A3,MATRIX_3:22;
      then consider B2 being Matrix of n,K such that
A4:   (A@)*B2= 1.(K,n) by Th54;
A5:   width (A@) =n & len B2=n by MATRIX_0:24;
      width B2=n & ((A@)*B2)@ = 1.(K,n) by A4,MATRIX_0:24,MATRIX_6:10;
      then (B2@)*((A@)@) = 1.(K,n) by A1,A5,MATRIX_3:22;
      then (B2@)*A= 1.(K,n) by MATRIXR2:29;
      hence thesis;
    end;
  end;
  suppose
A6: n=0;
    then A*A=1.(K,0) by Th15;
    hence thesis by A6;
  end;
end;
