Is there any algorithm to
find out if a given square matrix has an inverse (which is both left and right inverse), and
compute the inverse, if there is one
for any unitary ring, without assuming that it is commutative and without assuming that it has the zero-product property?
Making a system of linear equations and solving it by substitution works correctly even for a non-commutative ring, but it can get stuck if there are some non-invertible non-zero elements. Finding the inverse by dividing the adjoint by the determinant works even for rings where not all elements have an inverse, because there are division-free algorithms for adjoint and determinant and we only have to perform one inverse operation in the very end of the computation, but it works only for commutative rings.