Identity matrix is a class because it is not unique (one per size)it is a matrix with only 1 on the diagonal and 0 everywhere else
(<=> (Identity-Matrix ?Im)
(And (Square-Matrix ?Im)
(Forall (?I ?J)
(=> (Defined (Value ?Im ?I ?J))
(And (=> (= ?I ?J) (= (Value ?Im ?I ?J) 1))
(=> (/= ?I ?J)
(Zero-Element (Value ?Im ?I ?J))))))))
(Forall (?I ?J)
(=> (Defined (Value ?Im ?I ?J))
(And (=> (= ?I ?J) (= (Value ?Im ?I ?J) 1))
(=> (/= ?I ?J) (Zero-Element (Value ?Im ?I ?J))))))
(Square-Matrix ?Im)
(<=> (Identity-Matrix ?Im)
(And (Square-Matrix ?Im)
(Forall (?I ?J)
(=> (Defined (Value ?Im ?I ?J))
(And (=> (= ?I ?J) (= (Value ?Im ?I ?J) 1))
(=> (/= ?I ?J)
(Zero-Element (Value ?Im ?I ?J))))))))
(<=> (Invertible-Matrix ?M)
(And (Square-Matrix ?M)
(Exists (?M-1)
(And (Square-Matrix ?M-1)
(Identity-Matrix (* ?M ?M-1))
(Identity-Matrix (* ?M-1 ?M))))))
(=> (= (Matrix-Inverse ?M) ?M-1) (Identity-Matrix (* ?M-1 ?M)))
(=> (= (Matrix-Inverse ?M) ?M-1) (Identity-Matrix (* ?M ?M-1)))