Function that returns the determinant of a matrix It has relevant informations such as if determinant = 0 the the matrix cannot be inverted
(=> (And (Square-Matrix ?M)) (= (Determinant ?M) (Cond ((= 1 (Size ?M)) (Value ?M 1 1)) ((< 1 (Size ?M)) (Summation (Lambda (?J) (* (Value ?M 1 ?J) (Cofactor ?M 1 ?J))) 1 (Size ?M))))))
(=> (And (Square-Matrix ?M)) (= (Determinant ?M) (Cond ((= 1 (Size ?M)) (Value ?M 1 1)) ((< 1 (Size ?M)) (Summation (Lambda (?J) (* (Value ?M 1 ?J) (Cofactor ?M 1 ?J))) 1 (Size ?M)))))) (=> (= (Cofactor ?M ?I ?J) ?Cof) (= ?Cof (* (Expt -1 (+ ?I ?J)) (Determinant (Matrix-Less-Row-And-Column ?M ?I ?J))))) (Instance-Of (Zero-Element (Determinant ?M)) Not) (Not (Zero-Element (Determinant ?M))) (<=> (Invertible-Matrix ?M) (And (Square-Matrix ?M) (Not (Zero-Element (Determinant ?M)))))